aboutsummaryrefslogtreecommitdiff
path: root/qdeduper/preferencedialog.hpp
diff options
context:
space:
mode:
authorGravatar Chris Xiong <chirs241097@gmail.com> 2022-10-02 02:04:05 -0400
committerGravatar Chris Xiong <chirs241097@gmail.com> 2022-10-02 02:04:05 -0400
commit64a4fc1fb07863f35289b2dc050d30ecc96aaac6 (patch)
treeb79ad5212b2125bdb1846be52064c615c370d8df /qdeduper/preferencedialog.hpp
parent3afafef65bff7fc6ecb02c88bc20657e1bdc2fe4 (diff)
downloaddeduper-64a4fc1fb07863f35289b2dc050d30ecc96aaac6.tar.xz
Add shortcut settings for item actions.
Implement check for ambiguous shortcuts. Make preference dialog wider by default.
Diffstat (limited to 'qdeduper/preferencedialog.hpp')
-rw-r--r--qdeduper/preferencedialog.hpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/qdeduper/preferencedialog.hpp b/qdeduper/preferencedialog.hpp
index 8efefde..78e78c5 100644
--- a/qdeduper/preferencedialog.hpp
+++ b/qdeduper/preferencedialog.hpp
@@ -5,6 +5,7 @@
#include <map>
#include <string>
+#include <QPushButton>
#include <QDialog>
#include <QGridLayout>
#include <QStyledItemDelegate>
@@ -17,6 +18,20 @@ class QDialogButtonBox;
class QTableView;
class QStandardItemModel;
+class ModifierEdit : public QPushButton
+{
+ Q_OBJECT
+public:
+ ModifierEdit(QWidget *par = nullptr);
+ Qt::Modifier get_modifier();
+ void set_modifier(Qt::Modifier mod);
+ bool event(QEvent *e) override;
+protected:
+ void keyPressEvent(QKeyEvent *e) override;
+private:
+ Qt::Modifier mod;
+};
+
class PreferenceDialog : public QDialog
{
Q_OBJECT
@@ -27,9 +42,12 @@ public:
void load_widget_status();
void save_widget_status();
+public Q_SLOTS:
void open() override;
void accept() override;
private:
+ int verify_shortcuts(QKeySequence *bks);
+
SettingsRegistry *sr;
QTabWidget *tw;
std::vector<QGridLayout*> tabs;
@@ -38,6 +56,7 @@ private:
QStandardItemModel *hkim = nullptr;
std::map<std::string, QKeySequence> defmap;
std::map<std::string, QAction*> actmap;
+ std::vector<ModifierEdit*> mes;
};
class ShortcutEditorDelegate : public QStyledItemDelegate