openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #00520
[Merge] lp:~raoul-snyman/openlp/pluginlist into lp:openlp
Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/pluginlist into lp:openlp.
Requested reviews:
OpenLP Core (openlp-core)
Pretty plugin window!
--
https://code.launchpad.net/~raoul-snyman/openlp/pluginlist/+merge/13089
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/plugin.py'
--- openlp/core/lib/plugin.py 2009-10-07 05:09:35 +0000
+++ openlp/core/lib/plugin.py 2009-10-08 20:05:22 +0000
@@ -168,7 +168,11 @@
Returns True or False.
"""
+<<<<<<< TREE
return self.status == PluginStatus.Active
+=======
+ return int(self.status) == PluginStatus.Active
+>>>>>>> MERGE-SOURCE
def get_media_manager_item(self):
"""
=== modified file 'openlp/core/ui/__init__.py'
--- openlp/core/ui/__init__.py 2009-10-07 05:09:35 +0000
+++ openlp/core/ui/__init__.py 2009-10-08 20:05:23 +0000
@@ -32,7 +32,7 @@
from themestab import ThemesTab
from about import AboutForm
from alertform import AlertForm
-from plugindialoglistform import PluginForm
+from pluginform import PluginForm
from settingsform import SettingsForm
from mediadockmanager import MediaDockManager
from servicemanager import ServiceManager
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2009-10-07 05:09:35 +0000
+++ openlp/core/ui/mainwindow.py 2009-10-08 20:05:23 +0000
@@ -421,7 +421,6 @@
self.mainDisplay = MainDisplay(self, screens)
self.generalConfig = PluginConfig(u'General')
self.alertForm = AlertForm(self)
- self.pluginForm = PluginForm(self)
self.aboutForm = AboutForm(self)
self.settingsForm = SettingsForm(self.screenList, self)
# Set up the path with plugins
@@ -432,6 +431,7 @@
self.plugin_helpers = {}
# Set up the interface
self.setupUi(self)
+ self.pluginForm = PluginForm(self)
# Set up signals and slots
QtCore.QObject.connect(self.ImportThemeItem,
QtCore.SIGNAL(u'triggered()'),
=== added file 'openlp/core/ui/plugindialog.py'
--- openlp/core/ui/plugindialog.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/plugindialog.py 2009-10-08 20:05:23 +0000
@@ -0,0 +1,117 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it #
+# under the terms of the GNU General Public License as published by the Free #
+# Software Foundation; version 2 of the License. #
+# #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
+# more details. #
+# #
+# You should have received a copy of the GNU General Public License along #
+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+###############################################################################
+
+from PyQt4 import QtCore, QtGui
+from openlp.core.lib import translate
+
+class Ui_PluginViewDialog(object):
+ def setupUi(self, PluginViewDialog):
+ PluginViewDialog.setObjectName(u'PluginViewDialog')
+ PluginViewDialog.setWindowModality(QtCore.Qt.ApplicationModal)
+ PluginViewDialog.resize(554, 344)
+ self.PluginLayout = QtGui.QVBoxLayout(PluginViewDialog)
+ self.PluginLayout.setSpacing(8)
+ self.PluginLayout.setMargin(8)
+ self.PluginLayout.setObjectName(u'PluginLayout')
+ self.ListLayout = QtGui.QHBoxLayout()
+ self.ListLayout.setSpacing(8)
+ self.ListLayout.setObjectName(u'ListLayout')
+ self.PluginListWidget = QtGui.QListWidget(PluginViewDialog)
+ sizePolicy = QtGui.QSizePolicy(
+ QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Expanding)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(
+ self.PluginListWidget.sizePolicy().hasHeightForWidth())
+ self.PluginListWidget.setSizePolicy(sizePolicy)
+ self.PluginListWidget.setMaximumSize(QtCore.QSize(192, 16777215))
+ self.PluginListWidget.setObjectName(u'PluginListWidget')
+ self.ListLayout.addWidget(self.PluginListWidget)
+ self.PluginInfoGroupBox = QtGui.QGroupBox(PluginViewDialog)
+ self.PluginInfoGroupBox.setAlignment(
+ QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
+ self.PluginInfoGroupBox.setFlat(False)
+ self.PluginInfoGroupBox.setObjectName(u'PluginInfoGroupBox')
+ self.PluginInfoLayout = QtGui.QFormLayout(self.PluginInfoGroupBox)
+ self.PluginInfoLayout.setMargin(8)
+ self.PluginInfoLayout.setSpacing(8)
+ self.PluginInfoLayout.setObjectName(u'PluginInfoLayout')
+ self.VersionLabel = QtGui.QLabel(self.PluginInfoGroupBox)
+ self.VersionLabel.setObjectName(u'VersionLabel')
+ self.PluginInfoLayout.setWidget(
+ 1, QtGui.QFormLayout.LabelRole, self.VersionLabel)
+ self.VersionNumberLabel = QtGui.QLabel(self.PluginInfoGroupBox)
+ self.VersionNumberLabel.setObjectName(u'VersionNumberLabel')
+ self.PluginInfoLayout.setWidget(
+ 1, QtGui.QFormLayout.FieldRole, self.VersionNumberLabel)
+ self.AboutLabel = QtGui.QLabel(self.PluginInfoGroupBox)
+ self.AboutLabel.setObjectName(u'AboutLabel')
+ self.PluginInfoLayout.setWidget(
+ 2, QtGui.QFormLayout.LabelRole, self.AboutLabel)
+ self.StatusLabel = QtGui.QLabel(self.PluginInfoGroupBox)
+ self.StatusLabel.setObjectName(u'StatusLabel')
+ self.PluginInfoLayout.setWidget(
+ 0, QtGui.QFormLayout.LabelRole, self.StatusLabel)
+ self.StatusComboBox = QtGui.QComboBox(self.PluginInfoGroupBox)
+ self.StatusComboBox.setObjectName(u'StatusComboBox')
+ self.StatusComboBox.addItem(QtCore.QString())
+ self.StatusComboBox.addItem(QtCore.QString())
+ self.PluginInfoLayout.setWidget(
+ 0, QtGui.QFormLayout.FieldRole, self.StatusComboBox)
+ self.AboutTextBrowser = QtGui.QTextBrowser(self.PluginInfoGroupBox)
+ self.AboutTextBrowser.setTextInteractionFlags(
+ QtCore.Qt.LinksAccessibleByMouse)
+ self.AboutTextBrowser.setObjectName(u'AboutTextBrowser')
+ self.PluginInfoLayout.setWidget(
+ 2, QtGui.QFormLayout.FieldRole, self.AboutTextBrowser)
+ self.ListLayout.addWidget(self.PluginInfoGroupBox)
+ self.PluginLayout.addLayout(self.ListLayout)
+ self.PluginListButtonBox = QtGui.QDialogButtonBox(PluginViewDialog)
+ self.PluginListButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
+ self.PluginListButtonBox.setObjectName(u'PluginListButtonBox')
+ self.PluginLayout.addWidget(self.PluginListButtonBox)
+
+ self.retranslateUi(PluginViewDialog)
+ QtCore.QObject.connect(
+ self.PluginListButtonBox,
+ QtCore.SIGNAL(u'accepted()'),
+ PluginViewDialog.close)
+ QtCore.QMetaObject.connectSlotsByName(PluginViewDialog)
+
+ def retranslateUi(self, PluginViewDialog):
+ PluginViewDialog.setWindowTitle(
+ translate(u'PluginViewDialog', u'Plugin List'))
+ self.PluginInfoGroupBox.setTitle(
+ translate(u'PluginViewDialog', u'Plugin Details'))
+ self.VersionLabel.setText(
+ translate(u'PluginViewDialog', u'Version:'))
+ self.VersionNumberLabel.setText(
+ translate(u'PluginViewDialog', u'TextLabel'))
+ self.AboutLabel.setText(translate(u'PluginViewDialog', u'About:'))
+ self.StatusLabel.setText(translate(u'PluginViewDialog', u'Status:'))
+ self.StatusComboBox.setItemText(
+ 0, translate(u'PluginViewDialog', u'Active'))
+ self.StatusComboBox.setItemText(
+ 1, translate(u'PluginViewDialog', u'Inactive'))
+
=== removed file 'openlp/core/ui/plugindialoglistform.py'
--- openlp/core/ui/plugindialoglistform.py 2009-10-03 18:39:44 +0000
+++ openlp/core/ui/plugindialoglistform.py 1970-01-01 00:00:00 +0000
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Form implementation generated from reading ui file 'plugindialoglistform.ui'
-#
-# Created: Thu Aug 13 05:52:06 2009
-# by: PyQt4 UI code generator 4.5.4
-#
-# WARNING! All changes made in this file will be lost!
-
-import logging
-from PyQt4 import QtCore, QtGui
-from openlp.core.lib import translate, PluginStatus, buildIcon
-
-class PluginCombo(QtGui.QComboBox):
- """
- Customised version of QTableWidget which can respond to keyboard
- events.
- """
- def __init__(self, parent=None, plugin=None):
- QtGui.QComboBox.__init__(self, parent)
- self.parent = parent
- self.plugin = plugin
-
- def enterEvent(self, event):
- self.parent.activePlugin = self.plugin
- event.ignore()
-
-class PluginForm(QtGui.QDialog):
- global log
- log = logging.getLogger(u'PluginForm')
-
- def __init__(self, parent=None):
- QtGui.QDialog.__init__(self, parent)
- self.parent = parent
- self.activePlugin = None
- self.setupUi(self)
- log.debug(u'Defined')
-
- def setupUi(self, PluginForm):
- PluginForm.setObjectName(u'PluginForm')
- PluginForm.resize(400, 568)
- icon = buildIcon(u':/icon/openlp-logo-16x16.png')
- PluginForm.setWindowIcon(icon)
- self.PluginViewList = QtGui.QTableWidget(PluginForm)
- self.PluginViewList.setGeometry(QtCore.QRect(20, 10, 371, 261))
- self.PluginViewList.setObjectName(u'PluginViewList')
- self.PluginViewList.setShowGrid(False)
- self.PluginViewList.setGridStyle(QtCore.Qt.SolidLine)
- self.PluginViewList.setSortingEnabled(False)
- self.PluginViewList.setColumnCount(3)
- item = QtGui.QTableWidgetItem()
- self.PluginViewList.setHorizontalHeaderItem(0, item)
- item = QtGui.QTableWidgetItem()
- self.PluginViewList.setHorizontalHeaderItem(1, item)
- item = QtGui.QTableWidgetItem()
- self.PluginViewList.setHorizontalHeaderItem(2, item)
- self.PluginViewList.horizontalHeader().setVisible(True)
- self.PluginViewList.horizontalHeader().setStretchLastSection(True)
- self.PluginViewList.verticalHeader().setVisible(False)
- self.ButtonBox = QtGui.QDialogButtonBox(PluginForm)
- self.ButtonBox.setGeometry(QtCore.QRect(220, 530, 170, 25))
- self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
- self.ButtonBox.setObjectName(u'ButtonBox')
- self.PluginInfoGroupBox = QtGui.QGroupBox(PluginForm)
- self.PluginInfoGroupBox.setGeometry(QtCore.QRect(20, 270, 371, 241))
- self.PluginInfoGroupBox.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
- self.PluginInfoGroupBox.setFlat(False)
- self.PluginInfoGroupBox.setObjectName("PluginInfoGroupBox")
- self.AboutTextLabel = QtGui.QLabel(self.PluginInfoGroupBox)
- self.AboutTextLabel.setGeometry(QtCore.QRect(10, 30, 351, 191))
- self.AboutTextLabel.setAlignment(QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
- self.AboutTextLabel.setWordWrap(True)
- self.AboutTextLabel.setObjectName("AboutTextLabel")
-
- self.retranslateUi(PluginForm)
- QtCore.QObject.connect(self.ButtonBox,
- QtCore.SIGNAL(u'accepted()'), PluginForm.close)
- QtCore.QMetaObject.connectSlotsByName(PluginForm)
- QtCore.QObject.connect(self.PluginViewList,
- QtCore.SIGNAL(u'itemClicked(QTableWidgetItem*)'), self.displayAbout)
-
- def retranslateUi(self, PluginForm):
- PluginForm.setWindowTitle(translate(u'PluginForm', u'Plugin list'))
- self.PluginInfoGroupBox.setTitle(translate("PluginForm", "Selected Plugin Information"))
- self.PluginViewList.horizontalHeaderItem(0).setText(
- translate(u'PluginForm', u'Name'))
- self.PluginViewList.horizontalHeaderItem(1).setText(
- translate(u'PluginForm', u'Version'))
- self.PluginViewList.horizontalHeaderItem(2).setText(
- translate(u'PluginForm', u'Status'))
-
- def load(self):
- """
- Load the plugin details into the screen
- """
- self.PluginViewList.setRowCount(0)
- for plugin in self.parent.plugin_manager.plugins:
- row = self.PluginViewList.rowCount()
- self.PluginViewList.setRowCount(row + 1)
- item1 = QtGui.QTableWidgetItem(plugin.name)
- item1.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
- item1.setTextAlignment(QtCore.Qt.AlignVCenter)
- item2 = QtGui.QTableWidgetItem(plugin.version)
- item2.setTextAlignment(QtCore.Qt.AlignVCenter)
- item2.setFlags(QtCore.Qt.ItemIsSelectable)
- self.PluginViewList.setItem(row, 0, item1)
- self.PluginViewList.setItem(row, 1, item2)
- if plugin.can_be_disabled():
- combo = PluginCombo(self, plugin)
- self.PluginViewList.setCellWidget(row, 2, combo)
- combo.addItem(translate(u'PluginForm', u'Active'))
- combo.addItem(translate(u'PluginForm', u'Inactive'))
- combo.setCurrentIndex(int(plugin.status))
- QtCore.QObject.connect(combo,
- QtCore.SIGNAL(u'currentIndexChanged(int)'), self.statusComboChanged)
- else:
- item3 = QtGui.QTableWidgetItem(
- translate(u'PluginForm', u'Active'))
- item3.setTextAlignment(QtCore.Qt.AlignVCenter)
- item3.setFlags(QtCore.Qt.ItemIsSelectable)
- self.PluginViewList.setItem(row, 2, item3)
- self.PluginViewList.setRowHeight(row, 25)
-
- def displayAbout(self, item):
- if item is None:
- return False
- row = self.PluginViewList.row(item)
- text = self.parent.plugin_manager.plugins[row].about()
- if text is not None:
- self.AboutTextLabel.setText(translate(u'PluginList', text))
-
- def statusComboChanged(self, status):
- log.debug(u'Combo status changed %s for plugin %s' %(status, self.activePlugin.name))
- self.activePlugin.toggle_status(status)
- if status == PluginStatus.Active:
- self.activePlugin.initialise()
- else:
- self.activePlugin.finalise()
=== added file 'openlp/core/ui/pluginform.py'
--- openlp/core/ui/pluginform.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/pluginform.py 2009-10-08 20:05:23 +0000
@@ -0,0 +1,118 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2009 Raoul Snyman #
+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten #
+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
+# --------------------------------------------------------------------------- #
+# This program is free software; you can redistribute it and/or modify it #
+# under the terms of the GNU General Public License as published by the Free #
+# Software Foundation; version 2 of the License. #
+# #
+# This program is distributed in the hope that it will be useful, but WITHOUT #
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
+# more details. #
+# #
+# You should have received a copy of the GNU General Public License along #
+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
+###############################################################################
+
+import logging
+
+from PyQt4 import QtCore, QtGui
+
+from openlp.core.lib.plugin import PluginStatus
+from plugindialog import Ui_PluginViewDialog
+
+class PluginForm(QtGui.QDialog, Ui_PluginViewDialog):
+ global log
+ log = logging.getLogger(u'PluginForm')
+
+ def __init__(self, parent=None):
+ QtGui.QDialog.__init__(self, parent)
+ self.parent = parent
+ self.activePlugin = None
+ self.setupUi(self)
+ self.load()
+ self._clearDetails()
+ # Right, now let's put some signals and slots together!
+ QtCore.QObject.connect(
+ self.PluginListWidget,
+ QtCore.SIGNAL(u'itemSelectionChanged()'),
+ self.onPluginListWidgetSelectionChanged)
+ QtCore.QObject.connect(
+ self.StatusComboBox,
+ QtCore.SIGNAL(u'currentIndexChanged(int)'),
+ self.onStatusComboBoxChanged)
+
+ def load(self):
+ """
+ Load the plugin details into the screen
+ """
+ self.PluginListWidget.clear()
+ for plugin in self.parent.plugin_manager.plugins:
+ item = QtGui.QListWidgetItem(self.PluginListWidget)
+ # We do this just to make 100% sure the status is an integer as
+ # sometimes when it's loaded from the config, it isn't cast to int.
+ plugin.status = int(plugin.status)
+ # Set the little status text in brackets next to the plugin name.
+ status_text = 'Inactive'
+ if plugin.status == PluginStatus.Active:
+ status_text = 'Active'
+ elif plugin.status == PluginStatus.Inactive:
+ status_text = 'Inactive'
+ elif plugin.status == PluginStatus.Disabled:
+ status_text = 'Disabled'
+ item.setText(u'%s (%s)' % (plugin.name, status_text))
+ # If the plugin has an icon, set it!
+ if plugin.icon is not None:
+ item.setIcon(plugin.icon)
+ self.PluginListWidget.addItem(item)
+
+ def _clearDetails(self):
+ self.StatusComboBox.setCurrentIndex(-1)
+ self.VersionNumberLabel.setText(u'')
+ self.AboutTextBrowser.setHtml(u'')
+
+ def _setDetails(self):
+ log.debug('PluginStatus: %s', str(self.activePlugin.status))
+ self.VersionNumberLabel.setText(self.activePlugin.version)
+ self.AboutTextBrowser.setHtml(self.activePlugin.about())
+ self.StatusComboBox.setCurrentIndex(int(self.activePlugin.status))
+
+ def onPluginListWidgetSelectionChanged(self):
+ if self.PluginListWidget.currentItem() is None:
+ self._clearDetails()
+ return
+ plugin_name = self.PluginListWidget.currentItem().text().split(u' ')[0]
+ self.activePlugin = None
+ for plugin in self.parent.plugin_manager.plugins:
+ if plugin.name == plugin_name:
+ self.activePlugin = plugin
+ break
+ if self.activePlugin is not None:
+ self._setDetails()
+ else:
+ self._clearDetails()
+
+ def onStatusComboBoxChanged(self, status):
+ self.activePlugin.toggle_status(status)
+ if status == PluginStatus.Active:
+ self.activePlugin.initialise()
+ else:
+ self.activePlugin.finalise()
+ status_text = 'Inactive'
+ if self.activePlugin.status == PluginStatus.Active:
+ status_text = 'Active'
+ elif self.activePlugin.status == PluginStatus.Inactive:
+ status_text = 'Inactive'
+ elif self.activePlugin.status == PluginStatus.Disabled:
+ status_text = 'Disabled'
+ self.PluginListWidget.currentItem().setText(
+ u'%s (%s)' % (self.activePlugin.name, status_text))
+
=== modified file 'resources/forms/plugindialoglistform.ui'
--- resources/forms/plugindialoglistform.ui 2009-10-02 12:16:54 +0000
+++ resources/forms/plugindialoglistform.ui 2009-10-08 20:05:23 +0000
@@ -1,139 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PluginViewDialog</class>
- <widget class="QWidget" name="PluginViewDialog">
+ <widget class="QDialog" name="PluginViewDialog">
+ <property name="windowModality">
+ <enum>Qt::ApplicationModal</enum>
+ </property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>400</width>
- <height>568</height>
+ <width>554</width>
+ <height>344</height>
</rect>
</property>
<property name="windowTitle">
<string>Plugin list</string>
</property>
- <widget class="QTableWidget" name="PluginViewList">
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>10</y>
- <width>371</width>
- <height>261</height>
- </rect>
- </property>
- <property name="showGrid">
- <bool>false</bool>
- </property>
- <property name="gridStyle">
- <enum>Qt::SolidLine</enum>
- </property>
- <property name="rowCount">
- <number>1</number>
- </property>
- <attribute name="horizontalHeaderVisible">
- <bool>true</bool>
- </attribute>
- <attribute name="horizontalHeaderCascadingSectionResizes">
- <bool>false</bool>
- </attribute>
- <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
- <bool>true</bool>
- </attribute>
- <attribute name="horizontalHeaderStretchLastSection">
- <bool>true</bool>
- </attribute>
- <attribute name="verticalHeaderVisible">
- <bool>false</bool>
- </attribute>
- <attribute name="horizontalHeaderStretchLastSection">
- <bool>true</bool>
- </attribute>
- <attribute name="horizontalHeaderCascadingSectionResizes">
- <bool>false</bool>
- </attribute>
- <row/>
- <column>
- <property name="text">
- <string>Name</string>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Version</string>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Status</string>
- </property>
- </column>
- <item row="0" column="0">
- <property name="text">
- <string>qqq</string>
- </property>
- </item>
- <item row="0" column="1">
- <property name="text">
- <string>aaa</string>
- </property>
- </item>
- <item row="0" column="2">
- <property name="text">
- <string>ccc</string>
- </property>
- </item>
- </widget>
- <widget class="QDialogButtonBox" name="ButtonBox">
- <property name="geometry">
- <rect>
- <x>220</x>
- <y>530</y>
- <width>170</width>
- <height>25</height>
- </rect>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Ok</set>
- </property>
- </widget>
- <widget class="QGroupBox" name="PluginInfoGroupBox">
- <property name="geometry">
- <rect>
- <x>20</x>
- <y>270</y>
- <width>371</width>
- <height>241</height>
- </rect>
- </property>
- <property name="title">
- <string>GroupBox</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
- </property>
- <property name="flat">
- <bool>false</bool>
- </property>
- <widget class="QLabel" name="AboutTextLabel">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>30</y>
- <width>351</width>
- <height>191</height>
- </rect>
- </property>
- <property name="text">
- <string>TextLabel</string>
- </property>
- </widget>
- </widget>
+ <layout class="QVBoxLayout" name="PluginLayout">
+ <property name="spacing">
+ <number>8</number>
+ </property>
+ <property name="margin">
+ <number>8</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" name="ListLayout">
+ <property name="spacing">
+ <number>8</number>
+ </property>
+ <item>
+ <widget class="QListWidget" name="PluginListWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>192</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="PluginInfoGroupBox">
+ <property name="title">
+ <string>Plugin Details</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ <property name="flat">
+ <bool>false</bool>
+ </property>
+ <layout class="QFormLayout" name="PluginInfoLayout">
+ <property name="horizontalSpacing">
+ <number>8</number>
+ </property>
+ <property name="verticalSpacing">
+ <number>8</number>
+ </property>
+ <property name="margin">
+ <number>8</number>
+ </property>
+ <item row="1" column="0">
+ <widget class="QLabel" name="VersionLabel">
+ <property name="text">
+ <string>Version:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLabel" name="VersionNumberLabel">
+ <property name="text">
+ <string>TextLabel</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="AboutLabel">
+ <property name="text">
+ <string>About:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="StatusLabel">
+ <property name="text">
+ <string>Status:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QComboBox" name="comboBox">
+ <item>
+ <property name="text">
+ <string>Disabled</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Inactive</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Active</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QTextBrowser" name="AboutTextBrowser">
+ <property name="textInteractionFlags">
+ <set>Qt::LinksAccessibleByMouse</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="PluginListButtonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
<resources/>
<connections>
<connection>
- <sender>ButtonBox</sender>
+ <sender>PluginListButtonBox</sender>
<signal>accepted()</signal>
<receiver>PluginViewDialog</receiver>
<slot>close()</slot>
Follow ups