mirror of
https://github.com/fergalmoran/picard.git
synced 2026-01-07 17:14:55 +00:00
Display Update or Download buttons for each plugin installed or available
Actions not yet implemented
This commit is contained in:
@@ -63,6 +63,8 @@ class PluginsOptionsPage(OptionsPage):
|
||||
self.ui.install_plugin.clicked.connect(self.open_plugins)
|
||||
self.ui.folder_open.clicked.connect(self.open_plugin_dir)
|
||||
self.tagger.pluginmanager.plugin_installed.connect(self.plugin_installed)
|
||||
self.ui.plugins.header().setStretchLastSection(False)
|
||||
self.ui.plugins.header().setResizeMode(0, QtGui.QHeaderView.Stretch)
|
||||
|
||||
def load(self):
|
||||
self.ui.details.setText("<b>"+ _("No plugins installed.") + "</b>")
|
||||
@@ -86,6 +88,8 @@ class PluginsOptionsPage(OptionsPage):
|
||||
for plugin in sorted(self.tagger.pluginmanager.available_plugins, cmp=cmp_plugins):
|
||||
if plugin.module_name not in installed:
|
||||
plugin.flags = PluginFlags.CAN_BE_DOWNLOADED
|
||||
item = self.add_plugin_item(plugin)
|
||||
|
||||
self.ui.plugins.setCurrentItem(self.ui.plugins.topLevelItem(0))
|
||||
|
||||
def plugin_installed(self, plugin):
|
||||
@@ -118,7 +122,24 @@ class PluginsOptionsPage(OptionsPage):
|
||||
else:
|
||||
item.setCheckState(0, QtCore.Qt.Unchecked)
|
||||
item.setText(1, plugin.version)
|
||||
item.setText(2, plugin.author)
|
||||
|
||||
label = None
|
||||
if plugin.flags & PluginFlags.CAN_BE_UPDATED:
|
||||
label = _("Update")
|
||||
elif plugin.flags & PluginFlags.CAN_BE_DOWNLOADED:
|
||||
label = _("Download")
|
||||
|
||||
if label is not None:
|
||||
button = QtGui.QPushButton(label)
|
||||
button.setMaximumHeight(button.fontMetrics().boundingRect(label).height() + 7)
|
||||
self.ui.plugins.setItemWidget(item, 2, button)
|
||||
def download_button_process():
|
||||
self.ui.plugins.setCurrentItem(item)
|
||||
button.released.connect(download_button_process)
|
||||
else:
|
||||
# Note: setText() don't work after it was set to a button
|
||||
self.ui.plugins.setItemWidget(item, 2, QtGui.QLabel(_("Installed")))
|
||||
|
||||
self.ui.plugins.header().resizeSections(QtGui.QHeaderView.ResizeToContents)
|
||||
self.items[item] = plugin
|
||||
return item
|
||||
|
||||
@@ -119,7 +119,7 @@ class Ui_PluginsOptionsPage(object):
|
||||
self.groupBox_2.setTitle(_("Plugins"))
|
||||
self.plugins.headerItem().setText(0, _("Name"))
|
||||
self.plugins.headerItem().setText(1, _("Version"))
|
||||
self.plugins.headerItem().setText(2, _("Author"))
|
||||
self.plugins.headerItem().setText(2, _("Status"))
|
||||
self.install_plugin.setText(_("Install plugin..."))
|
||||
self.folder_open.setText(_("Open plugin folder"))
|
||||
self.groupBox.setTitle(_("Details"))
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Author</string>
|
||||
<string>Status</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
|
||||
Reference in New Issue
Block a user