diff --git a/src/Gui/DlgPreferencePackManagementImp.cpp b/src/Gui/DlgPreferencePackManagementImp.cpp index b1e96bb829..437f6105ba 100644 --- a/src/Gui/DlgPreferencePackManagementImp.cpp +++ b/src/Gui/DlgPreferencePackManagementImp.cpp @@ -46,9 +46,11 @@ DlgPreferencePackManagementImp::DlgPreferencePackManagementImp(QWidget* parent) { ui->setupUi(this); connect(ui->pushButtonOpenAddonManager, &QPushButton::clicked, this, &DlgPreferencePackManagementImp::showAddonManager); + connect(this, &DlgPreferencePackManagementImp::packVisibilityChanged, this, &DlgPreferencePackManagementImp::updateTree); + updateTree(); } -void DlgPreferencePackManagementImp::showEvent(QShowEvent* event) +void DlgPreferencePackManagementImp::updateTree() { // Separate out user-saved packs from installed packs: we can remove individual user-saved packs, // but can only disable individual installed packs (though we can completely uninstall the pack's @@ -97,8 +99,6 @@ void DlgPreferencePackManagementImp::showEvent(QShowEvent* event) for (const auto& installedPack : installedPacks) { addTreeNode(installedPack.first, installedPack.second, TreeWidgetType::ADDON); } - - QDialog::showEvent(event); } void DlgPreferencePackManagementImp::addTreeNode(const std::string &name, const std::vector &contents, TreeWidgetType twt) @@ -159,7 +159,6 @@ void DlgPreferencePackManagementImp::deleteUserPack(const std::string& name) QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel); if (result == QMessageBox::Yes) { Application::Instance->prefPackManager()->deleteUserPack(name); - showEvent(nullptr); Q_EMIT packVisibilityChanged(); } } @@ -167,14 +166,12 @@ void DlgPreferencePackManagementImp::deleteUserPack(const std::string& name) void DlgPreferencePackManagementImp::hideBuiltInPack(const std::string& prefPackName) { Application::Instance->prefPackManager()->toggleVisibility("##BUILT_IN##", prefPackName); - showEvent(nullptr); Q_EMIT packVisibilityChanged(); } void DlgPreferencePackManagementImp::hideInstalledPack(const std::string& addonName, const std::string& prefPackName) { Application::Instance->prefPackManager()->toggleVisibility(addonName, prefPackName); - showEvent(nullptr); Q_EMIT packVisibilityChanged(); } diff --git a/src/Gui/DlgPreferencePackManagementImp.h b/src/Gui/DlgPreferencePackManagementImp.h index a2a5843cb5..f4a41bdb03 100644 --- a/src/Gui/DlgPreferencePackManagementImp.h +++ b/src/Gui/DlgPreferencePackManagementImp.h @@ -62,8 +62,6 @@ protected Q_SLOTS: void deleteUserPack(const std::string & prefPackName); void hideBuiltInPack(const std::string& prefPackName); void hideInstalledPack(const std::string& addonName, const std::string& prefPackName); - - void showEvent(QShowEvent* event) override; void showAddonManager(); private: @@ -77,6 +75,7 @@ private: std::unique_ptr ui; void addTreeNode(const std::string& name, const std::vector& contents, TreeWidgetType twt); + void updateTree(); }; } // namespace Dialog