aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/updateinfo
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-01-16 17:03:53 +0100
committerhjk <hjk@qt.io>2020-01-20 09:47:05 +0000
commita45a7822c050caa096b74f464e752a20bff550c1 (patch)
tree8e42ef83a0600cee59f7972867f51ca930de2395 /src/plugins/updateinfo
parent1c99cc296f66f8cb9d4c9335eaf5600d50c8e28e (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.cpp99
-rw-r--r--src/plugins/updateinfo/settingspage.h23
-rw-r--r--src/plugins/updateinfo/updateinfoplugin.cpp1
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>