forked from qt-creator/qt-creator
Debugger: Re-organize registration of sub-perspective switcher
Change-Id: Ia3559e5c4793bb297c9bdfbdf32a56d285ee0700 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -667,7 +667,7 @@ void DebuggerEnginePrivate::setupViews()
|
|||||||
m_breakWindow->setObjectName(DOCKWIDGET_BREAK);
|
m_breakWindow->setObjectName(DOCKWIDGET_BREAK);
|
||||||
m_breakWindow->setWindowTitle(tr("&Breakpoints"));
|
m_breakWindow->setWindowTitle(tr("&Breakpoints"));
|
||||||
|
|
||||||
m_perspective->addToolBarSwitcher(EngineManager::engineChooser(), false);
|
m_perspective->useSubPerspectiveSwitcher(EngineManager::engineChooser());
|
||||||
|
|
||||||
m_perspective->addToolBarAction(&m_continueAction);
|
m_perspective->addToolBarAction(&m_continueAction);
|
||||||
m_perspective->addToolBarAction(&m_interruptAction);
|
m_perspective->addToolBarAction(&m_interruptAction);
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ public:
|
|||||||
Perspective *m_currentPerspective = nullptr;
|
Perspective *m_currentPerspective = nullptr;
|
||||||
QComboBox *m_perspectiveChooser = nullptr;
|
QComboBox *m_perspectiveChooser = nullptr;
|
||||||
QStackedWidget *m_centralWidgetStack = nullptr;
|
QStackedWidget *m_centralWidgetStack = nullptr;
|
||||||
QHBoxLayout *m_subToolsSwitcherLayout = nullptr;
|
QHBoxLayout *m_subPerspectiveSwitcherLayout = nullptr;
|
||||||
QHBoxLayout *m_innerToolsLayout = nullptr;
|
QHBoxLayout *m_innerToolsLayout = nullptr;
|
||||||
QWidget *m_editorPlaceHolder = nullptr;
|
QWidget *m_editorPlaceHolder = nullptr;
|
||||||
Utils::StatusLabel *m_statusLabel = nullptr;
|
Utils::StatusLabel *m_statusLabel = nullptr;
|
||||||
@@ -165,10 +165,10 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *parent)
|
|||||||
toolbar->setProperty("topBorder", true);
|
toolbar->setProperty("topBorder", true);
|
||||||
|
|
||||||
// "Engine switcher" style comboboxes
|
// "Engine switcher" style comboboxes
|
||||||
auto subToolsSwitcher = new QWidget;
|
auto subPerspectiveSwitcher = new QWidget;
|
||||||
m_subToolsSwitcherLayout = new QHBoxLayout(subToolsSwitcher);
|
m_subPerspectiveSwitcherLayout = new QHBoxLayout(subPerspectiveSwitcher);
|
||||||
m_subToolsSwitcherLayout->setMargin(0);
|
m_subPerspectiveSwitcherLayout->setMargin(0);
|
||||||
m_subToolsSwitcherLayout->setSpacing(0);
|
m_subPerspectiveSwitcherLayout->setSpacing(0);
|
||||||
|
|
||||||
// All perspective toolbars will get inserted here, but only
|
// All perspective toolbars will get inserted here, but only
|
||||||
// the current perspective's toolbar is set visible.
|
// the current perspective's toolbar is set visible.
|
||||||
@@ -181,7 +181,7 @@ DebuggerMainWindowPrivate::DebuggerMainWindowPrivate(DebuggerMainWindow *parent)
|
|||||||
hbox->setMargin(0);
|
hbox->setMargin(0);
|
||||||
hbox->setSpacing(0);
|
hbox->setSpacing(0);
|
||||||
hbox->addWidget(m_perspectiveChooser);
|
hbox->addWidget(m_perspectiveChooser);
|
||||||
hbox->addWidget(subToolsSwitcher);
|
hbox->addWidget(subPerspectiveSwitcher);
|
||||||
hbox->addWidget(innerTools);
|
hbox->addWidget(innerTools);
|
||||||
hbox->addWidget(m_statusLabel);
|
hbox->addWidget(m_statusLabel);
|
||||||
hbox->addStretch(1);
|
hbox->addStretch(1);
|
||||||
@@ -332,6 +332,13 @@ QWidget *DebuggerMainWindow::centralWidgetStack()
|
|||||||
return theMainWindow ? theMainWindow->d->m_centralWidgetStack : nullptr;
|
return theMainWindow ? theMainWindow->d->m_centralWidgetStack : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DebuggerMainWindow::setSubPerspectiveSwitcher(QWidget *widget)
|
||||||
|
{
|
||||||
|
widget->setVisible(false);
|
||||||
|
widget->setProperty("panelwidget", true);
|
||||||
|
d->m_subPerspectiveSwitcherLayout->addWidget(widget);
|
||||||
|
}
|
||||||
|
|
||||||
DebuggerMainWindow *DebuggerMainWindow::instance()
|
DebuggerMainWindow *DebuggerMainWindow::instance()
|
||||||
{
|
{
|
||||||
return theMainWindow;
|
return theMainWindow;
|
||||||
@@ -393,8 +400,10 @@ void DebuggerMainWindowPrivate::selectPerspective(Perspective *perspective)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *createModeWindow(const Core::Id &mode)
|
QWidget *createModeWindow(const Core::Id &mode, QWidget *switcher)
|
||||||
{
|
{
|
||||||
|
theMainWindow->setSubPerspectiveSwitcher(switcher);
|
||||||
|
|
||||||
auto editorHolderLayout = new QVBoxLayout;
|
auto editorHolderLayout = new QVBoxLayout;
|
||||||
editorHolderLayout->setMargin(0);
|
editorHolderLayout->setMargin(0);
|
||||||
editorHolderLayout->setSpacing(0);
|
editorHolderLayout->setSpacing(0);
|
||||||
@@ -633,13 +642,9 @@ void Perspective::addToolBarWidget(QWidget *widget)
|
|||||||
d->m_innerToolBarLayout->addWidget(widget);
|
d->m_innerToolBarLayout->addWidget(widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perspective::addToolBarSwitcher(QWidget *widget, bool owner)
|
void Perspective::useSubPerspectiveSwitcher(QWidget *widget)
|
||||||
{
|
{
|
||||||
d->m_switcher = widget;
|
d->m_switcher = widget;
|
||||||
d->m_switcher->setProperty("panelwidget", true);
|
|
||||||
d->m_switcher->setVisible(false);
|
|
||||||
if (owner)
|
|
||||||
theMainWindow->d->m_subToolsSwitcherLayout->addWidget(d->m_switcher);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Perspective::addToolbarSeparator()
|
void Perspective::addToolbarSeparator()
|
||||||
|
|||||||
@@ -79,9 +79,10 @@ public:
|
|||||||
void addToolBarAction(QAction *action);
|
void addToolBarAction(QAction *action);
|
||||||
void addToolBarAction(OptionalAction *action);
|
void addToolBarAction(OptionalAction *action);
|
||||||
void addToolBarWidget(QWidget *widget);
|
void addToolBarWidget(QWidget *widget);
|
||||||
void addToolBarSwitcher(QWidget *widget, bool owner);
|
|
||||||
void addToolbarSeparator();
|
void addToolbarSeparator();
|
||||||
|
|
||||||
|
void useSubPerspectiveSwitcher(QWidget *widget);
|
||||||
|
|
||||||
using ShouldPersistChecker = std::function<bool()>;
|
using ShouldPersistChecker = std::function<bool()>;
|
||||||
void setShouldPersistChecker(const ShouldPersistChecker &checker);
|
void setShouldPersistChecker(const ShouldPersistChecker &checker);
|
||||||
|
|
||||||
@@ -127,6 +128,7 @@ public:
|
|||||||
static void onModeChanged(Core::Id mode);
|
static void onModeChanged(Core::Id mode);
|
||||||
|
|
||||||
static QWidget *centralWidgetStack();
|
static QWidget *centralWidgetStack();
|
||||||
|
void setSubPerspectiveSwitcher(QWidget *widget);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DebuggerMainWindow();
|
DebuggerMainWindow();
|
||||||
@@ -137,6 +139,6 @@ private:
|
|||||||
class DebuggerMainWindowPrivate *d = nullptr;
|
class DebuggerMainWindowPrivate *d = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
DEBUGGER_EXPORT QWidget *createModeWindow(const Core::Id &mode);
|
DEBUGGER_EXPORT QWidget *createModeWindow(const Core::Id &mode, QWidget *);
|
||||||
|
|
||||||
} // Utils
|
} // Utils
|
||||||
|
|||||||
@@ -1296,7 +1296,7 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
|
|||||||
|
|
||||||
// Debug mode setup
|
// Debug mode setup
|
||||||
m_mode = new DebugMode;
|
m_mode = new DebugMode;
|
||||||
m_modeWindow = createModeWindow(Constants::MODE_DEBUG);
|
m_modeWindow = createModeWindow(Constants::MODE_DEBUG, EngineManager::engineChooser());
|
||||||
m_mode->setWidget(m_modeWindow);
|
m_mode->setWidget(m_modeWindow);
|
||||||
|
|
||||||
m_debugModeContext.setContext(Context(CC::C_EDITORMANAGER));
|
m_debugModeContext.setContext(Context(CC::C_EDITORMANAGER));
|
||||||
@@ -1339,7 +1339,7 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
|
|||||||
connect(action(SettingsDialog), &QAction::triggered,
|
connect(action(SettingsDialog), &QAction::triggered,
|
||||||
[] { ICore::showOptionsDialog(DEBUGGER_COMMON_SETTINGS_ID); });
|
[] { ICore::showOptionsDialog(DEBUGGER_COMMON_SETTINGS_ID); });
|
||||||
|
|
||||||
m_perspective.addToolBarSwitcher(EngineManager::engineChooser(), true);
|
m_perspective.useSubPerspectiveSwitcher(EngineManager::engineChooser());
|
||||||
m_perspective.addToolBarAction(&m_startAction);
|
m_perspective.addToolBarAction(&m_startAction);
|
||||||
|
|
||||||
// QAction *operateByInstructionAction = action(OperateByInstruction);
|
// QAction *operateByInstructionAction = action(OperateByInstruction);
|
||||||
|
|||||||
Reference in New Issue
Block a user