[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [akonadi-next/develop] akonadish: typeCompleter and resourceOrTypeCompleter
From: Aaron Seigo <aseigo () kde ! org>
Date: 2015-12-28 21:05:10
Message-ID: E1aDeyc-0004Yd-Jf () scm ! kde ! org
[Download RAW message or body]
Git commit cc5363fe4b0cd4ea95ac98d9d37f2028fe226145 by Aaron Seigo.
Committed on 28/12/2015 at 21:00.
Pushed by aseigo into branch 'develop'.
typeCompleter and resourceOrTypeCompleter
M +28 -8 akonadish/akonadish_utils.cpp
M +2 -0 akonadish/akonadish_utils.h
M +1 -1 akonadish/syntax_modules/akonadi_count.cpp
M +3 -4 akonadish/syntax_modules/akonadi_list.cpp
M +1 -1 akonadish/syntax_modules/akonadi_modify.cpp
http://commits.kde.org/akonadi-next/cc5363fe4b0cd4ea95ac98d9d37f2028fe226145
diff --git a/akonadish/akonadish_utils.cpp b/akonadish/akonadish_utils.cpp
index 90847f6..070d788 100644
--- a/akonadish/akonadish_utils.cpp
+++ b/akonadish/akonadish_utils.cpp
@@ -25,10 +25,11 @@
namespace AkonadishUtils
{
+static QStringList s_types = QStringList() << "resource" << "folder" << "mail" << "event";
+
bool isValidStoreType(const QString &type)
{
- static const QSet<QString> types = QSet<QString>() << "folder" << "mail" << "event" << \
"resource";
- return types.contains(type);
+ return s_types.contains(type);
}
StoreBase &getStore(const QString &type)
@@ -97,23 +98,42 @@ QStringList resourceIds(State &state)
return resources;
}
-QStringList resourceCompleter(const QStringList &commands, const QString &fragment, State \
&state) +QStringList filtered(const QStringList &list, const QString &fragment)
{
- QStringList resources = resourceIds(state);
if (fragment.isEmpty()) {
- return resources;
+ return list;
}
QStringList filtered;
- for (auto resource: resources) {
- if (resource.startsWith(fragment)) {
- filtered << resource;
+ for (auto item: list) {
+ if (item.startsWith(fragment)) {
+ filtered << item;
}
}
return filtered;
}
+QStringList resourceCompleter(const QStringList &, const QString &fragment, State &state)
+{
+ return filtered(resourceIds(state), fragment);
+}
+
+QStringList resourceOrTypeCompleter(const QStringList &commands, const QString &fragment, \
State &state) +{
+ static QStringList types = QStringList() << "resource" << "folder" << "mail" << "event";
+ if (commands.count() == 1) {
+ return filtered(s_types, fragment);
+ }
+
+ return filtered(resourceIds(state), fragment);
+}
+
+QStringList typeCompleter(const QStringList &commands, const QString &fragment, State &state)
+{
+ return filtered(s_types, fragment);
+}
+
QMap<QString, QString> keyValueMapFromArgs(const QStringList &args)
{
//TODO: this is not the most clever of algorithms. preserved during the port of commands
diff --git a/akonadish/akonadish_utils.h b/akonadish/akonadish_utils.h
index 5671157..5dd24f1 100644
--- a/akonadish/akonadish_utils.h
+++ b/akonadish/akonadish_utils.h
@@ -38,6 +38,8 @@ StoreBase &getStore(const QString &type);
QSharedPointer<QAbstractItemModel> loadModel(const QString &type, Akonadi2::Query query);
QStringList resourceIds();
QStringList resourceCompleter(const QStringList &, const QString &fragment, State &state);
+QStringList resourceOrTypeCompleter(const QStringList &commands, const QString &fragment, \
State &state); +QStringList typeCompleter(const QStringList &commands, const QString &fragment, \
State &state); QMap<QString, QString> keyValueMapFromArgs(const QStringList &args);
/**
diff --git a/akonadish/syntax_modules/akonadi_count.cpp \
b/akonadish/syntax_modules/akonadi_count.cpp index fa3f1fb..5acdcdd 100644
--- a/akonadish/syntax_modules/akonadi_count.cpp
+++ b/akonadish/syntax_modules/akonadi_count.cpp
@@ -75,7 +75,7 @@ bool count(const QStringList &args, State &state)
Syntax::List syntax()
{
Syntax count("count", QObject::tr("Returns the number of items of a given type in a \
resource. Usage: count <type> <resource>"), &AkonadiCount::count, \
Syntax::EventDriven);
- count.completer = &AkonadishUtils::resourceCompleter;
+ count.completer = &AkonadishUtils::typeCompleter;
return Syntax::List() << count;
}
diff --git a/akonadish/syntax_modules/akonadi_list.cpp \
b/akonadish/syntax_modules/akonadi_list.cpp index 18f15e7..82f13b5 100644
--- a/akonadish/syntax_modules/akonadi_list.cpp
+++ b/akonadish/syntax_modules/akonadi_list.cpp
@@ -106,10 +106,9 @@ bool list(const QStringList &args, State &state)
Syntax::List syntax()
{
- Syntax::List syntax;
- syntax << Syntax("list", QObject::tr("List all resources, or the contents of one or more \
resources"), &AkonadiList::list, Syntax::EventDriven);
-
- return syntax;
+ Syntax list("list", QObject::tr("List all resources, or the contents of one or more \
resources"), &AkonadiList::list, Syntax::EventDriven); + list.completer = \
&AkonadishUtils::resourceOrTypeCompleter; + return Syntax::List() << list;
}
REGISTER_SYNTAX(AkonadiList)
diff --git a/akonadish/syntax_modules/akonadi_modify.cpp \
b/akonadish/syntax_modules/akonadi_modify.cpp index 8ab873a..76a7f5e 100644
--- a/akonadish/syntax_modules/akonadi_modify.cpp
+++ b/akonadish/syntax_modules/akonadi_modify.cpp
@@ -109,7 +109,7 @@ Syntax::List syntax()
{
Syntax modify("modify", QObject::tr("Modify items in a resource"), \
&AkonadiModify::modify);
Syntax resource("resource", QObject::tr("Modify a resource"), \
&AkonadiModify::resource);//, Syntax::EventDriven);
- resource.completer = &AkonadishUtils::resourceCompleter;
+ resource.completer = &AkonadishUtils::resourceOrTypeCompleter;
modify.children << resource;
return Syntax::List() << modify;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic