diff options
Diffstat (limited to 'accounts/maildir/maildirsettings.cpp')
-rw-r--r-- | accounts/maildir/maildirsettings.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/accounts/maildir/maildirsettings.cpp b/accounts/maildir/maildirsettings.cpp index 58ff77fd..18abaebb 100644 --- a/accounts/maildir/maildirsettings.cpp +++ b/accounts/maildir/maildirsettings.cpp | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <sink/store.h> | 23 | #include <sink/store.h> |
24 | #include <QDebug> | 24 | #include <QDebug> |
25 | #include <QUuid> | 25 | #include <QUuid> |
26 | #include <QDir> | ||
26 | 27 | ||
27 | MaildirSettings::MaildirSettings(QObject *parent) | 28 | MaildirSettings::MaildirSettings(QObject *parent) |
28 | : QObject(parent) | 29 | : QObject(parent) |
@@ -77,8 +78,28 @@ QString MaildirSettings::path() const | |||
77 | return mPath; | 78 | return mPath; |
78 | } | 79 | } |
79 | 80 | ||
81 | QValidator *MaildirSettings::pathValidator() const | ||
82 | { | ||
83 | class PathValidator : public QValidator { | ||
84 | State validate(QString &input, int &pos) const { | ||
85 | Q_UNUSED(pos); | ||
86 | if (QDir(input).exists()) { | ||
87 | return Acceptable; | ||
88 | } else { | ||
89 | return Intermediate; | ||
90 | } | ||
91 | } | ||
92 | }; | ||
93 | static PathValidator *pathValidator = new PathValidator; | ||
94 | return pathValidator; | ||
95 | } | ||
96 | |||
80 | void MaildirSettings::save() | 97 | void MaildirSettings::save() |
81 | { | 98 | { |
99 | if (!QDir(mPath).exists()) { | ||
100 | qWarning() << "The path doesn't exist: " << mPath; | ||
101 | return; | ||
102 | } | ||
82 | if (!mIdentifier.isEmpty()) { | 103 | if (!mIdentifier.isEmpty()) { |
83 | Sink::ApplicationDomain::SinkResource resource(mIdentifier); | 104 | Sink::ApplicationDomain::SinkResource resource(mIdentifier); |
84 | resource.setProperty("path", mPath); | 105 | resource.setProperty("path", mPath); |