Introduced a single convenient function for updating additional contexts

While before you had to call add, then remove for each context id and
then call update, now you call updateAdditionalContexts with a list of
contexts to remove and add. It has the update step built in.

Reviewed-by: con
This commit is contained in:
Thorbjørn Lindeijer
2010-03-22 18:05:22 +01:00
parent a3b7290f37
commit 510971d216
12 changed files with 54 additions and 106 deletions

View File

@@ -267,16 +267,10 @@ void DesignMode::updateContext(Core::IMode *newMode, Core::IMode *oldMode)
{
if (newMode == this) {
// Apply active context
Core::ICore *core = Core::ICore::instance();
foreach (int contextId, d->m_activeContext)
core->addAdditionalContext(contextId);
core->updateContext();
Core::ICore::instance()->updateAdditionalContexts(QList<int>(), d->m_activeContext);
} else if (oldMode == this) {
// Remove active context
Core::ICore *core = Core::ICore::instance();
foreach (int contextId, d->m_activeContext)
core->removeAdditionalContext(contextId);
core->updateContext();
Core::ICore::instance()->updateAdditionalContexts(d->m_activeContext, QList<int>());
}
}
@@ -285,15 +279,9 @@ void DesignMode::setActiveContext(const QList<int> &context)
if (d->m_activeContext == context)
return;
if (ModeManager::instance()->currentMode() == this) {
// Update active context
Core::ICore *core = Core::ICore::instance();
foreach (int contextId, d->m_activeContext)
core->removeAdditionalContext(contextId);
foreach (int contextId, context)
core->addAdditionalContext(contextId);
core->updateContext();
}
if (ModeManager::instance()->currentMode() == this)
Core::ICore::instance()->updateAdditionalContexts(d->m_activeContext, context);
d->m_activeContext = context;
}