diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp index 960d3e4246f5884dee0b479e76c609dacbb8311c..4b96a9880fe435cf49d5b1d93de5beaccdb76885 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp +++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp @@ -153,7 +153,7 @@ using namespace Core::Internal; */ ActionContainerPrivate::ActionContainerPrivate(int id) - : m_data(CS_None), m_id(id) + : m_data(0), m_id(id) { } @@ -168,16 +168,6 @@ bool ActionContainerPrivate::hasEmptyAction(EmptyAction ea) const return (m_data & EA_Mask) == ea; } -void ActionContainerPrivate::setState(ContainerState state) -{ - m_data |= state; -} - -bool ActionContainerPrivate::hasState(ContainerState state) const -{ - return (m_data & state); -} - void ActionContainerPrivate::appendGroup(const QString &group) { int gid = UniqueIDManager::instance()->uniqueIdentifier(group); @@ -198,26 +188,14 @@ void ActionContainerPrivate::addAction(Command *action, const QString &group) return; ActionManagerPrivate *am = ActionManagerPrivate::instance(); - Action *a = static_cast<Action *>(action); - if (a->stateFlags() & CommandPrivate::CS_PreLocation) { - QList<CommandLocation> locs = a->locations(); - for (int i=0; i<locs.size(); ++i) { - if (ActionContainer *aci = am->actionContainer(locs.at(i).m_container)) { - ActionContainerPrivate *ac = static_cast<ActionContainerPrivate *>(aci); - ac->addAction(action, locs.at(i).m_position, false); - } - } - a->setStateFlags(a->stateFlags() | CommandPrivate::CS_Initialized); - } else { - UniqueIDManager *idmanager = UniqueIDManager::instance(); - int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); - if (!group.isEmpty()) - grpid = idmanager->uniqueIdentifier(group); - if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) - qWarning() << "*** addAction(): Unknown group: " << group; - int pos = ((grpid << 16) | 0xFFFF); - addAction(action, pos, true); - } + UniqueIDManager *idmanager = UniqueIDManager::instance(); + int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); + if (!group.isEmpty()) + grpid = idmanager->uniqueIdentifier(group); + if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) + qWarning() << "*** addAction(): Unknown group: " << group; + int pos = ((grpid << 16) | 0xFFFF); + addAction(action, pos, true); } void ActionContainerPrivate::addMenu(ActionContainer *menu, const QString &group) @@ -227,24 +205,14 @@ void ActionContainerPrivate::addMenu(ActionContainer *menu, const QString &group return; ActionManagerPrivate *am = ActionManagerPrivate::instance(); - MenuActionContainer *mc = static_cast<MenuActionContainer *>(menu); - if (mc->hasState(ActionContainerPrivate::CS_PreLocation)) { - CommandLocation loc = mc->location(); - if (ActionContainer *aci = am->actionContainer(loc.m_container)) { - ActionContainerPrivate *ac = static_cast<ActionContainerPrivate *>(aci); - ac->addMenu(menu, loc.m_position, false); - } - mc->setState(ActionContainerPrivate::CS_Initialized); - } else { - UniqueIDManager *idmanager = UniqueIDManager::instance(); - int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); - if (!group.isEmpty()) - grpid = idmanager->uniqueIdentifier(group); - if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) - qWarning() << "*** addMenu(): Unknown group: " << group; - int pos = ((grpid << 16) | 0xFFFF); - addMenu(menu, pos, true); - } + UniqueIDManager *idmanager = UniqueIDManager::instance(); + int grpid = idmanager->uniqueIdentifier(Constants::G_DEFAULT_TWO); + if (!group.isEmpty()) + grpid = idmanager->uniqueIdentifier(group); + if (!m_groups.contains(grpid) && !am->defaultGroups().contains(grpid)) + qWarning() << "*** addMenu(): Unknown group: " << group; + int pos = ((grpid << 16) | 0xFFFF); + addMenu(menu, pos, true); } int ActionContainerPrivate::id() const @@ -264,14 +232,7 @@ QMenuBar *ActionContainerPrivate::menuBar() const bool ActionContainerPrivate::canAddAction(Command *action) const { - if (action->type() != Command::CT_OverridableAction) - return false; - - CommandPrivate *cmd = static_cast<CommandPrivate *>(action); - if (cmd->stateFlags() & CommandPrivate::CS_Initialized) - return false; - - return true; + return (action->action() != 0); } void ActionContainerPrivate::addAction(Command *action, int pos, bool setpos) @@ -444,9 +405,6 @@ bool MenuActionContainer::update() bool MenuActionContainer::canBeAddedToMenu() const { - if (hasState(ActionContainerPrivate::CS_Initialized)) - return false; - return true; } diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h index 5decc338fea6dae22b949acba525cd198bf8c3fe..441705f113b8b833109542938a2126f093227785 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer_p.h +++ b/src/plugins/coreplugin/actionmanager/actioncontainer_p.h @@ -41,22 +41,12 @@ namespace Internal { class ActionContainerPrivate : public Core::ActionContainer { public: - enum ContainerState { - CS_None = 0x000000, - CS_Initialized = 0x010000, - CS_PreLocation = 0x020000, - CS_UserDefined = 0x040000 - }; - ActionContainerPrivate(int id); virtual ~ActionContainerPrivate() {} void setEmptyAction(EmptyAction ea); bool hasEmptyAction(EmptyAction ea) const; - void setState(ContainerState state); - bool hasState(ContainerState state) const; - QAction *insertLocation(const QString &group) const; void appendGroup(const QString &group); void addAction(Command *action, const QString &group = QString()); diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp index ca8130d8ec14bd218d71bc3df06e42ee68346843..608956623e1379d0f14e7250174be0046721299b 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -335,13 +335,12 @@ Command *ActionManagerPrivate::registerOverridableAction(QAction *action, const OverrideableAction *a = 0; const int uid = UniqueIDManager::instance()->uniqueIdentifier(id); if (CommandPrivate *c = m_idCmdMap.value(uid, 0)) { - if (c->type() != Command::CT_OverridableAction) { + a = qobject_cast<OverrideableAction *>(c); + if (!a) { qWarning() << "registerAction: id" << id << "is registered with a different command type."; return c; } - a = static_cast<OverrideableAction *>(c); - } - if (!a) { + } else { a = new OverrideableAction(uid); m_idCmdMap.insert(uid, a); } @@ -381,11 +380,11 @@ Command *ActionManagerPrivate::registerShortcut(QShortcut *shortcut, const QStri Shortcut *sc = 0; int uid = UniqueIDManager::instance()->uniqueIdentifier(id); if (CommandPrivate *c = m_idCmdMap.value(uid, 0)) { - if (c->type() != Command::CT_Shortcut) { + sc = qobject_cast<Shortcut *>(c); + if (!sc) { qWarning() << "registerShortcut: id" << id << "is registered with a different command type."; return c; } - sc = static_cast<Shortcut *>(c); } else { sc = new Shortcut(uid); m_idCmdMap.insert(uid, sc); diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp index edd7b78190e2696aa347289ac6d5ab292ac8117a..9876c3fa8c375fff320799f77d8c23315bb5b700 100644 --- a/src/plugins/coreplugin/actionmanager/command.cpp +++ b/src/plugins/coreplugin/actionmanager/command.cpp @@ -41,10 +41,6 @@ */ -/*! - \enum Command::CommandType -*/ - /*! \enum Command::CommandAttribute */ @@ -57,10 +53,6 @@ \fn virtual int Command::id() const */ -/*! - \fn virtual CommandType Command::type() const -*/ - /*! \fn virtual QAction *Command::action() const */ @@ -97,21 +89,11 @@ using namespace Core::Internal; \internal */ -CommandPrivate::CommandPrivate(CommandType type, int id) - : m_type(type), m_id(id) +CommandPrivate::CommandPrivate(int id) + : m_attributes(0), m_id(id) { } -void CommandPrivate::setStateFlags(int state) -{ - m_type |= (state & CS_Mask); -} - -int CommandPrivate::stateFlags() const -{ - return (m_type & CS_Mask); -} - void CommandPrivate::setDefaultKeySequence(const QKeySequence &key) { m_defaultKey = key; @@ -137,11 +119,6 @@ int CommandPrivate::id() const return m_id; } -CommandPrivate::CommandType CommandPrivate::type() const -{ - return (CommandType)(m_type & CT_Mask); -} - QAction *CommandPrivate::action() const { return 0; @@ -154,17 +131,17 @@ QShortcut *CommandPrivate::shortcut() const void CommandPrivate::setAttribute(CommandAttribute attr) { - m_type |= attr; + m_attributes |= attr; } void CommandPrivate::removeAttribute(CommandAttribute attr) { - m_type &= ~attr; + m_attributes &= ~attr; } bool CommandPrivate::hasAttribute(CommandAttribute attr) const { - return (m_type & attr); + return (m_attributes & attr); } QString CommandPrivate::stringWithAppendedShortcut(const QString &str) const @@ -183,7 +160,7 @@ QString CommandPrivate::stringWithAppendedShortcut(const QString &str) const ... */ Shortcut::Shortcut(int id) - : CommandPrivate(CT_Shortcut, id), m_shortcut(0) + : CommandPrivate(id), m_shortcut(0) { } @@ -293,8 +270,8 @@ bool Shortcut::isActive() const /*! ... */ -Action::Action(CommandType type, int id) - : CommandPrivate(type, id), m_action(0) +Action::Action(int id) + : CommandPrivate(id), m_action(0) { } @@ -385,7 +362,7 @@ QKeySequence Action::keySequence() const ... */ OverrideableAction::OverrideableAction(int id) - : Action(CT_OverridableAction, id), m_currentAction(0), m_active(false), + : Action(id), m_currentAction(0), m_active(false), m_contextInitialized(false) { } diff --git a/src/plugins/coreplugin/actionmanager/command.h b/src/plugins/coreplugin/actionmanager/command.h index 792d39902611d1f9d15458d4812b39ec5462e890..b8e8a326555db5275a8bbc22f2c577175f9d5405 100644 --- a/src/plugins/coreplugin/actionmanager/command.h +++ b/src/plugins/coreplugin/actionmanager/command.h @@ -42,12 +42,6 @@ class CORE_EXPORT Command : public QObject { Q_OBJECT public: - enum CommandType { - CT_Shortcut = 0x0001, - CT_OverridableAction = 0x0002, - CT_Mask = 0x00FF - }; - enum CommandAttribute { CA_Hide = 0x0100, CA_UpdateText = 0x0200, @@ -64,7 +58,6 @@ public: virtual QString defaultText() const = 0; virtual int id() const = 0; - virtual CommandType type() const = 0; virtual QAction *action() const = 0; virtual QShortcut *shortcut() const = 0; diff --git a/src/plugins/coreplugin/actionmanager/command_p.h b/src/plugins/coreplugin/actionmanager/command_p.h index 4bbf261c0732a41d69988c20155339d84e9cf558..d0f59a03cca7e854391e57a015689329f83f75a8 100644 --- a/src/plugins/coreplugin/actionmanager/command_p.h +++ b/src/plugins/coreplugin/actionmanager/command_p.h @@ -45,19 +45,9 @@ class CommandPrivate : public Core::Command { Q_OBJECT public: - enum CommandState { - CS_PreLocation = 0x020000, - CS_LocationChanged = 0x040000, - CS_Initialized = 0x080000, - CS_Mask = 0xFF0000 - }; - - CommandPrivate(CommandType type, int id); + CommandPrivate(int id); virtual ~CommandPrivate() {} - void setStateFlags(int state); - int stateFlags() const; - virtual QString name() const = 0; void setDefaultKeySequence(const QKeySequence &key); @@ -67,7 +57,6 @@ public: QString defaultText() const; int id() const; - CommandType type() const; QAction *action() const; QShortcut *shortcut() const; @@ -82,7 +71,7 @@ public: protected: QString m_category; - int m_type; + int m_attributes; int m_id; QKeySequence m_defaultKey; QString m_defaultText; @@ -121,7 +110,7 @@ class Action : public CommandPrivate { Q_OBJECT public: - Action(CommandType type, int id); + Action(int id); QString name() const;