Add configurable shortcuts for drawing tools
This commit is contained in:
59
src/config/setshortcutwidget.cpp
Normal file
59
src/config/setshortcutwidget.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
#include "setshortcutwidget.h"
|
||||
#include <QKeyEvent>
|
||||
#include <QLayout>
|
||||
#include <QLabel>
|
||||
#include <QIcon>
|
||||
#include <QPixmap>
|
||||
|
||||
SetShortcutDialog::SetShortcutDialog(QDialog *parent) : QDialog(parent)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowIcon(QIcon(":img/app/flameshot.svg"));
|
||||
setWindowTitle(tr("Set Shortcut"));
|
||||
m_ks = QKeySequence();
|
||||
|
||||
m_layout = new QVBoxLayout(this);
|
||||
m_layout->setAlignment(Qt::AlignHCenter);
|
||||
|
||||
QLabel *infoTop = new QLabel(tr("Enter new shortcut to change "));
|
||||
infoTop->setMargin(10);
|
||||
infoTop->setAlignment(Qt::AlignCenter);
|
||||
m_layout->addWidget(infoTop);
|
||||
|
||||
QLabel *infoIcon = new QLabel();
|
||||
infoIcon->setAlignment(Qt::AlignCenter);
|
||||
infoIcon->setPixmap(QPixmap(":/img/app/keyboard.svg"));
|
||||
m_layout->addWidget(infoIcon);
|
||||
|
||||
m_layout->addWidget(infoIcon);
|
||||
|
||||
QLabel *infoBottom = new QLabel(tr("Press Esc to cancel or Backspace to disable the keyboard shortcut."));
|
||||
infoBottom->setMargin(10);
|
||||
infoBottom->setAlignment(Qt::AlignCenter);
|
||||
m_layout->addWidget(infoBottom);
|
||||
}
|
||||
|
||||
const QKeySequence& SetShortcutDialog::shortcut() {
|
||||
return m_ks;
|
||||
}
|
||||
|
||||
void SetShortcutDialog::keyPressEvent(QKeyEvent *ke) {
|
||||
if (ke->modifiers() & Qt::ShiftModifier)
|
||||
m_modifier += "Shift+";
|
||||
if (ke->modifiers() & Qt::ControlModifier)
|
||||
m_modifier += "Ctrl+";
|
||||
if (ke->modifiers() & Qt::AltModifier)
|
||||
m_modifier += "Alt+";
|
||||
if (ke->modifiers() & Qt::MetaModifier)
|
||||
m_modifier += "Meta+";
|
||||
|
||||
QString key = QKeySequence(ke->key()).toString();
|
||||
m_ks = QKeySequence(m_modifier + key);
|
||||
}
|
||||
|
||||
void SetShortcutDialog::keyReleaseEvent(QKeyEvent *event) {
|
||||
if (m_ks == QKeySequence(Qt::Key_Escape)) {
|
||||
reject();
|
||||
}
|
||||
accept();
|
||||
}
|
||||
Reference in New Issue
Block a user