Fixed url encoding bug in LunchMealPlugin

This commit is contained in:
Daniel Brunner committed 2018-03-16 12:26:56 +01:00
1 parent e236a413ce
commit a7652b5db2
4 files changed
+14 -13

No files matched your search

@@ -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);
}
+3 -2
View File
@@ -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);
@@ -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());
}
+2 -2
View File
@@ -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<QNetworkReply>(m_stripsWidget.mainWindow().erfassung().manager()->get(QNetworkRequest(QUrl(url))));
auto url = QUrl(settings.url().arg(date.toString(settings.dateFormat())));
m_reply = std::unique_ptr<QNetworkReply>(m_stripsWidget.mainWindow().erfassung().manager()->get(QNetworkRequest(url)));
connect(m_reply.get(), &QNetworkReply::finished, this, &LunchMealWidget::finished);
}