Fix the crash in the interface for managing preference packs (#18726)

* Fix the crash in the interface for managing preference packs

Closes #18725

* Modernize the code by removal of redundant void
This commit is contained in:
xtemp09
2025-01-20 23:32:47 +07:00
committed by GitHub
parent 49b304ae55
commit 2fcbe6ee19
2 changed files with 4 additions and 8 deletions

View File

@@ -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<std::string> &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();
}

View File

@@ -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_DlgPreferencePackManagement> ui;
void addTreeNode(const std::string& name, const std::vector<std::string>& contents, TreeWidgetType twt);
void updateTree();
};
} // namespace Dialog