summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/debuggeruiswitcher.cpp
diff options
context:
space:
mode:
authorLasse Holmstedt <lasse.holmstedt@nokia.com>2010-08-24 17:17:54 +0200
committerLasse Holmstedt <lasse.holmstedt@nokia.com>2010-08-24 17:47:20 +0200
commit7afef49682bc2608fddd8a388ed0517b8e125f48 (patch)
treed627e7dd5332019f9d217c2147e2cdd6050ef627 /src/plugins/debugger/debuggeruiswitcher.cpp
parent290835300da4fc1733b3400f99b79f781c1f0f5f (diff)
downloadqt-creator-7afef49682bc2608fddd8a388ed0517b8e125f48.tar.gz
Qml Debugger: Code style and cleanup
Reviewed-by: hjk
Diffstat (limited to 'src/plugins/debugger/debuggeruiswitcher.cpp')
-rw-r--r--src/plugins/debugger/debuggeruiswitcher.cpp129
1 files changed, 74 insertions, 55 deletions
diff --git a/src/plugins/debugger/debuggeruiswitcher.cpp b/src/plugins/debugger/debuggeruiswitcher.cpp
index a6f7f7c4a2..5fecda9673 100644
--- a/src/plugins/debugger/debuggeruiswitcher.cpp
+++ b/src/plugins/debugger/debuggeruiswitcher.cpp
@@ -99,7 +99,7 @@ struct DebuggerUISwitcherPrivate
explicit DebuggerUISwitcherPrivate(DebuggerUISwitcher *q);
QList<ViewsMenuItems> m_viewsMenuItems;
- QList<Internal::DebugToolWindow *> m_dockWidgets;
+ QList<QDockWidget *> m_dockWidgets;
QHash<QString, QVariant> m_dockWidgetActiveStateCpp;
QHash<QString, QVariant> m_dockWidgetActiveStateQmlCpp;
@@ -141,15 +141,15 @@ struct DebuggerUISwitcherPrivate
DebuggerUISwitcherPrivate::DebuggerUISwitcherPrivate(DebuggerUISwitcher *q)
: m_resizeEventFilter(new Internal::DockWidgetEventFilter(q))
- , m_supportedLanguages(Lang_None)
+ , m_supportedLanguages(AnyLanguage)
, m_languageCount(0)
, m_toolbarStack(new QStackedWidget)
, m_languageActionGroup(new QActionGroup(q))
, m_inDebugMode(false)
, m_changingUI(false)
, m_debuggerLanguageMenu(0)
- , m_previousDebugLanguages(Lang_None)
- , m_activeDebugLanguages(Lang_None)
+ , m_previousDebugLanguages(AnyLanguage)
+ , m_activeDebugLanguages(AnyLanguage)
, m_activateCppAction(0)
, m_activateQmlAction(0)
, m_qmlEnabled(false)
@@ -189,8 +189,6 @@ DebuggerUISwitcher::DebuggerUISwitcher(Core::BaseMode *mode, QObject* parent) :
DebuggerUISwitcher::~DebuggerUISwitcher()
{
- qDeleteAll(d->m_dockWidgets);
- d->m_dockWidgets.clear();
DebuggerUISwitcherPrivate::m_instance = 0;
delete d;
}
@@ -257,17 +255,17 @@ void DebuggerUISwitcher::updateUiForRunConfiguration(ProjectExplorer::RunConfigu
void DebuggerUISwitcher::updateActiveLanguages()
{
- d->m_activeDebugLanguages = Lang_None;
+ d->m_activeDebugLanguages = AnyLanguage;
if (d->m_activateCppAction->isChecked())
- d->m_activeDebugLanguages = Lang_Cpp;
+ d->m_activeDebugLanguages = CppLanguage;
if (d->m_qmlEnabled && d->m_activateQmlAction->isChecked())
- d->m_activeDebugLanguages = d->m_activeDebugLanguages | Lang_Qml;
+ d->m_activeDebugLanguages |= QmlLanguage;
- if (d->m_activeDebugLanguages == Lang_None) {
+ if (d->m_activeDebugLanguages == AnyLanguage) {
d->m_activateCppAction->setChecked(true);
- d->m_activeDebugLanguages = Lang_Cpp;
+ d->m_activeDebugLanguages = CppLanguage;
}
emit activeLanguagesChanged(d->m_activeDebugLanguages);
@@ -304,14 +302,14 @@ void DebuggerUISwitcher::modeChanged(Core::IMode *mode)
Core::EditorManager *editorManager = Core::EditorManager::instance();
if (editorManager->currentEditor()) {
DebuggerLanguages activeLangs;
- if (DebuggerRunControl::isCurrentProjectCppBased())
- activeLangs |= Lang_Cpp;
+ if (isCurrentProjectCppBased())
+ activeLangs |= CppLanguage;
- if (DebuggerRunControl::isCurrentProjectQmlCppBased())
- activeLangs |= Lang_Qml;
+ if (isCurrentProjectQmlCppBased())
+ activeLangs |= QmlLanguage;
- d->m_activateCppAction->setChecked(activeLangs & Lang_Cpp);
- d->m_activateQmlAction->setChecked(activeLangs & Lang_Qml);
+ d->m_activateCppAction->setChecked(activeLangs & CppLanguage);
+ d->m_activateQmlAction->setChecked(activeLangs & QmlLanguage);
updateActiveLanguages();
}
}
@@ -321,9 +319,9 @@ void DebuggerUISwitcher::hideInactiveWidgets()
// Hide dock widgets manually in case they are floating.
if (!d->m_inDebugMode) {
// hide all the debugger windows if mode is different
- foreach(Internal::DebugToolWindow *window, d->m_dockWidgets) {
- if (window->m_dockWidget->isFloating())
- window->m_dockWidget->hide();
+ foreach(QDockWidget *dockWidget, d->m_dockWidgets) {
+ if (dockWidget->isFloating())
+ dockWidget->hide();
}
}
}
@@ -360,7 +358,7 @@ DebuggerUISwitcher *DebuggerUISwitcher::instance()
void DebuggerUISwitcher::addLanguage(const DebuggerLanguage &languageId,
const QString &languageName, const Core::Context &context)
{
- bool activate = (d->m_supportedLanguages == Lang_None);
+ bool activate = (d->m_supportedLanguages == AnyLanguage);
d->m_supportedLanguages = d->m_supportedLanguages | languageId;
d->m_languageCount++;
@@ -383,7 +381,7 @@ void DebuggerUISwitcher::addLanguage(const DebuggerLanguage &languageId,
activeDebugLanguageCmd->setDefaultKeySequence(QKeySequence(
QString("%1,%2").arg(shortcutPrefix).arg(shortcutIndex)));
- if (languageId == Lang_Qml) {
+ if (languageId == QmlLanguage) {
d->m_qmlEnabled = true;
d->m_activateQmlAction = debuggableLang;
} else if (!d->m_activateCppAction) {
@@ -418,18 +416,18 @@ void DebuggerUISwitcher::updateUi()
void DebuggerUISwitcher::activateQmlCppLayout()
{
Core::ICore *core = Core::ICore::instance();
- Core::Context qmlCppContext = d->m_contextsForLanguage.value(Lang_Qml);
- qmlCppContext.add(d->m_contextsForLanguage.value(Lang_Cpp));
+ Core::Context qmlCppContext = d->m_contextsForLanguage.value(QmlLanguage);
+ qmlCppContext.add(d->m_contextsForLanguage.value(CppLanguage));
// always use cpp toolbar
- d->m_toolbarStack->setCurrentWidget(d->m_toolBars.value(Lang_Cpp));
+ d->m_toolbarStack->setCurrentWidget(d->m_toolBars.value(CppLanguage));
- if (d->m_previousDebugLanguages & Lang_Qml) {
+ if (d->m_previousDebugLanguages & QmlLanguage) {
d->m_dockWidgetActiveStateQmlCpp = d->m_mainWindow->saveSettings();
core->updateAdditionalContexts(qmlCppContext, Core::Context());
- } else if (d->m_previousDebugLanguages & Lang_Cpp) {
+ } else if (d->m_previousDebugLanguages & CppLanguage) {
d->m_dockWidgetActiveStateCpp = d->m_mainWindow->saveSettings();
- core->updateAdditionalContexts(d->m_contextsForLanguage.value(Lang_Cpp), Core::Context());
+ core->updateAdditionalContexts(d->m_contextsForLanguage.value(CppLanguage), Core::Context());
}
d->m_mainWindow->restoreSettings(d->m_dockWidgetActiveStateQmlCpp);
@@ -439,21 +437,21 @@ void DebuggerUISwitcher::activateQmlCppLayout()
void DebuggerUISwitcher::activateCppLayout()
{
Core::ICore *core = Core::ICore::instance();
- Core::Context qmlCppContext = d->m_contextsForLanguage.value(Lang_Qml);
- qmlCppContext.add(d->m_contextsForLanguage.value(Lang_Cpp));
- d->m_toolbarStack->setCurrentWidget(d->m_toolBars.value(Lang_Cpp));
+ Core::Context qmlCppContext = d->m_contextsForLanguage.value(QmlLanguage);
+ qmlCppContext.add(d->m_contextsForLanguage.value(CppLanguage));
+ d->m_toolbarStack->setCurrentWidget(d->m_toolBars.value(CppLanguage));
- if (d->m_previousDebugLanguages & Lang_Qml) {
+ if (d->m_previousDebugLanguages & QmlLanguage) {
d->m_dockWidgetActiveStateQmlCpp = d->m_mainWindow->saveSettings();
core->updateAdditionalContexts(qmlCppContext, Core::Context());
- } else if (d->m_previousDebugLanguages & Lang_Cpp) {
+ } else if (d->m_previousDebugLanguages & CppLanguage) {
d->m_dockWidgetActiveStateCpp = d->m_mainWindow->saveSettings();
- core->updateAdditionalContexts(d->m_contextsForLanguage.value(Lang_Cpp), Core::Context());
+ core->updateAdditionalContexts(d->m_contextsForLanguage.value(CppLanguage), Core::Context());
}
d->m_mainWindow->restoreSettings(d->m_dockWidgetActiveStateCpp);
- const Core::Context &cppContext = d->m_contextsForLanguage.value(Lang_Cpp);
+ const Core::Context &cppContext = d->m_contextsForLanguage.value(CppLanguage);
core->updateAdditionalContexts(Core::Context(), cppContext);
}
@@ -527,44 +525,44 @@ QWidget *DebuggerUISwitcher::createMainWindow(Core::BaseMode *mode)
QDockWidget *DebuggerUISwitcher::breakWindow() const
{
- return dockWidget(Constants::DW_BREAK);
+ return dockWidget(Constants::DOCKWIDGET_BREAK);
}
QDockWidget *DebuggerUISwitcher::stackWindow() const
{
- return dockWidget(Constants::DW_STACK);
+ return dockWidget(Constants::DOCKWIDGET_STACK);
}
QDockWidget *DebuggerUISwitcher::watchWindow() const
{
- return dockWidget(Constants::DW_WATCHERS);
+ return dockWidget(Constants::DOCKWIDGET_WATCHERS);
}
QDockWidget *DebuggerUISwitcher::outputWindow() const
{
- return dockWidget(Constants::DW_OUTPUT);
+ return dockWidget(Constants::DOCKWIDGET_OUTPUT);
}
QDockWidget *DebuggerUISwitcher::snapshotsWindow() const
{
- return dockWidget(Constants::DW_SNAPSHOTS);
+ return dockWidget(Constants::DOCKWIDGET_SNAPSHOTS);
}
QDockWidget *DebuggerUISwitcher::threadsWindow() const
{
- return dockWidget(Constants::DW_THREADS);
+ return dockWidget(Constants::DOCKWIDGET_THREADS);
}
QDockWidget *DebuggerUISwitcher::qmlInspectorWindow() const
{
- return dockWidget(Constants::DW_QML_INSPECTOR);
+ return dockWidget(Constants::DOCKWIDGET_QML_INSPECTOR);
}
QDockWidget *DebuggerUISwitcher::dockWidget(const QString &objectName) const
{
- foreach(const Debugger::Internal::DebugToolWindow *toolWindow, d->m_dockWidgets) {
- if (toolWindow->m_dockWidget->objectName() == objectName)
- return toolWindow->m_dockWidget;
+ foreach(QDockWidget *dockWidget, d->m_dockWidgets) {
+ if (dockWidget->objectName() == objectName)
+ return dockWidget;
}
return 0;
}
@@ -573,17 +571,13 @@ QDockWidget *DebuggerUISwitcher::dockWidget(const QString &objectName) const
Keep track of dock widgets so they can be shown/hidden for different languages
*/
QDockWidget *DebuggerUISwitcher::createDockWidget(const DebuggerLanguage &language,
- QWidget *widget, Qt::DockWidgetArea area, bool visibleByDefault)
+ QWidget *widget, Qt::DockWidgetArea area)
{
//qDebug() << "CREATE DOCK" << widget->objectName() << langName
// << d->m_activeLanguage << "VISIBLE BY DEFAULT: " << visibleByDefault;
QDockWidget *dockWidget = d->m_mainWindow->addDockForWidget(widget);
d->m_mainWindow->addDockWidget(area, dockWidget);
- DebugToolWindow *window = new DebugToolWindow;
- window->m_dockWidget = dockWidget;
-
- window->m_visible = visibleByDefault;
- d->m_dockWidgets.append(window);
+ d->m_dockWidgets.append(dockWidget);
if (!(d->m_activeDebugLanguages & language)) {
dockWidget->hide();
@@ -679,7 +673,7 @@ void DebuggerUISwitcher::initialize()
{
createViewsMenuItems();
- emit dockResetRequested(Lang_None);
+ emit dockResetRequested(AnyLanguage);
readSettings();
updateUi();
@@ -716,17 +710,42 @@ void DebuggerUISwitcher::updateDockWidgetSettings()
bool DebuggerUISwitcher::isQmlCppActive() const
{
- return (d->m_activeDebugLanguages & Lang_Cpp) && (d->m_activeDebugLanguages & Lang_Qml);
+ return (d->m_activeDebugLanguages & CppLanguage) && (d->m_activeDebugLanguages & QmlLanguage);
}
bool DebuggerUISwitcher::isQmlActive() const
{
- return (d->m_activeDebugLanguages & Lang_Qml);
+ return (d->m_activeDebugLanguages & QmlLanguage);
}
-QList<Internal::DebugToolWindow* > DebuggerUISwitcher::i_mw_debugToolWindows() const
+QList<QDockWidget* > DebuggerUISwitcher::i_mw_dockWidgets() const
{
return d->m_dockWidgets;
}
+bool DebuggerUISwitcher::isCurrentProjectQmlCppBased()
+{
+ ProjectExplorer::Project *startupProject = ProjectExplorer::ProjectExplorerPlugin::instance()->startupProject();
+ if (!startupProject)
+ return false;
+
+ if (!startupProject->activeTarget())
+ return false;
+
+ ProjectExplorer::RunConfiguration *rc = startupProject->activeTarget()->activeRunConfiguration();
+
+ return DebuggerRunControl::isQmlProject(rc);
+}
+
+bool DebuggerUISwitcher::isCurrentProjectCppBased()
+{
+ ProjectExplorer::Project *startupProject = ProjectExplorer::ProjectExplorerPlugin::instance()->startupProject();
+ if (!startupProject)
+ return false;
+ const QString id = startupProject->id();
+ return id == QLatin1String("GenericProjectManager.GenericProject")
+ || id == QLatin1String("CMakeProjectManager.CMakeProject")
+ || id == QLatin1String("Qt4ProjectManager.Qt4Project");
+}
+
} // namespace Debugger