Make it possible to disable modes.

This commit is contained in:
con
2010-02-16 16:11:51 +01:00
parent 0ac0d532a6
commit 5864d9d751
5 changed files with 76 additions and 2 deletions

View File

@@ -140,6 +140,7 @@ void ModeManager::objectAdded(QObject *obj)
m_modes.insert(index, mode);
m_modeStack->insertTab(index, mode->widget(), mode->icon(), mode->displayName());
m_modeStack->setTabEnabled(index, mode->isEnabled());
// Register mode shortcut
ActionManager *am = m_mainWindow->actionManager();
@@ -165,6 +166,8 @@ void ModeManager::objectAdded(QObject *obj)
m_signalMapper->setMapping(shortcut, mode->id());
connect(shortcut, SIGNAL(activated()), m_signalMapper, SLOT(map()));
connect(mode, SIGNAL(enabledStateChanged(bool)),
this, SLOT(enabledStateChanged()));
}
void ModeManager::updateModeToolTip()
@@ -177,6 +180,15 @@ void ModeManager::updateModeToolTip()
}
}
void ModeManager::enabledStateChanged()
{
IMode *mode = qobject_cast<IMode *>(sender());
QTC_ASSERT(mode, return);
int index = m_modes.indexOf(mode);
QTC_ASSERT(index >= 0, return);
m_modeStack->setTabEnabled(index, mode->isEnabled());
}
void ModeManager::aboutToRemoveObject(QObject *obj)
{
IMode *mode = Aggregation::query<IMode>(obj);