From e42e7440645855d7cac43d1e95ed4c12d0efda68 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Fri, 30 Jun 2017 23:50:28 -0400 Subject: [PATCH 01/13] Add hotkey dialog --- src/gui_impl/dialogs/dialogs.pri | 9 ++-- src/gui_impl/dialogs/hotkey_dialog.cpp | 15 +++++++ src/gui_impl/dialogs/hotkey_dialog.h | 22 ++++++++++ src/gui_impl/dialogs/hotkey_dialog.ui | 57 ++++++++++++++++++++++++++ 4 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 src/gui_impl/dialogs/hotkey_dialog.cpp create mode 100644 src/gui_impl/dialogs/hotkey_dialog.h create mode 100644 src/gui_impl/dialogs/hotkey_dialog.ui diff --git a/src/gui_impl/dialogs/dialogs.pri b/src/gui_impl/dialogs/dialogs.pri index 0b27ba5e..dbc6d9d2 100644 --- a/src/gui_impl/dialogs/dialogs.pri +++ b/src/gui_impl/dialogs/dialogs.pri @@ -4,7 +4,8 @@ HEADERS += \ $$PWD/event_time_selection_dialog.h \ $$PWD/event_types_selection_dialog.h \ $$PWD/scale_channel_dialog.h \ - $$PWD/resampling_dialog.h + $$PWD/resampling_dialog.h \ + $$PWD/hotkey_dialog.h SOURCES += \ $$PWD/basic_header_info_dialog.cpp \ @@ -12,7 +13,8 @@ SOURCES += \ $$PWD/event_time_selection_dialog.cpp \ $$PWD/event_types_selection_dialog.cpp \ $$PWD/scale_channel_dialog.cpp \ - $$PWD/resampling_dialog.cpp + $$PWD/resampling_dialog.cpp \ + $$PWD/hotkey_dialog.cpp FORMS += \ $$PWD/about_dialog.ui \ @@ -20,4 +22,5 @@ FORMS += \ $$PWD/event_time_selection_dialog.ui \ $$PWD/event_type_selection_dialog.ui \ $$PWD/scale_channel_dialog.ui \ - $$PWD/resampling_dialog.ui + $$PWD/resampling_dialog.ui \ + $$PWD/hotkey_dialog.ui diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp new file mode 100644 index 00000000..892de48b --- /dev/null +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -0,0 +1,15 @@ +#include "hotkey_dialog.h" +#include "ui_hotkey_dialog.h" + +hotkey_dialog::hotkey_dialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::hotkey_dialog) +{ + ui->setupUi(this); + +} + +hotkey_dialog::~hotkey_dialog() +{ + delete ui; +} diff --git a/src/gui_impl/dialogs/hotkey_dialog.h b/src/gui_impl/dialogs/hotkey_dialog.h new file mode 100644 index 00000000..c6011a1f --- /dev/null +++ b/src/gui_impl/dialogs/hotkey_dialog.h @@ -0,0 +1,22 @@ +#ifndef HOTKEY_DIALOG_H +#define HOTKEY_DIALOG_H + +#include + +namespace Ui { +class hotkey_dialog; +} + +class hotkey_dialog : public QDialog +{ + Q_OBJECT + +public: + explicit hotkey_dialog(QWidget *parent = 0); + ~hotkey_dialog(); + +private: + Ui::hotkey_dialog *ui; +}; + +#endif // HOTKEY_DIALOG_H diff --git a/src/gui_impl/dialogs/hotkey_dialog.ui b/src/gui_impl/dialogs/hotkey_dialog.ui new file mode 100644 index 00000000..7a1713e5 --- /dev/null +++ b/src/gui_impl/dialogs/hotkey_dialog.ui @@ -0,0 +1,57 @@ + + + hotkey_dialog + + + + 0 + 0 + 400 + 300 + + + + Dialog + + + + + + + + + Qt::Horizontal + + + + 133 + 20 + + + + + + + + OK + + + + + + + Qt::Horizontal + + + + 132 + 20 + + + + + + + + + From 8d44dc0ad6e530a913b8fd146c3bc48eee27b8f0 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 1 Jul 2017 16:59:29 -0400 Subject: [PATCH 02/13] Second commit --- .../adapt_channel_view_gui_command.cpp | 15 +++++- .../commands/adapt_channel_view_gui_command.h | 7 +++ src/gui_impl/dialogs/hotkey_dialog.cpp | 46 +++++++++++++++++-- src/gui_impl/dialogs/hotkey_dialog.h | 13 ++++-- src/gui_impl/dialogs/hotkey_dialog.ui | 6 +-- src/gui_impl/main_window.cpp | 1 + 6 files changed, 76 insertions(+), 12 deletions(-) diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp index 58b90c9a..06899023 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp @@ -25,6 +25,7 @@ QString const AdaptChannelViewGuiCommand::SET_AUTO_SCALE_MAX_TO_MAX_ = "Zero Lin QString const AdaptChannelViewGuiCommand::SET_AUTO_SCALE_MIN_TO_MAX_ = "Zero Line Fitted"; QString const AdaptChannelViewGuiCommand::ANIMATIONS_ = "Animations"; QString const AdaptChannelViewGuiCommand::SET_ANIMATION_DURATION_ = "Set Animation Duration"; +QString const AdaptChannelViewGuiCommand::HOTKEYS_ = "Hotkeys..."; QStringList const AdaptChannelViewGuiCommand::ACTIONS_ = QStringList() << AdaptChannelViewGuiCommand::CHANNELS_ << AdaptChannelViewGuiCommand::SCALE_ALL_ << @@ -34,7 +35,8 @@ QStringList const AdaptChannelViewGuiCommand::ACTIONS_ = QStringList() << AdaptChannelViewGuiCommand::SCALE_ << AdaptChannelViewGuiCommand::HIDE_ << AdaptChannelViewGuiCommand::ANIMATIONS_ << - AdaptChannelViewGuiCommand::SET_ANIMATION_DURATION_; + AdaptChannelViewGuiCommand::SET_ANIMATION_DURATION_ << + AdaptChannelViewGuiCommand::HOTKEYS_; //----------------------------------------------------------------------------- GuiActionFactoryRegistrator registrator_ ("Adapt Channel View", @@ -52,13 +54,17 @@ void AdaptChannelViewGuiCommand::init () { setIcon (CHANNELS_, QIcon(":/images/ic_reorder_black_24dp.png")); setIcon (SCALE_ALL_, QIcon(":/images/ic_autoscale_black_24dp.png")); + setIcon (HOTKEYS_, QIcon(":/images/ic_help_outline_black_24dp.png")); resetActionTriggerSlot (CHANNELS_, SLOT(selectShownChannels())); resetActionTriggerSlot (SCALE_ALL_, SLOT(scaleAll())); resetActionTriggerSlot (CHANGE_COLOR_, SLOT(changeColor())); resetActionTriggerSlot (SCALE_, SLOT(scale())); resetActionTriggerSlot (HIDE_, SLOT(hide())); + resetActionTriggerSlot (HOTKEYS_, SLOT(showHotkeyDialog())); + setShortcut (CHANNELS_, tr("Ctrl+C")); //setShortcut (SCALE_ALL_, tr("Ctrl+A")); + setShortcut (HOTKEYS_, tr("Ctrl+H")); QActionGroup* scale_mode_action_group = new QActionGroup (this); scale_mode_action_group->setExclusive(true); @@ -229,4 +235,11 @@ void AdaptChannelViewGuiCommand::setAnimationDuration () settings.endGroup (); } +//------------------------------------------------------------------------- +void AdaptChannelViewGuiCommand::showHotkeyDialog() +{ + HotkeyDialog* hotkeyDialog = new HotkeyDialog(); + hotkeyDialog->exec(); +} + } diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.h b/src/gui_impl/commands/adapt_channel_view_gui_command.h index 5f87effd..09f5a903 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.h +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.h @@ -8,6 +8,7 @@ #include "gui/gui_action_command.h" #include "gui/gui_action_factory_registrator.h" +#include "gui_impl/dialogs/hotkey_dialog.h" namespace sigviewer { @@ -61,6 +62,9 @@ private slots: //------------------------------------------------------------------------- void setAnimationDuration (); + //------------------------------------------------------------------------- + void showHotkeyDialog (); + private: static QString const CHANNELS_; static QString const CHANGE_COLOR_; @@ -73,8 +77,11 @@ private slots: static QString const ANIMATIONS_; static QString const SET_ANIMATION_DURATION_; static QStringList const ACTIONS_; + static QString const HOTKEYS_; static GuiActionFactoryRegistrator registrator_; + + HotkeyDialog* hotkeyDialog; }; } diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index 892de48b..deb81017 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -1,15 +1,55 @@ #include "hotkey_dialog.h" #include "ui_hotkey_dialog.h" -hotkey_dialog::hotkey_dialog(QWidget *parent) : +HotkeyDialog::HotkeyDialog(QWidget *parent) : QDialog(parent), - ui(new Ui::hotkey_dialog) + ui(new Ui::HotkeyDialog) { ui->setupUi(this); + resize(700, 700); + this->setWindowTitle(tr("Hotkeys")); + ui->tableWidget->setRowCount(6); + ui->tableWidget->setColumnCount(2); + ui->tableWidget->horizontalHeader()->hide(); + ui->tableWidget->verticalHeader()->hide(); + ui->tableWidget->setShowGrid(false); + ui->tableWidget->setFocusPolicy(Qt::NoFocus); + ui->tableWidget->setColumnWidth(0, width() * 0.48); + ui->tableWidget->setColumnWidth(1, width() * 0.48); + + QString ctrl = "Ctrl"; + + QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg("Scale Individual Channel Up")); + ui->tableWidget->setItem(0, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + Mousewheel Up")); + ui->tableWidget->setItem(0, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Scale Individual Channel Down")); + ui->tableWidget->setItem(1, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + Mousewheel Down")); + ui->tableWidget->setItem(1, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Info Dialog")); + ui->tableWidget->setItem(2, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + I")); + ui->tableWidget->setItem(2, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Channel Dialog")); + ui->tableWidget->setItem(3, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + C")); + ui->tableWidget->setItem(3, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Event Dialog")); + ui->tableWidget->setItem(4, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + E")); + ui->tableWidget->setItem(4, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Zoom In horizontally")); + ui->tableWidget->setItem(5, 0, newItem); } -hotkey_dialog::~hotkey_dialog() +HotkeyDialog::~HotkeyDialog() { delete ui; } + +void HotkeyDialog::on_pushButton_clicked() +{ + close(); +} diff --git a/src/gui_impl/dialogs/hotkey_dialog.h b/src/gui_impl/dialogs/hotkey_dialog.h index c6011a1f..18b20015 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.h +++ b/src/gui_impl/dialogs/hotkey_dialog.h @@ -4,19 +4,22 @@ #include namespace Ui { -class hotkey_dialog; +class HotkeyDialog; } -class hotkey_dialog : public QDialog +class HotkeyDialog : public QDialog { Q_OBJECT public: - explicit hotkey_dialog(QWidget *parent = 0); - ~hotkey_dialog(); + explicit HotkeyDialog(QWidget *parent = 0); + ~HotkeyDialog(); + +private slots: + void on_pushButton_clicked(); private: - Ui::hotkey_dialog *ui; + Ui::HotkeyDialog *ui; }; #endif // HOTKEY_DIALOG_H diff --git a/src/gui_impl/dialogs/hotkey_dialog.ui b/src/gui_impl/dialogs/hotkey_dialog.ui index 7a1713e5..86f76af0 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.ui +++ b/src/gui_impl/dialogs/hotkey_dialog.ui @@ -1,7 +1,7 @@ - hotkey_dialog - + HotkeyDialog + 0 @@ -15,7 +15,7 @@ - + diff --git a/src/gui_impl/main_window.cpp b/src/gui_impl/main_window.cpp index 62b5e816..a89d6565 100644 --- a/src/gui_impl/main_window.cpp +++ b/src/gui_impl/main_window.cpp @@ -101,6 +101,7 @@ void MainWindow::initToolBars() view_toolbar_->addAction(action("Events...")); view_toolbar_->addAction(action("Channels...")); view_toolbar_->addAction(action("Scale All...")); + view_toolbar_->addAction(action("Hotkeys...")); view_toolbar_->addAction(action("Zoom In Vertical")); view_toolbar_->addAction(action("Zoom Out Vertical")); view_toolbar_->addAction(action("Zoom In Horizontal")); From f407e10c6fa8e80d68c002b64242ef3741b4616a Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 1 Jul 2017 17:41:00 -0400 Subject: [PATCH 03/13] More commits --- .../adapt_channel_view_gui_command.cpp | 2 +- src/gui_impl/dialogs/hotkey_dialog.cpp | 42 ++++++++++++++++++- 2 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp index 06899023..55d4d52f 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp @@ -63,7 +63,7 @@ void AdaptChannelViewGuiCommand::init () resetActionTriggerSlot (HOTKEYS_, SLOT(showHotkeyDialog())); setShortcut (CHANNELS_, tr("Ctrl+C")); - //setShortcut (SCALE_ALL_, tr("Ctrl+A")); + setShortcut (SCALE_ALL_, tr("Ctrl+A")); setShortcut (HOTKEYS_, tr("Ctrl+H")); QActionGroup* scale_mode_action_group = new QActionGroup (this); diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index deb81017..777a1521 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -9,7 +9,7 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : resize(700, 700); this->setWindowTitle(tr("Hotkeys")); - ui->tableWidget->setRowCount(6); + ui->tableWidget->setRowCount(15); ui->tableWidget->setColumnCount(2); ui->tableWidget->horizontalHeader()->hide(); ui->tableWidget->verticalHeader()->hide(); @@ -40,8 +40,46 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : ui->tableWidget->setItem(4, 0, newItem); newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + E")); ui->tableWidget->setItem(4, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Zoom In horizontally")); + newItem = new QTableWidgetItem(tr("%1").arg("Zoom In Horizontal")); ui->tableWidget->setItem(5, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + +")); + ui->tableWidget->setItem(5, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Zoom Out Horizontal")); + ui->tableWidget->setItem(6, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + -")); + ui->tableWidget->setItem(6, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Zoom In Vertical")); + ui->tableWidget->setItem(7, 0, newItem); + newItem = new QTableWidgetItem(tr("Alt %1").arg(" + +")); + ui->tableWidget->setItem(7, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Zoom Out Vertical")); + ui->tableWidget->setItem(8, 0, newItem); + newItem = new QTableWidgetItem(tr("Alt %1").arg(" + -")); + ui->tableWidget->setItem(8, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Scale All")); + ui->tableWidget->setItem(9, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + A")); + ui->tableWidget->setItem(9, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("New Event Mode")); + ui->tableWidget->setItem(10, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 1")); + ui->tableWidget->setItem(10, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Edit Event Mode")); + ui->tableWidget->setItem(11, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 2")); + ui->tableWidget->setItem(11, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Scroll Mode")); + ui->tableWidget->setItem(12, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 3")); + ui->tableWidget->setItem(12, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("View Options Mode")); + ui->tableWidget->setItem(13, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 4")); + ui->tableWidget->setItem(13, 1, newItem); + newItem = new QTableWidgetItem(tr("%1").arg("Open File")); + ui->tableWidget->setItem(14, 0, newItem); + newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + O")); + ui->tableWidget->setItem(14, 1, newItem); } HotkeyDialog::~HotkeyDialog() From 1acb42c874bcbf26c7a46384dde5a2809063502a Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 1 Jul 2017 18:26:14 -0400 Subject: [PATCH 04/13] Modeless 1. Modeless 2. Switch to for loop 3. Check OS 4. AlignRight and AlignVCenter --- .../adapt_channel_view_gui_command.cpp | 4 +- .../commands/adapt_channel_view_gui_command.h | 2 +- src/gui_impl/dialogs/hotkey_dialog.cpp | 119 ++++++++---------- 3 files changed, 58 insertions(+), 67 deletions(-) diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp index 55d4d52f..1d13108d 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp @@ -238,8 +238,8 @@ void AdaptChannelViewGuiCommand::setAnimationDuration () //------------------------------------------------------------------------- void AdaptChannelViewGuiCommand::showHotkeyDialog() { - HotkeyDialog* hotkeyDialog = new HotkeyDialog(); - hotkeyDialog->exec(); + hotkey_dialog_ = new HotkeyDialog(); + hotkey_dialog_->show(); } } diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.h b/src/gui_impl/commands/adapt_channel_view_gui_command.h index 09f5a903..e1e7ebc0 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.h +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.h @@ -81,7 +81,7 @@ private slots: static GuiActionFactoryRegistrator registrator_; - HotkeyDialog* hotkeyDialog; + HotkeyDialog* hotkey_dialog_; }; } diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index 777a1521..3e9709e2 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -7,79 +7,70 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : { ui->setupUi(this); - resize(700, 700); + resize(633, 744); this->setWindowTitle(tr("Hotkeys")); - ui->tableWidget->setRowCount(15); + ui->tableWidget->setRowCount(16); ui->tableWidget->setColumnCount(2); ui->tableWidget->horizontalHeader()->hide(); ui->tableWidget->verticalHeader()->hide(); ui->tableWidget->setShowGrid(false); ui->tableWidget->setFocusPolicy(Qt::NoFocus); - ui->tableWidget->setColumnWidth(0, width() * 0.48); - ui->tableWidget->setColumnWidth(1, width() * 0.48); + ui->tableWidget->setColumnWidth(0, width() * 0.47); + ui->tableWidget->setColumnWidth(1, width() * 0.47); +#if defined(Q_OS_MACOS) + QString ctrl = "Cmd"; +#else QString ctrl = "Ctrl"; +#endif - QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg("Scale Individual Channel Up")); - ui->tableWidget->setItem(0, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + Mousewheel Up")); - ui->tableWidget->setItem(0, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Scale Individual Channel Down")); - ui->tableWidget->setItem(1, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + Mousewheel Down")); - ui->tableWidget->setItem(1, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Info Dialog")); - ui->tableWidget->setItem(2, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + I")); - ui->tableWidget->setItem(2, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Channel Dialog")); - ui->tableWidget->setItem(3, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + C")); - ui->tableWidget->setItem(3, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Event Dialog")); - ui->tableWidget->setItem(4, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + E")); - ui->tableWidget->setItem(4, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Zoom In Horizontal")); - ui->tableWidget->setItem(5, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + +")); - ui->tableWidget->setItem(5, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Zoom Out Horizontal")); - ui->tableWidget->setItem(6, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + -")); - ui->tableWidget->setItem(6, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Zoom In Vertical")); - ui->tableWidget->setItem(7, 0, newItem); - newItem = new QTableWidgetItem(tr("Alt %1").arg(" + +")); - ui->tableWidget->setItem(7, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Zoom Out Vertical")); - ui->tableWidget->setItem(8, 0, newItem); - newItem = new QTableWidgetItem(tr("Alt %1").arg(" + -")); - ui->tableWidget->setItem(8, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Scale All")); - ui->tableWidget->setItem(9, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + A")); - ui->tableWidget->setItem(9, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("New Event Mode")); - ui->tableWidget->setItem(10, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 1")); - ui->tableWidget->setItem(10, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Edit Event Mode")); - ui->tableWidget->setItem(11, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 2")); - ui->tableWidget->setItem(11, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Scroll Mode")); - ui->tableWidget->setItem(12, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 3")); - ui->tableWidget->setItem(12, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("View Options Mode")); - ui->tableWidget->setItem(13, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + 4")); - ui->tableWidget->setItem(13, 1, newItem); - newItem = new QTableWidgetItem(tr("%1").arg("Open File")); - ui->tableWidget->setItem(14, 0, newItem); - newItem = new QTableWidgetItem(tr("%1%2").arg(ctrl).arg(" + O")); - ui->tableWidget->setItem(14, 1, newItem); + QStringList actionDescriptions; + QStringList hotkeys; + + actionDescriptions << "Scale Individual Channel Up" + << "Scale Individual Channel Down" + << "Info Dialog" + << "Channel Dialog" + << "Event Dialog" + << "Open File" + << "Scale All" + << "Zoom In Horizontal" + << "Zoom Out Horizontal" + << "Zoom In Vertical" + << "Zoom Out Vertical" + << "New Event Mode" + << "Edit Event Mode" + << "Scroll Mode" + << "View Options Mode" + << "Exit"; + + hotkeys << ctrl + "+Mousewheel Up" + << ctrl + "+Mousewheel Down" + << ctrl + "+I" + << ctrl + "+C" + << ctrl + "+E" + << ctrl + "+O" + << ctrl + "+A" + << "Alt++" + << "Alt+-" + << ctrl + "++" + << ctrl + "+-" + << ctrl + "+1" + << ctrl + "+2" + << ctrl + "+3" + << ctrl + "+4" + << ctrl + "+F4"; + + for (int row = 0; row < ui->tableWidget->rowCount(); row++) + { + QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(actionDescriptions[row])); + newItem->setFlags(newItem->flags()^Qt::ItemIsEditable); + ui->tableWidget->setItem(row, 0, newItem); + newItem = new QTableWidgetItem(tr("%1").arg(hotkeys[row])); + newItem->setTextAlignment( Qt::AlignRight | Qt::AlignVCenter ); + newItem->setFlags(newItem->flags()^Qt::ItemIsEditable); + ui->tableWidget->setItem(row, 1, newItem); + } } HotkeyDialog::~HotkeyDialog() From ce1b43c6993acb40a53a9091927b91e852f1c486 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 1 Jul 2017 18:39:42 -0400 Subject: [PATCH 05/13] Added Copyright --- src/gui_impl/dialogs/hotkey_dialog.cpp | 23 ++++++++++++++--------- src/gui_impl/dialogs/hotkey_dialog.h | 5 +++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index 3e9709e2..f0150837 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -1,3 +1,8 @@ +// Copyright (c) 2016 The SigViewer Development Team +// Licensed under the GNU General Public License (GPL) +// https://www.gnu.org/licenses/gpl + + #include "hotkey_dialog.h" #include "ui_hotkey_dialog.h" @@ -6,17 +11,8 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : ui(new Ui::HotkeyDialog) { ui->setupUi(this); - resize(633, 744); this->setWindowTitle(tr("Hotkeys")); - ui->tableWidget->setRowCount(16); - ui->tableWidget->setColumnCount(2); - ui->tableWidget->horizontalHeader()->hide(); - ui->tableWidget->verticalHeader()->hide(); - ui->tableWidget->setShowGrid(false); - ui->tableWidget->setFocusPolicy(Qt::NoFocus); - ui->tableWidget->setColumnWidth(0, width() * 0.47); - ui->tableWidget->setColumnWidth(1, width() * 0.47); #if defined(Q_OS_MACOS) QString ctrl = "Cmd"; @@ -61,6 +57,15 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : << ctrl + "+4" << ctrl + "+F4"; + ui->tableWidget->setRowCount(actionDescriptions.size()); + ui->tableWidget->setColumnCount(2); + ui->tableWidget->horizontalHeader()->hide(); + ui->tableWidget->verticalHeader()->hide(); + ui->tableWidget->setShowGrid(false); + ui->tableWidget->setFocusPolicy(Qt::NoFocus); + ui->tableWidget->setColumnWidth(0, width() * 0.47); + ui->tableWidget->setColumnWidth(1, width() * 0.47); + for (int row = 0; row < ui->tableWidget->rowCount(); row++) { QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(actionDescriptions[row])); diff --git a/src/gui_impl/dialogs/hotkey_dialog.h b/src/gui_impl/dialogs/hotkey_dialog.h index 18b20015..e7d5b611 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.h +++ b/src/gui_impl/dialogs/hotkey_dialog.h @@ -1,3 +1,8 @@ +// Copyright (c) 2016 The SigViewer Development Team +// Licensed under the GNU General Public License (GPL) +// https://www.gnu.org/licenses/gpl + + #ifndef HOTKEY_DIALOG_H #define HOTKEY_DIALOG_H From 637d1730026d13b8257452cafb2ac01005901c96 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 29 Jul 2017 15:22:05 -0400 Subject: [PATCH 06/13] Move Help dialog to right most --- src/gui_impl/main_window.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui_impl/main_window.cpp b/src/gui_impl/main_window.cpp index a89d6565..74244ba1 100644 --- a/src/gui_impl/main_window.cpp +++ b/src/gui_impl/main_window.cpp @@ -101,11 +101,11 @@ void MainWindow::initToolBars() view_toolbar_->addAction(action("Events...")); view_toolbar_->addAction(action("Channels...")); view_toolbar_->addAction(action("Scale All...")); - view_toolbar_->addAction(action("Hotkeys...")); view_toolbar_->addAction(action("Zoom In Vertical")); view_toolbar_->addAction(action("Zoom Out Vertical")); view_toolbar_->addAction(action("Zoom In Horizontal")); view_toolbar_->addAction(action("Zoom Out Horizontal")); + view_toolbar_->addAction(action("Hotkeys...")); view_toolbar_views_menu_->addSeparator (); toggle_all_toolbars_ = new QAction (tr("Hide all Toolbars"), this); From cf37e96b37ef2d8174c9072be273576cdb34a1e7 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 29 Jul 2017 15:23:24 -0400 Subject: [PATCH 07/13] Renamed as 'Keyboard and Mouse Shortcuts' --- src/gui_impl/commands/adapt_channel_view_gui_command.cpp | 2 +- src/gui_impl/dialogs/hotkey_dialog.cpp | 2 +- src/gui_impl/main_window.cpp | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp index 1d13108d..3573b387 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp @@ -25,7 +25,7 @@ QString const AdaptChannelViewGuiCommand::SET_AUTO_SCALE_MAX_TO_MAX_ = "Zero Lin QString const AdaptChannelViewGuiCommand::SET_AUTO_SCALE_MIN_TO_MAX_ = "Zero Line Fitted"; QString const AdaptChannelViewGuiCommand::ANIMATIONS_ = "Animations"; QString const AdaptChannelViewGuiCommand::SET_ANIMATION_DURATION_ = "Set Animation Duration"; -QString const AdaptChannelViewGuiCommand::HOTKEYS_ = "Hotkeys..."; +QString const AdaptChannelViewGuiCommand::HOTKEYS_ = "Keyboard and Mouse Shortcuts"; QStringList const AdaptChannelViewGuiCommand::ACTIONS_ = QStringList() << AdaptChannelViewGuiCommand::CHANNELS_ << AdaptChannelViewGuiCommand::SCALE_ALL_ << diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index f0150837..718766c1 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -12,7 +12,7 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : { ui->setupUi(this); resize(633, 744); - this->setWindowTitle(tr("Hotkeys")); + this->setWindowTitle(tr("Keyboard and Mouse Shortcuts")); #if defined(Q_OS_MACOS) QString ctrl = "Cmd"; diff --git a/src/gui_impl/main_window.cpp b/src/gui_impl/main_window.cpp index 74244ba1..a1422f89 100644 --- a/src/gui_impl/main_window.cpp +++ b/src/gui_impl/main_window.cpp @@ -105,7 +105,7 @@ void MainWindow::initToolBars() view_toolbar_->addAction(action("Zoom Out Vertical")); view_toolbar_->addAction(action("Zoom In Horizontal")); view_toolbar_->addAction(action("Zoom Out Horizontal")); - view_toolbar_->addAction(action("Hotkeys...")); + view_toolbar_->addAction(action("Keyboard and Mouse Shortcuts")); view_toolbar_views_menu_->addSeparator (); toggle_all_toolbars_ = new QAction (tr("Hide all Toolbars"), this); @@ -263,6 +263,7 @@ void MainWindow::initMenus (QSharedPointer application_conte help_menu_->addSeparator(); } help_menu_->addAction (action("About")); + help_menu_->addAction (action("Keyboard and Mouse Shortcuts")); } //----------------------------------------------------------------------------- From cf203c7022ed9a80ce224cc2cd2daddaccd50077 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 29 Jul 2017 15:49:51 -0400 Subject: [PATCH 08/13] Extract from QKeySequence --- src/gui_impl/dialogs/hotkey_dialog.cpp | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index 718766c1..af6639b5 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -42,20 +42,20 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : hotkeys << ctrl + "+Mousewheel Up" << ctrl + "+Mousewheel Down" - << ctrl + "+I" - << ctrl + "+C" - << ctrl + "+E" - << ctrl + "+O" - << ctrl + "+A" - << "Alt++" - << "Alt+-" - << ctrl + "++" - << ctrl + "+-" - << ctrl + "+1" - << ctrl + "+2" - << ctrl + "+3" - << ctrl + "+4" - << ctrl + "+F4"; + << QKeySequence(tr("Ctrl+I")).toString() + << QKeySequence(tr("Ctrl+C")).toString() + << QKeySequence(tr("Ctrl+E")).toString() + << QKeySequence(tr("Ctrl+O")).toString() + << QKeySequence(tr("Ctrl+A")).toString() + << QKeySequence(tr("Alt++")).toString() + << QKeySequence(tr("Alt+-")).toString() + << QKeySequence(tr("Ctrl++")).toString() + << QKeySequence(tr("Ctrl+-")).toString() + << QKeySequence(tr("Ctrl+1")).toString() + << QKeySequence(tr("Ctrl+2")).toString() + << QKeySequence(tr("Ctrl+3")).toString() + << QKeySequence(tr("Ctrl+4")).toString() + << QKeySequence(tr("Ctrl+F4")).toString(); ui->tableWidget->setRowCount(actionDescriptions.size()); ui->tableWidget->setColumnCount(2); From 7395464e77f19a4e27410ce27f9b6eed6a11aeaf Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Wed, 30 Aug 2017 01:36:26 -0400 Subject: [PATCH 09/13] Revert "Extract from QKeySequence" This reverts commit 0c184ccf0a61b42d1fc6300e1df3ae2c1612b14f. --- src/gui_impl/dialogs/hotkey_dialog.cpp | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index af6639b5..718766c1 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -42,20 +42,20 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : hotkeys << ctrl + "+Mousewheel Up" << ctrl + "+Mousewheel Down" - << QKeySequence(tr("Ctrl+I")).toString() - << QKeySequence(tr("Ctrl+C")).toString() - << QKeySequence(tr("Ctrl+E")).toString() - << QKeySequence(tr("Ctrl+O")).toString() - << QKeySequence(tr("Ctrl+A")).toString() - << QKeySequence(tr("Alt++")).toString() - << QKeySequence(tr("Alt+-")).toString() - << QKeySequence(tr("Ctrl++")).toString() - << QKeySequence(tr("Ctrl+-")).toString() - << QKeySequence(tr("Ctrl+1")).toString() - << QKeySequence(tr("Ctrl+2")).toString() - << QKeySequence(tr("Ctrl+3")).toString() - << QKeySequence(tr("Ctrl+4")).toString() - << QKeySequence(tr("Ctrl+F4")).toString(); + << ctrl + "+I" + << ctrl + "+C" + << ctrl + "+E" + << ctrl + "+O" + << ctrl + "+A" + << "Alt++" + << "Alt+-" + << ctrl + "++" + << ctrl + "+-" + << ctrl + "+1" + << ctrl + "+2" + << ctrl + "+3" + << ctrl + "+4" + << ctrl + "+F4"; ui->tableWidget->setRowCount(actionDescriptions.size()); ui->tableWidget->setColumnCount(2); From 13546166b32f539a3733f5897d9d18eb54a92c50 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Wed, 30 Aug 2017 01:46:10 -0400 Subject: [PATCH 10/13] Add Alt key as well --- src/gui_impl/dialogs/hotkey_dialog.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index 718766c1..a8a30ea1 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -16,8 +16,10 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : #if defined(Q_OS_MACOS) QString ctrl = "Cmd"; + QString alt = "Option"; #else QString ctrl = "Ctrl"; + QString alt = "Alt"; #endif QStringList actionDescriptions; @@ -47,8 +49,8 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : << ctrl + "+E" << ctrl + "+O" << ctrl + "+A" - << "Alt++" - << "Alt+-" + << alt + "++" + << alt + "+-" << ctrl + "++" << ctrl + "+-" << ctrl + "+1" From d1e2e299d100380ee4d9f0880d02017aac89fa90 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 16 Sep 2017 23:18:42 -0400 Subject: [PATCH 11/13] Added missing shortcuts and use relative screen size for dialog size --- .../adapt_channel_view_gui_command.cpp | 1 + src/gui_impl/dialogs/hotkey_dialog.cpp | 25 ++++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp index 3573b387..cc199e90 100644 --- a/src/gui_impl/commands/adapt_channel_view_gui_command.cpp +++ b/src/gui_impl/commands/adapt_channel_view_gui_command.cpp @@ -105,6 +105,7 @@ void AdaptChannelViewGuiCommand::evaluateEnabledness () QStringList disabled_actions_if_no_file = ACTIONS_; disabled_actions_if_no_file.removeAll(ANIMATIONS_); disabled_actions_if_no_file.removeAll(SET_ANIMATION_DURATION_); + disabled_actions_if_no_file.removeAll(HOTKEYS_); disableIfNoFileIsOpened (disabled_actions_if_no_file); disableIfNoSignalIsVisualised (disabled_actions_if_no_file); diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index a8a30ea1..d9772b42 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -6,20 +6,29 @@ #include "hotkey_dialog.h" #include "ui_hotkey_dialog.h" +#include + HotkeyDialog::HotkeyDialog(QWidget *parent) : QDialog(parent), ui(new Ui::HotkeyDialog) { ui->setupUi(this); - resize(633, 744); + + QDesktopWidget dw; + int x=dw.width()*0.35; + int y=dw.height()*0.78; + setFixedSize(x,y); + this->setWindowTitle(tr("Keyboard and Mouse Shortcuts")); #if defined(Q_OS_MACOS) QString ctrl = "Cmd"; QString alt = "Option"; + QString quit = "+Q" #else QString ctrl = "Ctrl"; QString alt = "Alt"; + QString quit = "+F4"; #endif QStringList actionDescriptions; @@ -27,6 +36,8 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : actionDescriptions << "Scale Individual Channel Up" << "Scale Individual Channel Down" + << "Scale All Channels Up" + << "Scale All Channels Down" << "Info Dialog" << "Channel Dialog" << "Event Dialog" @@ -40,10 +51,15 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : << "Edit Event Mode" << "Scroll Mode" << "View Options Mode" + << "Undo" + << "Redo" + << "Close File" << "Exit"; hotkeys << ctrl + "+Mousewheel Up" << ctrl + "+Mousewheel Down" + << "Shift + Mousewheel Up" + << "Shift + Mousewheel Down" << ctrl + "+I" << ctrl + "+C" << ctrl + "+E" @@ -57,7 +73,10 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : << ctrl + "+2" << ctrl + "+3" << ctrl + "+4" - << ctrl + "+F4"; + << ctrl + "+Z" + << ctrl + "+Y" + << ctrl + "+W" + << ctrl + quit; ui->tableWidget->setRowCount(actionDescriptions.size()); ui->tableWidget->setColumnCount(2); @@ -66,7 +85,7 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : ui->tableWidget->setShowGrid(false); ui->tableWidget->setFocusPolicy(Qt::NoFocus); ui->tableWidget->setColumnWidth(0, width() * 0.47); - ui->tableWidget->setColumnWidth(1, width() * 0.47); + ui->tableWidget->setColumnWidth(1, width() * 0.45); for (int row = 0; row < ui->tableWidget->rowCount(); row++) { From 8f1f3ce0076d23a153e0ac79b0d089b3526d49a9 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Sat, 16 Sep 2017 23:20:45 -0400 Subject: [PATCH 12/13] No Selection on table widget in hotkey dialog --- src/gui_impl/dialogs/hotkey_dialog.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index d9772b42..a59789c8 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -86,6 +86,7 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : ui->tableWidget->setFocusPolicy(Qt::NoFocus); ui->tableWidget->setColumnWidth(0, width() * 0.47); ui->tableWidget->setColumnWidth(1, width() * 0.45); + ui->tableWidget->setSelectionMode(QAbstractItemView::NoSelection); for (int row = 0; row < ui->tableWidget->rowCount(); row++) { From 9882f0e4a23e3229f193ddd4ee2ca8c3e84d80e6 Mon Sep 17 00:00:00 2001 From: Yida Lin Date: Mon, 18 Sep 2017 10:41:28 -0400 Subject: [PATCH 13/13] make dialog resizable --- src/gui_impl/dialogs/hotkey_dialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui_impl/dialogs/hotkey_dialog.cpp b/src/gui_impl/dialogs/hotkey_dialog.cpp index a59789c8..9b6f8f07 100644 --- a/src/gui_impl/dialogs/hotkey_dialog.cpp +++ b/src/gui_impl/dialogs/hotkey_dialog.cpp @@ -17,7 +17,7 @@ HotkeyDialog::HotkeyDialog(QWidget *parent) : QDesktopWidget dw; int x=dw.width()*0.35; int y=dw.height()*0.78; - setFixedSize(x,y); + resize(x,y); this->setWindowTitle(tr("Keyboard and Mouse Shortcuts"));