forked from qt-creator/qt-creator
Debugger: Let perspectives specify their central widget
The default 0 value will be interpreted as 'use the editor stack'. Also, drop the idea of value semantics for Perspective objects to get a simpler approach to the destruction of owned widgets (tools docks + central widget) Change-Id: Ic6470411ee5d387c43447f95b5a12c81c6658ff8 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -139,10 +139,10 @@ ClangStaticAnalyzerTool::ClangStaticAnalyzerTool(QObject *parent)
|
|||||||
const QString toolTip = tr("Clang Static Analyzer uses the analyzer from the Clang project "
|
const QString toolTip = tr("Clang Static Analyzer uses the analyzer from the Clang project "
|
||||||
"to find bugs.");
|
"to find bugs.");
|
||||||
|
|
||||||
Debugger::registerPerspective(ClangStaticAnalyzerPerspectiveId, {
|
Debugger::registerPerspective(ClangStaticAnalyzerPerspectiveId, new Perspective(
|
||||||
tr("Clang Static Analyzer"),
|
tr("Clang Static Analyzer"),
|
||||||
{{ ClangStaticAnalyzerDockId, m_diagnosticView, {}, Perspective::SplitVertical }}
|
{{ ClangStaticAnalyzerDockId, m_diagnosticView, {}, Perspective::SplitVertical }}
|
||||||
});
|
));
|
||||||
|
|
||||||
ActionDescription desc;
|
ActionDescription desc;
|
||||||
desc.setText(tr("Clang Static Analyzer"));
|
desc.setText(tr("Clang Static Analyzer"));
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ private:
|
|||||||
|
|
||||||
// Register a tool for a given start mode.
|
// Register a tool for a given start mode.
|
||||||
DEBUGGER_EXPORT void registerAction(Core::Id actionId, const ActionDescription &desc, QAction *startAction = 0);
|
DEBUGGER_EXPORT void registerAction(Core::Id actionId, const ActionDescription &desc, QAction *startAction = 0);
|
||||||
DEBUGGER_EXPORT void registerPerspective(const QByteArray &perspectiveId, const Utils::Perspective &perspective);
|
DEBUGGER_EXPORT void registerPerspective(const QByteArray &perspectiveId, const Utils::Perspective *perspective);
|
||||||
DEBUGGER_EXPORT void registerToolbar(const QByteArray &perspectiveId, const Utils::ToolbarDescription &desc);
|
DEBUGGER_EXPORT void registerToolbar(const QByteArray &perspectiveId, const Utils::ToolbarDescription &desc);
|
||||||
|
|
||||||
DEBUGGER_EXPORT void enableMainWindow(bool on);
|
DEBUGGER_EXPORT void enableMainWindow(bool on);
|
||||||
|
|||||||
@@ -63,7 +63,9 @@ const char LAST_PERSPECTIVE_KEY[] = "LastPerspective";
|
|||||||
DebuggerMainWindow::DebuggerMainWindow()
|
DebuggerMainWindow::DebuggerMainWindow()
|
||||||
{
|
{
|
||||||
m_controlsStackWidget = new QStackedWidget;
|
m_controlsStackWidget = new QStackedWidget;
|
||||||
|
m_centralWidgetStack = new QStackedWidget;
|
||||||
m_statusLabel = new Utils::StatusLabel;
|
m_statusLabel = new Utils::StatusLabel;
|
||||||
|
m_editorPlaceHolder = new EditorManagerPlaceHolder;
|
||||||
|
|
||||||
m_perspectiveChooser = new QComboBox;
|
m_perspectiveChooser = new QComboBox;
|
||||||
m_perspectiveChooser->setObjectName(QLatin1String("PerspectiveChooser"));
|
m_perspectiveChooser->setObjectName(QLatin1String("PerspectiveChooser"));
|
||||||
@@ -80,6 +82,8 @@ DebuggerMainWindow::DebuggerMainWindow()
|
|||||||
|
|
||||||
DebuggerMainWindow::~DebuggerMainWindow()
|
DebuggerMainWindow::~DebuggerMainWindow()
|
||||||
{
|
{
|
||||||
|
delete m_editorPlaceHolder;
|
||||||
|
m_editorPlaceHolder = 0;
|
||||||
// As we have to setParent(0) on dock widget that are not selected,
|
// As we have to setParent(0) on dock widget that are not selected,
|
||||||
// we keep track of all and make sure we don't leak any
|
// we keep track of all and make sure we don't leak any
|
||||||
foreach (QDockWidget *dock, m_dockForDockId) {
|
foreach (QDockWidget *dock, m_dockForDockId) {
|
||||||
@@ -87,24 +91,17 @@ DebuggerMainWindow::~DebuggerMainWindow()
|
|||||||
delete dock;
|
delete dock;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (const Perspective &perspective, m_perspectiveForPerspectiveId) {
|
foreach (const Perspective *perspective, m_perspectiveForPerspectiveId)
|
||||||
foreach (const Perspective::Operation &operation, perspective.operations()) {
|
delete perspective;
|
||||||
if (operation.widget && !operation.widget->parentWidget()) {
|
|
||||||
// These are from perspectives that never got enabled. We've taken ownership for
|
|
||||||
// those, so we need to delete them.
|
|
||||||
delete operation.widget;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebuggerMainWindow::registerPerspective(const QByteArray &perspectiveId, const Perspective &perspective)
|
void DebuggerMainWindow::registerPerspective(const QByteArray &perspectiveId, const Perspective *perspective)
|
||||||
{
|
{
|
||||||
m_perspectiveForPerspectiveId.insert(perspectiveId, perspective);
|
m_perspectiveForPerspectiveId.insert(perspectiveId, perspective);
|
||||||
m_perspectiveChooser->addItem(perspective.name(), perspectiveId);
|
m_perspectiveChooser->addItem(perspective->name(), perspectiveId);
|
||||||
// adjust width if necessary
|
// adjust width if necessary
|
||||||
const int oldWidth = m_perspectiveChooser->width();
|
const int oldWidth = m_perspectiveChooser->width();
|
||||||
const int contentWidth = m_perspectiveChooser->fontMetrics().width(perspective.name());
|
const int contentWidth = m_perspectiveChooser->fontMetrics().width(perspective->name());
|
||||||
QStyleOptionComboBox option;
|
QStyleOptionComboBox option;
|
||||||
option.initFrom(m_perspectiveChooser);
|
option.initFrom(m_perspectiveChooser);
|
||||||
const QSize sz(contentWidth, 1);
|
const QSize sz(contentWidth, 1);
|
||||||
@@ -203,18 +200,15 @@ void DebuggerMainWindow::finalizeSetup()
|
|||||||
addDockWidget(Qt::BottomDockWidgetArea, dock);
|
addDockWidget(Qt::BottomDockWidgetArea, dock);
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *createModeWindow(const Core::Id &mode, DebuggerMainWindow *mainWindow, QWidget *central)
|
QWidget *createModeWindow(const Core::Id &mode, DebuggerMainWindow *mainWindow)
|
||||||
{
|
{
|
||||||
if (!central)
|
|
||||||
central = new EditorManagerPlaceHolder;
|
|
||||||
|
|
||||||
auto editorHolderLayout = new QVBoxLayout;
|
auto editorHolderLayout = new QVBoxLayout;
|
||||||
editorHolderLayout->setMargin(0);
|
editorHolderLayout->setMargin(0);
|
||||||
editorHolderLayout->setSpacing(0);
|
editorHolderLayout->setSpacing(0);
|
||||||
|
|
||||||
auto editorAndFindWidget = new QWidget;
|
auto editorAndFindWidget = new QWidget;
|
||||||
editorAndFindWidget->setLayout(editorHolderLayout);
|
editorAndFindWidget->setLayout(editorHolderLayout);
|
||||||
editorHolderLayout->addWidget(central);
|
editorHolderLayout->addWidget(mainWindow->centralWidgetStack());
|
||||||
editorHolderLayout->addWidget(new FindToolBarPlaceHolder(editorAndFindWidget));
|
editorHolderLayout->addWidget(new FindToolBarPlaceHolder(editorAndFindWidget));
|
||||||
|
|
||||||
auto documentAndRightPane = new MiniSplitter;
|
auto documentAndRightPane = new MiniSplitter;
|
||||||
@@ -245,7 +239,7 @@ QWidget *createModeWindow(const Core::Id &mode, DebuggerMainWindow *mainWindow,
|
|||||||
|
|
||||||
// Navigation and right-side window.
|
// Navigation and right-side window.
|
||||||
auto splitter = new MiniSplitter;
|
auto splitter = new MiniSplitter;
|
||||||
splitter->setFocusProxy(central);
|
splitter->setFocusProxy(mainWindow->centralWidgetStack());
|
||||||
splitter->addWidget(new NavigationWidgetPlaceHolder(mode));
|
splitter->addWidget(new NavigationWidgetPlaceHolder(mode));
|
||||||
splitter->addWidget(mainWindowSplitter);
|
splitter->addWidget(mainWindowSplitter);
|
||||||
splitter->setStretchFactor(0, 0);
|
splitter->setStretchFactor(0, 0);
|
||||||
@@ -271,6 +265,9 @@ void DebuggerMainWindow::loadPerspectiveHelper(const QByteArray &perspectiveId,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ICore::removeAdditionalContext(Context(Id::fromName(m_currentPerspectiveId)));
|
ICore::removeAdditionalContext(Context(Id::fromName(m_currentPerspectiveId)));
|
||||||
|
const Perspective *perspective = m_perspectiveForPerspectiveId.value(m_currentPerspectiveId);
|
||||||
|
QWidget *central = perspective->centralWidget();
|
||||||
|
m_centralWidgetStack->removeWidget(central ? central : m_editorPlaceHolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_currentPerspectiveId = perspectiveId;
|
m_currentPerspectiveId = perspectiveId;
|
||||||
@@ -285,8 +282,8 @@ void DebuggerMainWindow::loadPerspectiveHelper(const QByteArray &perspectiveId,
|
|||||||
ICore::addAdditionalContext(Context(Id::fromName(m_currentPerspectiveId)));
|
ICore::addAdditionalContext(Context(Id::fromName(m_currentPerspectiveId)));
|
||||||
|
|
||||||
QTC_ASSERT(m_perspectiveForPerspectiveId.contains(m_currentPerspectiveId), return);
|
QTC_ASSERT(m_perspectiveForPerspectiveId.contains(m_currentPerspectiveId), return);
|
||||||
const Perspective perspective = m_perspectiveForPerspectiveId.value(m_currentPerspectiveId);
|
const Perspective *perspective = m_perspectiveForPerspectiveId.value(m_currentPerspectiveId);
|
||||||
for (const Perspective::Operation &operation : perspective.operations()) {
|
for (const Perspective::Operation &operation : perspective->operations()) {
|
||||||
QDockWidget *dock = m_dockForDockId.value(operation.dockId);
|
QDockWidget *dock = m_dockForDockId.value(operation.dockId);
|
||||||
if (!dock) {
|
if (!dock) {
|
||||||
QTC_CHECK(!operation.widget->objectName().isEmpty());
|
QTC_CHECK(!operation.widget->objectName().isEmpty());
|
||||||
@@ -341,6 +338,9 @@ void DebuggerMainWindow::loadPerspectiveHelper(const QByteArray &perspectiveId,
|
|||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget *central = perspective->centralWidget();
|
||||||
|
m_centralWidgetStack->addWidget(central ? central : m_editorPlaceHolder);
|
||||||
|
|
||||||
QTC_CHECK(m_toolbarForPerspectiveId.contains(m_currentPerspectiveId));
|
QTC_CHECK(m_toolbarForPerspectiveId.contains(m_currentPerspectiveId));
|
||||||
m_controlsStackWidget->setCurrentWidget(m_toolbarForPerspectiveId.value(m_currentPerspectiveId));
|
m_controlsStackWidget->setCurrentWidget(m_toolbarForPerspectiveId.value(m_currentPerspectiveId));
|
||||||
m_statusLabel->clear();
|
m_statusLabel->clear();
|
||||||
@@ -366,6 +366,13 @@ QDockWidget *DebuggerMainWindow::registerDockWidget(const QByteArray &dockId, QW
|
|||||||
return dockWidget;
|
return dockWidget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Perspective::~Perspective()
|
||||||
|
{
|
||||||
|
foreach (const Operation &operation, m_operations)
|
||||||
|
delete operation.widget;
|
||||||
|
delete m_centralWidget;
|
||||||
|
}
|
||||||
|
|
||||||
QString Perspective::name() const
|
QString Perspective::name() const
|
||||||
{
|
{
|
||||||
return m_name;
|
return m_name;
|
||||||
@@ -401,8 +408,9 @@ Perspective::Operation::Operation(const QByteArray &dockId, QWidget *widget, con
|
|||||||
operationType(splitType), visibleByDefault(visibleByDefault), area(area)
|
operationType(splitType), visibleByDefault(visibleByDefault), area(area)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
Perspective::Perspective(const QString &name, const QVector<Operation> &splits)
|
Perspective::Perspective(const QString &name, const QVector<Operation> &splits,
|
||||||
: m_name(name), m_operations(splits)
|
QWidget *centralWidget)
|
||||||
|
: m_name(name), m_operations(splits), m_centralWidget(centralWidget)
|
||||||
{
|
{
|
||||||
for (const Operation &split : splits)
|
for (const Operation &split : splits)
|
||||||
m_docks.append(split.dockId);
|
m_docks.append(split.dockId);
|
||||||
|
|||||||
@@ -68,20 +68,28 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
Perspective() = default;
|
Perspective() = default;
|
||||||
Perspective(const QString &name, const QVector<Operation> &operations);
|
// Takes ownership of \a centralWidget and all dock widgets in \a operations.
|
||||||
|
Perspective(const QString &name, const QVector<Operation> &operations,
|
||||||
|
QWidget *centralWidget = 0);
|
||||||
|
~Perspective();
|
||||||
|
|
||||||
void addOperation(const Operation &operation);
|
void addOperation(const Operation &operation);
|
||||||
|
|
||||||
QVector<Operation> operations() const { return m_operations; }
|
QVector<Operation> operations() const { return m_operations; }
|
||||||
QVector<QByteArray> docks() const { return m_docks; }
|
QVector<QByteArray> docks() const { return m_docks; }
|
||||||
|
QWidget *centralWidget() const { return m_centralWidget; }
|
||||||
|
|
||||||
QString name() const;
|
QString name() const;
|
||||||
void setName(const QString &name);
|
void setName(const QString &name);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Perspective(const Perspective &) = delete;
|
||||||
|
void operator=(const Perspective &) = delete;
|
||||||
|
|
||||||
QString m_name;
|
QString m_name;
|
||||||
QVector<QByteArray> m_docks;
|
QVector<QByteArray> m_docks;
|
||||||
QVector<Operation> m_operations;
|
QVector<Operation> m_operations;
|
||||||
|
QPointer<QWidget> m_centralWidget;
|
||||||
};
|
};
|
||||||
|
|
||||||
class DEBUGGER_EXPORT ToolbarDescription
|
class DEBUGGER_EXPORT ToolbarDescription
|
||||||
@@ -107,7 +115,7 @@ public:
|
|||||||
DebuggerMainWindow();
|
DebuggerMainWindow();
|
||||||
~DebuggerMainWindow() override;
|
~DebuggerMainWindow() override;
|
||||||
|
|
||||||
void registerPerspective(const QByteArray &perspectiveId, const Perspective &perspective);
|
void registerPerspective(const QByteArray &perspectiveId, const Perspective *perspective);
|
||||||
void registerToolbar(const QByteArray &perspectiveId, QWidget *widget);
|
void registerToolbar(const QByteArray &perspectiveId, QWidget *widget);
|
||||||
|
|
||||||
void saveCurrentPerspective();
|
void saveCurrentPerspective();
|
||||||
@@ -119,6 +127,7 @@ public:
|
|||||||
void showStatusMessage(const QString &message, int timeoutMS);
|
void showStatusMessage(const QString &message, int timeoutMS);
|
||||||
QDockWidget *dockWidget(const QByteArray &dockId) const;
|
QDockWidget *dockWidget(const QByteArray &dockId) const;
|
||||||
QByteArray currentPerspective() const { return m_currentPerspectiveId; }
|
QByteArray currentPerspective() const { return m_currentPerspectiveId; }
|
||||||
|
QStackedWidget *centralWidgetStack() const { return m_centralWidgetStack; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QDockWidget *registerDockWidget(const QByteArray &dockId, QWidget *widget);
|
QDockWidget *registerDockWidget(const QByteArray &dockId, QWidget *widget);
|
||||||
@@ -127,14 +136,16 @@ private:
|
|||||||
QByteArray m_currentPerspectiveId;
|
QByteArray m_currentPerspectiveId;
|
||||||
QComboBox *m_perspectiveChooser;
|
QComboBox *m_perspectiveChooser;
|
||||||
QStackedWidget *m_controlsStackWidget;
|
QStackedWidget *m_controlsStackWidget;
|
||||||
|
QStackedWidget *m_centralWidgetStack;
|
||||||
|
QWidget *m_editorPlaceHolder;
|
||||||
Utils::StatusLabel *m_statusLabel;
|
Utils::StatusLabel *m_statusLabel;
|
||||||
QDockWidget *m_toolbarDock;
|
QDockWidget *m_toolbarDock;
|
||||||
|
|
||||||
QHash<QByteArray, QDockWidget *> m_dockForDockId;
|
QHash<QByteArray, QDockWidget *> m_dockForDockId;
|
||||||
QHash<QByteArray, QWidget *> m_toolbarForPerspectiveId;
|
QHash<QByteArray, QWidget *> m_toolbarForPerspectiveId;
|
||||||
QHash<QByteArray, Perspective> m_perspectiveForPerspectiveId;
|
QHash<QByteArray, const Perspective *> m_perspectiveForPerspectiveId;
|
||||||
};
|
};
|
||||||
|
|
||||||
DEBUGGER_EXPORT QWidget *createModeWindow(const Core::Id &mode, DebuggerMainWindow *mainWindow, QWidget *central);
|
DEBUGGER_EXPORT QWidget *createModeWindow(const Core::Id &mode, DebuggerMainWindow *mainWindow);
|
||||||
|
|
||||||
} // Utils
|
} // Utils
|
||||||
|
|||||||
@@ -1756,7 +1756,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_mainWindow, 0);
|
m_modeWindow = createModeWindow(Constants::MODE_DEBUG, m_mainWindow);
|
||||||
m_mode->setWidget(m_modeWindow);
|
m_mode->setWidget(m_modeWindow);
|
||||||
|
|
||||||
m_plugin->addAutoReleasedObject(new DebugModeContext(m_mainWindow));
|
m_plugin->addAutoReleasedObject(new DebugModeContext(m_mainWindow));
|
||||||
@@ -1835,7 +1835,7 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
|
|||||||
// qmlToolbar.addAction(qmlSelectDummyAction, Icons::SELECT_TOOLBAR.icon());
|
// qmlToolbar.addAction(qmlSelectDummyAction, Icons::SELECT_TOOLBAR.icon());
|
||||||
// qmlToolbar.addWidget(new StyledSeparator);
|
// qmlToolbar.addWidget(new StyledSeparator);
|
||||||
|
|
||||||
Perspective basePerspective({}, {
|
auto createBasePerspective = [this] { return new Perspective({}, {
|
||||||
{ DOCKWIDGET_STACK, m_stackWindow, {}, Perspective::SplitVertical },
|
{ DOCKWIDGET_STACK, m_stackWindow, {}, Perspective::SplitVertical },
|
||||||
{ DOCKWIDGET_BREAK, m_breakWindow, DOCKWIDGET_STACK, Perspective::SplitHorizontal },
|
{ DOCKWIDGET_BREAK, m_breakWindow, DOCKWIDGET_STACK, Perspective::SplitHorizontal },
|
||||||
{ DOCKWIDGET_THREADS, m_threadsWindow, DOCKWIDGET_BREAK, Perspective::AddToTab, false },
|
{ DOCKWIDGET_THREADS, m_threadsWindow, DOCKWIDGET_BREAK, Perspective::AddToTab, false },
|
||||||
@@ -1846,19 +1846,19 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments,
|
|||||||
Qt::RightDockWidgetArea },
|
Qt::RightDockWidgetArea },
|
||||||
{ DOCKWIDGET_OUTPUT, m_logWindow, {}, Perspective::AddToTab, false, Qt::TopDockWidgetArea },
|
{ DOCKWIDGET_OUTPUT, m_logWindow, {}, Perspective::AddToTab, false, Qt::TopDockWidgetArea },
|
||||||
{ DOCKWIDGET_BREAK, 0, {}, Perspective::Raise }
|
{ DOCKWIDGET_BREAK, 0, {}, Perspective::Raise }
|
||||||
});
|
}); };
|
||||||
|
|
||||||
Perspective cppPerspective = basePerspective;
|
Perspective *cppPerspective = createBasePerspective();
|
||||||
cppPerspective.setName(tr("Debugger"));
|
cppPerspective->setName(tr("Debugger"));
|
||||||
cppPerspective.addOperation({ DOCKWIDGET_REGISTER, m_registerWindow, DOCKWIDGET_SNAPSHOTS,
|
cppPerspective->addOperation({ DOCKWIDGET_REGISTER, m_registerWindow, DOCKWIDGET_SNAPSHOTS,
|
||||||
Perspective::AddToTab, false });
|
Perspective::AddToTab, false });
|
||||||
|
|
||||||
Debugger::registerToolbar(CppPerspectiveId, toolbar);
|
Debugger::registerToolbar(CppPerspectiveId, toolbar);
|
||||||
Debugger::registerPerspective(CppPerspectiveId, cppPerspective);
|
Debugger::registerPerspective(CppPerspectiveId, cppPerspective);
|
||||||
|
|
||||||
// Perspective qmlPerspective = basePerspective;
|
// Perspective *qmlPerspective = createBasePerspective();
|
||||||
// qmlPerspective.setName(tr("QML Debugger"));
|
// qmlPerspective->setName(tr("QML Debugger"));
|
||||||
// qmlPerspective.addOperation({ DOCKWIDGET_REGISTER, DOCKWIDGET_SNAPSHOTS,
|
// qmlPerspective->addOperation({ DOCKWIDGET_REGISTER, DOCKWIDGET_SNAPSHOTS,
|
||||||
// Perspective::AddToTab, false });
|
// Perspective::AddToTab, false });
|
||||||
//
|
//
|
||||||
// Debugger::registerToolbar(QmlPerspectiveId, toolbarContainer);
|
// Debugger::registerToolbar(QmlPerspectiveId, toolbarContainer);
|
||||||
@@ -3582,7 +3582,7 @@ QAction *createStopAction()
|
|||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
|
|
||||||
void registerPerspective(const QByteArray &perspectiveId, const Perspective &perspective)
|
void registerPerspective(const QByteArray &perspectiveId, const Perspective *perspective)
|
||||||
{
|
{
|
||||||
dd->m_mainWindow->registerPerspective(perspectiveId, perspective);
|
dd->m_mainWindow->registerPerspective(perspectiveId, perspective);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,9 +89,9 @@ void QmlProfilerViewManager::createViews()
|
|||||||
|
|
||||||
new QmlProfilerStateWidget(d->profilerState, d->profilerModelManager, d->traceView);
|
new QmlProfilerStateWidget(d->profilerState, d->profilerModelManager, d->traceView);
|
||||||
|
|
||||||
Utils::Perspective perspective;
|
auto perspective = new Utils::Perspective;
|
||||||
perspective.setName(tr("QML Profiler"));
|
perspective->setName(tr("QML Profiler"));
|
||||||
perspective.addOperation({Constants::QmlProfilerTimelineDockId, d->traceView, {},
|
perspective->addOperation({Constants::QmlProfilerTimelineDockId, d->traceView, {},
|
||||||
Perspective::SplitVertical});
|
Perspective::SplitVertical});
|
||||||
|
|
||||||
d->eventsViews << new QmlProfilerStatisticsView(0, d->profilerModelManager);
|
d->eventsViews << new QmlProfilerStatisticsView(0, d->profilerModelManager);
|
||||||
@@ -109,10 +109,10 @@ void QmlProfilerViewManager::createViews()
|
|||||||
connect(view, &QmlProfilerEventsView::showFullRange,
|
connect(view, &QmlProfilerEventsView::showFullRange,
|
||||||
this, [this](){restrictEventsToRange(-1, -1);});
|
this, [this](){restrictEventsToRange(-1, -1);});
|
||||||
QByteArray dockId = view->objectName().toLatin1();
|
QByteArray dockId = view->objectName().toLatin1();
|
||||||
perspective.addOperation({dockId, view, Constants::QmlProfilerTimelineDockId, Perspective::AddToTab});
|
perspective->addOperation({dockId, view, Constants::QmlProfilerTimelineDockId, Perspective::AddToTab});
|
||||||
new QmlProfilerStateWidget(d->profilerState, d->profilerModelManager, view);
|
new QmlProfilerStateWidget(d->profilerState, d->profilerModelManager, view);
|
||||||
}
|
}
|
||||||
perspective.addOperation({Constants::QmlProfilerTimelineDockId, 0, {}, Perspective::Raise});
|
perspective->addOperation({Constants::QmlProfilerTimelineDockId, 0, {}, Perspective::Raise});
|
||||||
Debugger::registerPerspective(Constants::QmlProfilerPerspectiveId, perspective);
|
Debugger::registerPerspective(Constants::QmlProfilerPerspectiveId, perspective);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -501,13 +501,13 @@ CallgrindTool::CallgrindTool(QObject *parent)
|
|||||||
toolbar.addWidget(m_searchFilter);
|
toolbar.addWidget(m_searchFilter);
|
||||||
Debugger::registerToolbar(CallgrindPerspectiveId, toolbar);
|
Debugger::registerToolbar(CallgrindPerspectiveId, toolbar);
|
||||||
|
|
||||||
Debugger::registerPerspective(CallgrindPerspectiveId, { tr("Callgrind"), {
|
Debugger::registerPerspective(CallgrindPerspectiveId, new Perspective(tr("Callgrind"), {
|
||||||
{ CallgrindFlatDockId, m_flatView, {}, Perspective::SplitVertical },
|
{ CallgrindFlatDockId, m_flatView, {}, Perspective::SplitVertical },
|
||||||
{ CallgrindCalleesDockId, m_calleesView, {}, Perspective::SplitVertical },
|
{ CallgrindCalleesDockId, m_calleesView, {}, Perspective::SplitVertical },
|
||||||
{ CallgrindCallersDockId, m_callersView, CallgrindCalleesDockId, Perspective::SplitHorizontal },
|
{ CallgrindCallersDockId, m_callersView, CallgrindCalleesDockId, Perspective::SplitHorizontal },
|
||||||
{ CallgrindVisualizationDockId, m_visualization, {}, Perspective::SplitVertical,
|
{ CallgrindVisualizationDockId, m_visualization, {}, Perspective::SplitVertical,
|
||||||
false, Qt::RightDockWidgetArea }
|
false, Qt::RightDockWidgetArea }
|
||||||
}});
|
}));
|
||||||
|
|
||||||
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::updateRunActions,
|
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::updateRunActions,
|
||||||
this, &CallgrindTool::updateRunActions);
|
this, &CallgrindTool::updateRunActions);
|
||||||
|
|||||||
@@ -336,9 +336,9 @@ MemcheckTool::MemcheckTool(QObject *parent)
|
|||||||
m_errorView->setObjectName(QLatin1String("Valgrind.MemcheckTool.ErrorView"));
|
m_errorView->setObjectName(QLatin1String("Valgrind.MemcheckTool.ErrorView"));
|
||||||
m_errorView->setWindowTitle(tr("Memory Issues"));
|
m_errorView->setWindowTitle(tr("Memory Issues"));
|
||||||
|
|
||||||
Debugger::registerPerspective(MemcheckPerspectiveId, { tr("Memcheck"), {
|
Debugger::registerPerspective(MemcheckPerspectiveId, new Perspective (tr("Memcheck"), {
|
||||||
{ MemcheckErrorDockId, m_errorView, {}, Perspective::SplitVertical }
|
{ MemcheckErrorDockId, m_errorView, {}, Perspective::SplitVertical }
|
||||||
}});
|
}));
|
||||||
|
|
||||||
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::updateRunActions,
|
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::updateRunActions,
|
||||||
this, &MemcheckTool::maybeActiveRunConfigurationChanged);
|
this, &MemcheckTool::maybeActiveRunConfigurationChanged);
|
||||||
|
|||||||
Reference in New Issue
Block a user