From aa81df02ffed0ee509e058ea3bafd201984ba217 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 27 Feb 2009 11:41:19 +0100 Subject: [PATCH] Fixes: debugger: easier access to debugger properties from watchers window --- src/plugins/debugger/debuggermanager.cpp | 4 ++++ src/plugins/debugger/debuggermanager.h | 1 + src/plugins/debugger/debuggerplugin.cpp | 8 ++++++++ src/plugins/debugger/debuggerplugin.h | 1 + src/plugins/debugger/watchwindow.cpp | 9 +++++++-- src/plugins/debugger/watchwindow.h | 1 + 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 780402ccd0e..3b49153d9cd 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -258,6 +258,8 @@ void DebuggerManager::init() this, SLOT(assignValueInDebugger(QString,QString))); connect(localsView, SIGNAL(requestWatchExpression(QString)), this, SLOT(watchExpression(QString))); + connect(localsView, SIGNAL(settingsDialogRequested()), + this, SIGNAL(settingsDialogRequested())); // Watchers QTreeView *watchersView = qobject_cast(m_watchersWindow); @@ -276,6 +278,8 @@ void DebuggerManager::init() this, SIGNAL(sessionValueRequested(QString,QVariant*))); connect(m_watchHandler, SIGNAL(setSessionValueRequested(QString,QVariant)), this, SIGNAL(setSessionValueRequested(QString,QVariant))); + connect(watchersView, SIGNAL(settingsDialogRequested()), + this, SIGNAL(settingsDialogRequested())); // Tooltip QTreeView *tooltipView = qobject_cast(m_tooltipWindow); diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 2f3cc9ddf21..54a2f93f778 100644 --- a/src/plugins/debugger/debuggermanager.h +++ b/src/plugins/debugger/debuggermanager.h @@ -371,6 +371,7 @@ signals: void configValueRequested(const QString &name, QVariant *value); void setConfigValueRequested(const QString &name, const QVariant &value); void applicationOutputAvailable(const QString &output); + void settingsDialogRequested(); public: // FIXME: make private diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index d1f19f804c3..47571bdcf47 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -707,6 +707,9 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *error_mes connect(m_manager, SIGNAL(debugModeRequested()), this, SLOT(activateDebugMode())); + connect(m_manager, SIGNAL(settingsDialogRequested()), + this, SLOT(showSettingsDialog())); + return true; } @@ -963,6 +966,11 @@ void DebuggerPlugin::focusCurrentEditor(IMode *mode) editorManager->currentEditor()->widget()->setFocus(); } +void DebuggerPlugin::showSettingsDialog() +{ + Core::ICore::instance()->showOptionsDialog("Debugger", "Gdb"); +} + #include "debuggerplugin.moc" Q_EXPORT_PLUGIN(DebuggerPlugin) diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h index 3fda92a8456..5714bf9dcf6 100644 --- a/src/plugins/debugger/debuggerplugin.h +++ b/src/plugins/debugger/debuggerplugin.h @@ -93,6 +93,7 @@ private slots: void breakpointMarginActionTriggered(); void focusCurrentEditor(Core::IMode *mode); + void showSettingsDialog(); private: void readSettings(); diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 4acdb1aca7f..285b7d5e91a 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -102,12 +102,13 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) QAction *act2 = new QAction("Always adjust column widths to contents", &menu); act2->setCheckable(true); act2->setChecked(m_alwaysResizeColumnsToContents); + QAction *act3 = 0; + QAction *act4 = 0; + QAction *act5 = new QAction("Debugger properties...", &menu); menu.addAction(act1); menu.addAction(act2); - QAction *act3 = 0; - QAction *act4 = 0; QModelIndex idx = indexAt(ev->pos()); QModelIndex mi0 = idx.sibling(idx.row(), 0); QString exp = model()->data(mi0).toString(); @@ -128,6 +129,8 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) act4->setChecked(visual); // FIXME: menu.addAction(act4); } + menu.addSeparator(); + menu.addAction(act5); QAction *act = menu.exec(ev->globalPos()); @@ -144,6 +147,8 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) emit requestRemoveWatchExpression(exp); else if (act == act4) model()->setData(mi0, !visual, VisualRole); + else if (act == act5) + emit settingsDialogRequested(); } void WatchWindow::resizeColumnsToContents() diff --git a/src/plugins/debugger/watchwindow.h b/src/plugins/debugger/watchwindow.h index db1718f0348..fa3126005b1 100644 --- a/src/plugins/debugger/watchwindow.h +++ b/src/plugins/debugger/watchwindow.h @@ -63,6 +63,7 @@ signals: void requestAssignValue(const QString &exp, const QString &value); void requestExpandChildren(const QModelIndex &idx); void requestCollapseChildren(const QModelIndex &idx); + void settingsDialogRequested(); private slots: void handleChangedItem(QWidget *);