From 98be2021274587a99bf7a30c114259f3ae8a65d1 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 15 Mar 2016 10:49:49 +0100 Subject: store paths not urls --- accounts/maildir/maildirsettings.cpp | 14 ++++++++------ accounts/maildir/maildirsettings.h | 8 ++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/accounts/maildir/maildirsettings.cpp b/accounts/maildir/maildirsettings.cpp index 18abaebb..c8b892d7 100644 --- a/accounts/maildir/maildirsettings.cpp +++ b/accounts/maildir/maildirsettings.cpp @@ -24,6 +24,7 @@ #include #include #include +#include MaildirSettings::MaildirSettings(QObject *parent) : QObject(parent) @@ -65,17 +66,18 @@ QByteArray MaildirSettings::accountIdentifier() const return mAccountIdentifier; } -void MaildirSettings::setPath(const QString &path) +void MaildirSettings::setPath(const QUrl &path) { - if (mPath != path) { - mPath = path; + auto normalizedPath = path.path(); + if (mPath != normalizedPath) { + mPath = normalizedPath; emit pathChanged(); } } -QString MaildirSettings::path() const +QUrl MaildirSettings::path() const { - return mPath; + return QUrl(mPath); } QValidator *MaildirSettings::pathValidator() const @@ -83,7 +85,7 @@ QValidator *MaildirSettings::pathValidator() const class PathValidator : public QValidator { State validate(QString &input, int &pos) const { Q_UNUSED(pos); - if (QDir(input).exists()) { + if (!input.isEmpty() && QDir(input).exists()) { return Acceptable; } else { return Intermediate; diff --git a/accounts/maildir/maildirsettings.h b/accounts/maildir/maildirsettings.h index 063fb9da..9e5b6a4c 100644 --- a/accounts/maildir/maildirsettings.h +++ b/accounts/maildir/maildirsettings.h @@ -26,8 +26,8 @@ class MaildirSettings : public QObject Q_OBJECT Q_PROPERTY(QByteArray identifier READ identifier WRITE setIdentifier) Q_PROPERTY(QByteArray accountIdentifier READ accountIdentifier WRITE setAccountIdentifier) - Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged) - Q_PROPERTY(QValidator* pathValidator READ pathValidator) + Q_PROPERTY(QUrl path READ path WRITE setPath NOTIFY pathChanged) + Q_PROPERTY(QValidator* pathValidator READ pathValidator CONSTANT) public: MaildirSettings(QObject *parent = 0); @@ -38,8 +38,8 @@ public: void setAccountIdentifier(const QByteArray &); QByteArray accountIdentifier() const; - void setPath(const QString &); - QString path() const; + void setPath(const QUrl &); + QUrl path() const; QValidator *pathValidator() const; Q_INVOKABLE void save(); -- cgit v1.2.3