From 5ec954917c9a59ce0ec8ba3a30b99bb9cd30e297 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sun, 13 Mar 2016 23:56:32 +0100 Subject: Added a path validator --- accounts/maildir/maildirsettings.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'accounts/maildir/maildirsettings.cpp') 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 @@ #include #include #include +#include MaildirSettings::MaildirSettings(QObject *parent) : QObject(parent) @@ -77,8 +78,28 @@ QString MaildirSettings::path() const return mPath; } +QValidator *MaildirSettings::pathValidator() const +{ + class PathValidator : public QValidator { + State validate(QString &input, int &pos) const { + Q_UNUSED(pos); + if (QDir(input).exists()) { + return Acceptable; + } else { + return Intermediate; + } + } + }; + static PathValidator *pathValidator = new PathValidator; + return pathValidator; +} + void MaildirSettings::save() { + if (!QDir(mPath).exists()) { + qWarning() << "The path doesn't exist: " << mPath; + return; + } if (!mIdentifier.isEmpty()) { Sink::ApplicationDomain::SinkResource resource(mIdentifier); resource.setProperty("path", mPath); -- cgit v1.2.3