diff options
author | Katja Marttila <katja.marttila@qt.io> | 2016-04-08 10:44:48 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2023-03-23 16:43:27 +0200 |
commit | f25efeed5aeadbe2f477a4330d29da52617db083 (patch) | |
tree | 4a6b02df02f5557b8795342291b86068afc566d5 /src/libs | |
parent | e07cbae2cc1ae113fea71d0e6da6bcee148a0055 (diff) |
Fix showSettingsButton functionality4.5
showSettingsButton() called from control script had no effect.
Fixed it so that if showSettingsButton will overwrite the IFW
decision to show the settings button.
Change-Id: Ia08c03cc13db58168fd371f230517bcc83ee0e12
Task-number: QTIFW-810
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/installer/packagemanagergui.cpp | 47 | ||||
-rw-r--r-- | src/libs/installer/packagemanagergui.h | 1 |
2 files changed, 33 insertions, 15 deletions
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp index 9cdea0356..a83c3a094 100644 --- a/src/libs/installer/packagemanagergui.cpp +++ b/src/libs/installer/packagemanagergui.cpp @@ -210,8 +210,9 @@ Q_DECLARE_METATYPE(DynamicInstallerPage*) class PackageManagerGui::Private { public: - Private() - : m_currentId(-1) + Private(PackageManagerGui *qq) + : q(qq) + , m_currentId(-1) , m_modified(false) , m_autoSwitchPage(true) , m_showSettingsButton(false) @@ -235,6 +236,20 @@ public: QLatin1String("unknown button")); } + void showSettingsButton(bool show) + { + if (m_showSettingsButton == show) + return; + q->setOption(QWizard::HaveCustomButton1, show); + q->setButtonText(QWizard::CustomButton1, tr("&Settings")); + q->button(QWizard::CustomButton1)->setToolTip( + PackageManagerGui::tr("Specify proxy settings and configure repositories for add-on components.")); + + q->updateButtonLayout(); + m_showSettingsButton = show; + } + + PackageManagerGui *q; int m_currentId; bool m_modified; bool m_autoSwitchPage; @@ -294,7 +309,7 @@ public: */ PackageManagerGui::PackageManagerGui(PackageManagerCore *core, QWidget *parent) : QWizard(parent) - , d(new Private) + , d(new Private(this)) , m_core(core) { if (m_core->isInstaller()) @@ -1029,16 +1044,18 @@ void PackageManagerGui::showFinishedPage() */ void PackageManagerGui::showSettingsButton(bool show) { - if (d->m_showSettingsButton == show) - return; - - d->m_showSettingsButton = show; - setOption(QWizard::HaveCustomButton1, show); - setButtonText(QWizard::CustomButton1, tr("&Settings")); - button(QWizard::CustomButton1)->setToolTip( - PackageManagerGui::tr("Specify proxy settings and configure repositories for add-on components.")); + m_core->setValue(QLatin1String("ShowSettingsButton"), QString::number(show)); + d->showSettingsButton(show); +} - updateButtonLayout(); +/*! + Shows the \uicontrol Settings button if \a request is \c true. If script has + set the settings button visibility, this function has no effect. +*/ +void PackageManagerGui::requestSettingsButtonByInstaller(bool request) +{ + if (m_core->value(QLatin1String("ShowSettingsButton")).isEmpty()) + d->showSettingsButton(request); } /*! @@ -1824,7 +1841,7 @@ void IntroductionPage::setUpdater(bool value) { if (value) { entering(); - gui()->showSettingsButton(true); + gui()->requestSettingsButtonByInstaller(true); packageManagerCore()->setUpdater(); emit packageManagerCoreTypeChanged(); @@ -1836,7 +1853,7 @@ void IntroductionPage::setUninstaller(bool value) { if (value) { entering(); - gui()->showSettingsButton(true); + gui()->requestSettingsButtonByInstaller(true); packageManagerCore()->setUninstaller(); emit packageManagerCoreTypeChanged(); @@ -1848,7 +1865,7 @@ void IntroductionPage::setPackageManager(bool value) { if (value) { entering(); - gui()->showSettingsButton(true); + gui()->requestSettingsButtonByInstaller(true); packageManagerCore()->setPackageManager(); emit packageManagerCoreTypeChanged(); diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h index 0b804e934..764c31375 100644 --- a/src/libs/installer/packagemanagergui.h +++ b/src/libs/installer/packagemanagergui.h @@ -84,6 +84,7 @@ public: bool isButtonEnabled(int wizardButton); void showSettingsButton(bool show); + void requestSettingsButtonByInstaller(bool request); void setSettingsButtonEnabled(bool enable); void updateButtonLayout(); |