diff --git a/plugins/lunchmealplugin/lunchmealsettings.cpp b/plugins/lunchmealplugin/lunchmealsettings.cpp index f210fb6..9e09a0b 100644 --- a/plugins/lunchmealplugin/lunchmealsettings.cpp +++ b/plugins/lunchmealplugin/lunchmealsettings.cpp @@ -8,14 +8,14 @@ LunchMealSettings::LunchMealSettings(ZeiterfassungSettings &settings) : } -QUrl LunchMealSettings::url() const +QString LunchMealSettings::url() const { return m_settings.value(QStringLiteral("LunchMealPlugin/url"), - QUrl(QStringLiteral("https://brunner.ninja/lunch/%0.txt"))) - .toUrl(); + QStringLiteral("https://brunner.ninja/lunch/%0.txt")) + .toString(); } -void LunchMealSettings::setUrl(const QUrl &url) +void LunchMealSettings::setUrl(const QString &url) { m_settings.setValue(QStringLiteral("LunchMealPlugin/url"), url); } diff --git a/plugins/lunchmealplugin/lunchmealsettings.h b/plugins/lunchmealplugin/lunchmealsettings.h index 63d4c83..6d07af7 100644 --- a/plugins/lunchmealplugin/lunchmealsettings.h +++ b/plugins/lunchmealplugin/lunchmealsettings.h @@ -10,8 +10,9 @@ class LunchMealSettings public: LunchMealSettings(ZeiterfassungSettings &settings); - QUrl url() const; - void setUrl(const QUrl &url); + // no QString becuase placeholder %0 encodes wrong in urls! + QString url() const; + void setUrl(const QString &url); QString dateFormat() const; void setDateFormat(const QString &dateFormat); diff --git a/plugins/lunchmealplugin/lunchmealsettingswidget.cpp b/plugins/lunchmealplugin/lunchmealsettingswidget.cpp index 0fff7b3..2b43df6 100644 --- a/plugins/lunchmealplugin/lunchmealsettingswidget.cpp +++ b/plugins/lunchmealplugin/lunchmealsettingswidget.cpp @@ -10,7 +10,7 @@ LunchMealSettingsWidget::LunchMealSettingsWidget(ZeiterfassungSettings &settings auto layout = new QFormLayout(this); layout->setMargin(0); - m_lineEditUrl = new QLineEdit(m_settings.url().toString(), this); + m_lineEditUrl = new QLineEdit(m_settings.url(), this); layout->addRow(tr("Lunch meal API:"), m_lineEditUrl); m_lineEditDateFormat = new QLineEdit(m_settings.dateFormat(), this); @@ -31,9 +31,9 @@ bool LunchMealSettingsWidget::isValid(QString &message) const void LunchMealSettingsWidget::apply() { - auto url = QUrl::fromUserInput(m_lineEditUrl->text()); - if(m_settings.url() != url) - m_settings.setUrl(url); + if(m_settings.url() != m_lineEditUrl->text()) + m_settings.setUrl(m_lineEditUrl->text()); - m_settings.setDateFormat(m_lineEditDateFormat->text()); + if(m_settings.dateFormat() != m_lineEditDateFormat->text()) + m_settings.setDateFormat(m_lineEditDateFormat->text()); } diff --git a/plugins/lunchmealplugin/lunchmealwidget.cpp b/plugins/lunchmealplugin/lunchmealwidget.cpp index 6083b3c..b5dd611 100644 --- a/plugins/lunchmealplugin/lunchmealwidget.cpp +++ b/plugins/lunchmealplugin/lunchmealwidget.cpp @@ -40,8 +40,8 @@ void LunchMealWidget::dateChanged(const QDate &date) LunchMealSettings settings(m_stripsWidget.mainWindow().settings()); - auto url = settings.url().toString().arg(date.toString(settings.dateFormat())); - m_reply = std::unique_ptr(m_stripsWidget.mainWindow().erfassung().manager()->get(QNetworkRequest(QUrl(url)))); + auto url = QUrl(settings.url().arg(date.toString(settings.dateFormat()))); + m_reply = std::unique_ptr(m_stripsWidget.mainWindow().erfassung().manager()->get(QNetworkRequest(url))); connect(m_reply.get(), &QNetworkReply::finished, this, &LunchMealWidget::finished); }