diff options
author | Aaron Seigo <aseigo@kde.org> | 2015-12-24 10:22:07 +0100 |
---|---|---|
committer | Aaron Seigo <aseigo@kde.org> | 2015-12-24 10:22:07 +0100 |
commit | 35f0ddf67c629ce9efaa1ba893afcb2921a251a2 (patch) | |
tree | 5875633a3a9e944ca2a98c6cfc169335ac0991ab /akonadish/syntaxtree.cpp | |
parent | 17ea319fa8cbdf36396a4a5a68853857ca6ac51f (diff) | |
download | sink-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.cpp | 15 |
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 | ||
46 | SyntaxTree::SyntaxTree() | 46 | SyntaxTree::SyntaxTree() |
47 | { | 47 | { |
48 | QVector<std::function<Syntax::List()> > syntaxSyntaxTrees; | 48 | } |
49 | syntaxSyntaxTrees << &CoreSyntax::syntax | 49 | |
50 | << &AkonadiList::syntax | 50 | int 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 | ||
59 | SyntaxTree *SyntaxTree::self() | 56 | SyntaxTree *SyntaxTree::self() |