summaryrefslogtreecommitdiff
path: root/lib/kolabaccount.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2014-01-16 22:17:23 (GMT)
committerChristian Mollekopf <chrigi_1@fastmail.fm>2014-01-16 22:17:23 (GMT)
commitc20c1408c4abace04b469509a2ffe0f1f1bc3845 (patch)
tree3b84848204c6a30e0e91299ef74624924b73d32e /lib/kolabaccount.cpp
parent34d3e8edb4c655360e8c464819d1c438ac23b2f9 (diff)
downloadkolab-utils-c20c1408c4abace04b469509a2ffe0f1f1bc3845.tar.gz
A simple regextrans2 option to translate target names.
Diffstat (limited to 'lib/kolabaccount.cpp')
-rw-r--r--lib/kolabaccount.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/kolabaccount.cpp b/lib/kolabaccount.cpp
index a395f2f..5925fc5 100644
--- a/lib/kolabaccount.cpp
+++ b/lib/kolabaccount.cpp
@@ -415,3 +415,29 @@ QStringList KolabAccount::lookupFolderList()
return mailboxes;
}
+void KolabAccount::setRegextrans(const QStringList &regextrans)
+{
+ foreach (const QString &transformation, regextrans) {
+ if (!transformation.startsWith("s/") || !transformation.endsWith("/")) {
+ Warning() << "invalid transformation: " << transformation;
+ continue;
+ }
+ QString trans = transformation.mid(2, transformation.length() - 3);
+ const int separator = trans.indexOf("/");
+ const QString searchString = trans.left(separator);
+ const QString replaceString = trans.right(separator+1);
+ Debug() << "s/" << searchString << "/" << replaceString;
+ mRegextrans.insert(searchString, replaceString);
+ }
+}
+
+QString KolabAccount::applyTargetFolderTransformations(const QString &folder) const
+{
+ QString newName(folder);
+ foreach (const QString &searchString, mRegextrans.keys()) {
+ if (folder.contains(searchString)) {
+ return mRegextrans.value(searchString);
+ }
+ }
+ return newName;
+}