summaryrefslogtreecommitdiffstats
path: root/akonadish/syntaxtree.cpp
diff options
context:
space:
mode:
authorAaron Seigo <aseigo@kde.org>2015-12-24 10:22:07 +0100
committerAaron Seigo <aseigo@kde.org>2015-12-24 10:22:07 +0100
commit35f0ddf67c629ce9efaa1ba893afcb2921a251a2 (patch)
tree5875633a3a9e944ca2a98c6cfc169335ac0991ab /akonadish/syntaxtree.cpp
parent17ea319fa8cbdf36396a4a5a68853857ca6ac51f (diff)
downloadsink-35f0ddf67c629ce9efaa1ba893afcb2921a251a2.tar.gz
sink-35f0ddf67c629ce9efaa1ba893afcb2921a251a2.zip
REGISTER_SYNTAX for automagic adding of syntax
a fun abuse of static initialization and std::function
Diffstat (limited to 'akonadish/syntaxtree.cpp')
-rw-r--r--akonadish/syntaxtree.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/akonadish/syntaxtree.cpp b/akonadish/syntaxtree.cpp
index 2d7c127..cd7348e 100644
--- a/akonadish/syntaxtree.cpp
+++ b/akonadish/syntaxtree.cpp
@@ -45,15 +45,12 @@ Syntax::Syntax(const QString &k, const QString &helpText, std::function<bool(con
45 45
46SyntaxTree::SyntaxTree() 46SyntaxTree::SyntaxTree()
47{ 47{
48 QVector<std::function<Syntax::List()> > syntaxSyntaxTrees; 48}
49 syntaxSyntaxTrees << &CoreSyntax::syntax 49
50 << &AkonadiList::syntax 50int SyntaxTree::registerSyntax(std::function<Syntax::List()> f)
51 << &AkonadiCount::syntax 51{
52 << &AkonadiSync::syntax 52 m_syntax += f();
53 ; 53 return m_syntax.size();
54 for (auto syntaxSyntaxTree: syntaxSyntaxTrees) {
55 m_syntax += syntaxSyntaxTree();
56 }
57} 54}
58 55
59SyntaxTree *SyntaxTree::self() 56SyntaxTree *SyntaxTree::self()