From e0b73a7d7d27d42b87b3061c51d5d22f57646c45 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Tue, 17 Nov 2020 10:45:29 +0100 Subject: Fix selection in Plugins settings. --- src/settingsdialogplugins.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src/settingsdialogplugins.cpp') 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); } } -- cgit v1.3.1