diff options
author | hjk <hjk@qt.io> | 2020-01-16 17:03:53 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-01-20 09:47:05 +0000 |
commit | a45a7822c050caa096b74f464e752a20bff550c1 (patch) | |
tree | 8e42ef83a0600cee59f7972867f51ca930de2395 /src/plugins/updateinfo | |
parent | 1c99cc296f66f8cb9d4c9335eaf5600d50c8e28e (diff) |
UpdateInfo: Adapt SettingsPage to new patterns
Change-Id: I19c40c7447720a19d9db359192353677ce5e2237
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/updateinfo')
-rw-r--r-- | src/plugins/updateinfo/settingspage.cpp | 99 | ||||
-rw-r--r-- | src/plugins/updateinfo/settingspage.h | 23 | ||||
-rw-r--r-- | src/plugins/updateinfo/updateinfoplugin.cpp | 1 |
3 files changed, 49 insertions, 74 deletions
diff --git a/src/plugins/updateinfo/settingspage.cpp b/src/plugins/updateinfo/settingspage.cpp index 82a9cf48de..ad12cd5528 100644 --- a/src/plugins/updateinfo/settingspage.cpp +++ b/src/plugins/updateinfo/settingspage.cpp @@ -25,35 +25,29 @@ #include "settingspage.h" +#include "ui_settingspage.h" +#include "updateinfoplugin.h" + #include <coreplugin/coreconstants.h> #include <utils/qtcassert.h> #include <utils/progressindicator.h> #include <QDate> -using namespace UpdateInfo; -using namespace UpdateInfo::Internal; - -namespace { - -static const char FILTER_OPTIONS_PAGE_ID[] = "Update"; -static const char FILTER_OPTIONS_PAGE[] = QT_TRANSLATE_NOOP("Update", "Update"); +namespace UpdateInfo { +namespace Internal { -} +const char FILTER_OPTIONS_PAGE_ID[] = "Update"; -SettingsPage::SettingsPage(UpdateInfoPlugin *plugin) - : m_plugin(plugin) +class UpdateInfoSettingsPageWidget final : public Core::IOptionsPageWidget { - setId(FILTER_OPTIONS_PAGE_ID); - setCategory(Core::Constants::SETTINGS_CATEGORY_CORE); - setDisplayName(QCoreApplication::translate("Update", FILTER_OPTIONS_PAGE)); -} + Q_DECLARE_TR_FUNCTIONS(UpdateInfo::Internal::UpdateInfoSettingsPage) -QWidget *SettingsPage::widget() -{ - if (!m_widget) { - m_widget = new QWidget; - m_ui.setupUi(m_widget); +public: + UpdateInfoSettingsPageWidget(UpdateInfoPlugin *plugin) + : m_plugin(plugin) + { + m_ui.setupUi(this); m_ui.m_checkIntervalComboBox->addItem(tr("Daily"), UpdateInfoPlugin::DailyCheck); m_ui.m_checkIntervalComboBox->addItem(tr("Weekly"), UpdateInfoPlugin::WeeklyCheck); m_ui.m_checkIntervalComboBox->addItem(tr("Monthly"), UpdateInfoPlugin::MonthlyCheck); @@ -74,47 +68,51 @@ QWidget *SettingsPage::widget() m_plugin, &UpdateInfoPlugin::startCheckForUpdates); connect(m_ui.m_checkIntervalComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), - this, &SettingsPage::updateNextCheckDate); + this, &UpdateInfoSettingsPageWidget::updateNextCheckDate); connect(m_plugin, &UpdateInfoPlugin::lastCheckDateChanged, - this, &SettingsPage::updateLastCheckDate); + this, &UpdateInfoSettingsPageWidget::updateLastCheckDate); connect(m_plugin, &UpdateInfoPlugin::checkForUpdatesRunningChanged, - this, &SettingsPage::checkRunningChanged); + this, &UpdateInfoSettingsPageWidget::checkRunningChanged); connect(m_plugin, &UpdateInfoPlugin::newUpdatesAvailable, - this, &SettingsPage::newUpdatesAvailable); + this, &UpdateInfoSettingsPageWidget::newUpdatesAvailable); } - return m_widget; -} -UpdateInfoPlugin::CheckUpdateInterval SettingsPage::currentCheckInterval() const -{ - QTC_ASSERT(m_widget, return UpdateInfoPlugin::WeeklyCheck); + void apply() final; + +private: + void newUpdatesAvailable(bool available); + void checkRunningChanged(bool running); + void updateLastCheckDate(); + void updateNextCheckDate(); + UpdateInfoPlugin::CheckUpdateInterval currentCheckInterval() const; + QPointer<Utils::ProgressIndicator> m_progressIndicator; + Ui::SettingsWidget m_ui; + UpdateInfoPlugin *m_plugin; +}; + +UpdateInfoPlugin::CheckUpdateInterval UpdateInfoSettingsPageWidget::currentCheckInterval() const +{ return static_cast<UpdateInfoPlugin::CheckUpdateInterval> (m_ui.m_checkIntervalComboBox->itemData(m_ui.m_checkIntervalComboBox->currentIndex()).toInt()); } -void SettingsPage::newUpdatesAvailable(bool available) +void UpdateInfoSettingsPageWidget::newUpdatesAvailable(bool available) { - if (!m_widget) - return; - const QString message = available ? tr("New updates are available.") : tr("No new updates are available."); m_ui.m_messageLabel->setText(message); } -void SettingsPage::checkRunningChanged(bool running) +void UpdateInfoSettingsPageWidget::checkRunningChanged(bool running) { - if (!m_widget) - return; - m_ui.m_checkNowButton->setDisabled(running); if (running) { if (!m_progressIndicator) { m_progressIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicatorSize::Large); - m_progressIndicator->attachToWidget(m_widget); + m_progressIndicator->attachToWidget(this); } m_progressIndicator->show(); } else { @@ -128,11 +126,8 @@ void SettingsPage::checkRunningChanged(bool running) m_ui.m_messageLabel->setText(message); } -void SettingsPage::updateLastCheckDate() +void UpdateInfoSettingsPageWidget::updateLastCheckDate() { - if (!m_widget) - return; - const QDate date = m_plugin->lastCheckDate(); QString lastCheckDateString; if (date.isValid()) @@ -145,11 +140,8 @@ void SettingsPage::updateLastCheckDate() updateNextCheckDate(); } -void SettingsPage::updateNextCheckDate() +void UpdateInfoSettingsPageWidget::updateNextCheckDate() { - if (!m_widget) - return; - QDate date = m_plugin->nextCheckDate(currentCheckInterval()); if (!date.isValid() || date < QDate::currentDate()) date = QDate::currentDate(); @@ -157,16 +149,21 @@ void SettingsPage::updateNextCheckDate() m_ui.m_nextCheckDateLabel->setText(date.toString()); } -void SettingsPage::apply() +void UpdateInfoSettingsPageWidget::apply() { - if (!m_widget) - return; - m_plugin->setCheckUpdateInterval(currentCheckInterval()); m_plugin->setAutomaticCheck(m_ui.m_updatesGroupBox->isChecked()); } -void SettingsPage::finish() +// SettingsPage + +SettingsPage::SettingsPage(UpdateInfoPlugin *plugin) { - delete m_widget; + setId(FILTER_OPTIONS_PAGE_ID); + setCategory(Core::Constants::SETTINGS_CATEGORY_CORE); + setDisplayName(UpdateInfoSettingsPageWidget::tr("Update", "Update")); + setWidgetCreator([plugin] { return new UpdateInfoSettingsPageWidget(plugin); }); } + +} // Internal +} // UpdateInfoPlugin diff --git a/src/plugins/updateinfo/settingspage.h b/src/plugins/updateinfo/settingspage.h index 847a0071fc..d728387e55 100644 --- a/src/plugins/updateinfo/settingspage.h +++ b/src/plugins/updateinfo/settingspage.h @@ -25,15 +25,8 @@ #pragma once -#include "ui_settingspage.h" -#include "updateinfoplugin.h" - #include <coreplugin/dialogs/ioptionspage.h> -#include <QPointer> - -namespace Utils { class ProgressIndicator; } - namespace UpdateInfo { namespace Internal { @@ -45,22 +38,6 @@ class SettingsPage : public Core::IOptionsPage public: explicit SettingsPage(UpdateInfoPlugin *plugin); - - QWidget *widget() override; - void apply() override; - void finish() override; - -private: - void newUpdatesAvailable(bool available); - void checkRunningChanged(bool running); - void updateLastCheckDate(); - void updateNextCheckDate(); - UpdateInfoPlugin::CheckUpdateInterval currentCheckInterval() const; - - QPointer<QWidget> m_widget; - QPointer<Utils::ProgressIndicator> m_progressIndicator; - Ui::SettingsWidget m_ui; - UpdateInfoPlugin *m_plugin; }; } // namespace Internal diff --git a/src/plugins/updateinfo/updateinfoplugin.cpp b/src/plugins/updateinfo/updateinfoplugin.cpp index 3c047e6723..e5c3324177 100644 --- a/src/plugins/updateinfo/updateinfoplugin.cpp +++ b/src/plugins/updateinfo/updateinfoplugin.cpp @@ -40,6 +40,7 @@ #include <QDomDocument> #include <QFile> #include <QFileInfo> +#include <QLabel> #include <QMenu> #include <QMetaEnum> #include <QPointer> |