diff --git a/shared/cplusplus/AST.cpp b/shared/cplusplus/AST.cpp index 11be99ea48a1257371a3a584e5894b9669c55ca1..6889ba6fa8cd4d4ecc4ca8a5ea341f7c0f48e3cd 100644 --- a/shared/cplusplus/AST.cpp +++ b/shared/cplusplus/AST.cpp @@ -117,6 +117,9 @@ CatchClauseAST *AST::asCatchClause() ClassSpecifierAST *AST::asClassSpecifier() { return dynamic_cast<ClassSpecifierAST *>(this); } +CompoundLiteralAST *AST::asCompoundLiteral() +{ return dynamic_cast<CompoundLiteralAST *>(this); } + CompoundStatementAST *AST::asCompoundStatement() { return dynamic_cast<CompoundStatementAST *>(this); } @@ -774,6 +777,42 @@ unsigned BoolLiteralAST::lastToken() const return token + 1; } +CompoundLiteralAST *CompoundLiteralAST::clone(MemoryPool *pool) const +{ + CompoundLiteralAST *ast = new (pool) CompoundLiteralAST; + ast->lparen_token = lparen_token; + if (type_id) + ast->type_id = type_id->clone(pool); + ast->rparen_token = rparen_token; + if (initializer) + ast->initializer = initializer->clone(pool); + return ast; +} + +void CompoundLiteralAST::accept0(ASTVisitor *visitor) +{ + if (visitor->visit(this)) { + accept(type_id, visitor); + accept(initializer, visitor); + } +} + +unsigned CompoundLiteralAST::firstToken() const +{ + return lparen_token; +} + +unsigned CompoundLiteralAST::lastToken() const +{ + if (initializer) + return initializer->lastToken(); + else if (rparen_token) + return rparen_token + 1; + else if (type_id) + return type_id->lastToken(); + return lparen_token + 1; +} + BreakStatementAST *BreakStatementAST::clone(MemoryPool *pool) const { BreakStatementAST *ast = new (pool) BreakStatementAST; diff --git a/shared/cplusplus/AST.h b/shared/cplusplus/AST.h index 6607e76805b8072094d40bc4f43551d34ff57920..46322fdd6bcc259dde5653223d20f7da45a81598 100644 --- a/shared/cplusplus/AST.h +++ b/shared/cplusplus/AST.h @@ -94,6 +94,7 @@ public: CastExpressionAST *asCastExpression(); CatchClauseAST *asCatchClause(); ClassSpecifierAST *asClassSpecifier(); + CompoundLiteralAST *asCompoundLiteral(); CompoundStatementAST *asCompoundStatement(); ConditionAST *asCondition(); ConditionalExpressionAST *asConditionalExpression(); @@ -429,6 +430,24 @@ protected: virtual void accept0(ASTVisitor *visitor); }; +class CPLUSPLUS_EXPORT CompoundLiteralAST: public ExpressionAST +{ +public: + unsigned lparen_token; + ExpressionAST *type_id; + unsigned rparen_token; + ExpressionAST *initializer; + +public: + virtual unsigned firstToken() const; + virtual unsigned lastToken() const; + + virtual CompoundLiteralAST *clone(MemoryPool *pool) const; + +protected: + virtual void accept0(ASTVisitor *visitor); +}; + class CPLUSPLUS_EXPORT QtMethodAST: public ExpressionAST { public: diff --git a/shared/cplusplus/ASTVisitor.h b/shared/cplusplus/ASTVisitor.h index 28097c14f704af8151d5a5a76c63f8d3b6458d93..e7a9aed158415b8ecdf8013dcb68f14d9215bb12 100644 --- a/shared/cplusplus/ASTVisitor.h +++ b/shared/cplusplus/ASTVisitor.h @@ -104,6 +104,7 @@ public: virtual bool visit(CastExpressionAST *) { return true; } virtual bool visit(CatchClauseAST *) { return true; } virtual bool visit(ClassSpecifierAST *) { return true; } + virtual bool visit(CompoundLiteralAST *) { return true; } virtual bool visit(CompoundStatementAST *) { return true; } virtual bool visit(ConditionAST *) { return true; } virtual bool visit(ConditionalExpressionAST *) { return true; } diff --git a/shared/cplusplus/ASTfwd.h b/shared/cplusplus/ASTfwd.h index 79f794f629ed7c90235ba29911c7d3e57f710418..db68992e0224f11eebb881e4caf2321f83a0ecc6 100644 --- a/shared/cplusplus/ASTfwd.h +++ b/shared/cplusplus/ASTfwd.h @@ -77,6 +77,7 @@ class CaseStatementAST; class CastExpressionAST; class CatchClauseAST; class ClassSpecifierAST; +class CompoundLiteralAST; class CompoundStatementAST; class ConditionAST; class ConditionalExpressionAST; diff --git a/shared/cplusplus/CheckExpression.cpp b/shared/cplusplus/CheckExpression.cpp index 9976cbf500e874e448cbf4eae1930d139d62cebb..d5d88c3857204152a565a54df8ba41d3e4d39872 100644 --- a/shared/cplusplus/CheckExpression.cpp +++ b/shared/cplusplus/CheckExpression.cpp @@ -333,6 +333,13 @@ bool CheckExpression::visit(QtMethodAST *ast) return false; } +bool CheckExpression::visit(CompoundLiteralAST *ast) +{ + /*FullySpecifiedType exprTy = */ semantic()->check(ast->type_id, _scope); + /*FullySpecifiedType initTy = */ semantic()->check(ast->initializer, _scope); + return false; +} + bool CheckExpression::visit(CallAST *ast) { for (ExpressionListAST *it = ast->expression_list; it; it = it->next) { diff --git a/shared/cplusplus/CheckExpression.h b/shared/cplusplus/CheckExpression.h index e018e7dc89bca032777ed6d4f942a5aa5608126a..f5c9e7c8e9438989d8294753cd9e857cd006bbd9 100644 --- a/shared/cplusplus/CheckExpression.h +++ b/shared/cplusplus/CheckExpression.h @@ -98,6 +98,7 @@ protected: virtual bool visit(TypeIdAST *ast); virtual bool visit(UnaryExpressionAST *ast); virtual bool visit(QtMethodAST *ast); + virtual bool visit(CompoundLiteralAST *ast); //names virtual bool visit(QualifiedNameAST *ast); diff --git a/shared/cplusplus/Parser.cpp b/shared/cplusplus/Parser.cpp index 407cbc36fd8530b797cee2f181ae1708dcc988d3..d5fe83703dce5e1476a8889e0d77571fc81bf309 100644 --- a/shared/cplusplus/Parser.cpp +++ b/shared/cplusplus/Parser.cpp @@ -1621,8 +1621,7 @@ bool Parser::parseInitializerClause(ExpressionAST *&node) ArrayInitializerAST *ast = new (_pool) ArrayInitializerAST; ast->lbrace_token = consumeToken(); parseInitializerList(ast->expression_list); - if (LA() == T_RBRACE) - ast->rbrace_token = consumeToken(); + match(T_RBRACE, &ast->rbrace_token); node = ast; return true; } @@ -2702,8 +2701,30 @@ bool Parser::parseCorePostfixExpression(ExpressionAST *&node) return true; } } - blockErrors(blocked); rewind(start); + + // look for compound literals + if (LA() == T_LPAREN) { + unsigned lparen_token = consumeToken(); + ExpressionAST *type_id = 0; + if (parseTypeId(type_id) && LA() == T_RPAREN) { + unsigned rparen_token = consumeToken(); + if (LA() == T_LBRACE) { + blockErrors(blocked); + + CompoundLiteralAST *ast = new (_pool) CompoundLiteralAST; + ast->lparen_token = lparen_token; + ast->type_id = type_id; + ast->rparen_token = rparen_token; + parseInitializerClause(ast->initializer); + node = ast; + return true; + } + } + rewind(start); + } + + blockErrors(blocked); return parsePrimaryExpression(node); } } @@ -3552,6 +3573,9 @@ bool Parser::parseObjClassInstanceVariables() bool Parser::parseObjCInterfaceMemberDeclaration() { switch (LA()) { + case T_AT_END: + return false; + case T_AT_REQUIRED: case T_AT_OPTIONAL: consumeToken(); @@ -3570,9 +3594,20 @@ bool Parser::parseObjCInterfaceMemberDeclaration() case T_MINUS: return parseObjCMethodPrototype(); - default: - return false; + case T_ENUM: + case T_CLASS: + case T_STRUCT: + case T_UNION: { + DeclarationAST *declaration = 0; + return parseSimpleDeclaration(declaration, /*accept struct declarators */ true); } + + default: { + DeclarationAST *declaration = 0; + return parseSimpleDeclaration(declaration, /*accept struct declarators */ true); + } // default + + } // switch } // objc-instance-variable-declaration ::= objc-visibility-specifier @@ -3589,7 +3624,7 @@ bool Parser::parseObjCInstanceVariableDeclaration(DeclarationAST *&node) return true; default: - return parseBlockDeclaration(node); + return parseSimpleDeclaration(node, true); } } @@ -3612,7 +3647,7 @@ bool Parser::parseObjCPropertyDeclaration(DeclarationAST *&, SpecifierAST *) } DeclarationAST *simple_declaration = 0; - parseSimpleDeclaration(simple_declaration, /*accept-struct-declarators = */ false); + parseSimpleDeclaration(simple_declaration, /*accept-struct-declarators = */ true); return true; } @@ -3736,6 +3771,19 @@ bool Parser::parseObjCKeywordDeclaration() bool Parser::parseObjCTypeQualifiers() { + if (LA() != T_IDENTIFIER) + return false; + + Identifier *id = tok().identifier; + if (! strcmp("in", id->chars()) || + ! strcmp("out", id->chars()) || + ! strcmp("inout", id->chars()) || + ! strcmp("bycopy", id->chars()) || + ! strcmp("byref", id->chars()) || + ! strcmp("oneway", id->chars())) { + consumeToken(); + return true; + } return false; } diff --git a/shared/cplusplus/PrettyPrinter.cpp b/shared/cplusplus/PrettyPrinter.cpp index 72338576b6b25665a6154cf6bf4090ede03592d9..af80cee197ea98ffb9287a0a04ce25fdf132d9c9 100644 --- a/shared/cplusplus/PrettyPrinter.cpp +++ b/shared/cplusplus/PrettyPrinter.cpp @@ -1281,3 +1281,13 @@ bool PrettyPrinter::visit(QtMethodAST *ast) out << ')'; return false; } + +bool PrettyPrinter::visit(CompoundLiteralAST *ast) +{ + out << '('; + accept(ast->type_id); + out << ')'; + out << ' '; + accept(ast->initializer); + return false; +} diff --git a/shared/cplusplus/PrettyPrinter.h b/shared/cplusplus/PrettyPrinter.h index 966ebacd0e60c65326f5743e094497128642ef12..fc59100a3c146b2afe142a3c1fb72a1d8ee6f209 100644 --- a/shared/cplusplus/PrettyPrinter.h +++ b/shared/cplusplus/PrettyPrinter.h @@ -66,6 +66,7 @@ protected: virtual bool visit(CastExpressionAST *ast); virtual bool visit(CatchClauseAST *ast); virtual bool visit(ClassSpecifierAST *ast); + virtual bool visit(CompoundLiteralAST *ast); virtual bool visit(CompoundStatementAST *ast); virtual bool visit(ConditionAST *ast); virtual bool visit(ConditionalExpressionAST *ast); diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index ff07d5e876e2c86e6da8bd54fa0b7fb936436be7..b5d4c1d9043c471071d9dbedc85b2b20cb8274d4 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -46,7 +46,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/mimedatabase.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <texteditor/texteditorsettings.h> #include <texteditor/fontsettings.h> diff --git a/src/plugins/bookmarks/bookmarksplugin.cpp b/src/plugins/bookmarks/bookmarksplugin.cpp index 63fbb1c2eefe75d4281ad136a45cdede71b7bd53..c926f868f88255d749dfcb20e5ad9671ac399905 100644 --- a/src/plugins/bookmarks/bookmarksplugin.cpp +++ b/src/plugins/bookmarks/bookmarksplugin.cpp @@ -42,7 +42,7 @@ #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <QtCore/qplugin.h> #include <QtCore/QDebug> @@ -68,7 +68,7 @@ void BookmarksPlugin::extensionsInitialized() bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *) { m_core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); QList<int> context = QList<int>() << m_core->uniqueIDManager()-> uniqueIdentifier(Constants::BOOKMARKS_CONTEXT); diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp index bec545cc2627e71c9fa897b226aaaefbf50e4192..3e5ec9c4f7e9ff37ff4fcdb6e3142e66885c1013 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp +++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp @@ -32,6 +32,8 @@ ***************************************************************************/ #include "actioncontainer.h" +#include "actionmanager_p.h" + #include "command.h" #include "coreimpl.h" @@ -181,7 +183,7 @@ void ActionContainer::appendGroup(const QString &group, bool global) int gid = idmanager->uniqueIdentifier(group); m_groups << gid; if (global) - ActionManager::instance()->registerGlobalGroup(gid, m_id); + ActionManagerPrivate::instance()->registerGlobalGroup(gid, m_id); } /*! @@ -220,7 +222,7 @@ void ActionContainer::addAction(ICommand *action, const QString &group) if (!canAddAction(action)) return; - ActionManager *am = ActionManager::instance(); + ActionManagerPrivate *am = ActionManagerPrivate::instance(); Action *a = static_cast<Action *>(action); if (a->stateFlags() & Command::CS_PreLocation) { QList<CommandLocation> locs = a->locations(); @@ -251,7 +253,7 @@ void ActionContainer::addMenu(IActionContainer *menu, const QString &group) if (!canAddMenu(menu)) return; - ActionManager *am = ActionManager::instance(); + ActionManagerPrivate *am = ActionManagerPrivate::instance(); MenuActionContainer *mc = static_cast<MenuActionContainer *>(menu); if (mc->hasState(ActionContainer::CS_PreLocation)) { CommandLocation loc = mc->location(); @@ -396,7 +398,7 @@ void ActionContainer::addMenu(IActionContainer *menu, int pos, bool setpos) */ QAction *ActionContainer::beforeAction(int pos, int *prevKey) const { - ActionManager *am = ActionManager::instance(); + ActionManagerPrivate *am = ActionManagerPrivate::instance(); int baId = -1; diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.h b/src/plugins/coreplugin/actionmanager/actioncontainer.h index 6d116426f203930228d7d7bf3e521d221455d044..de9217834e5cee15d900dfe6a008911fb2398811 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer.h +++ b/src/plugins/coreplugin/actionmanager/actioncontainer.h @@ -34,7 +34,7 @@ #ifndef ACTIONCONTAINER_H #define ACTIONCONTAINER_H -#include "actionmanager.h" +#include "actionmanager_p.h" #include <coreplugin/actionmanager/iactioncontainer.h> #include <coreplugin/actionmanager/icommand.h> diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp index bc43374f0e463beee84403254c993e9368e9670f..889bb9eafe6dfa78e382c6e0c946270b2e9fabda 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -31,7 +31,7 @@ ** ***************************************************************************/ -#include "actionmanager.h" +#include "actionmanager_p.h" #include "mainwindow.h" #include "actioncontainer.h" #include "command.h" @@ -52,15 +52,15 @@ namespace { } /*! - \class Core::ActionManagerInterface + \class Core::ActionManager \mainclass \ingroup qwb - \inheaderfile actionmanagerinterface.h + \inheaderfile actionmanager.h \brief All actions should be registered in the ActionManager, since this enables the user to e.g. change their shortcuts at a central place. - The ActionManagerInterface is the central bookkeeper of actions and their shortcuts and layout. + The ActionManager is the central bookkeeper of actions and their shortcuts and layout. You get the only implementation of this class from the core interface (ICore::actionManager()). The main reasons for the need of this class is to provide a central place where the user @@ -94,59 +94,59 @@ namespace { */ /*! - \fn virtual IActionContainer *ActionManagerInterface::createMenu(const QString &id) = 0 + \fn virtual IActionContainer *ActionManager::createMenu(const QString &id) = 0 ... */ /*! - \fn virtual IActionContainer *ActionManagerInterface::createMenuBar(const QString &id) = 0 + \fn virtual IActionContainer *ActionManager::createMenuBar(const QString &id) = 0 ... */ /*! - \fn virtual ICommand *ActionManagerInterface::registerAction(QAction *action, const QString &id, const QList<int> &context) = 0 + \fn virtual ICommand *ActionManager::registerAction(QAction *action, const QString &id, const QList<int> &context) = 0 ... */ /*! - \fn virtual ICommand *ActionManagerInterface::registerShortcut(QShortcut *shortcut, const QString &id, const QList<int> &context) = 0 + \fn virtual ICommand *ActionManager::registerShortcut(QShortcut *shortcut, const QString &id, const QList<int> &context) = 0 ... */ /*! - \fn virtual ICommand *ActionManagerInterface::registerAction(QAction *action, const QString &id) = 0 + \fn virtual ICommand *ActionManager::registerAction(QAction *action, const QString &id) = 0 ... */ /*! - \fn virtual void ActionManagerInterface::addAction(ICommand *action, const QString &globalGroup) = 0 + \fn virtual void ActionManager::addAction(ICommand *action, const QString &globalGroup) = 0 ... */ /*! - \fn virtual void ActionManagerInterface::addMenu(IActionContainer *menu, const QString &globalGroup) = 0 + \fn virtual void ActionManager::addMenu(IActionContainer *menu, const QString &globalGroup) = 0 ... */ /*! - \fn virtual ICommand *ActionManagerInterface::command(const QString &id) const = 0 + \fn virtual ICommand *ActionManager::command(const QString &id) const = 0 ... */ /*! - \fn virtual IActionContainer *ActionManagerInterface::actionContainer(const QString &id) const = 0 + \fn virtual IActionContainer *ActionManager::actionContainer(const QString &id) const = 0 ... */ /*! - \fn virtual ActionManagerInterface::~ActionManagerInterface() + \fn virtual ActionManager::~ActionManager() ... */ using namespace Core; using namespace Core::Internal; -ActionManager* ActionManager::m_instance = 0; +ActionManagerPrivate* ActionManagerPrivate::m_instance = 0; /*! \class ActionManager @@ -159,8 +159,8 @@ ActionManager* ActionManager::m_instance = 0; /*! ... */ -ActionManager::ActionManager(MainWindow *mainWnd, UniqueIDManager *uidmgr) : - ActionManagerInterface(mainWnd), +ActionManagerPrivate::ActionManagerPrivate(MainWindow *mainWnd, UniqueIDManager *uidmgr) : + ActionManager(mainWnd), m_mainWnd(mainWnd) { m_defaultGroups << uidmgr->uniqueIdentifier(Constants::G_DEFAULT_ONE); @@ -173,7 +173,7 @@ ActionManager::ActionManager(MainWindow *mainWnd, UniqueIDManager *uidmgr) : /*! ... */ -ActionManager::~ActionManager() +ActionManagerPrivate::~ActionManagerPrivate() { qDeleteAll(m_idCmdMap.values()); qDeleteAll(m_idContainerMap.values()); @@ -182,7 +182,7 @@ ActionManager::~ActionManager() /*! ... */ -ActionManager* ActionManager::instance() +ActionManagerPrivate* ActionManagerPrivate::instance() { return m_instance; } @@ -190,7 +190,7 @@ ActionManager* ActionManager::instance() /*! ... */ -QList<int> ActionManager::defaultGroups() const +QList<int> ActionManagerPrivate::defaultGroups() const { return m_defaultGroups; } @@ -198,7 +198,7 @@ QList<int> ActionManager::defaultGroups() const /*! ... */ -QList<Command *> ActionManager::commands() const +QList<Command *> ActionManagerPrivate::commands() const { return m_idCmdMap.values(); } @@ -206,7 +206,7 @@ QList<Command *> ActionManager::commands() const /*! ... */ -QList<ActionContainer *> ActionManager::containers() const +QList<ActionContainer *> ActionManagerPrivate::containers() const { return m_idContainerMap.values(); } @@ -214,7 +214,7 @@ QList<ActionContainer *> ActionManager::containers() const /*! ... */ -void ActionManager::registerGlobalGroup(int groupId, int containerId) +void ActionManagerPrivate::registerGlobalGroup(int groupId, int containerId) { if (m_globalgroups.contains(groupId)) { qWarning() << "registerGlobalGroup: Global group " @@ -228,7 +228,7 @@ void ActionManager::registerGlobalGroup(int groupId, int containerId) /*! ... */ -bool ActionManager::hasContext(int context) const +bool ActionManagerPrivate::hasContext(int context) const { return m_context.contains(context); } @@ -236,7 +236,7 @@ bool ActionManager::hasContext(int context) const /*! ... */ -void ActionManager::setContext(const QList<int> &context) +void ActionManagerPrivate::setContext(const QList<int> &context) { // here are possibilities for speed optimization if necessary: // let commands (de-)register themselves for contexts @@ -254,7 +254,7 @@ void ActionManager::setContext(const QList<int> &context) /*! \internal */ -bool ActionManager::hasContext(QList<int> context) const +bool ActionManagerPrivate::hasContext(QList<int> context) const { for (int i=0; i<m_context.count(); ++i) { if (context.contains(m_context.at(i))) @@ -266,7 +266,7 @@ bool ActionManager::hasContext(QList<int> context) const /*! ... */ -IActionContainer *ActionManager::createMenu(const QString &id) +IActionContainer *ActionManagerPrivate::createMenu(const QString &id) { const int uid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(id); const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid); @@ -287,7 +287,7 @@ IActionContainer *ActionManager::createMenu(const QString &id) /*! ... */ -IActionContainer *ActionManager::createMenuBar(const QString &id) +IActionContainer *ActionManagerPrivate::createMenuBar(const QString &id) { const int uid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(id); const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid); @@ -308,7 +308,7 @@ IActionContainer *ActionManager::createMenuBar(const QString &id) /*! ... */ -ICommand *ActionManager::registerAction(QAction *action, const QString &id, const QList<int> &context) +ICommand *ActionManagerPrivate::registerAction(QAction *action, const QString &id, const QList<int> &context) { OverrideableAction *a = 0; ICommand *c = registerOverridableAction(action, id, false); @@ -321,7 +321,7 @@ ICommand *ActionManager::registerAction(QAction *action, const QString &id, cons /*! ... */ -ICommand *ActionManager::registerAction(QAction *action, const QString &id) +ICommand *ActionManagerPrivate::registerAction(QAction *action, const QString &id) { return registerOverridableAction(action, id, true); } @@ -329,7 +329,7 @@ ICommand *ActionManager::registerAction(QAction *action, const QString &id) /*! \internal */ -ICommand *ActionManager::registerOverridableAction(QAction *action, const QString &id, bool checkUnique) +ICommand *ActionManagerPrivate::registerOverridableAction(QAction *action, const QString &id, bool checkUnique) { OverrideableAction *a = 0; const int uid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(id); @@ -378,7 +378,7 @@ ICommand *ActionManager::registerOverridableAction(QAction *action, const QStrin /*! ... */ -ICommand *ActionManager::registerShortcut(QShortcut *shortcut, const QString &id, const QList<int> &context) +ICommand *ActionManagerPrivate::registerShortcut(QShortcut *shortcut, const QString &id, const QList<int> &context) { Shortcut *sc = 0; int uid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(id); @@ -416,9 +416,9 @@ ICommand *ActionManager::registerShortcut(QShortcut *shortcut, const QString &id } /*! - \fn void ActionManager::addAction(Core::ICommand *action, const QString &globalGroup) + \fn void ActionManagerPrivate::addAction(Core::ICommand *action, const QString &globalGroup) */ -void ActionManager::addAction(ICommand *action, const QString &globalGroup) +void ActionManagerPrivate::addAction(ICommand *action, const QString &globalGroup) { const int gid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(globalGroup); if (!m_globalgroups.contains(gid)) { @@ -435,10 +435,10 @@ void ActionManager::addAction(ICommand *action, const QString &globalGroup) } /*! - \fn void ActionManager::addMenu(Core::IActionContainer *menu, const QString &globalGroup) + \fn void ActionManagerPrivate::addMenu(Core::IActionContainer *menu, const QString &globalGroup) */ -void ActionManager::addMenu(IActionContainer *menu, const QString &globalGroup) +void ActionManagerPrivate::addMenu(IActionContainer *menu, const QString &globalGroup) { const int gid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(globalGroup); if (!m_globalgroups.contains(gid)) { @@ -457,13 +457,13 @@ void ActionManager::addMenu(IActionContainer *menu, const QString &globalGroup) /*! ... */ -ICommand *ActionManager::command(const QString &id) const +ICommand *ActionManagerPrivate::command(const QString &id) const { const int uid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(id); const IdCmdMap::const_iterator it = m_idCmdMap.constFind(uid); if (it == m_idCmdMap.constEnd()) { if (warnAboutFindFailures) - qWarning() << "ActionManager::command(): failed to find :" << id << '/' << uid; + qWarning() << "ActionManagerPrivate::command(): failed to find :" << id << '/' << uid; return 0; } return it.value(); @@ -472,13 +472,13 @@ ICommand *ActionManager::command(const QString &id) const /*! ... */ -IActionContainer *ActionManager::actionContainer(const QString &id) const +IActionContainer *ActionManagerPrivate::actionContainer(const QString &id) const { const int uid = m_mainWnd->uniqueIDManager()->uniqueIdentifier(id); const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid); if ( it == m_idContainerMap.constEnd()) { if (warnAboutFindFailures) - qWarning() << "ActionManager::actionContainer(): failed to find :" << id << '/' << uid; + qWarning() << "ActionManagerPrivate::actionContainer(): failed to find :" << id << '/' << uid; return 0; } return it.value(); @@ -487,12 +487,12 @@ IActionContainer *ActionManager::actionContainer(const QString &id) const /*! ... */ -ICommand *ActionManager::command(int uid) const +ICommand *ActionManagerPrivate::command(int uid) const { const IdCmdMap::const_iterator it = m_idCmdMap.constFind(uid); if (it == m_idCmdMap.constEnd()) { if (warnAboutFindFailures) - qWarning() << "ActionManager::command(): failed to find :" << m_mainWnd->uniqueIDManager()->stringForUniqueIdentifier(uid) << '/' << uid; + qWarning() << "ActionManagerPrivate::command(): failed to find :" << m_mainWnd->uniqueIDManager()->stringForUniqueIdentifier(uid) << '/' << uid; return 0; } return it.value(); @@ -501,12 +501,12 @@ ICommand *ActionManager::command(int uid) const /*! ... */ -IActionContainer *ActionManager::actionContainer(int uid) const +IActionContainer *ActionManagerPrivate::actionContainer(int uid) const { const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid); if (it == m_idContainerMap.constEnd()) { if (warnAboutFindFailures) - qWarning() << "ActionManager::actionContainer(): failed to find :" << m_mainWnd->uniqueIDManager()->stringForUniqueIdentifier(uid) << uid; + qWarning() << "ActionManagerPrivate::actionContainer(): failed to find :" << m_mainWnd->uniqueIDManager()->stringForUniqueIdentifier(uid) << uid; return 0; } return it.value(); @@ -519,7 +519,7 @@ static const char *sequenceKey = "Keysequence"; /*! \internal */ -void ActionManager::initialize() +void ActionManagerPrivate::initialize() { QSettings *settings = m_mainWnd->settings(); const int shortcuts = settings->beginReadArray(QLatin1String(settingsGroup)); @@ -539,7 +539,7 @@ void ActionManager::initialize() /*! ... */ -void ActionManager::saveSettings(QSettings *settings) +void ActionManagerPrivate::saveSettings(QSettings *settings) { settings->beginWriteArray(QLatin1String(settingsGroup)); int count = 0; diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.h b/src/plugins/coreplugin/actionmanager/actionmanager.h index dd5e2f61e92a61f3a6c4c91f5a614837da405934..d1c570ae4a63b33130748fbde11e7068a0705348 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.h +++ b/src/plugins/coreplugin/actionmanager/actionmanager.h @@ -34,97 +34,44 @@ #ifndef ACTIONMANAGER_H #define ACTIONMANAGER_H -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include "coreplugin/core_global.h" -#include <QtCore/QMap> -#include <QtCore/QHash> -#include <QtCore/QMultiHash> +#include <coreplugin/actionmanager/iactioncontainer.h> +#include <coreplugin/actionmanager/icommand.h> + +#include <QtCore/QObject> +#include <QtCore/QList> QT_BEGIN_NAMESPACE -class QSettings; +class QAction; +class QShortcut; +class QString; QT_END_NAMESPACE -struct CommandLocation -{ - int m_container; - int m_position; -}; - namespace Core { -class UniqueIDManager; - -namespace Internal { - -class ActionContainer; -class MainWindow; -class Command; - -class ActionManager : public Core::ActionManagerInterface +class CORE_EXPORT ActionManager : public QObject { Q_OBJECT - public: - ActionManager(MainWindow *mainWnd, UniqueIDManager *uidmgr); - ~ActionManager(); - - void setContext(const QList<int> &context); - static ActionManager* instance(); - - void saveSettings(QSettings *settings); - QList<int> defaultGroups() const; - - QList<Command *> commands() const; - QList<ActionContainer *> containers() const; - - bool hasContext(int context) const; - - ICommand *command(int uid) const; - IActionContainer *actionContainer(int uid) const; - - void registerGlobalGroup(int groupId, int containerId); - - void initialize(); - - //ActionManager Interface - IActionContainer *createMenu(const QString &id); - IActionContainer *createMenuBar(const QString &id); - - ICommand *registerAction(QAction *action, const QString &id, - const QList<int> &context); - ICommand *registerAction(QAction *action, const QString &id); - ICommand *registerShortcut(QShortcut *shortcut, const QString &id, - const QList<int> &context); - - void addAction(Core::ICommand *action, const QString &globalGroup); - void addMenu(Core::IActionContainer *menu, const QString &globalGroup); - - Core::ICommand *command(const QString &id) const; - Core::IActionContainer *actionContainer(const QString &id) const; - -private: - bool hasContext(QList<int> context) const; - ICommand *registerOverridableAction(QAction *action, const QString &id, - bool checkUnique); - - static ActionManager* m_instance; - QList<int> m_defaultGroups; + ActionManager(QObject *parent = 0) : QObject(parent) {} + virtual ~ActionManager() {} - typedef QHash<int, Command *> IdCmdMap; - IdCmdMap m_idCmdMap; + virtual IActionContainer *createMenu(const QString &id) = 0; + virtual IActionContainer *createMenuBar(const QString &id) = 0; - typedef QHash<int, ActionContainer *> IdContainerMap; - IdContainerMap m_idContainerMap; + virtual ICommand *registerAction(QAction *action, const QString &id, const QList<int> &context) = 0; + virtual ICommand *registerShortcut(QShortcut *shortcut, const QString &id, const QList<int> &context) = 0; - typedef QMap<int, int> GlobalGroupMap; - GlobalGroupMap m_globalgroups; + virtual ICommand *registerAction(QAction *action, const QString &id) = 0; - QList<int> m_context; + virtual void addAction(ICommand *action, const QString &globalGroup) = 0; + virtual void addMenu(IActionContainer *menu, const QString &globalGroup) = 0; - MainWindow *m_mainWnd; + virtual ICommand *command(const QString &id) const = 0; + virtual IActionContainer *actionContainer(const QString &id) const = 0; }; -} // namespace Internal } // namespace Core #endif // ACTIONMANAGER_H diff --git a/src/plugins/coreplugin/actionmanager/actionmanager_p.h b/src/plugins/coreplugin/actionmanager/actionmanager_p.h new file mode 100644 index 0000000000000000000000000000000000000000..5ca979ed6de5cb2e0acff37a9f168f3fcffaccfc --- /dev/null +++ b/src/plugins/coreplugin/actionmanager/actionmanager_p.h @@ -0,0 +1,130 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception +** version 1.3, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ + +#ifndef ACTIONMANAGERPRIVATE_H +#define ACTIONMANAGERPRIVATE_H + +#include <coreplugin/actionmanager/actionmanager.h> + +#include <QtCore/QMap> +#include <QtCore/QHash> +#include <QtCore/QMultiHash> + +QT_BEGIN_NAMESPACE +class QSettings; +QT_END_NAMESPACE + +struct CommandLocation +{ + int m_container; + int m_position; +}; + +namespace Core { + +class UniqueIDManager; + +namespace Internal { + +class ActionContainer; +class MainWindow; +class Command; + +class ActionManagerPrivate : public Core::ActionManager +{ + Q_OBJECT + +public: + ActionManagerPrivate(MainWindow *mainWnd, UniqueIDManager *uidmgr); + ~ActionManagerPrivate(); + + void setContext(const QList<int> &context); + static ActionManagerPrivate* instance(); + + void saveSettings(QSettings *settings); + QList<int> defaultGroups() const; + + QList<Command *> commands() const; + QList<ActionContainer *> containers() const; + + bool hasContext(int context) const; + + ICommand *command(int uid) const; + IActionContainer *actionContainer(int uid) const; + + void registerGlobalGroup(int groupId, int containerId); + + void initialize(); + + //ActionManager Interface + IActionContainer *createMenu(const QString &id); + IActionContainer *createMenuBar(const QString &id); + + ICommand *registerAction(QAction *action, const QString &id, + const QList<int> &context); + ICommand *registerAction(QAction *action, const QString &id); + ICommand *registerShortcut(QShortcut *shortcut, const QString &id, + const QList<int> &context); + + void addAction(Core::ICommand *action, const QString &globalGroup); + void addMenu(Core::IActionContainer *menu, const QString &globalGroup); + + Core::ICommand *command(const QString &id) const; + Core::IActionContainer *actionContainer(const QString &id) const; + +private: + bool hasContext(QList<int> context) const; + ICommand *registerOverridableAction(QAction *action, const QString &id, + bool checkUnique); + + static ActionManagerPrivate* m_instance; + QList<int> m_defaultGroups; + + typedef QHash<int, Command *> IdCmdMap; + IdCmdMap m_idCmdMap; + + typedef QHash<int, ActionContainer *> IdContainerMap; + IdContainerMap m_idContainerMap; + + typedef QMap<int, int> GlobalGroupMap; + GlobalGroupMap m_globalgroups; + + QList<int> m_context; + + MainWindow *m_mainWnd; +}; + +} // namespace Internal +} // namespace Core + +#endif // ACTIONMANAGERPRIVATE_H diff --git a/src/plugins/coreplugin/actionmanager/actionmanagerinterface.h b/src/plugins/coreplugin/actionmanager/actionmanagerinterface.h deleted file mode 100644 index f77e9ca484c0b8b5c0eae31da4ae44b150e57e7c..0000000000000000000000000000000000000000 --- a/src/plugins/coreplugin/actionmanager/actionmanagerinterface.h +++ /dev/null @@ -1,77 +0,0 @@ -/*************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Qt Software Information (qt-info@nokia.com) -** -** -** Non-Open Source Usage -** -** Licensees may use this file in accordance with the Qt Beta Version -** License Agreement, Agreement version 2.2 provided with the Software or, -** alternatively, in accordance with the terms contained in a written -** agreement between you and Nokia. -** -** GNU General Public License Usage -** -** Alternatively, this file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the packaging -** of this file. Please review the following information to ensure GNU -** General Public Licensing requirements will be met: -** -** http://www.fsf.org/licensing/licenses/info/GPLv2.html and -** http://www.gnu.org/copyleft/gpl.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt GPL Exception -** version 1.3, included in the file GPL_EXCEPTION.txt in this package. -** -***************************************************************************/ - -#ifndef ACTIONMANAGERINTERFACE_H -#define ACTIONMANAGERINTERFACE_H - -#include "coreplugin/core_global.h" - -#include <coreplugin/actionmanager/iactioncontainer.h> -#include <coreplugin/actionmanager/icommand.h> - -#include <QtCore/QObject> -#include <QtCore/QList> - -QT_BEGIN_NAMESPACE -class QAction; -class QShortcut; -class QString; -QT_END_NAMESPACE - -namespace Core { - -class CORE_EXPORT ActionManagerInterface : public QObject -{ - Q_OBJECT -public: - ActionManagerInterface(QObject *parent = 0) : QObject(parent) {} - virtual ~ActionManagerInterface() {} - - virtual IActionContainer *createMenu(const QString &id) = 0; - virtual IActionContainer *createMenuBar(const QString &id) = 0; - - virtual ICommand *registerAction(QAction *action, const QString &id, const QList<int> &context) = 0; - virtual ICommand *registerShortcut(QShortcut *shortcut, const QString &id, const QList<int> &context) = 0; - - virtual ICommand *registerAction(QAction *action, const QString &id) = 0; - - virtual void addAction(ICommand *action, const QString &globalGroup) = 0; - virtual void addMenu(IActionContainer *menu, const QString &globalGroup) = 0; - - virtual ICommand *command(const QString &id) const = 0; - virtual IActionContainer *actionContainer(const QString &id) const = 0; -}; - -} // namespace Core - -#endif // ACTIONMANAGERINTERFACE_H diff --git a/src/plugins/coreplugin/actionmanager/command.h b/src/plugins/coreplugin/actionmanager/command.h index 848114c8b96475221b2c29997e3f11767f468d9a..1c854a94fa6c4705ff126197ea21ffe2863813e6 100644 --- a/src/plugins/coreplugin/actionmanager/command.h +++ b/src/plugins/coreplugin/actionmanager/command.h @@ -35,7 +35,7 @@ #define COMMAND_H #include "icommand.h" -#include "actionmanager.h" +#include "actionmanager_p.h" #include <QtCore/QList> #include <QtCore/QMultiMap> diff --git a/src/plugins/coreplugin/coreimpl.cpp b/src/plugins/coreplugin/coreimpl.cpp index cd96a9c24fc882a49eefc5715db0b10a257beb75..8d500dcd8e7367630f89bf94ec64f8e3fdc1c125 100644 --- a/src/plugins/coreplugin/coreimpl.cpp +++ b/src/plugins/coreplugin/coreimpl.cpp @@ -64,7 +64,7 @@ void CoreImpl::showOptionsDialog(const QString &group, const QString &page) m_mainwindow->showOptionsDialog(group, page); } -ActionManagerInterface *CoreImpl::actionManager() const +ActionManager *CoreImpl::actionManager() const { return m_mainwindow->actionManager(); } @@ -94,7 +94,7 @@ EditorManager *CoreImpl::editorManager() const return m_mainwindow->editorManager(); } -ProgressManagerInterface *CoreImpl::progressManager() const +ProgressManager *CoreImpl::progressManager() const { return m_mainwindow->progressManager(); } diff --git a/src/plugins/coreplugin/coreimpl.h b/src/plugins/coreplugin/coreimpl.h index fc5375d37017496ff6827c782f3f4ea68aaff77a..01c29e4656d7429295692e0e2159e84d4f3f0613 100644 --- a/src/plugins/coreplugin/coreimpl.h +++ b/src/plugins/coreplugin/coreimpl.h @@ -56,13 +56,13 @@ public: void showOptionsDialog(const QString &group = QString(), const QString &page = QString()); - ActionManagerInterface *actionManager() const; + ActionManager *actionManager() const; FileManager *fileManager() const ; UniqueIDManager *uniqueIDManager() const; MessageManager *messageManager() const; ExtensionSystem::PluginManager *pluginManager() const; EditorManager *editorManager() const; - ProgressManagerInterface *progressManager() const; + ProgressManager *progressManager() const; ScriptManagerInterface *scriptManager() const; VariableManager *variableManager() const; VCSManager *vcsManager() const; diff --git a/src/plugins/coreplugin/coreplugin.pro b/src/plugins/coreplugin/coreplugin.pro index 2dc558a542284910306a36453b7602119f609f75..d87ab4bb036c8b23924a06fb97540a202fb74b01 100644 --- a/src/plugins/coreplugin/coreplugin.pro +++ b/src/plugins/coreplugin/coreplugin.pro @@ -99,9 +99,9 @@ HEADERS += mainwindow.h \ editormanager/ieditor.h \ editormanager/ieditorfactory.h \ actionmanager/iactioncontainer.h \ - actionmanager/actionmanagerinterface.h \ - actionmanager/icommand.h \ actionmanager/actionmanager.h \ + actionmanager/icommand.h \ + actionmanager/actionmanager_p.h \ actionmanager/command.h \ actionmanager/actioncontainer.h \ actionmanager/commandsfile.h \ @@ -112,11 +112,11 @@ HEADERS += mainwindow.h \ dialogs/openwithdialog.h \ dialogs/iwizard.h \ dialogs/ioptionspage.h \ - progressmanager/progressmanager.h \ + progressmanager/progressmanager_p.h \ progressmanager/progressview.h \ progressmanager/progresspie.h \ progressmanager/futureprogress.h \ - progressmanager/progressmanagerinterface.h \ + progressmanager/progressmanager.h \ icontext.h \ icore.h \ ifile.h \ diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp index ec1c3975c4dd62ee8772c5852e3dbd76de8b4aa9..5d6ae28147f5635d236ba101f835fac80d33d893 100644 --- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp +++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp @@ -33,7 +33,7 @@ #include "shortcutsettings.h" #include "ui_shortcutsettings.h" -#include "actionmanager.h" +#include "actionmanager_p.h" #include "command.h" #include "coreconstants.h" #include "coreimpl.h" @@ -281,7 +281,7 @@ void ShortcutSettings::initialize() { QMap<QString, QTreeWidgetItem *> categories; - m_am = ActionManager::instance(); + m_am = ActionManagerPrivate::instance(); UniqueIDManager *uidm = CoreImpl::instance()->uniqueIDManager(); diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.h b/src/plugins/coreplugin/dialogs/shortcutsettings.h index 99d4a8fbbc433880aaf9f439cf1c013213aae7c5..f79bf89386bda3854cfcf73d2acbdfe015724025 100644 --- a/src/plugins/coreplugin/dialogs/shortcutsettings.h +++ b/src/plugins/coreplugin/dialogs/shortcutsettings.h @@ -51,7 +51,7 @@ class ICommand; namespace Internal { -class ActionManager; +class ActionManagerPrivate; class Command; class MainWindow; @@ -101,7 +101,7 @@ private: int translateModifiers(Qt::KeyboardModifiers state, const QString &text); QList<ShortcutItem *> m_scitems; - ActionManager *m_am; + ActionManagerPrivate *m_am; int m_key[4], m_keyNum; Ui_ShortcutSettings *m_page; }; diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 1eb3abb133d72665bfd8aa03dff64a7a1c0cc717..923f90ce0c45390cf43ee874a5ffc8559778abca 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -48,7 +48,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/modemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/ieditorfactory.h> #include <coreplugin/baseview.h> #include <coreplugin/imode.h> @@ -207,7 +207,7 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) : const QList<int> editManagerContext = QList<int>() << m_d->m_core->uniqueIDManager()->uniqueIdentifier(Constants::C_EDITORMANAGER); - ActionManagerInterface *am = m_d->m_core->actionManager(); + ActionManager *am = m_d->m_core->actionManager(); IActionContainer *mfile = am->actionContainer(Constants::M_FILE); //Revert to saved diff --git a/src/plugins/coreplugin/editormanager/editorsplitter.cpp b/src/plugins/coreplugin/editormanager/editorsplitter.cpp index 370cae409fdc9117f876547b77f0f49b604fd2ae..dbb9e0c20b8d5885e5d4a3de45c7454fc79bced2 100644 --- a/src/plugins/coreplugin/editormanager/editorsplitter.cpp +++ b/src/plugins/coreplugin/editormanager/editorsplitter.cpp @@ -41,7 +41,7 @@ #include <coreplugin/icore.h> #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <utils/qtcassert.h> @@ -72,7 +72,7 @@ void EditorSplitter::registerActions() const QList<int> editorManagerContext = QList<int>() << m_core->uniqueIDManager()->uniqueIdentifier(Constants::C_EDITORMANAGER); - ActionManagerInterface *am = m_core->actionManager(); + ActionManager *am = m_core->actionManager(); IActionContainer *mwindow = am->actionContainer(Constants::M_WINDOW); ICommand *cmd; diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp index 317ebbbc45ad48ad085600e2639075b1b9cc4955..5cdc3733dd0fa42ec4779ee8af97b7250d533a9e 100644 --- a/src/plugins/coreplugin/icore.cpp +++ b/src/plugins/coreplugin/icore.cpp @@ -51,7 +51,7 @@ */ /*! - \fn ActionManagerInterface *ICore::actionManager() const + \fn ActionManager *ICore::actionManager() const \brief Returns the application's action manager. The action manager is responsible for registration of menus and @@ -98,7 +98,7 @@ */ /*! - \fn ProgressManagerInterface *ICore::progressManager() const + \fn ProgressManager *ICore::progressManager() const \brief Returns the application's progress manager. Use the progress manager to register a concurrent task to diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h index 53ff1e96f909fef98631bfc88006f55adc085621..4a138b4baaecff75e03f0fa2e8f685c504d0786c 100644 --- a/src/plugins/coreplugin/icore.h +++ b/src/plugins/coreplugin/icore.h @@ -50,14 +50,14 @@ QT_END_NAMESPACE namespace Core { // forward declarations -class ActionManagerInterface; +class ActionManager; class IFile; class FileManager; class MessageManager; class IEditor; class UniqueIDManager; class EditorManager; -class ProgressManagerInterface; +class ProgressManager; class ScriptManagerInterface; class VariableManager; class IContext; @@ -81,13 +81,13 @@ public: virtual void showOptionsDialog(const QString &group = QString(), const QString &page = QString()) = 0; - virtual ActionManagerInterface *actionManager() const = 0; + virtual ActionManager *actionManager() const = 0; virtual FileManager *fileManager() const = 0; virtual UniqueIDManager *uniqueIDManager() const = 0; virtual MessageManager *messageManager() const = 0; virtual ExtensionSystem::PluginManager *pluginManager() const = 0; virtual EditorManager *editorManager() const = 0; - virtual ProgressManagerInterface *progressManager() const = 0; + virtual ProgressManager *progressManager() const = 0; virtual ScriptManagerInterface *scriptManager() const = 0; virtual VariableManager *variableManager() const = 0; virtual VCSManager *vcsManager() const = 0; diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index b368ad8cf4dcce84e36d4461209f9fa5ef7f2435..ce1517194942c1a1ad06fdcb2c0961f112303637 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -33,7 +33,7 @@ #include "mainwindow.h" #include "actioncontainer.h" -#include "actionmanager.h" +#include "actionmanager_p.h" #include "basemode.h" #include "coreimpl.h" #include "coreconstants.h" @@ -49,7 +49,7 @@ #include "newdialog.h" #include "outputpane.h" #include "plugindialog.h" -#include "progressmanager.h" +#include "progressmanager_p.h" #include "progressview.h" #include "shortcutsettings.h" #include "vcsmanager.h" @@ -115,10 +115,10 @@ MainWindow::MainWindow() : m_additionalContexts(m_globalContext), m_settings(new QSettings(QSettings::IniFormat, QSettings::UserScope, QLatin1String("Nokia"), QLatin1String("QtCreator"), this)), m_printer(0), - m_actionManager(new ActionManager(this, m_uniqueIDManager)), + m_actionManager(new ActionManagerPrivate(this, m_uniqueIDManager)), m_editorManager(0), m_fileManager(new FileManager(m_coreImpl, this)), - m_progressManager(new ProgressManager()), + m_progressManager(new ProgressManagerPrivate()), m_scriptManager(new ScriptManager(this, m_coreImpl)), m_variableManager(new VariableManager(this)), m_vcsManager(new VCSManager()), @@ -362,9 +362,9 @@ QStatusBar *MainWindow::statusBar() const void MainWindow::registerDefaultContainers() { - ActionManager *am = m_actionManager; + ActionManagerPrivate *am = m_actionManager; - IActionContainer *menubar = m_actionManager->createMenuBar(Constants::MENU_BAR); + IActionContainer *menubar = am->createMenuBar(Constants::MENU_BAR); #ifndef Q_WS_MAC // System menu bar on Mac setMenuBar(menubar->menuBar()); @@ -427,7 +427,7 @@ void MainWindow::registerDefaultContainers() ac->appendGroup(Constants::G_HELP_ABOUT, true); } -static ICommand *createSeparator(ActionManager *am, QObject *parent, +static ICommand *createSeparator(ActionManagerPrivate *am, QObject *parent, const QString &name, const QList<int> &context) { @@ -439,7 +439,7 @@ static ICommand *createSeparator(ActionManager *am, QObject *parent, void MainWindow::registerDefaultActions() { - ActionManager *am = m_actionManager; + ActionManagerPrivate *am = m_actionManager; IActionContainer *mfile = am->actionContainer(Constants::M_FILE); IActionContainer *medit = am->actionContainer(Constants::M_EDIT); IActionContainer *mtools = am->actionContainer(Constants::M_TOOLS); @@ -815,7 +815,7 @@ void MainWindow::openFileWith() } } -ActionManagerInterface *MainWindow::actionManager() const +ActionManager *MainWindow::actionManager() const { return m_actionManager; } @@ -845,7 +845,7 @@ EditorManager *MainWindow::editorManager() const return m_editorManager; } -ProgressManagerInterface *MainWindow::progressManager() const +ProgressManager *MainWindow::progressManager() const { return m_progressManager; } diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index 913e6728e71e7b8491d82de18a959f153b1150d0..2fe06cd76f71c8e33e8290bee1757a02f8dcaa8a 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -55,7 +55,7 @@ class PluginManager; namespace Core { -class ActionManagerInterface; +class ActionManager; class BaseMode; class BaseView; class EditorManager; @@ -64,7 +64,7 @@ class IContext; class MessageManager; class MimeDatabase; class ModeManager; -class ProgressManagerInterface; +class ProgressManager; class RightPaneWidget; class ScriptManagerInterface; class UniqueIDManager; @@ -74,13 +74,13 @@ class ViewManagerInterface; namespace Internal { -class ActionManager; +class ActionManagerPrivate; class CoreImpl; class FancyTabWidget; class GeneralSettings; class NavigationWidget; class OutputPane; -class ProgressManager; +class ProgressManagerPrivate; class ShortcutSettings; class ViewManager; class VersionDialog; @@ -105,13 +105,13 @@ public: //ICore inline ExtensionSystem::PluginManager *pluginManager() { return m_pluginManager; } - Core::ActionManagerInterface *actionManager() const; + Core::ActionManager *actionManager() const; Core::FileManager *fileManager() const; Core::UniqueIDManager *uniqueIDManager() const; Core::MessageManager *messageManager() const; ExtensionSystem::PluginManager *pluginManager() const; Core::EditorManager *editorManager() const; - Core::ProgressManagerInterface *progressManager() const; + Core::ProgressManager *progressManager() const; Core::ScriptManagerInterface *scriptManager() const; Core::VariableManager *variableManager() const; Core::ModeManager *modeManager() const; @@ -176,11 +176,11 @@ private: QList<int> m_additionalContexts; QSettings *m_settings; mutable QPrinter *m_printer; - ActionManager *m_actionManager; + ActionManagerPrivate *m_actionManager; EditorManager *m_editorManager; FileManager *m_fileManager; MessageManager *m_messageManager; - ProgressManager *m_progressManager; + ProgressManagerPrivate *m_progressManager; ScriptManagerInterface *m_scriptManager; VariableManager *m_variableManager; VCSManager *m_vcsManager; diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp index 2e1713d05f93633c31728639805099e28a41be98..f26efaf9789a63fd416f67ff4f0e7b83517feb41 100644 --- a/src/plugins/coreplugin/modemanager.cpp +++ b/src/plugins/coreplugin/modemanager.cpp @@ -39,7 +39,7 @@ #include <aggregation/aggregate.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/icommand.h> #include <coreplugin/coreconstants.h> #include <coreplugin/coreimpl.h> @@ -140,7 +140,7 @@ void ModeManager::objectAdded(QObject *obj) m_modeStack->insertTab(index, mode->widget(), mode->icon(), mode->name()); // Register mode shortcut - ActionManagerInterface *am = m_mainWindow->actionManager(); + ActionManager *am = m_mainWindow->actionManager(); const QString shortcutId = QLatin1String("QtCreator.Mode.") + mode->uniqueModeName(); QShortcut *shortcut = new QShortcut(m_mainWindow); shortcut->setWhatsThis(tr("Switch to %1 mode").arg(mode->name())); diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp index 491c394343820bea218a06fa4098b08a5f1136d3..80d71f5b41b11da8c3a02218fac5ca4812756ab9 100644 --- a/src/plugins/coreplugin/navigationwidget.cpp +++ b/src/plugins/coreplugin/navigationwidget.cpp @@ -38,7 +38,7 @@ #include <coreplugin/inavigationwidgetfactory.h> #include <coreplugin/modemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <extensionsystem/ExtensionSystemInterfaces> #include <QtGui/QAction> @@ -316,7 +316,7 @@ void NavigationWidget::objectAdded(QObject * obj) return; Core::ICore *core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); - Core::ActionManagerInterface *am = core->actionManager(); + Core::ActionManager *am = core->actionManager(); QList<int> navicontext = QList<int>() << core->uniqueIDManager()-> uniqueIdentifier(Core::Constants::C_NAVIGATION_PANE); diff --git a/src/plugins/coreplugin/outputpane.cpp b/src/plugins/coreplugin/outputpane.cpp index 6b5c3b146d11580fa68bc299ab7690c1702ee440..1f0f7d983c4815eb1b219f7fb81292c40eb9beed 100644 --- a/src/plugins/coreplugin/outputpane.cpp +++ b/src/plugins/coreplugin/outputpane.cpp @@ -37,7 +37,7 @@ #include "mainwindow.h" #include "modemanager.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/iactioncontainer.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/editorgroup.h> @@ -210,7 +210,7 @@ void OutputPane::init(ICore *core, ExtensionSystem::PluginManager *pm) m_pluginManager = pm; m_core = core; - ActionManagerInterface *am = m_core->actionManager(); + ActionManager *am = m_core->actionManager(); IActionContainer *mwindow = am->actionContainer(Constants::M_WINDOW); // Window->Output Panes diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp index ab1b0370323ab5a508e0a6510bc2bfbb4b28ddd2..18a32ad81581ac074f7b10f527aad666564d07a1 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp +++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp @@ -31,7 +31,7 @@ ** ***************************************************************************/ -#include "progressmanager.h" +#include "progressmanager_p.h" #include "progressview.h" #include "coreimpl.h" #include "baseview.h" @@ -44,23 +44,23 @@ using namespace Core; using namespace Core::Internal; -ProgressManager::ProgressManager(QObject *parent) - : ProgressManagerInterface(parent) +ProgressManagerPrivate::ProgressManagerPrivate(QObject *parent) + : ProgressManager(parent) { m_progressView = new ProgressView; ICore *core = CoreImpl::instance(); connect(core, SIGNAL(coreAboutToClose()), this, SLOT(cancelAllRunningTasks())); } -ProgressManager::~ProgressManager() +ProgressManagerPrivate::~ProgressManagerPrivate() { } -void ProgressManager::init() +void ProgressManagerPrivate::init() { } -void ProgressManager::cancelTasks(const QString &type) +void ProgressManagerPrivate::cancelTasks(const QString &type) { QMap<QFutureWatcher<void> *, QString>::iterator task = m_runningTasks.begin(); while (task != m_runningTasks.end()) { @@ -75,7 +75,7 @@ void ProgressManager::cancelTasks(const QString &type) } } -void ProgressManager::cancelAllRunningTasks() +void ProgressManagerPrivate::cancelAllRunningTasks() { QMap<QFutureWatcher<void> *, QString>::const_iterator task = m_runningTasks.constBegin(); while (task != m_runningTasks.constEnd()) { @@ -87,7 +87,7 @@ void ProgressManager::cancelAllRunningTasks() m_runningTasks.clear(); } -FutureProgress *ProgressManager::addTask(const QFuture<void> &future, const QString &title, const QString &type, PersistentType persistency) +FutureProgress *ProgressManagerPrivate::addTask(const QFuture<void> &future, const QString &title, const QString &type, PersistentType persistency) { QFutureWatcher<void> *watcher = new QFutureWatcher<void>(); m_runningTasks.insert(watcher, type); @@ -96,12 +96,12 @@ FutureProgress *ProgressManager::addTask(const QFuture<void> &future, const QStr return m_progressView->addTask(future, title, type, persistency); } -QWidget *ProgressManager::progressView() +QWidget *ProgressManagerPrivate::progressView() { return m_progressView; } -void ProgressManager::taskFinished() +void ProgressManagerPrivate::taskFinished() { QObject *taskObject = sender(); QTC_ASSERT(taskObject, return); diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.h b/src/plugins/coreplugin/progressmanager/progressmanager.h index 7df78fe26b845b29bef1d160b7c9f8228d4d784a..c3f940186fcfa31394245a5ba31e043dcb544e96 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.h +++ b/src/plugins/coreplugin/progressmanager/progressmanager.h @@ -34,41 +34,30 @@ #ifndef PROGRESSMANAGER_H #define PROGRESSMANAGER_H -#include "progressmanagerinterface.h" +#include <coreplugin/core_global.h> +#include <coreplugin/progressmanager/futureprogress.h> -#include <QtCore/QPointer> -#include <QtCore/QList> -#include <QtCore/QFutureWatcher> +#include <QtCore/QObject> +#include <QtCore/QFuture> +#include <QtGui/QIcon> namespace Core { -namespace Internal { -class ProgressView; - -class ProgressManager : public Core::ProgressManagerInterface +class CORE_EXPORT ProgressManager : public QObject { Q_OBJECT public: - ProgressManager(QObject *parent = 0); - ~ProgressManager(); - void init(); + enum PersistentType { CloseOnSuccess, KeepOnFinish }; - FutureProgress *addTask(const QFuture<void> &future, const QString &title, const QString &type, PersistentType persistency); + ProgressManager(QObject *parent = 0) : QObject(parent) {} + virtual ~ProgressManager() {} - QWidget *progressView(); + virtual FutureProgress *addTask(const QFuture<void> &future, const QString &title, const QString &type, PersistentType persistency = KeepOnFinish) = 0; public slots: - void cancelTasks(const QString &type); - -private slots: - void taskFinished(); - void cancelAllRunningTasks(); -private: - QPointer<ProgressView> m_progressView; - QMap<QFutureWatcher<void> *, QString> m_runningTasks; + virtual void cancelTasks(const QString &type) = 0; }; -} // namespace Internal } // namespace Core -#endif // PROGRESSMANAGER_H +#endif //PROGRESSMANAGER_H diff --git a/src/plugins/coreplugin/progressmanager/progressmanagerinterface.h b/src/plugins/coreplugin/progressmanager/progressmanager_p.h similarity index 63% rename from src/plugins/coreplugin/progressmanager/progressmanagerinterface.h rename to src/plugins/coreplugin/progressmanager/progressmanager_p.h index 8bb55cc96dde77478941c9f3cd1bcb81a4edebd5..d173babda2aa0ad5a4ad6880e3685240102147c8 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanagerinterface.h +++ b/src/plugins/coreplugin/progressmanager/progressmanager_p.h @@ -31,33 +31,44 @@ ** ***************************************************************************/ -#ifndef PROGRESSMANAGERINTERFACE_H -#define PROGRESSMANAGERINTERFACE_H +#ifndef PROGRESSMANAGER_P_H +#define PROGRESSMANAGER_P_H -#include <coreplugin/core_global.h> -#include <coreplugin/progressmanager/futureprogress.h> +#include "progressmanager.h" -#include <QtCore/QObject> -#include <QtCore/QFuture> -#include <QtGui/QIcon> +#include <QtCore/QPointer> +#include <QtCore/QList> +#include <QtCore/QFutureWatcher> namespace Core { +namespace Internal { -class CORE_EXPORT ProgressManagerInterface : public QObject +class ProgressView; + +class ProgressManagerPrivate : public Core::ProgressManager { Q_OBJECT public: - enum PersistentType { CloseOnSuccess, KeepOnFinish }; + ProgressManagerPrivate(QObject *parent = 0); + ~ProgressManagerPrivate(); + void init(); - ProgressManagerInterface(QObject *parent = 0) : QObject(parent) {} - virtual ~ProgressManagerInterface() {} + FutureProgress *addTask(const QFuture<void> &future, const QString &title, const QString &type, PersistentType persistency); - virtual FutureProgress *addTask(const QFuture<void> &future, const QString &title, const QString &type, PersistentType persistency = KeepOnFinish) = 0; + QWidget *progressView(); public slots: - virtual void cancelTasks(const QString &type) = 0; + void cancelTasks(const QString &type); + +private slots: + void taskFinished(); + void cancelAllRunningTasks(); +private: + QPointer<ProgressView> m_progressView; + QMap<QFutureWatcher<void> *, QString> m_runningTasks; }; +} // namespace Internal } // namespace Core -#endif //PROGRESSMANAGERINTERFACE_H +#endif // PROGRESSMANAGER_P_H diff --git a/src/plugins/coreplugin/progressmanager/progressview.cpp b/src/plugins/coreplugin/progressmanager/progressview.cpp index a4e686d494b09bfaf1823cfd8900d9437eef8994..db17eb81449165f485feb13e39cd83a71c35f3e1 100644 --- a/src/plugins/coreplugin/progressmanager/progressview.cpp +++ b/src/plugins/coreplugin/progressmanager/progressview.cpp @@ -62,7 +62,7 @@ ProgressView::~ProgressView() FutureProgress *ProgressView::addTask(const QFuture<void> &future, const QString &title, const QString &type, - ProgressManagerInterface::PersistentType persistency) + ProgressManager::PersistentType persistency) { removeOldTasks(type); if (m_taskList.size() == 3) @@ -73,7 +73,7 @@ FutureProgress *ProgressView::addTask(const QFuture<void> &future, m_layout->insertWidget(0, progress); m_taskList.append(progress); m_type.insert(progress, type); - m_keep.insert(progress, (persistency == ProgressManagerInterface::KeepOnFinish)); + m_keep.insert(progress, (persistency == ProgressManager::KeepOnFinish)); connect(progress, SIGNAL(finished()), this, SLOT(slotFinished())); return progress; } diff --git a/src/plugins/coreplugin/progressmanager/progressview.h b/src/plugins/coreplugin/progressmanager/progressview.h index 455362009cfeccb980b080a05a3a94599fa02f74..4aa04d6da1c9e272cfa66e9f4d555a77996161d2 100644 --- a/src/plugins/coreplugin/progressmanager/progressview.h +++ b/src/plugins/coreplugin/progressmanager/progressview.h @@ -34,7 +34,7 @@ #ifndef PROGRESSVIEW_H #define PROGRESSVIEW_H -#include "progressmanagerinterface.h" +#include "progressmanager.h" #include <QtCore/QFuture> #include <QtGui/QWidget> @@ -59,7 +59,7 @@ public: FutureProgress *addTask(const QFuture<void> &future, const QString &title, const QString &type, - ProgressManagerInterface::PersistentType persistency); + ProgressManager::PersistentType persistency); private slots: void slotFinished(); diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp index 17887450d9bc5fe1fba312ffecb9252d9d0b5475..8d4299a9f9edee7d462ecaff57a03f4a6692074d 100644 --- a/src/plugins/coreplugin/sidebar.cpp +++ b/src/plugins/coreplugin/sidebar.cpp @@ -35,7 +35,7 @@ #include "imode.h" #include "modemanager.h" -#include "actionmanager/actionmanagerinterface.h" +#include "actionmanager/actionmanager.h" #include <QtCore/QDebug> #include <QtCore/QEvent> diff --git a/src/plugins/coreplugin/viewmanager.cpp b/src/plugins/coreplugin/viewmanager.cpp index 5032d45b4d486a2964a26d5ee153d8f556fc6c4e..400f3d551830ebb330e081237d5ada7ce328c10a 100644 --- a/src/plugins/coreplugin/viewmanager.cpp +++ b/src/plugins/coreplugin/viewmanager.cpp @@ -38,7 +38,7 @@ #include "uniqueidmanager.h" #include "iview.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/icommand.h> #include <extensionsystem/ExtensionSystemInterfaces> #include <aggregation/aggregate.h> diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp index 548c48be7d3fd1b1e7e059867c488476a6eefd9c..ba56ad542af5f7cec927b68b0a78ba10ae7a8b54 100644 --- a/src/plugins/cpaster/cpasterplugin.cpp +++ b/src/plugins/cpaster/cpasterplugin.cpp @@ -43,7 +43,7 @@ #include <coreplugin/filemanager.h> #include <coreplugin/messagemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <texteditor/itexteditor.h> #include <coreplugin/messageoutputwindow.h> @@ -95,7 +95,7 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *error_m addObject(m_settingsPage); //register actions - Core::ActionManagerInterface *actionManager = gCoreInstance->actionManager(); + Core::ActionManager *actionManager = gCoreInstance->actionManager(); Core::IActionContainer *toolsContainer = actionManager->actionContainer(Core::Constants::M_TOOLS); diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 1eb298aa3780571abe1d91afbbc85bd926aa09ac..a5de130a7affe386f890cbdb48e395002e49cb54 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -55,7 +55,7 @@ #include <coreplugin/icore.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/ieditor.h> #include <coreplugin/editormanager/editormanager.h> #include <projectexplorer/projectexplorerconstants.h> diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp index c30bc97f29d7d77c2ba1d94eca5de145d72e2bf2..ccb1a87ec12fba3f02845772db2b2a3fe15e9cf2 100644 --- a/src/plugins/cppeditor/cppplugin.cpp +++ b/src/plugins/cppeditor/cppplugin.cpp @@ -44,7 +44,7 @@ #include <coreplugin/mimedatabase.h> #include <coreplugin/uniqueidmanager.h> #include <coreplugin/fileiconprovider.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/icommand.h> #include <coreplugin/editormanager/editormanager.h> #include <texteditor/completionsupport.h> @@ -194,7 +194,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess QList<int> context; context << m_core->uniqueIDManager()->uniqueIdentifier(CppEditor::Constants::C_CPPEDITOR); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); am->createMenu(CppEditor::Constants::M_CONTEXT); Core::ICommand *cmd; diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index df611294751d5e2d5dab55339751a675035273bc..f190fcaa7c4c235f81694f413ad98a1304929ca7 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -606,7 +606,7 @@ QFuture<void> CppModelManager::refreshSourceFiles(const QStringList &sourceFiles if (sourceFiles.count() > 1) { m_core->progressManager()->addTask(result, tr("Indexing"), CppTools::Constants::TASK_INDEX, - Core::ProgressManagerInterface::CloseOnSuccess); + Core::ProgressManager::CloseOnSuccess); } return result; } diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 866a3d05c9460e2ced1d283ba86ea0707f470edf..a8b4366bab8179e7cad65368e6e6d818062d66e7 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -45,7 +45,7 @@ #include <coreplugin/mimedatabase.h> #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <cppeditor/cppeditorconstants.h> @@ -81,7 +81,7 @@ CppToolsPlugin::~CppToolsPlugin() bool CppToolsPlugin::initialize(const QStringList & /*arguments*/, QString *) { m_core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); // Objects m_modelManager = new CppModelManager(this); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index d65f9ac9acd8f1831b5ae37fb98e34be50295b02..401bafad7f14a15f80959e2ce0437fb310ffd857 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -40,7 +40,7 @@ #include "gdbengine.h" #include "mode.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> @@ -227,7 +227,7 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *error_mes ICore *core = m_pm->getObject<Core::ICore>(); QTC_ASSERT(core, return false); - Core::ActionManagerInterface *actionManager = core->actionManager(); + Core::ActionManager *actionManager = core->actionManager(); QTC_ASSERT(actionManager, return false); Core::UniqueIDManager *uidm = core->uniqueIDManager(); diff --git a/src/plugins/debugger/mode.cpp b/src/plugins/debugger/mode.cpp index 4499414858306e24ce626fda72518dd0f7946394..fdb94ea18758302aeb85309275a17e49823c6192 100644 --- a/src/plugins/debugger/mode.cpp +++ b/src/plugins/debugger/mode.cpp @@ -40,7 +40,7 @@ #include <coreplugin/icore.h> #include <coreplugin/modemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/minisplitter.h> #include <coreplugin/findplaceholder.h> @@ -151,7 +151,7 @@ QToolBar *DebugMode::createToolBar() IDebuggerManagerAccessForDebugMode *managerAccess = m_manager->debugModeInterface(); - Core::ActionManagerInterface *am = + Core::ActionManager *am = ExtensionSystem::PluginManager::instance() ->getObject<Core::ICore>()->actionManager(); QToolBar *debugToolBar = new QToolBar; diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp index 59e64c4cf9a82d993b7c35dd7c4070dfa68be93b..d7f176d6e1c88570ce311f27dd78337bcbbcb3fa 100644 --- a/src/plugins/designer/formeditorw.cpp +++ b/src/plugins/designer/formeditorw.cpp @@ -41,7 +41,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <utils/qtcassert.h> @@ -99,7 +99,7 @@ static inline QIcon designerIcon(const QString &iconName) // Create an action to activate a designer tool static inline QAction *createEditModeAction(QActionGroup *ag, const QList<int> &context, - Core::ActionManagerInterface *am, + Core::ActionManager *am, Core::IActionContainer *medit, const QString &actionName, const QString &name, @@ -124,7 +124,7 @@ static inline QAction *createEditModeAction(QActionGroup *ag, // Create a menu separato static inline QAction * createSeparator(QObject *parent, - Core::ActionManagerInterface *am, + Core::ActionManager *am, const QList<int> &context, Core::IActionContainer *container, const QString &name = QString(), @@ -139,7 +139,7 @@ static inline QAction * createSeparator(QObject *parent, // Create a tool action static inline void addToolAction(QAction *a, - Core::ActionManagerInterface *am, + Core::ActionManager *am, const QList<int> &context, const QString &name, Core::IActionContainer *c1, @@ -305,7 +305,7 @@ void FormEditorW::deleteInstance() void FormEditorW::setupActions() { - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); Core::ICommand *command; //menus @@ -443,7 +443,7 @@ QToolBar *FormEditorW::createEditorToolBar() const { QToolBar *rc = new QToolBar; rc->addSeparator(); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); const QStringList::const_iterator cend = m_toolActionIds.constEnd(); for (QStringList::const_iterator it = m_toolActionIds.constBegin(); it != cend; ++it) { Core::ICommand *cmd = am->command(*it); @@ -457,7 +457,7 @@ QToolBar *FormEditorW::createEditorToolBar() const return rc; } -Core::IActionContainer *FormEditorW::createPreviewStyleMenu(Core::ActionManagerInterface *am, +Core::IActionContainer *FormEditorW::createPreviewStyleMenu(Core::ActionManager *am, QActionGroup *actionGroup) { const QString menuId = QLatin1String(M_FORMEDITOR_PREVIEW); diff --git a/src/plugins/designer/formeditorw.h b/src/plugins/designer/formeditorw.h index 0e36ff3b9ffb55a51051e60162888230d7dc5fc6..164c985a3f105801a660b3bb803876ebaa2b7b02 100644 --- a/src/plugins/designer/formeditorw.h +++ b/src/plugins/designer/formeditorw.h @@ -65,7 +65,7 @@ namespace qdesigner_internal { QT_END_NAMESPACE namespace Core { -class ActionManagerInterface; +class ActionManager; class IActionContainer; class ICore; class IEditor; @@ -142,7 +142,7 @@ private: typedef QList<FormWindowEditor *> EditorList; void setupActions(); - Core::IActionContainer *createPreviewStyleMenu(Core::ActionManagerInterface *am, + Core::IActionContainer *createPreviewStyleMenu(Core::ActionManager *am, QActionGroup *actionGroup); void critical(const QString &errorMessage); diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 15e69b3c8faeebf951e501179701f0a08d6edd25..07557d55c2135fd461fc69436400298c57cdc3e2 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -36,7 +36,7 @@ #include "fakevimconstants.h" #include "fakevimhandler.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> @@ -116,7 +116,7 @@ bool FakeVimPlugin::initialize(const QStringList &arguments, QString *error_mess m_core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); QTC_ASSERT(m_core, return false); - Core::ActionManagerInterface *actionManager = m_core->actionManager(); + Core::ActionManager *actionManager = m_core->actionManager(); QTC_ASSERT(actionManager, return false); QList<int> globalcontext; diff --git a/src/plugins/find/findplugin.cpp b/src/plugins/find/findplugin.cpp index 0bf2ec4fdb929487f2e600807c6075eaef1a070c..a61e22df48908a0e564e25137ee80c6fc8ef3ba2 100644 --- a/src/plugins/find/findplugin.cpp +++ b/src/plugins/find/findplugin.cpp @@ -38,7 +38,7 @@ #include "findtoolwindow.h" #include "searchresultwindow.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/iactioncontainer.h> #include <coreplugin/actionmanager/icommand.h> #include <coreplugin/coreconstants.h> @@ -126,7 +126,7 @@ void FindPlugin::openFindFilter() void FindPlugin::setupMenu() { - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); Core::IActionContainer *medit = am->actionContainer(Core::Constants::M_EDIT); Core::IActionContainer *mfind = am->createMenu(Constants::M_FIND); medit->addMenu(mfind, Core::Constants::G_EDIT_FIND); @@ -149,7 +149,7 @@ void FindPlugin::setupMenu() void FindPlugin::setupFilterMenuItems() { - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); QList<IFindFilter*> findInterfaces = ExtensionSystem::PluginManager::instance()->getObjects<IFindFilter>(); Core::ICommand *cmd; diff --git a/src/plugins/find/findtoolbar.cpp b/src/plugins/find/findtoolbar.cpp index edfb5015baaa1ac5a85e23471c71354264e66e0a..359b4a4e9c79bb100350fdb80c6bf87ff5318870 100644 --- a/src/plugins/find/findtoolbar.cpp +++ b/src/plugins/find/findtoolbar.cpp @@ -37,7 +37,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/findplaceholder.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/iactioncontainer.h> #include <coreplugin/actionmanager/icommand.h> @@ -138,7 +138,7 @@ FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumen QList<int> globalcontext; globalcontext << Core::Constants::C_GLOBAL_ID; - Core::ActionManagerInterface *am = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>()->actionManager(); + Core::ActionManager *am = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>()->actionManager(); Core::IActionContainer *mfind = am->actionContainer(Constants::M_FIND); Core::ICommand *cmd; diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 5ae6d0b7dac1bb5bf0fe86d5af041055772c7482..0886d1336a657745df89bd8c66939377b307ffdf 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -38,12 +38,12 @@ #include "gitplugin.h" #include "gitsubmiteditor.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/icore.h> #include <coreplugin/messagemanager.h> -#include <coreplugin/progressmanager/progressmanagerinterface.h> +#include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/uniqueidmanager.h> #include <texteditor/itexteditor.h> #include <utils/qtcassert.h> @@ -999,7 +999,7 @@ void GitCommand::execute(const QStringList &arguments, Core::ICore *core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); core->progressManager()->addTask(task, taskName , QLatin1String("Git.action") - , Core::ProgressManagerInterface::CloseOnSuccess); + , Core::ProgressManager::CloseOnSuccess); } void GitCommand::run(const QStringList &arguments, diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 50214c7c3542f0b37c1e03ab75310a0a5415316a..159249760129369590c7eb4ee97855eb2b05a5e6 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -47,7 +47,7 @@ #include <coreplugin/filemanager.h> #include <coreplugin/messagemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <utils/qtcassert.h> @@ -210,14 +210,10 @@ GitPlugin *GitPlugin::instance() static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = { Git::Constants::SUBMIT_MIMETYPE, Git::Constants::GITSUBMITEDITOR_KIND, - Git::Constants::C_GITSUBMITEDITOR, - Core::Constants::UNDO, - Core::Constants::REDO, - Git::Constants::SUBMIT_CURRENT, - Git::Constants::DIFF_SELECTED + Git::Constants::C_GITSUBMITEDITOR }; -static Core::ICommand *createSeparator(Core::ActionManagerInterface *am, +static Core::ICommand *createSeparator(Core::ActionManager *am, const QList<int> &context, const QString &id, QObject *parent) @@ -267,7 +263,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *error_message) addObject(m_versionControl); //register actions - Core::ActionManagerInterface *actionManager = m_core->actionManager(); + Core::ActionManager *actionManager = m_core->actionManager(); Core::IActionContainer *toolsContainer = actionManager->actionContainer(Core::Constants::M_TOOLS); @@ -640,10 +636,7 @@ Core::IEditor *GitPlugin::openSubmitEditor(const QString &fileName, const Commit QTC_ASSERT(submitEditor, return 0); // The actions are for some reason enabled by the context switching // mechanism. Disable them correctly. - m_submitCurrentAction->setEnabled(!cd.stagedFiles.empty()); - m_diffSelectedFilesAction->setEnabled(false); - m_undoAction->setEnabled(false); - m_redoAction->setEnabled(false); + submitEditor->registerActions(m_undoAction, m_redoAction, m_submitCurrentAction, m_diffSelectedFilesAction); submitEditor->setCommitData(cd); connect(submitEditor, SIGNAL(diffStaged(QStringList)), this, SLOT(submitEditorDiffStaged(QStringList))); connect(submitEditor, SIGNAL(diffUnstaged(QStringList)), this, SLOT(submitEditorDiffUnstaged(QStringList))); diff --git a/src/plugins/helloworld/helloworldplugin.cpp b/src/plugins/helloworld/helloworldplugin.cpp index a8eb79c051914076687af58b9f659b58a648bb79..e4e93bd82bc313b183fc45199791a34b56a38f80 100644 --- a/src/plugins/helloworld/helloworldplugin.cpp +++ b/src/plugins/helloworld/helloworldplugin.cpp @@ -91,7 +91,7 @@ bool HelloWorldPlugin::initialize(const QStringList &arguments, QString *error_m connect(helloWorldAction, SIGNAL(triggered()), SLOT(sayHelloWorld())); // Register the action with the action manager - Core::ActionManagerInterface *actionManager = core->actionManager(); + Core::ActionManager *actionManager = core->actionManager(); Core::ICommand *command = actionManager->registerAction( helloWorldAction, "HelloWorld.HelloWorldAction", context); diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index 3ed3263478d36ec732d984170715cf3d84c688f7..a5854d27e54e79c150beef2f03964c39c1051681 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -49,7 +49,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/modemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/minisplitter.h> #include <coreplugin/modemanager.h> #include <coreplugin/rightpane.h> @@ -165,7 +165,7 @@ bool HelpPlugin::initialize(const QStringList & /*arguments*/, QString *) connect(m_bookmarkWidget, SIGNAL(addBookmark()), this, SLOT(addBookmark())); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); Core::ICommand *cmd; // Add Home, Previous and Next actions (used in the toolbar) @@ -607,7 +607,7 @@ void HelpPlugin::activateSearch() QToolBar *HelpPlugin::createToolBar() { QToolBar *toolWidget = new QToolBar; - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); toolWidget->addAction(am->command(QLatin1String("Help.Home"))->action()); toolWidget->addAction(am->command(QLatin1String("Help.Previous"))->action()); toolWidget->addAction(am->command(QLatin1String("Help.Next"))->action()); diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index aa4b0a4fa4841f82e734a245067294ef6dde6d69..ac916b4831aa5b007af73d24f0832fb1e2c08cd2 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -43,7 +43,7 @@ #include "perforceversioncontrol.h" #include "settingspage.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/filemanager.h> @@ -179,11 +179,7 @@ PerforcePlugin::PerforcePlugin() : static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = { Perforce::Constants::SUBMIT_MIMETYPE, Perforce::Constants::PERFORCESUBMITEDITOR_KIND, - Perforce::Constants::C_PERFORCESUBMITEDITOR, - Core::Constants::UNDO, - Core::Constants::REDO, - Perforce::Constants::SUBMIT_CURRENT, - Perforce::Constants::DIFF_SELECTED + Perforce::Constants::C_PERFORCESUBMITEDITOR }; bool PerforcePlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) @@ -229,7 +225,7 @@ bool PerforcePlugin::initialize(const QStringList & /*arguments*/, QString *erro //register actions - Core::ActionManagerInterface *am = m_coreInstance->actionManager(); + Core::ActionManager *am = m_coreInstance->actionManager(); Core::IActionContainer *mtools = am->actionContainer(Core::Constants::M_TOOLS); @@ -558,12 +554,8 @@ Core::IEditor *PerforcePlugin::openPerforceSubmitEditor(const QString &fileName, PerforceSubmitEditor *submitEditor = dynamic_cast<PerforceSubmitEditor*>(editor); QTC_ASSERT(submitEditor, return 0); submitEditor->restrictToProjectFiles(depotFileNames); + submitEditor->registerActions(m_undoAction, m_redoAction, m_submitCurrentLogAction, m_diffSelectedFiles); connect(submitEditor, SIGNAL(diffSelectedFiles(QStringList)), this, SLOT(slotDiff(QStringList))); - // The actions are for some reason enabled by the context switching - // mechanism. Disable them correctly. - m_diffSelectedFiles->setEnabled(false); - m_undoAction->setEnabled(false); - m_redoAction->setEnabled(false); return editor; } diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 72eb1766f11f24661d25671d53c2a4ae06995c97..5338865f504bf35059c9c4a6b89434217d456d8c 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -40,7 +40,7 @@ #include "projectexplorer.h" #include "taskwindow.h" -#include <coreplugin/progressmanager/progressmanagerinterface.h> +#include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/progressmanager/futureprogress.h> #include <extensionsystem/pluginmanager.h> #include <utils/qtcassert.h> @@ -178,7 +178,7 @@ void BuildManager::startBuildQueue() { if (!m_running) { // Progress Reporting - Core::ProgressManagerInterface *progressManager = + Core::ProgressManager *progressManager = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>()->progressManager(); m_progressFutureInterface = new QFutureInterface<void>; m_progressWatcher.setFuture(m_progressFutureInterface->future()); diff --git a/src/plugins/projectexplorer/outputwindow.cpp b/src/plugins/projectexplorer/outputwindow.cpp index 597a6daba6ee7c2266d38c96b29b75668dda7fdc..af396124b5070870cd9fc4a9051e130f18c78262 100644 --- a/src/plugins/projectexplorer/outputwindow.cpp +++ b/src/plugins/projectexplorer/outputwindow.cpp @@ -35,7 +35,7 @@ #include "projectexplorerconstants.h" #include "runconfiguration.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/icore.h> #include <find/basetextfind.h> @@ -78,7 +78,7 @@ OutputPane::OutputPane(Core::ICore *core) this, SLOT(reRunRunControl())); // Stop - Core::ActionManagerInterface *am = core->actionManager(); + Core::ActionManager *am = core->actionManager(); QList<int> globalcontext; globalcontext.append(Core::Constants::C_GLOBAL_ID); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 3548023d641f3448fc44af02d09830892714a224..081b57b941a23701ccc75e8b57a3845894516fc6 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -66,7 +66,7 @@ #include <coreplugin/filemanager.h> #include <coreplugin/modemanager.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/ieditor.h> #include <coreplugin/editormanager/ieditorfactory.h> @@ -155,7 +155,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList & /*arguments*/, QStrin { ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance(); m_core = pm->getObject<Core::ICore>(); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); addObject(this); diff --git a/src/plugins/projectexplorer/session.cpp b/src/plugins/projectexplorer/session.cpp index c8fdaf50c98085aa204198b05111e9ed268b45e0..42f967c762e928ec96332679fec1536540325db4 100644 --- a/src/plugins/projectexplorer/session.cpp +++ b/src/plugins/projectexplorer/session.cpp @@ -45,7 +45,7 @@ #include <coreplugin/filemanager.h> #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/ieditor.h> -#include <coreplugin/progressmanager/progressmanagerinterface.h> +#include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/modemanager.h> #include <texteditor/itexteditor.h> @@ -161,7 +161,7 @@ bool SessionFile::load(const QString &fileName) m_core->progressManager()->addTask(future.future(), tr("Session"), QLatin1String("ProjectExplorer.SessionFile.Load"), - Core::ProgressManagerInterface::CloseOnSuccess); + Core::ProgressManager::CloseOnSuccess); const QStringList &keys = reader.restoreValue(QLatin1String("valueKeys")).toStringList(); foreach (const QString &key, keys) { diff --git a/src/plugins/qhelpproject/qhelpprojectmanager.cpp b/src/plugins/qhelpproject/qhelpprojectmanager.cpp index 88870e675e0b5e136ddd484c5b56dd35acfe1850..34d7cf7674cdc2faca54f185d8614af7a2a418bb 100644 --- a/src/plugins/qhelpproject/qhelpprojectmanager.cpp +++ b/src/plugins/qhelpproject/qhelpprojectmanager.cpp @@ -52,7 +52,7 @@ bool QHelpProjectManager::init(ExtensionSystem::PluginManager *pm, QString *erro { m_pm = pm; m_core = m_pm->interface<QWorkbench::ICore>(); - QWorkbench::ActionManagerInterface *am = m_core->actionManager(); + QWorkbench::ActionManager *am = m_core->actionManager(); m_projectContext = m_core->uniqueIDManager()-> uniqueIdentifier(QLatin1String("QHelpProject")); diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp index debb89dae447d23d8f0aba962afc127251c53835..9e246cf109525d1a58771e63e8a2210242656991 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp @@ -52,7 +52,7 @@ #include <projectexplorer/projectnodes.h> #include <coreplugin/uniqueidmanager.h> #include <coreplugin/mimedatabase.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <texteditor/texteditoractionhandler.h> #include <QtCore/qplugin.h> @@ -82,7 +82,7 @@ Qt4ProjectManagerPlugin::~Qt4ProjectManagerPlugin() delete m_qt4ProjectManager; } /* -static Core::ICommand *createSeparator(Core::ActionManagerInterface *am, +static Core::ICommand *createSeparator(Core::ActionManager *am, QObject *parent, const QString &name, const QList<int> &context) @@ -100,7 +100,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList & /*arguments*/, QStr m_projectExplorer = m_core->pluginManager()->getObject<ProjectExplorer::ProjectExplorerPlugin>(); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); //create and register objects m_qt4ProjectManager = new Qt4Manager(this, m_core); diff --git a/src/plugins/qtscripteditor/qtscripteditor.cpp b/src/plugins/qtscripteditor/qtscripteditor.cpp index 39ba4f0d9426d1fa7b76792f2255dc7eda52fba3..d471583a8011026600415054adba3baef9813187 100644 --- a/src/plugins/qtscripteditor/qtscripteditor.cpp +++ b/src/plugins/qtscripteditor/qtscripteditor.cpp @@ -39,7 +39,7 @@ #include <indenter.h> #include <coreplugin/icore.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <texteditor/basetextdocument.h> #include <texteditor/fontsettings.h> #include <texteditor/textblockiterator.h> diff --git a/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp b/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp index f51d8a8329e29a558ea4f3fa73790eb7cb204b98..0ed9105c181fe2b7d1ad84e4408a45f42356154b 100644 --- a/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp +++ b/src/plugins/qtscripteditor/qtscripteditoractionhandler.cpp @@ -35,7 +35,7 @@ #include "qtscripteditorconstants.h" #include "qtscripteditor.h" -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/scriptmanager/scriptmanagerinterface.h> #include <QtGui/QAction> diff --git a/src/plugins/qtscripteditor/qtscripteditorplugin.cpp b/src/plugins/qtscripteditor/qtscripteditorplugin.cpp index d03692b9d6d3d6b453382908c358889fad591b59..2c14ccd713c14c7139571d4942c62ab2d9dc4292 100644 --- a/src/plugins/qtscripteditor/qtscripteditorplugin.cpp +++ b/src/plugins/qtscripteditor/qtscripteditorplugin.cpp @@ -42,7 +42,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/mimedatabase.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <texteditor/fontsettings.h> #include <texteditor/storagesettings.h> #include <texteditor/texteditorconstants.h> @@ -131,7 +131,7 @@ void QtScriptEditorPlugin::initializeEditor(QtScriptEditor::Internal::ScriptEdit void QtScriptEditorPlugin::registerActions(Core::ICore *core) { - Core::ActionManagerInterface *am = core->actionManager(); + Core::ActionManager *am = core->actionManager(); Core::IActionContainer *mcontext = am->createMenu(QtScriptEditor::Constants::M_CONTEXT); QAction *action = new QAction(this); diff --git a/src/plugins/quickopen/quickopenplugin.cpp b/src/plugins/quickopen/quickopenplugin.cpp index d38502815dee1a50cae6e678e32549e4ad97db62..6eedeee68f5b2ff20da93d362f6ad19329083965 100644 --- a/src/plugins/quickopen/quickopenplugin.cpp +++ b/src/plugins/quickopen/quickopenplugin.cpp @@ -48,7 +48,7 @@ #include <coreplugin/baseview.h> #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/progressmanager/progressmanagerinterface.h> +#include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/actionmanager/actionmanager.h> #include <qtconcurrent/QtConcurrentTools> @@ -246,7 +246,7 @@ void QuickOpenPlugin::refresh(QList<IQuickOpenFilter*> filters) filters = m_filter; QFuture<void> task = QtConcurrent::run(&IQuickOpenFilter::refresh, filters); Core::FutureProgress *progress = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>() - ->progressManager()->addTask(task, tr("Indexing"), Constants::TASK_INDEX, Core::ProgressManagerInterface::CloseOnSuccess); + ->progressManager()->addTask(task, tr("Indexing"), Constants::TASK_INDEX, Core::ProgressManager::CloseOnSuccess); connect(progress, SIGNAL(finished()), this, SLOT(saveSettings())); } diff --git a/src/plugins/resourceeditor/resourceeditorplugin.cpp b/src/plugins/resourceeditor/resourceeditorplugin.cpp index 2d8c3370bf09dfb1274165248eba95cbc0cc39ba..382297d1a8e24181e6a8f5099c1f929e8d700227 100644 --- a/src/plugins/resourceeditor/resourceeditorplugin.cpp +++ b/src/plugins/resourceeditor/resourceeditorplugin.cpp @@ -42,7 +42,7 @@ #include <coreplugin/mimedatabase.h> #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <utils/qtcassert.h> @@ -88,7 +88,7 @@ bool ResourceEditorPlugin::initialize(const QStringList & /*arguments*/, QString error_message->clear(); // Register undo and redo - Core::ActionManagerInterface * const actionManager = m_core->actionManager(); + Core::ActionManager * const actionManager = m_core->actionManager(); int const pluginId = m_core->uniqueIDManager()->uniqueIdentifier( Constants::C_RESOURCEEDITOR); QList<int> const idList = QList<int>() << pluginId; diff --git a/src/plugins/snippets/snippetsplugin.cpp b/src/plugins/snippets/snippetsplugin.cpp index d46e773b7327cbae5409ac8eb3df5099fcb799db..f0ad500ce6ec00f61eccd9540427e8d7b4912cf6 100644 --- a/src/plugins/snippets/snippetsplugin.cpp +++ b/src/plugins/snippets/snippetsplugin.cpp @@ -72,7 +72,7 @@ void SnippetsPlugin::extensionsInitialized() bool SnippetsPlugin::initialize(const QStringList & /*arguments*/, QString *) { m_core = ExtensionSystem::PluginManager::instance()->getObject<Core::ICore>(); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); QList<int> context; context << m_core->uniqueIDManager()->uniqueIdentifier(TextEditor::Constants::C_TEXTEDITOR); diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 36182eb94a0474badab795228e9e90c717a3c6be..3f1f1ec0c5f51427225cde7fde5a08a8e3afcf02 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -53,7 +53,7 @@ #include <coreplugin/messagemanager.h> #include <coreplugin/mimedatabase.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <projectexplorer/ProjectExplorerInterfaces> #include <utils/qtcassert.h> @@ -245,11 +245,7 @@ void SubversionPlugin::cleanChangeTmpFile() static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = { Subversion::Constants::SUBVERSION_SUBMIT_MIMETYPE, Subversion::Constants::SUBVERSIONCOMMITEDITOR_KIND, - Subversion::Constants::SUBVERSIONCOMMITEDITOR, - Core::Constants::UNDO, - Core::Constants::REDO, - Subversion::Constants::SUBMIT_CURRENT, - Subversion::Constants::DIFF_SELECTED + Subversion::Constants::SUBVERSIONCOMMITEDITOR }; bool SubversionPlugin::initialize(const QStringList & /*arguments*/, QString *errorMessage) @@ -293,7 +289,7 @@ bool SubversionPlugin::initialize(const QStringList & /*arguments*/, QString *er addObject(m_subversionOutputWindow); //register actions - Core::ActionManagerInterface *ami = m_coreInstance->actionManager(); + Core::ActionManager *ami = m_coreInstance->actionManager(); Core::IActionContainer *toolsContainer = ami->actionContainer(M_TOOLS); Core::IActionContainer *subversionMenu = @@ -529,11 +525,7 @@ SubversionSubmitEditor *SubversionPlugin::openSubversionSubmitEditor(const QStri Core::IEditor *editor = m_coreInstance->editorManager()->openEditor(fileName, QLatin1String(Constants::SUBVERSIONCOMMITEDITOR_KIND)); SubversionSubmitEditor *submitEditor = qobject_cast<SubversionSubmitEditor*>(editor); QTC_ASSERT(submitEditor, /**/); - // The actions are for some reason enabled by the context switching - // mechanism. Disable them correctly. - m_submitDiffAction->setEnabled(false); - m_submitUndoAction->setEnabled(false); - m_submitRedoAction->setEnabled(false); + submitEditor->registerActions(m_submitUndoAction, m_submitRedoAction, m_submitCurrentLogAction, m_submitDiffAction); connect(submitEditor, SIGNAL(diffSelectedFiles(QStringList)), this, SLOT(diffFiles(QStringList))); return submitEditor; diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 60072084c7b9533124f6f04639010f8eabb6841c..01effb036dabc69c7ebeaf059b4f2d1392792f0b 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -34,7 +34,7 @@ #include "basefilefind.h" #include <coreplugin/stylehelper.h> -#include <coreplugin/progressmanager/progressmanagerinterface.h> +#include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <find/textfindconstants.h> #include <texteditor/itexteditor.h> diff --git a/src/plugins/texteditor/texteditoractionhandler.cpp b/src/plugins/texteditor/texteditoractionhandler.cpp index 12475d221b1cc98d02fba1aa8a245a472d41ef51..b9209d33abe4951a319cf28f41cfede38cf5ab7b 100644 --- a/src/plugins/texteditor/texteditoractionhandler.cpp +++ b/src/plugins/texteditor/texteditoractionhandler.cpp @@ -40,7 +40,7 @@ #include <quickopen/quickopenmanager.h> #include <coreplugin/coreconstants.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/editormanager/editormanager.h> #include <utils/qtcassert.h> @@ -111,7 +111,7 @@ void TextEditorActionHandler::createActions() m_gotoAction = registerNewAction(QLatin1String(Core::Constants::GOTO), this, SLOT(gotoAction())); m_printAction = registerNewAction(QLatin1String(Core::Constants::PRINT), this, SLOT(printAction())); - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); Core::IActionContainer *medit = am->actionContainer(Core::Constants::M_EDIT); Core::IActionContainer *advancedMenu = am->actionContainer(Core::Constants::M_EDIT_ADVANCED); diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp index 01a6ccdf95fa3137cd35e5b4d89c5806a9e08396..948a6f6ca45e54d4d5e1efeea032d735aaff5488 100644 --- a/src/plugins/texteditor/texteditorplugin.cpp +++ b/src/plugins/texteditor/texteditorplugin.cpp @@ -46,7 +46,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/mimedatabase.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/icommand.h> #include <coreplugin/editormanager/editormanager.h> #include <texteditor/texteditoractionhandler.h> @@ -120,7 +120,7 @@ bool TextEditorPlugin::initialize(const QStringList & /*arguments*/, QString *er int contextId = m_core->uniqueIDManager()->uniqueIdentifier(TextEditor::Constants::C_TEXTEDITOR); QList<int> context = QList<int>() << contextId; - Core::ActionManagerInterface *am = m_core->actionManager(); + Core::ActionManager *am = m_core->actionManager(); // Add shortcut for invoking automatic completion QShortcut *completionShortcut = new QShortcut(m_core->mainWindow()); diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp index 25fbce7634c63e8a6f206df75ef113bd91448039..2bb179a531e2c270cae9701c2a03c94a7b385e4e 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp @@ -37,7 +37,7 @@ #include <coreplugin/ifile.h> #include <coreplugin/icore.h> #include <coreplugin/uniqueidmanager.h> -#include <coreplugin/actionmanager/actionmanagerinterface.h> +#include <coreplugin/actionmanager/actionmanager.h> #include <utils/submiteditorwidget.h> #include <find/basetextfind.h> @@ -57,17 +57,6 @@ enum { debug = 0 }; enum { wantToolBar = 0 }; -static inline QAction *actionFromId(const Core::ICore *core, const char *id) -{ - QAction *rc = 0; - if (id) - if (const Core::ICommand *cmd = core->actionManager()->command(id)) - rc = cmd->action(); - if (debug) - qDebug() << Q_FUNC_INFO << id << rc; - return rc; -} - namespace VCSBase { struct VCSBaseSubmitEditorPrivate { @@ -83,10 +72,8 @@ struct VCSBaseSubmitEditorPrivate { VCSBase::Internal::SubmitEditorFile *m_file; QList<int> m_contexts; - QPointer<QAction> m_undoAction; - QPointer<QAction> m_redoAction; - QPointer<QAction> m_submitAction; QPointer<QAction> m_diffAction; + QPointer<QAction> m_submitAction; }; VCSBaseSubmitEditorPrivate::VCSBaseSubmitEditorPrivate(const VCSBaseSubmitEditorParameters *parameters, @@ -96,11 +83,7 @@ VCSBaseSubmitEditorPrivate::VCSBaseSubmitEditorPrivate(const VCSBaseSubmitEditor m_widget(editorWidget), m_toolWidget(0), m_parameters(parameters), - m_file(new VCSBase::Internal::SubmitEditorFile(QLatin1String(m_parameters->mimeType), q)), - m_undoAction(actionFromId(m_core, m_parameters->undoActionId)), - m_redoAction(actionFromId(m_core, m_parameters->redoActionId)), - m_submitAction(actionFromId(m_core, m_parameters->submitActionId)), - m_diffAction(actionFromId(m_core, m_parameters->diffActionId)) + m_file(new VCSBase::Internal::SubmitEditorFile(QLatin1String(m_parameters->mimeType), q)) { m_contexts << m_core->uniqueIDManager()->uniqueIdentifier(m_parameters->context); } @@ -113,7 +96,6 @@ VCSBaseSubmitEditor::VCSBaseSubmitEditor(const VCSBaseSubmitEditorParameters *pa // We are always clean to prevent the editor manager from asking to save. connect(m_d->m_file, SIGNAL(saveMe(QString)), this, SLOT(save(QString))); - m_d->m_widget->registerActions(m_d->m_undoAction, m_d->m_redoAction, m_d->m_submitAction, m_d->m_diffAction); connect(m_d->m_widget, SIGNAL(diffSelected(QStringList)), this, SLOT(slotDiffSelectedVCSFiles(QStringList))); connect(m_d->m_widget->descriptionEdit(), SIGNAL(textChanged()), this, SLOT(slotDescriptionChanged())); @@ -129,6 +111,20 @@ VCSBaseSubmitEditor::~VCSBaseSubmitEditor() delete m_d; } +void VCSBaseSubmitEditor::registerActions(QAction *editorUndoAction, QAction *editorRedoAction, + QAction *submitAction, QAction *diffAction)\ +{ + m_d->m_widget->registerActions(editorUndoAction, editorRedoAction, submitAction, diffAction); + m_d->m_diffAction = diffAction; + m_d->m_submitAction = submitAction; +} + +void VCSBaseSubmitEditor::unregisterActions(QAction *editorUndoAction, QAction *editorRedoAction, + QAction *submitAction, QAction *diffAction) +{ + m_d->m_widget->unregisterActions(editorUndoAction, editorRedoAction, submitAction, diffAction); + m_d->m_diffAction = m_d->m_submitAction = 0; +} int VCSBaseSubmitEditor::fileNameColumn() const { return m_d->m_widget->fileNameColumn(); diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.h b/src/plugins/vcsbase/vcsbasesubmiteditor.h index d3e9166b35fd0be98a7b158755e43812e1fe692d..a11d117f00bb0c1a40888bd4c15f4bf4ee6f68fe 100644 --- a/src/plugins/vcsbase/vcsbasesubmiteditor.h +++ b/src/plugins/vcsbase/vcsbasesubmiteditor.h @@ -44,6 +44,7 @@ QT_BEGIN_NAMESPACE class QIcon; class QAbstractItemModel; +class QAction; QT_END_NAMESPACE namespace Core { @@ -61,10 +62,6 @@ struct VCSBASE_EXPORT VCSBaseSubmitEditorParameters { const char *mimeType; const char *kind; const char *context; - const char *undoActionId; - const char *redoActionId; - const char *submitActionId; - const char *diffActionId; }; /* Base class for a submit editor based on the Core::Utils::SubmitEditorWidget @@ -86,7 +83,8 @@ struct VCSBASE_EXPORT VCSBaseSubmitEditorParameters { * signal and then asking the IFile interface of the editor to save the file * within a IFileManager::blockFileChange() section * and to launch the submit process. In addition, the action registered - * for submit should be connected to a slot triggering the close of the + * for submit sho src/libs/utils/submiteditorwidget.h +uld be connected to a slot triggering the close of the * current editor in the editor manager. */ class VCSBASE_EXPORT VCSBaseSubmitEditor : public Core::IEditor @@ -102,6 +100,12 @@ protected: Core::Utils::SubmitEditorWidget *editorWidget); public: + // Register the actions with the submit editor widget. + void registerActions(QAction *editorUndoAction, QAction *editorRedoAction, + QAction *submitAction = 0, QAction *diffAction = 0); + void unregisterActions(QAction *editorUndoAction, QAction *editorRedoAction, + QAction *submitAction = 0, QAction *diffAction = 0); + virtual ~VCSBaseSubmitEditor(); int fileNameColumn() const;