Files
flameshot/src/config/setshortcutwidget.cpp
2020-09-14 16:14:32 +03:00

60 lines
1.7 KiB
C++

#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();
}