diff --git a/src/gui/Src/Gui/MainWindow.cpp b/src/gui/Src/Gui/MainWindow.cpp index f5d6c12d..84f32e4c 100644 --- a/src/gui/Src/Gui/MainWindow.cpp +++ b/src/gui/Src/Gui/MainWindow.cpp @@ -316,6 +316,8 @@ MainWindow::MainWindow(QWidget* parent) connect(ui->actionSnowman, SIGNAL(triggered()), this, SLOT(displaySnowmanWidget())); connect(ui->actionHandles, SIGNAL(triggered()), this, SLOT(displayHandlesWidget())); connect(ui->actionGraph, SIGNAL(triggered()), this, SLOT(displayGraphWidget())); + connect(ui->actionPreviousTab, SIGNAL(triggered()), this, SLOT(displayPreviousTab())); + connect(ui->actionNextTab, SIGNAL(triggered()), this, SLOT(displayNextTab())); makeCommandAction(ui->actionStepIntoSource, "TraceIntoConditional src.line(cip) && !src.disp(cip)"); makeCommandAction(ui->actionStepOverSource, "TraceOverConditional src.line(cip) && !src.disp(cip)"); makeCommandAction(ui->actionseStepInto, "seStepInto"); @@ -572,6 +574,8 @@ void MainWindow::refreshShortcuts() setGlobalShortcut(ui->actionSnowman, ConfigShortcut("ViewSnowman")); setGlobalShortcut(ui->actionHandles, ConfigShortcut("ViewHandles")); setGlobalShortcut(ui->actionGraph, ConfigShortcut("ViewGraph")); + setGlobalShortcut(ui->actionPreviousTab, ConfigShortcut("ViewPreviousTab")); + setGlobalShortcut(ui->actionNextTab, ConfigShortcut("ViewNextTab")); setGlobalShortcut(ui->actionRun, ConfigShortcut("DebugRun")); setGlobalShortcut(ui->actioneRun, ConfigShortcut("DebugeRun")); @@ -918,6 +922,16 @@ void MainWindow::displayGraphWidget() showQWidgetTab(mGraphView); } +void MainWindow::displayPreviousTab() +{ + mTabWidget->showPreviousTab(); +} + +void MainWindow::displayNextTab() +{ + mTabWidget->showNextTab(); +} + void MainWindow::openSettings() { SettingsDialog* settings = new SettingsDialog(this); diff --git a/src/gui/Src/Gui/MainWindow.h b/src/gui/Src/Gui/MainWindow.h index df05320e..ce17a3a7 100644 --- a/src/gui/Src/Gui/MainWindow.h +++ b/src/gui/Src/Gui/MainWindow.h @@ -83,6 +83,8 @@ public slots: void displayThreadsWidget(); void displaySnowmanWidget(); void displayGraphWidget(); + void displayPreviousTab(); + void displayNextTab(); void openSettings(); void openAppearance(); void openCalculator(); diff --git a/src/gui/Src/Gui/MainWindow.ui b/src/gui/Src/Gui/MainWindow.ui index 3fe7f9b6..1199c609 100644 --- a/src/gui/Src/Gui/MainWindow.ui +++ b/src/gui/Src/Gui/MainWindow.ui @@ -72,6 +72,9 @@ + + + @@ -1048,6 +1051,24 @@ Customize menus + + + + :/icons/images/previous.png:/icons/images/previous.png + + + Previous Tab + + + + + + :/icons/images/next.png:/icons/images/next.png + + + Next Tab + + diff --git a/src/gui/Src/Gui/TabWidget.cpp b/src/gui/Src/Gui/TabWidget.cpp index 0e423ade..bca124a8 100644 --- a/src/gui/Src/Gui/TabWidget.cpp +++ b/src/gui/Src/Gui/TabWidget.cpp @@ -198,6 +198,36 @@ QString MHTabWidget::getNativeName(int index) } } +void MHTabWidget::showPreviousTab() +{ + if(QTabWidget::count() <= 1) + { + return; + } + + int previousTabIndex = QTabWidget::currentIndex(); + if(previousTabIndex == 0) + { + previousTabIndex = QTabWidget::count() - 1; + } + else + { + previousTabIndex--; + } + + QTabWidget::setCurrentIndex(previousTabIndex); +} + +void MHTabWidget::showNextTab() +{ + if(QTabWidget::count() <= 1) + { + return; + } + + QTabWidget::setCurrentIndex((QTabWidget::currentIndex() + 1) % QTabWidget::count()); +} + //---------------------------------------------------------------------------- MHDetachedWindow::MHDetachedWindow(QWidget* parent, MHTabWidget* tabwidget) : QMainWindow(parent) diff --git a/src/gui/Src/Gui/TabWidget.h b/src/gui/Src/Gui/TabWidget.h index 970a0613..07af9c63 100644 --- a/src/gui/Src/Gui/TabWidget.h +++ b/src/gui/Src/Gui/TabWidget.h @@ -29,6 +29,8 @@ public: int addTabEx(QWidget* widget, const QIcon & icon, const QString & label, const QString & nativeName); QString getNativeName(int index); + void showPreviousTab(); + void showNextTab(); signals: void tabMovedTabWidget(int from, int to); diff --git a/src/gui/Src/Utils/Configuration.cpp b/src/gui/Src/Utils/Configuration.cpp index ebd6efef..f1029d8c 100644 --- a/src/gui/Src/Utils/Configuration.cpp +++ b/src/gui/Src/Utils/Configuration.cpp @@ -308,6 +308,8 @@ Configuration::Configuration() : QObject(), noMoreMsgbox(false) defaultShortcuts.insert("ViewSnowman", Shortcut(tr("View -> Snowman"), "", true)); defaultShortcuts.insert("ViewHandles", Shortcut(tr("View -> Handles"), "", true)); defaultShortcuts.insert("ViewGraph", Shortcut(tr("View -> Graph"), "Alt+G", true)); + defaultShortcuts.insert("ViewPreviousTab", Shortcut(tr("View -> Previous Tab"), "Ctrl+Shift+Tab")); + defaultShortcuts.insert("ViewNextTab", Shortcut(tr("View -> Next Tab"), "Ctrl+Tab")); defaultShortcuts.insert("DebugRun", Shortcut(tr("Debug -> Run"), "F9", true)); defaultShortcuts.insert("DebugeRun", Shortcut(tr("Debug -> Run (pass exceptions)"), "Shift+F9", true));