From 35f0ddf67c629ce9efaa1ba893afcb2921a251a2 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Thu, 24 Dec 2015 10:22:07 +0100 Subject: REGISTER_SYNTAX for automagic adding of syntax a fun abuse of static initialization and std::function --- akonadish/syntaxtree.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'akonadish/syntaxtree.cpp') 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 > syntaxSyntaxTrees; - syntaxSyntaxTrees << &CoreSyntax::syntax - << &AkonadiList::syntax - << &AkonadiCount::syntax - << &AkonadiSync::syntax - ; - for (auto syntaxSyntaxTree: syntaxSyntaxTrees) { - m_syntax += syntaxSyntaxTree(); - } +} + +int SyntaxTree::registerSyntax(std::function f) +{ + m_syntax += f(); + return m_syntax.size(); } SyntaxTree *SyntaxTree::self() -- cgit v1.2.3