diff options
| -rw-r--r-- | src/settingsdialog.ui | 130 | ||||
| -rw-r--r-- | src/settingsdialogplugins.cpp | 22 |
2 files changed, 87 insertions, 65 deletions
diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui index 4fd34b21..d05910cb 100644 --- a/src/settingsdialog.ui +++ b/src/settingsdialog.ui @@ -1111,8 +1111,8 @@ </item> </layout> </widget> - <widget class="QWidget" name="widget" native="true"> - <layout class="QVBoxLayout" name="verticalLayout_7" stretch="0,1"> + <widget class="QWidget" name="pluginWidget" native="true"> + <layout class="QVBoxLayout" name="verticalLayout_7" stretch="0,1,0"> <property name="leftMargin"> <number>0</number> </property> @@ -1126,63 +1126,65 @@ <number>0</number> </property> <item> - <layout class="QFormLayout" name="formLayout_2"> - <property name="leftMargin"> - <number>6</number> - </property> - <item row="0" column="0"> - <widget class="QLabel" name="label_13"> - <property name="text"> - <string>Author:</string> - </property> - </widget> - </item> - <item row="0" column="1"> - <widget class="QLabel" name="authorLabel"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QLabel" name="label_15"> - <property name="text"> - <string>Version:</string> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLabel" name="versionLabel"> - <property name="text"> - <string/> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLabel" name="descriptionLabel"> - <property name="text"> - <string/> - </property> - <property name="wordWrap"> - <bool>true</bool> - </property> - </widget> - </item> - <item row="2" column="0"> - <widget class="QLabel" name="label_14"> - <property name="text"> - <string>Description:</string> - </property> - </widget> - </item> - <item row="3" column="0"> - <widget class="QCheckBox" name="enabledCheckbox"> - <property name="text"> - <string>Enabled</string> - </property> - </widget> - </item> - </layout> + <widget class="QWidget" name="pluginDescription" native="true"> + <layout class="QFormLayout" name="pluginDescriptionLayout"> + <property name="leftMargin"> + <number>6</number> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="label_13"> + <property name="text"> + <string>Author:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLabel" name="authorLabel"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_15"> + <property name="text"> + <string>Version:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLabel" name="versionLabel"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_14"> + <property name="text"> + <string>Description:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLabel" name="descriptionLabel"> + <property name="text"> + <string/> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> + <widget class="QCheckBox" name="enabledCheckbox"> + <property name="text"> + <string>Enabled</string> + </property> + </widget> + </item> + </layout> + </widget> </item> <item> <widget class="QTreeWidget" name="pluginSettingsList"> @@ -1216,6 +1218,16 @@ </column> </widget> </item> + <item> + <widget class="QLabel" name="noPluginLabel"> + <property name="text"> + <string>No plugin found.</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> </layout> </widget> </widget> diff --git a/src/settingsdialogplugins.cpp b/src/settingsdialogplugins.cpp index 19515426..a86ba5c9 100644 --- a/src/settingsdialogplugins.cpp +++ b/src/settingsdialogplugins.cpp @@ -25,6 +25,7 @@ PluginsSettingsTab::PluginsSettingsTab(Settings& s, PluginContainer* pluginConta item->setFont(0, font); topItems[interfaceName] = item; item->setExpanded(true); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); } ui->pluginsList->setHeaderHidden(true); @@ -112,6 +113,7 @@ void PluginsSettingsTab::updateListItems() void PluginsSettingsTab::filterPluginList() { + auto selectedItems = ui->pluginsList->selectedItems(); QTreeWidgetItem* firstNotHidden = nullptr; for (auto i = 0; i < ui->pluginsList->topLevelItemCount(); ++i) { @@ -150,13 +152,21 @@ void PluginsSettingsTab::filterPluginList() } // Unselect item if hidden: - auto selectedItems = ui->pluginsList->selectedItems(); - if (!selectedItems.isEmpty() && selectedItems[0]->isHidden()) { - selectedItems[0]->setSelected(false); - - if (firstNotHidden) { - firstNotHidden->setSelected(true); + if (firstNotHidden) { + ui->pluginDescription->setVisible(true); + ui->pluginSettingsList->setVisible(true); + ui->noPluginLabel->setVisible(false); + if (selectedItems.isEmpty()) { + ui->pluginsList->setCurrentItem(firstNotHidden); } + else if (selectedItems[0]->isHidden()) { + ui->pluginsList->setCurrentItem(firstNotHidden); + } + } + else { + ui->pluginDescription->setVisible(false); + ui->pluginSettingsList->setVisible(false); + ui->noPluginLabel->setVisible(true); } } |
