diff --git a/plugins/lunchmealplugin/lunchmealplugin.pro b/plugins/lunchmealplugin/lunchmealplugin.pro index daf797d..1579638 100644 --- a/plugins/lunchmealplugin/lunchmealplugin.pro +++ b/plugins/lunchmealplugin/lunchmealplugin.pro @@ -18,11 +18,13 @@ DEFINES += QT_DEPRECATED_WARNINGS QT_DISABLE_DEPRECATED_BEFORE=0x060000 QT_MESSA HEADERS += lunchmealdialog.h \ lunchmealplugin.h \ - lunchmealwidget.h + lunchmealwidget.h \ + lunchmealsettings.h SOURCES += lunchmealdialog.cpp \ lunchmealplugin.cpp \ - lunchmealwidget.cpp + lunchmealwidget.cpp \ + lunchmealsettings.cpp FORMS += lunchmealdialog.ui diff --git a/plugins/lunchmealplugin/lunchmealsettings.cpp b/plugins/lunchmealplugin/lunchmealsettings.cpp new file mode 100644 index 0000000..f210fb6 --- /dev/null +++ b/plugins/lunchmealplugin/lunchmealsettings.cpp @@ -0,0 +1,31 @@ +#include "lunchmealsettings.h" + +#include "zeiterfassungsettings.h" + +LunchMealSettings::LunchMealSettings(ZeiterfassungSettings &settings) : + m_settings(settings) +{ + +} + +QUrl LunchMealSettings::url() const +{ + return m_settings.value(QStringLiteral("LunchMealPlugin/url"), + QUrl(QStringLiteral("https://brunner.ninja/lunch/%0.txt"))) + .toUrl(); +} + +void LunchMealSettings::setUrl(const QUrl &url) +{ + m_settings.setValue(QStringLiteral("LunchMealPlugin/url"), url); +} + +QString LunchMealSettings::dateFormat() const +{ + return m_settings.value(QStringLiteral("LunchMealPlugin/dateFormat"), QStringLiteral("yyyy-MM-dd")).toString(); +} + +void LunchMealSettings::setDateFormat(const QString &dateFormat) +{ + m_settings.setValue(QStringLiteral("LunchMealPlugin/dateFormat"), dateFormat); +} diff --git a/plugins/lunchmealplugin/lunchmealsettings.h b/plugins/lunchmealplugin/lunchmealsettings.h new file mode 100644 index 0000000..63d4c83 --- /dev/null +++ b/plugins/lunchmealplugin/lunchmealsettings.h @@ -0,0 +1,23 @@ +#ifndef LUNCHMEALSETTINGS_H +#define LUNCHMEALSETTINGS_H + +#include + +class ZeiterfassungSettings; + +class LunchMealSettings +{ +public: + LunchMealSettings(ZeiterfassungSettings &settings); + + QUrl url() const; + void setUrl(const QUrl &url); + + QString dateFormat() const; + void setDateFormat(const QString &dateFormat); + +private: + ZeiterfassungSettings &m_settings; +}; + +#endif // LUNCHMEALSETTINGS_H diff --git a/plugins/lunchmealplugin/lunchmealwidget.cpp b/plugins/lunchmealplugin/lunchmealwidget.cpp index 47d6649..6083b3c 100644 --- a/plugins/lunchmealplugin/lunchmealwidget.cpp +++ b/plugins/lunchmealplugin/lunchmealwidget.cpp @@ -9,10 +9,10 @@ #include "stripswidget.h" #include "mainwindow.h" -#include "zeiterfassungsettings.h" #include "zeiterfassungapi.h" #include "lunchmealdialog.h" +#include "lunchmealsettings.h" LunchMealWidget::LunchMealWidget(StripsWidget &stripsWidget) : QToolButton(&stripsWidget), @@ -38,11 +38,9 @@ void LunchMealWidget::dateChanged(const QDate &date) setEnabled(false); setVisible(false); - const auto &settings = m_stripsWidget.mainWindow().settings(); + LunchMealSettings settings(m_stripsWidget.mainWindow().settings()); - auto url = settings.value(QStringLiteral("LunchMealPlugin/url"), - QStringLiteral("https://brunner.ninja/lunch/%0.txt")).toString() - .arg(date.toString(settings.value(QStringLiteral("LunchMealPlugin/dateFormat"), QStringLiteral("yyyy-MM-dd")).toString())); + auto url = settings.url().toString().arg(date.toString(settings.dateFormat())); m_reply = std::unique_ptr(m_stripsWidget.mainWindow().erfassung().manager()->get(QNetworkRequest(QUrl(url)))); connect(m_reply.get(), &QNetworkReply::finished, this, &LunchMealWidget::finished); }