diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index 1f434e44dceb7cc86171fc6d5897a36e9f665266..bce0213b5f0c9de1c783dbcfe4fcb152c8de3317 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -126,7 +126,8 @@ public: DebuggerLanguages m_supportedLanguages; - QStackedWidget *m_toolBarStack; + QWidget *m_debugToolBar; + QHBoxLayout *m_debugToolBarLayout; QHash<DebuggerLanguage, Context> m_contextsForLanguage; @@ -151,7 +152,8 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw) : q(mw) , m_resizeEventFilter(this) , m_supportedLanguages(AnyLanguage) - , m_toolBarStack(new QStackedWidget) + , m_debugToolBar(new QWidget) + , m_debugToolBarLayout(new QHBoxLayout(m_debugToolBar)) , m_inDebugMode(false) , m_changingUI(false) , m_previousDebugLanguages(AnyLanguage) @@ -163,7 +165,10 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *mw) , m_previousRunConfiguration(0) , m_engine(0) { + m_debugToolBarLayout->setMargin(0); + m_debugToolBarLayout->setSpacing(0); createViewsMenuItems(); + addLanguage(AnyLanguage, Context()); addLanguage(CppLanguage, Context(C_CPPDEBUGGER)); addLanguage(QmlLanguage, Context(C_QMLDEBUGGER)); } @@ -367,8 +372,10 @@ void DebuggerMainWindowPrivate::activateQmlCppLayout() { Context qmlCppContext = m_contextsForLanguage.value(QmlLanguage); qmlCppContext.add(m_contextsForLanguage.value(CppLanguage)); - if (m_toolBars.value(QmlLanguage)) - m_toolBarStack->setCurrentWidget(m_toolBars.value(QmlLanguage)); + if (m_toolBars.value(QmlLanguage)) { + m_toolBars.value(QmlLanguage)->show(); + m_debugToolBarLayout->insertWidget(1, m_toolBars.value(QmlLanguage)); + } if (m_previousDebugLanguages & QmlLanguage) { m_dockWidgetActiveStateQmlCpp = q->saveSettings(); @@ -387,7 +394,10 @@ void DebuggerMainWindowPrivate::activateCppLayout() { Context qmlCppContext = m_contextsForLanguage.value(QmlLanguage); qmlCppContext.add(m_contextsForLanguage.value(CppLanguage)); - m_toolBarStack->setCurrentWidget(m_toolBars.value(CppLanguage)); + if (m_toolBars.value(QmlLanguage)) { + m_toolBars.value(QmlLanguage)->hide(); + m_debugToolBarLayout->removeWidget(m_toolBars.value(QmlLanguage)); + } if (m_previousDebugLanguages & QmlLanguage) { m_dockWidgetActiveStateQmlCpp = q->saveSettings(); @@ -408,7 +418,12 @@ void DebuggerMainWindow::setToolBar(DebuggerLanguage language, QWidget *widget) { Q_ASSERT(d->m_toolBars.contains(language)); d->m_toolBars[language] = widget; - d->m_toolBarStack->addWidget(widget); + if (language == CppLanguage) + d->m_debugToolBarLayout->addWidget(widget); + + //Add widget at the end + if (language == AnyLanguage) + d->m_debugToolBarLayout->insertWidget(-1, widget, 10); } QDockWidget *DebuggerMainWindow::dockWidget(const QString &objectName) const @@ -507,7 +522,7 @@ QWidget *DebuggerMainWindow::createContents(IMode *mode) QHBoxLayout *debugToolBarLayout = new QHBoxLayout(debugToolBar); debugToolBarLayout->setMargin(0); debugToolBarLayout->setSpacing(0); - debugToolBarLayout->addWidget(d->m_toolBarStack); + debugToolBarLayout->addWidget(d->m_debugToolBar); debugToolBarLayout->addWidget(new Utils::StyledSeparator); QDockWidget *dock = new QDockWidget(DebuggerMainWindowPrivate::tr("Debugger Toolbar")); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 45e1e3e8243115904d5add13ff125bdc3bc58d90..6d65e5341a5867918ead8822170e223eb29e46a3 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -2341,6 +2341,8 @@ void DebuggerPluginPrivate::updateState(DebuggerEngine *engine) m_attachToRemoteServerAction->setEnabled(true); m_attachToRemoteProcessAction->setEnabled(true); + m_threadBox->setEnabled(state == InferiorStopOk); + const bool isCore = engine->startParameters().startMode == AttachCore; const bool stopped = state == InferiorStopOk; const bool detachable = stopped && !isCore; @@ -3455,9 +3457,9 @@ void DebuggerPluginPrivate::extensionsInitialized() hbox->addWidget(m_threadBox); hbox->addSpacerItem(new QSpacerItem(4, 0)); - hbox->addWidget(m_statusLabel, 10); m_mainWindow->setToolBar(CppLanguage, toolbarContainer); + m_mainWindow->setToolBar(AnyLanguage, m_statusLabel); connect(action(EnableReverseDebugging), SIGNAL(valueChanged(QVariant)), diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp index 2ee94881b66e1a48935e429b5b74b5f1f49524a9..d2115b9c45527829734e3b790cb95488624675cd 100644 --- a/src/plugins/debugger/qml/qmlcppengine.cpp +++ b/src/plugins/debugger/qml/qmlcppengine.cpp @@ -268,7 +268,7 @@ bool QmlCppEngine::acceptsBreakpoint(BreakpointModelId id) const void QmlCppEngine::selectThread(int index) { - d->m_cppEngine->selectThread(index); + d->m_activeEngine->selectThread(index); } void QmlCppEngine::assignValueInDebugger(const WatchData *data, diff --git a/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp b/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp index 4ca220f8ae4915566b23c0e7ca106e71f2cd72ec..c239e7b1c890c535912387d9c7a42bbb98491d82 100644 --- a/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp +++ b/src/plugins/qmljsinspector/qmljsinspectortoolbar.cpp @@ -202,9 +202,7 @@ void QmlJsInspectorToolBar::createActions() am->registerAction(m_fromQmlAction, Constants::FROM_QML_ACTION, context); am->registerAction(m_showAppOnTopAction, Constants::SHOW_APP_ON_TOP_ACTION, context); - m_barWidget = new Utils::StyledBar; - m_barWidget->setSingleRow(true); - m_barWidget->setProperty("topBorder", true); + m_barWidget = new QWidget; QMenu *playSpeedMenu = new QMenu(m_barWidget); m_playSpeedMenuActions = new QActionGroup(this); @@ -239,19 +237,7 @@ void QmlJsInspectorToolBar::createActions() toolBarLayout->setMargin(0); toolBarLayout->setSpacing(5); - m_operateByInstructionButton = toolButton(am->command(Debugger::Constants::OPERATE_BY_INSTRUCTION)->action()); - - // Add generic debugging controls - toolBarLayout->addWidget(toolButton(Debugger::DebuggerPlugin::visibleDebugAction())); - toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::STOP)->action())); - toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::NEXT)->action())); - toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::STEP)->action())); - toolBarLayout->addWidget(toolButton(am->command(Debugger::Constants::STEPOUT)->action())); - toolBarLayout->addWidget(m_operateByInstructionButton); - toolBarLayout->addStretch(1); - // QML Helpers - toolBarLayout->addWidget(new Utils::StyledSeparator); toolBarLayout->addWidget(toolButton(am->command(Constants::FROM_QML_ACTION)->action())); toolBarLayout->addWidget(toolButton(am->command(Constants::SHOW_APP_ON_TOP_ACTION)->action())); m_playButton = toolButton(am->command(Constants::PLAY_ACTION)->action()); @@ -262,6 +248,7 @@ void QmlJsInspectorToolBar::createActions() toolBarLayout->addWidget(new Utils::StyledSeparator); toolBarLayout->addWidget(toolButton(am->command(Constants::SELECT_ACTION)->action())); toolBarLayout->addWidget(toolButton(am->command(Constants::ZOOM_ACTION)->action())); + toolBarLayout->addWidget(new Utils::StyledSeparator); connect(m_fromQmlAction, SIGNAL(triggered()), SLOT(activateFromQml())); connect(m_showAppOnTopAction, SIGNAL(triggered()), SLOT(showAppOnTopClick())); @@ -269,11 +256,6 @@ void QmlJsInspectorToolBar::createActions() connect(m_selectAction, SIGNAL(triggered(bool)), SLOT(selectToolTriggered(bool))); connect(m_zoomAction, SIGNAL(triggered(bool)), SLOT(zoomToolTriggered(bool))); - Debugger::DebuggerMainWindow *mw = Debugger::DebuggerPlugin::mainWindow(); - activeDebugLanguagesChanged(mw->activeDebugLanguages()); - connect(mw, SIGNAL(activeDebugLanguagesChanged(Debugger::DebuggerLanguages)), - this, SLOT(activeDebugLanguagesChanged(Debugger::DebuggerLanguages))); - readSettings(); connect(Core::ICore::instance(), SIGNAL(saveSettingsRequested()), SLOT(writeSettings())); @@ -358,11 +340,6 @@ void QmlJsInspectorToolBar::activateFromQml() emit applyChangesFromQmlFileTriggered(m_fromQmlAction->isChecked()); } -void QmlJsInspectorToolBar::activeDebugLanguagesChanged(Debugger::DebuggerLanguages languages) -{ - m_operateByInstructionButton->setVisible(languages & Debugger::CppLanguage); -} - void QmlJsInspectorToolBar::updateDesignModeActions(DesignTool activeTool) { m_activeTool = activeTool; diff --git a/src/plugins/qmljsinspector/qmljsinspectortoolbar.h b/src/plugins/qmljsinspector/qmljsinspectortoolbar.h index ef1f89ee5d5867fa86d13293ac3acf8873b96b29..99c4fd9a39fff226a60eeff8d5118c0637e9c6cf 100644 --- a/src/plugins/qmljsinspector/qmljsinspectortoolbar.h +++ b/src/plugins/qmljsinspector/qmljsinspectortoolbar.h @@ -113,13 +113,9 @@ private slots: void updatePlayAction(); - void activeDebugLanguagesChanged(Debugger::DebuggerLanguages languages); - private: void updateDesignModeActions(DesignTool activeTool); - QToolButton *m_operateByInstructionButton; - Utils::SavedAction *m_fromQmlAction; QAction *m_playAction; QAction *m_selectAction; @@ -140,7 +136,7 @@ private: bool m_designModeActive; DesignTool m_activeTool; - Utils::StyledBar *m_barWidget; + QWidget *m_barWidget; }; } // namespace Internal