From 9034c1d076fcb4d052b61b6a5c634e71b5b9aba9 Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Wed, 29 Jun 2016 22:25:02 +0200 Subject: [PATCH] Fix crash when server doesn't support "date" (cherry picked from commit 05ed22b4d54ad9719fbfa447cce821434e95fda5) --- src/ksieveui/vacation/vacationpagewidget.cpp | 22 +++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/ksieveui/vacation/vacationpagewidget.cpp b/src/ksieveui/vacation/vacationpagewidget.cpp index fb3edf65..b7453002 100644 --- a/src/ksieveui/vacation/vacationpagewidget.cpp +++ b/src/ksieveui/vacation/vacationpagewidget.cpp @@ -123,7 +123,7 @@ void VacationPageWidget::slotGetResult(const QString &serverName, const QStringL mUrl.setPath(mUrl.path() + scriptName); // Whether the server supports the "date" extension - const bool supportsSieveDate = mUrl.scheme() == QStringLiteral("sieve") && sieveCapabilities.contains(QStringLiteral("date")); + mHasDateSupport = mUrl.scheme() == QStringLiteral("sieve") && sieveCapabilities.contains(QStringLiteral("date")); KSieveUi::VacationUtils::Vacation vacation = KSieveUi::VacationUtils::parseScript(script); @@ -143,8 +143,9 @@ void VacationPageWidget::slotGetResult(const QString &serverName, const QStringL mVacationEditWidget->setDomainName(vacation.excludeDomain); mVacationEditWidget->enableDomainAndSendForSpam(!VacationSettings::allowOutOfOfficeUploadButNoSettings()); - mVacationEditWidget->enableDates(supportsSieveDate); - if (supportsSieveDate) { + mVacationEditWidget->enableDates(mHasDateSupport); + qDebug()<<" supportsSieveDate *****************"<setStartDate(vacation.startDate); mVacationEditWidget->setStartTime(vacation.startTime); mVacationEditWidget->setEndDate(vacation.endDate); @@ -170,10 +171,17 @@ KSieveUi::VacationCreateScriptJob *VacationPageWidget::writeScript() vacation.aliases = mVacationEditWidget->mailAliases(); vacation.sendForSpam = mVacationEditWidget->sendForSpam(); vacation.excludeDomain = mVacationEditWidget->domainName(); - vacation.startDate = mVacationEditWidget->startDate(); - vacation.startTime = mVacationEditWidget->startTime(); - vacation.endDate = mVacationEditWidget->endDate(); - vacation.endTime = mVacationEditWidget->endTime(); + if (mHasDateSupport) { + vacation.startDate = mVacationEditWidget->startDate(); + vacation.startTime = mVacationEditWidget->startTime(); + vacation.endDate = mVacationEditWidget->endDate(); + vacation.endTime = mVacationEditWidget->endTime(); + } else { + vacation.startDate = QDate(); + vacation.startTime = QTime(); + vacation.endDate = QDate(); + vacation.endTime = QTime(); + } const QString script = VacationUtils::composeScript(vacation); createJob->setStatus(active, mWasActive); createJob->setScript(script); -- GitLab