forked from qt-creator/qt-creator
debugger: sort entries in Windows->Views the same way as in the dock context menus
Task-number: QTCREATORBUG-6179 Change-Id: I1bc02ebce6de7ff5c12d7baf7c585a414f3972d5 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -136,6 +136,7 @@ public:
|
|||||||
DebuggerLanguages m_engineDebugLanguages;
|
DebuggerLanguages m_engineDebugLanguages;
|
||||||
|
|
||||||
ActionContainer *m_viewsMenu;
|
ActionContainer *m_viewsMenu;
|
||||||
|
QList<Command *> m_menuCommandsToAdd;
|
||||||
|
|
||||||
Project *m_previousProject;
|
Project *m_previousProject;
|
||||||
Target *m_previousTarget;
|
Target *m_previousTarget;
|
||||||
@@ -321,7 +322,8 @@ void DebuggerMainWindowPrivate::createViewsMenuItems()
|
|||||||
Core::Id("Debugger.Views.OpenMemoryEditor"),
|
Core::Id("Debugger.Views.OpenMemoryEditor"),
|
||||||
debugcontext);
|
debugcontext);
|
||||||
cmd->setAttribute(Command::CA_Hide);
|
cmd->setAttribute(Command::CA_Hide);
|
||||||
m_viewsMenu->addAction(cmd);
|
m_viewsMenu->addAction(cmd, Core::Constants::G_DEFAULT_THREE);
|
||||||
|
|
||||||
cmd = am->registerAction(q->menuSeparator1(),
|
cmd = am->registerAction(q->menuSeparator1(),
|
||||||
Core::Id("Debugger.Views.Separator1"), debugcontext);
|
Core::Id("Debugger.Views.Separator1"), debugcontext);
|
||||||
cmd->setAttribute(Command::CA_Hide);
|
cmd->setAttribute(Command::CA_Hide);
|
||||||
@@ -429,7 +431,7 @@ QDockWidget *DebuggerMainWindow::createDockWidget(const DebuggerLanguage &langua
|
|||||||
Command *cmd = am->registerAction(toggleViewAction,
|
Command *cmd = am->registerAction(toggleViewAction,
|
||||||
Core::Id(QLatin1String("Debugger.") + widget->objectName()), globalContext);
|
Core::Id(QLatin1String("Debugger.") + widget->objectName()), globalContext);
|
||||||
cmd->setAttribute(Command::CA_Hide);
|
cmd->setAttribute(Command::CA_Hide);
|
||||||
d->m_viewsMenu->addAction(cmd);
|
d->m_menuCommandsToAdd.append(cmd);
|
||||||
|
|
||||||
dockWidget->installEventFilter(&d->m_resizeEventFilter);
|
dockWidget->installEventFilter(&d->m_resizeEventFilter);
|
||||||
|
|
||||||
@@ -443,6 +445,19 @@ QDockWidget *DebuggerMainWindow::createDockWidget(const DebuggerLanguage &langua
|
|||||||
return dockWidget;
|
return dockWidget;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool sortCommands(Command *cmd1, Command *cmd2)
|
||||||
|
{
|
||||||
|
return cmd1->action()->text() < cmd2->action()->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebuggerMainWindow::addStagedMenuEntries()
|
||||||
|
{
|
||||||
|
qSort(d->m_menuCommandsToAdd.begin(), d->m_menuCommandsToAdd.end(), &sortCommands);
|
||||||
|
foreach (Command *cmd, d->m_menuCommandsToAdd)
|
||||||
|
d->m_viewsMenu->addAction(cmd);
|
||||||
|
d->m_menuCommandsToAdd.clear();
|
||||||
|
}
|
||||||
|
|
||||||
QWidget *DebuggerMainWindow::createContents(IMode *mode)
|
QWidget *DebuggerMainWindow::createContents(IMode *mode)
|
||||||
{
|
{
|
||||||
ICore *core = ICore::instance();
|
ICore *core = ICore::instance();
|
||||||
|
@@ -73,6 +73,7 @@ public:
|
|||||||
|
|
||||||
// Dockwidgets are registered to the main window.
|
// Dockwidgets are registered to the main window.
|
||||||
QDockWidget *createDockWidget(const DebuggerLanguage &language, QWidget *widget);
|
QDockWidget *createDockWidget(const DebuggerLanguage &language, QWidget *widget);
|
||||||
|
void addStagedMenuEntries();
|
||||||
|
|
||||||
QWidget *createContents(Core::IMode *mode);
|
QWidget *createContents(Core::IMode *mode);
|
||||||
QMenu *createPopupMenu();
|
QMenu *createPopupMenu();
|
||||||
|
@@ -3025,6 +3025,8 @@ void DebuggerPluginPrivate::extensionsInitialized()
|
|||||||
dock = m_mainWindow->createDockWidget(CppLanguage, localsAndWatchers);
|
dock = m_mainWindow->createDockWidget(CppLanguage, localsAndWatchers);
|
||||||
dock->setProperty(DOCKWIDGET_DEFAULT_AREA, Qt::RightDockWidgetArea);
|
dock->setProperty(DOCKWIDGET_DEFAULT_AREA, Qt::RightDockWidgetArea);
|
||||||
|
|
||||||
|
m_mainWindow->addStagedMenuEntries();
|
||||||
|
|
||||||
// Do not fail to load the whole plugin if something goes wrong here.
|
// Do not fail to load the whole plugin if something goes wrong here.
|
||||||
QString errorMessage;
|
QString errorMessage;
|
||||||
if (!parseArguments(m_arguments, &m_cmdLineEnabledEngines, &errorMessage)) {
|
if (!parseArguments(m_arguments, &m_cmdLineEnabledEngines, &errorMessage)) {
|
||||||
|
Reference in New Issue
Block a user