From 937425a4a52ffa4f56c1622dcd2b6628d3cb90a5 Mon Sep 17 00:00:00 2001 From: Daniel Brunner <0xFEEDC0DE64@gmail.com> Date: Sat, 24 Mar 2018 14:58:59 +0100 Subject: [PATCH] Added UpdaterSettingsWidget #81 --- plugins/updaterplugin/updaterplugin.cpp | 6 ++++ plugins/updaterplugin/updaterplugin.h | 2 ++ plugins/updaterplugin/updaterplugin.pro | 6 ++-- .../updaterplugin/updatersettingswidget.cpp | 32 +++++++++++++++++++ plugins/updaterplugin/updatersettingswidget.h | 28 ++++++++++++++++ 5 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 plugins/updaterplugin/updatersettingswidget.cpp create mode 100644 plugins/updaterplugin/updatersettingswidget.h diff --git a/plugins/updaterplugin/updaterplugin.cpp b/plugins/updaterplugin/updaterplugin.cpp index be6a508..5654138 100644 --- a/plugins/updaterplugin/updaterplugin.cpp +++ b/plugins/updaterplugin/updaterplugin.cpp @@ -11,6 +11,7 @@ #include "updatersettings.h" #include "updaterdialog.h" +#include "updatersettingswidget.h" UpdaterPlugin::UpdaterPlugin(QObject *parent) : ZeiterfassungPlugin(parent) @@ -38,3 +39,8 @@ void UpdaterPlugin::attachTo(MainWindow &mainWindow) if(lastUpdateCheck.isNull() || lastUpdateCheck < QDate::currentDate()) new UpdaterDialog(mainWindow); } + +SettingsWidget *UpdaterPlugin::settingsWidget(ZeiterfassungSettings &settings, QWidget *parent) const +{ + return new UpdaterSettingsWidget(settings, parent); +} diff --git a/plugins/updaterplugin/updaterplugin.h b/plugins/updaterplugin/updaterplugin.h index 7cefe30..e98d448 100644 --- a/plugins/updaterplugin/updaterplugin.h +++ b/plugins/updaterplugin/updaterplugin.h @@ -19,6 +19,8 @@ public: // ZeiterfassungPlugin interface void attachTo(MainWindow &mainWindow) Q_DECL_OVERRIDE; + virtual SettingsWidget *settingsWidget(ZeiterfassungSettings &settings, QWidget *parent = Q_NULLPTR) const Q_DECL_OVERRIDE; + private: QTranslator m_translator; }; diff --git a/plugins/updaterplugin/updaterplugin.pro b/plugins/updaterplugin/updaterplugin.pro index b27cd2f..4ce7cec 100644 --- a/plugins/updaterplugin/updaterplugin.pro +++ b/plugins/updaterplugin/updaterplugin.pro @@ -18,11 +18,13 @@ DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSA HEADERS += updaterdialog.h \ updaterplugin.h \ - updatersettings.h + updatersettings.h \ + updatersettingswidget.h SOURCES += updaterdialog.cpp \ updaterplugin.cpp \ - updatersettings.cpp + updatersettings.cpp \ + updatersettingswidget.cpp FORMS += updaterdialog.ui diff --git a/plugins/updaterplugin/updatersettingswidget.cpp b/plugins/updaterplugin/updatersettingswidget.cpp new file mode 100644 index 0000000..1b0c63b --- /dev/null +++ b/plugins/updaterplugin/updatersettingswidget.cpp @@ -0,0 +1,32 @@ +#include "updatersettingswidget.h" + +#include +#include + +UpdaterSettingsWidget::UpdaterSettingsWidget(ZeiterfassungSettings &settings, QWidget *parent) : + SettingsWidget(parent), + m_settings(settings) +{ + auto layout = new QFormLayout(this); + layout->setMargin(0); + + m_lineEdit = new QLineEdit(m_settings.url().toString(), this); + layout->addRow(tr("Updater url:"), m_lineEdit); + + setLayout(layout); +} + +bool UpdaterSettingsWidget::isValid(QString &message) const +{ + auto valid = QUrl::fromUserInput(m_lineEdit->text()).isValid(); + + if(!valid) + message = tr("The updater url is invalid!"); + + return valid; +} + +void UpdaterSettingsWidget::apply() +{ + m_settings.setUrl(QUrl(m_lineEdit->text())); +} diff --git a/plugins/updaterplugin/updatersettingswidget.h b/plugins/updaterplugin/updatersettingswidget.h new file mode 100644 index 0000000..b5c0cda --- /dev/null +++ b/plugins/updaterplugin/updatersettingswidget.h @@ -0,0 +1,28 @@ +#ifndef UPDATERSETTINGSWIDGET_H +#define UPDATERSETTINGSWIDGET_H + +#include "settingswidget.h" + +#include "updatersettings.h" + +class QLineEdit; + +class UpdaterSettingsWidget : public SettingsWidget +{ + Q_OBJECT + +public: + explicit UpdaterSettingsWidget(ZeiterfassungSettings &settings, QWidget *parent = Q_NULLPTR); + + virtual bool isValid(QString &message) const Q_DECL_OVERRIDE; + +public Q_SLOTS: + virtual void apply() Q_DECL_OVERRIDE; + +private: + UpdaterSettings m_settings; + + QLineEdit *m_lineEdit; +}; + +#endif // UPDATERSETTINGSWIDGET_H