| 17 */ |
17 */ |
| 18 |
18 |
| 19 #pragma once |
19 #pragma once |
| 20 #include "../mainwindow.h" |
20 #include "../mainwindow.h" |
| 21 #include "../toolsets/extprogramtoolset.h" |
21 #include "../toolsets/extprogramtoolset.h" |
| |
22 #include "shortcutsmodel.h" |
| 22 #include <QDialog> |
23 #include <QDialog> |
| 23 |
|
| 24 // ============================================================================= |
|
| 25 class ShortcutListItem : public QListWidgetItem |
|
| 26 { |
|
| 27 public: |
|
| 28 explicit ShortcutListItem (QListWidget* view = nullptr, int type = Type); |
|
| 29 |
|
| 30 QAction* action() const; |
|
| 31 QKeySequence sequence() const; |
|
| 32 void setAction (QAction* action); |
|
| 33 void setSequence (const QKeySequence& sequence); |
|
| 34 |
|
| 35 private: |
|
| 36 QAction* m_action; |
|
| 37 QKeySequence m_sequence; |
|
| 38 }; |
|
| 39 |
24 |
| 40 struct ExternalProgramWidgets |
25 struct ExternalProgramWidgets |
| 41 { |
26 { |
| 42 class QLineEdit* input; |
27 class QLineEdit* input; |
| 43 class QPushButton* setPathButton; |
28 class QPushButton* setPathButton; |
| 44 class QCheckBox* wineBox; |
29 class QCheckBox* wineBox; |
| 45 }; |
30 }; |
| 46 |
31 |
| 47 // ============================================================================= |
|
| 48 class ConfigDialog : public QDialog, public HierarchyElement |
32 class ConfigDialog : public QDialog, public HierarchyElement |
| 49 { |
33 { |
| 50 Q_OBJECT |
34 Q_OBJECT |
| 51 |
35 |
| 52 public: |
36 public: |
| 75 QVector<QListWidgetItem*> quickColorItems; |
59 QVector<QListWidgetItem*> quickColorItems; |
| 76 QMap<QPushButton*, QColor> m_buttonColors; |
60 QMap<QPushButton*, QColor> m_buttonColors; |
| 77 ExternalProgramWidgets m_externalProgramWidgets[NumExternalPrograms]; |
61 ExternalProgramWidgets m_externalProgramWidgets[NumExternalPrograms]; |
| 78 class LibrariesModel* librariesModel; |
62 class LibrariesModel* librariesModel; |
| 79 Libraries libraries; |
63 Libraries libraries; |
| |
64 ShortcutsModel shortcuts; |
| |
65 KeySequenceDelegate shortcutsDelegate; |
| 80 |
66 |
| 81 void applySettings(); |
67 void applySettings(); |
| 82 void addShortcut (QAction* act); |
|
| 83 void setButtonBackground (QPushButton* button, QString value); |
68 void setButtonBackground (QPushButton* button, QString value); |
| 84 void setShortcutText (ShortcutListItem* item); |
|
| 85 int getItemRow (QListWidgetItem* item, QVector<QListWidgetItem*>& haystack); |
|
| 86 QVector<ShortcutListItem*> getShortcutSelection(); |
|
| 87 void initExtProgs(); |
69 void initExtProgs(); |
| 88 void applyToWidgetOptions (std::function<void (QWidget*, QString)> func); |
70 void applyToWidgetOptions (std::function<void (QWidget*, QString)> func); |
| 89 |
71 |
| 90 private slots: |
72 private slots: |
| 91 void setButtonColor(); |
73 void setButtonColor(); |
| 92 void slot_setShortcut(); |
|
| 93 void slot_resetShortcut(); |
|
| 94 void slot_clearShortcut(); |
|
| 95 void slot_setExtProgPath(); |
74 void slot_setExtProgPath(); |
| 96 void slot_findDownloadFolder(); |
75 void slot_findDownloadFolder(); |
| 97 void buttonClicked (QAbstractButton* button); |
76 void buttonClicked (QAbstractButton* button); |
| 98 void selectPage (int row); |
77 void selectPage (int row); |
| 99 }; |
78 }; |
| 100 |
|
| 101 // ============================================================================= |
|
| 102 // |
|
| 103 class KeySequenceDialog : public QDialog |
|
| 104 { |
|
| 105 Q_OBJECT |
|
| 106 |
|
| 107 public: |
|
| 108 explicit KeySequenceDialog (QKeySequence seq, QWidget* parent = nullptr, Qt::WindowFlags f = 0); |
|
| 109 static bool staticDialog (ShortcutListItem* item, QWidget* parent = nullptr); |
|
| 110 |
|
| 111 class QLabel* lb_output; |
|
| 112 class QDialogButtonBox* bbx_buttons; |
|
| 113 QKeySequence seq; |
|
| 114 |
|
| 115 private: |
|
| 116 void updateOutput(); |
|
| 117 |
|
| 118 private slots: |
|
| 119 virtual void keyPressEvent (QKeyEvent* ev) override; |
|
| 120 }; |
|