ui: shortcut cheat sheet

Added a simple in-app shortcut list to the help section
This commit is contained in:
Manuel Dobusch
2017-01-27 19:11:14 +01:00
parent a78cb1d020
commit 85be119e7f
6 changed files with 339 additions and 2 deletions
@@ -0,0 +1,50 @@
/* General settings */
* {
font-size: <setting:font_size>px;
font-family: "<setting:font_name>";
}
QPushButton {
border: 2px;
border-style: solid;
border-color: #dadada;
background: #f6f6f6;
background-position: 15px 5px;
height: 30px;
width: 30px;
border-radius: 12px;
margin: 2px;
}
QPushButton:hover {
background: #2D3C86;
color: white;
}
QTableWidget {
margin: 16px;
margin-top: 4px;
alternate-background-color: #dadada;
background-color: #f6f6f6;
selection-background-color: 227abf;
selection-color: white;
border-color: #666666;
gridline-color: #666666;
}
#title {
font-size: <setting:font_size+2>px;
font-weight: bold;
margin: 16px;
margin-top: 30px;
}
#close_button {
margin: 16px;
}
#general_label, #code_label, #graph_label {
margin: 16px;
margin-top: 0px;
margin-bottom: 0px;
}
+2
View File
@@ -165,6 +165,8 @@ add_files(
qt/window/QtAboutLicense.h
qt/window/QtIndexingDialog.cpp
qt/window/QtIndexingDialog.h
qt/window/QtKeyboardShortcuts.cpp
qt/window/QtKeyboardShortcuts.h
qt/window/QtLicense.cpp
qt/window/QtLicense.h
qt/window/QtMainWindow.cpp
@@ -0,0 +1,245 @@
#include "QtKeyboardShortcuts.h"
#include <QHeaderView>
#include <QLabel>
#include <QPushButton>
#include <QScrollBar>
#include <QTableView>
#include "qt/utility/QtDeviceScaledPixmap.h"
#include "qt/utility/utilityQt.h"
#include "utility/ResourcePaths.h"
QtKeyboardShortcuts::QtKeyboardShortcuts(QWidget* parent)
{
}
QtKeyboardShortcuts::~QtKeyboardShortcuts()
{
}
QSize QtKeyboardShortcuts::sizeHint() const
{
return QSize(666, 666);
}
void QtKeyboardShortcuts::setupKeyboardShortcuts()
{
QVBoxLayout* layout = new QVBoxLayout();
QLabel* title = new QLabel(this);
title->setObjectName("title");
title->setText("Keyboard Shortcuts");
layout->addWidget(title);
QLabel* generelLabel = new QLabel(this);
generelLabel->setObjectName("general_label");
generelLabel->setText("General Shortcuts");
layout->addWidget(generelLabel);
layout->addWidget(createGenerelShortcutsTable());
QLabel* codeLabel = new QLabel(this);
codeLabel->setObjectName("code_label");
codeLabel->setText("Code View Shortcuts");
layout->addWidget(codeLabel);
layout->addWidget(createCodeViewShortcutsTable());
QLabel* graphLabel = new QLabel(this);
graphLabel->setObjectName("graph_label");
graphLabel->setText("Graph View Shortcuts");
layout->addWidget(graphLabel);
layout->addWidget(createGraphViewShortcutsTable());
QPushButton* closeButton = new QPushButton(this);
closeButton->setObjectName("close_button");
closeButton->setText("Close");
closeButton->show();
layout->addWidget(closeButton);
connect(closeButton, SIGNAL(clicked()), this, SLOT(handleCloseButtonClicked()));
setLayout(layout);
setFixedSize(QSize(682, 700));
// setFixedSize(table->horizontalHeader()->length(), table->verticalHeader()->length());
setStyleSheet(utility::getStyleSheet(ResourcePaths::getGuiPath() + "keyboard_shortcuts/keyboard_shortcuts.css").c_str());
}
void QtKeyboardShortcuts::handleCloseButtonClicked()
{
emit canceled();
}
QTableWidget* QtKeyboardShortcuts::createTableWidget(const std::string& objectName)
{
QTableWidget* table = new QTableWidget(this);
table->setObjectName(objectName.c_str());
table->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
table->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
table->setEditTriggers(QAbstractItemView::EditTrigger::NoEditTriggers);
table->setShowGrid(true);
table->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::Stretch);
table->verticalHeader()->hide();
table->setAlternatingRowColors(true);
table->horizontalScrollBar()->setDisabled(true);
table->horizontalScrollBar()->hide();
table->setColumnCount(4);
table->setHorizontalHeaderItem(0, new QTableWidgetItem("Command"));
table->setHorizontalHeaderItem(1, new QTableWidgetItem("Windows"));
table->setHorizontalHeaderItem(2, new QTableWidgetItem("Mac OS X"));
table->setHorizontalHeaderItem(3, new QTableWidgetItem("Linux"));
table->setFixedWidth(650);
return table;
}
QTableWidget* QtKeyboardShortcuts::createGenerelShortcutsTable()
{
QTableWidget* table = createTableWidget("table_general");
table->setRowCount(15);
table->setItem(0, 0, new QTableWidgetItem("Larger Font"));
table->setItem(0, 1, new QTableWidgetItem("Ctrl + +"));
table->setItem(0, 2, new QTableWidgetItem("Cmd + +"));
table->setItem(0, 3, new QTableWidgetItem("Ctrl + +"));
table->setItem(1, 0, new QTableWidgetItem("Smaller Font"));
table->setItem(1, 1, new QTableWidgetItem("Ctrl + -"));
table->setItem(1, 2, new QTableWidgetItem("Cmd + -"));
table->setItem(1, 3, new QTableWidgetItem("Ctrl + -"));
table->setItem(2, 0, new QTableWidgetItem("Reset Font Size"));
table->setItem(2, 1, new QTableWidgetItem("Ctrl + 0"));
table->setItem(2, 2, new QTableWidgetItem("Cmd + 0"));
table->setItem(2, 3, new QTableWidgetItem("Ctrl + 0"));
table->setItem(3, 0, new QTableWidgetItem("Back"));
table->setItem(3, 1, new QTableWidgetItem("Ctrl + Z | Backspace"));
table->setItem(3, 2, new QTableWidgetItem("Cmd + Z | Backspace"));
table->setItem(3, 3, new QTableWidgetItem("Ctrl + Z | Backspace"));
table->setItem(4, 0, new QTableWidgetItem("Forward"));
table->setItem(4, 1, new QTableWidgetItem("Ctrl + Shift + Z"));
table->setItem(4, 2, new QTableWidgetItem("Cmd + Shift + Z"));
table->setItem(4, 3, new QTableWidgetItem("Ctrl + Shift + Z"));
table->setItem(5, 0, new QTableWidgetItem("Refresh"));
table->setItem(5, 1, new QTableWidgetItem("F5"));
table->setItem(5, 2, new QTableWidgetItem("Cmd + R"));
table->setItem(5, 3, new QTableWidgetItem("F5"));
table->setItem(6, 0, new QTableWidgetItem("Force Refresh"));
table->setItem(6, 1, new QTableWidgetItem("Shift + F5"));
table->setItem(6, 2, new QTableWidgetItem("Cmd + Shift + R"));
table->setItem(6, 3, new QTableWidgetItem("Shift + F5"));
table->setItem(7, 0, new QTableWidgetItem("Find Symbol"));
table->setItem(7, 1, new QTableWidgetItem("Ctrl + F"));
table->setItem(7, 2, new QTableWidgetItem("Cmd + F"));
table->setItem(7, 3, new QTableWidgetItem("Ctrl + F"));
table->setItem(8, 0, new QTableWidgetItem("Find Text"));
table->setItem(8, 1, new QTableWidgetItem("Ctrl + Shift + F"));
table->setItem(8, 2, new QTableWidgetItem("Cmd + Shift + F"));
table->setItem(8, 3, new QTableWidgetItem("Ctrl + Shift + F"));
table->setItem(9, 0, new QTableWidgetItem("New Project"));
table->setItem(9, 1, new QTableWidgetItem("Ctrl + N"));
table->setItem(9, 2, new QTableWidgetItem("Cmd + N"));
table->setItem(9, 3, new QTableWidgetItem("Ctrl + N"));
table->setItem(10, 0, new QTableWidgetItem("Open Project"));
table->setItem(10, 1, new QTableWidgetItem("Ctrl + O"));
table->setItem(10, 2, new QTableWidgetItem("Cmd + O"));
table->setItem(10, 3, new QTableWidgetItem("Ctrl + O"));
table->setItem(11, 0, new QTableWidgetItem("Close Window"));
table->setItem(11, 1, new QTableWidgetItem("Alt + F4"));
table->setItem(11, 2, new QTableWidgetItem("Cmd + W"));
table->setItem(11, 3, new QTableWidgetItem("Ctrl + W"));
table->setItem(12, 0, new QTableWidgetItem("Hide Window"));
table->setItem(12, 1, new QTableWidgetItem(""));
table->setItem(12, 2, new QTableWidgetItem("Cmd + H"));
table->setItem(12, 3, new QTableWidgetItem(""));
table->setItem(13, 0, new QTableWidgetItem("To Overview"));
table->setItem(13, 1, new QTableWidgetItem("Ctrl + Home"));
table->setItem(13, 2, new QTableWidgetItem("Cmd + Home | Cmd + Up"));
table->setItem(13, 3, new QTableWidgetItem("Ctrl + Home"));
table->setItem(14, 0, new QTableWidgetItem("Preferences"));
table->setItem(14, 1, new QTableWidgetItem("Ctrl + ,"));
table->setItem(14, 2, new QTableWidgetItem("Cmd + ,"));
table->setItem(14, 3, new QTableWidgetItem("Ctrl + ,"));
return table;
}
QTableWidget* QtKeyboardShortcuts::createCodeViewShortcutsTable()
{
QTableWidget* table = createTableWidget("table_code");
table->setRowCount(2);
table->setItem(0, 0, new QTableWidgetItem("Code Reference Next"));
table->setItem(0, 1, new QTableWidgetItem("Ctrl + G"));
table->setItem(0, 2, new QTableWidgetItem("Cmd + G"));
table->setItem(0, 3, new QTableWidgetItem("Ctrl + G"));
table->setItem(1, 0, new QTableWidgetItem("Code Reference Previous"));
table->setItem(1, 1, new QTableWidgetItem("Ctrl + Shift + G"));
table->setItem(1, 2, new QTableWidgetItem("Cmd + Shift + G"));
table->setItem(1, 3, new QTableWidgetItem("Ctrl + Shift + G"));
return table;
}
QTableWidget* QtKeyboardShortcuts::createGraphViewShortcutsTable()
{
QTableWidget* table = createTableWidget("table_graph");
table->setRowCount(7);
table->setItem(0, 0, new QTableWidgetItem("Pan left"));
table->setItem(0, 1, new QTableWidgetItem("A"));
table->setItem(0, 2, new QTableWidgetItem("A"));
table->setItem(0, 3, new QTableWidgetItem("A"));
table->setItem(1, 0, new QTableWidgetItem("Pan right"));
table->setItem(1, 1, new QTableWidgetItem("D"));
table->setItem(1, 2, new QTableWidgetItem("D"));
table->setItem(1, 3, new QTableWidgetItem("D"));
table->setItem(2, 0, new QTableWidgetItem("Pan up"));
table->setItem(2, 1, new QTableWidgetItem("W"));
table->setItem(2, 2, new QTableWidgetItem("W"));
table->setItem(2, 3, new QTableWidgetItem("W"));
table->setItem(3, 0, new QTableWidgetItem("Pan down"));
table->setItem(3, 1, new QTableWidgetItem("S"));
table->setItem(3, 2, new QTableWidgetItem("S"));
table->setItem(3, 3, new QTableWidgetItem("S"));
table->setItem(4, 0, new QTableWidgetItem("Zoom in"));
table->setItem(4, 1, new QTableWidgetItem("Shift + W | Shift + Mousewheel up"));
table->setItem(4, 2, new QTableWidgetItem("Shift + W | Shift + Mousewheel up"));
table->setItem(4, 3, new QTableWidgetItem("Shift + W | Shift + Mousewheel up"));
table->setItem(5, 0, new QTableWidgetItem("Zoom out"));
table->setItem(5, 1, new QTableWidgetItem("Shift + S | Shift + Mousewheel down"));
table->setItem(5, 2, new QTableWidgetItem("Shift + S | Shift + Mousewheel down"));
table->setItem(5, 3, new QTableWidgetItem("Shift + S | Shift + Mousewheel down"));
table->setItem(6, 0, new QTableWidgetItem("Reset Zoom"));
table->setItem(6, 1, new QTableWidgetItem("0"));
table->setItem(6, 2, new QTableWidgetItem("0"));
table->setItem(6, 3, new QTableWidgetItem("0"));
return table;
}
@@ -0,0 +1,31 @@
#ifndef QT_KEYBOARD_SHORTCUTS_H
#define QT_KEYBOARD_SHORTCUTS_H
#include <QTableWidget>
#include "qt/window/QtWindow.h"
class QtKeyboardShortcuts
: public QtWindow
{
Q_OBJECT
public:
QtKeyboardShortcuts(QWidget* parent = 0);
virtual ~QtKeyboardShortcuts();
QSize sizeHint() const override;
void setupKeyboardShortcuts();
private slots:
void handleCloseButtonClicked();
private:
QTableWidget* createTableWidget(const std::string& objectName);
QTableWidget* createGenerelShortcutsTable();
QTableWidget* createCodeViewShortcutsTable();
QTableWidget* createGraphViewShortcutsTable();
};
#endif // QT_KEYBOARD_SHORTCUTS_H
+10 -2
View File
@@ -23,6 +23,7 @@
#include "qt/window/QtStartScreen.h"
#include "qt/window/QtAboutLicense.h"
#include "qt/window/QtAbout.h"
#include "qt/window/QtKeyboardShortcuts.h"
#include "qt/window/QtLicense.h"
#include "settings/ApplicationSettings.h"
#include "utility/file/FileSystem.h"
@@ -303,6 +304,12 @@ void QtMainWindow::showDocumentation()
QDesktopServices::openUrl(QUrl("https://coati.io/documentation/"));
}
void QtMainWindow::showKeyboardShortcuts()
{
QtKeyboardShortcuts* keyboardShortcutWindow = createWindow<QtKeyboardShortcuts>();
keyboardShortcutWindow->setupKeyboardShortcuts();
}
void QtMainWindow::showBugtracker()
{
QDesktopServices::openUrl(QUrl("https://github.com/CoatiSoftware/CoatiBugTracker/issues"));
@@ -653,11 +660,12 @@ void QtMainWindow::setupHelpMenu()
QMenu *menu = new QMenu(tr("&Help"), this);
menuBar()->addMenu(menu);
menu->addAction(tr("&About"), this, SLOT(about()));
menu->addAction(tr("Keyboard Shortcuts"), this, SLOT(showKeyboardShortcuts()));
menu->addAction(tr("Documentation"), this, SLOT(showDocumentation()));
menu->addAction(tr("Bug Tracker"), this, SLOT(showBugtracker()));
menu->addAction(tr("Licences"), this, SLOT(showLicenses()));
menu->addAction(tr("Enter License..."), this, SLOT(enterLicense()));
menu->addAction(tr("Licences"), this, SLOT(showLicenses()));
menu->addAction(tr("&About Coati"), this, SLOT(about()));
menu->addSeparator();
+1
View File
@@ -79,6 +79,7 @@ public slots:
void openSettings();
void showBugtracker();
void showDocumentation();
void showKeyboardShortcuts();
void showLicenses();
void enterLicense();
void enteredLicense();