diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp index 571f68e772f8a9ea098a0749e8d0187c8d4c6409..e8d48d0f4d6c0dac3aa3eac007317b2f281b7945 100644 --- a/src/plugins/debugger/watchwindow.cpp +++ b/src/plugins/debugger/watchwindow.cpp @@ -274,63 +274,55 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) const int effectiveIndividualFormat = individualFormat == -1 ? typeFormat : individualFormat; - QMenu typeFormatMenu; + QMenu formatMenu; QList<QAction *> typeFormatActions; + QList<QAction *> individualFormatActions; QAction *clearTypeFormatAction = 0; - if (idx.isValid()) { - typeFormatMenu.setTitle( + QAction *clearIndividualFormatAction = 0; + formatMenu.setTitle(tr("Change Display Format...")); + if (idx.isValid() && !alternativeFormats.isEmpty()) { + QAction *dummy = formatMenu.addAction( tr("Change Display for Type \"%1\"").arg(type)); - if (alternativeFormats.isEmpty()) { - typeFormatMenu.setEnabled(false); - } else { - clearTypeFormatAction = typeFormatMenu.addAction(tr("Automatic")); - clearTypeFormatAction->setEnabled(typeFormat != -1); - clearTypeFormatAction->setCheckable(true); - clearTypeFormatAction->setChecked(typeFormat == -1); - typeFormatMenu.addSeparator(); - for (int i = 0; i != alternativeFormats.size(); ++i) { - const QString format = alternativeFormats.at(i); - QAction *act = new QAction(format, &typeFormatMenu); - act->setCheckable(true); - if (i == typeFormat) - act->setChecked(true); - typeFormatMenu.addAction(act); - typeFormatActions.append(act); - } + dummy->setEnabled(false); + formatMenu.addSeparator(); + clearTypeFormatAction = formatMenu.addAction(tr("Automatic")); + //clearTypeFormatAction->setEnabled(typeFormat != -1); + //clearTypeFormatAction->setEnabled(individualFormat != -1); + clearTypeFormatAction->setCheckable(true); + clearTypeFormatAction->setChecked(typeFormat == -1); + formatMenu.addSeparator(); + for (int i = 0; i != alternativeFormats.size(); ++i) { + const QString format = alternativeFormats.at(i); + QAction *act = new QAction(format, &formatMenu); + act->setCheckable(true); + //act->setEnabled(individualFormat != -1); + if (i == typeFormat) + act->setChecked(true); + formatMenu.addAction(act); + typeFormatActions.append(act); } - } else { - typeFormatMenu.setTitle(tr("Change Display for Type")); - typeFormatMenu.setEnabled(false); - } - - QMenu individualFormatMenu; - QList<QAction *> individualFormatActions; - QAction *clearIndividualFormatAction = 0; - if (idx.isValid()) { - individualFormatMenu.setTitle( + formatMenu.addSeparator(); + dummy = formatMenu.addAction( tr("Change Display for Object Named \"%1\"").arg(mi0.data().toString())); - if (alternativeFormats.isEmpty()) { - individualFormatMenu.setEnabled(false); - } else { - clearIndividualFormatAction - = individualFormatMenu.addAction(tr("Automatic")); - clearIndividualFormatAction->setEnabled(individualFormat != -1); - clearIndividualFormatAction->setCheckable(true); - clearIndividualFormatAction->setChecked(individualFormat == -1); - individualFormatMenu.addSeparator(); - for (int i = 0; i != alternativeFormats.size(); ++i) { - const QString format = alternativeFormats.at(i); - QAction *act = new QAction(format, &individualFormatMenu); - act->setCheckable(true); - if (i == effectiveIndividualFormat) - act->setChecked(true); - individualFormatMenu.addAction(act); - individualFormatActions.append(act); - } + dummy->setEnabled(false); + formatMenu.addSeparator(); + clearIndividualFormatAction + = formatMenu.addAction(tr("Use Display Format Based on Type")); + //clearIndividualFormatAction->setEnabled(individualFormat != -1); + clearIndividualFormatAction->setCheckable(true); + clearIndividualFormatAction->setChecked(effectiveIndividualFormat == -1); + formatMenu.addSeparator(); + for (int i = 0; i != alternativeFormats.size(); ++i) { + const QString format = alternativeFormats.at(i); + QAction *act = new QAction(format, &formatMenu); + act->setCheckable(true); + if (i == effectiveIndividualFormat) + act->setChecked(true); + formatMenu.addAction(act); + individualFormatActions.append(act); } } else { - individualFormatMenu.setTitle(tr("Change Display for Object")); - individualFormatMenu.setEnabled(false); + formatMenu.setEnabled(false); } const bool actionsEnabled = engine->debuggerActionsEnabled(); @@ -406,8 +398,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev) menu.addAction(actInsertNewWatchItem); menu.addAction(actSelectWidgetToWatch); - menu.addMenu(&typeFormatMenu); - menu.addMenu(&individualFormatMenu); + menu.addMenu(&formatMenu); if (actOpenMemoryEditAtVariableAddress) menu.addAction(actOpenMemoryEditAtVariableAddress); if (actOpenMemoryEditAtPointerValue)