diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 780402ccd0eb291427ed48a573da0c0dcebc0513..3b49153d9cd9a9b9bbe320e4977a55e388f665cb 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<QTreeView *>(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<QTreeView *>(m_tooltipWindow); diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h index 2f3cc9ddf21ff700afa6d5035f70433da704b3e3..54a2f93f778c5cecfdf216684f2e101b9c554ef7 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 d1f19f804c340b1ad4f5649590770b6256d3e1e9..47571bdcf47157857373b4bf2c61d709dab37b99 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 3fda92a84564877cbfbf47e90b12ca8c2e1fd1f8..5714bf9dcf602255d601e0e41d7f1f60e6cb608a 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 4acdb1aca7f7f308003dfd8b09de19314f2cbed8..285b7d5e91a3fa77b36ae69bc030e394be460940 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 db1718f0348d484180bf1fcc28cfb2e9867594c0..fa3126005b16802824f62ea3d047e03938fbdff0 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 *);