diff --git a/dialogs/preferencesdialog.cpp b/dialogs/preferencesdialog.cpp index 1cd0566bb..da5164255 100644 --- a/dialogs/preferencesdialog.cpp +++ b/dialogs/preferencesdialog.cpp @@ -87,9 +87,9 @@ PreferencesDialog::PreferencesDialog(QWidget *parent) : fastSeekButton->setChecked(olive::CurrentConfig.fast_seeking); recordingComboBox->setCurrentIndex(olive::CurrentConfig.recording_mode - 1); imgSeqFormatEdit->setText(olive::CurrentConfig.img_seq_formats); -} -PreferencesDialog::~PreferencesDialog() {} + setup_kbd_shortcuts(olive::MainWindow->menuBar()); +} void PreferencesDialog::setup_kbd_shortcut_worker(QMenu* menu, QTreeWidgetItem* parent) { QList actions = menu->actions(); diff --git a/dialogs/preferencesdialog.h b/dialogs/preferencesdialog.h index 714912fa0..6a5bade56 100644 --- a/dialogs/preferencesdialog.h +++ b/dialogs/preferencesdialog.h @@ -36,30 +36,32 @@ #include "timeline/sequence.h" -class KeySequenceEditor : public QKeySequenceEdit { - Q_OBJECT -public: - KeySequenceEditor(QWidget *parent, QAction* a); - void set_action_shortcut(); - void reset_to_default(); - QString action_name(); - QString export_shortcut(); -private: - QAction* action; -}; +class KeySequenceEditor; +/** + * @brief The PreferencesDialog class + * + * A dialog for the global application settings. Mostly an interface for Config. + */ class PreferencesDialog : public QDialog { Q_OBJECT public: + /** + * @brief PreferencesDialog Constructor + * + * @param parent + * + * QWidget parent. Usually MainWindow. + */ explicit PreferencesDialog(QWidget *parent = nullptr); - ~PreferencesDialog(); - - void setup_kbd_shortcuts(QMenuBar* menu); private slots: - void save(); + /** + * @brief Override of accept to save preferences to Config. + */ + virtual void accept() override; void reset_default_shortcut(); void reset_all_shortcuts(); bool refine_shortcut_list(const QString &, QTreeWidgetItem* parent = nullptr); @@ -70,6 +72,7 @@ private slots: private: void setup_ui(); + void setup_kbd_shortcuts(QMenuBar* menu); void setup_kbd_shortcut_worker(QMenu* menu, QTreeWidgetItem* parent); // used to delete previews @@ -113,4 +116,16 @@ private: QVector key_shortcut_fields; }; +class KeySequenceEditor : public QKeySequenceEdit { + Q_OBJECT +public: + KeySequenceEditor(QWidget *parent, QAction* a); + void set_action_shortcut(); + void reset_to_default(); + QString action_name(); + QString export_shortcut(); +private: + QAction* action; +}; + #endif // PREFERENCESDIALOG_H diff --git a/global/global.cpp b/global/global.cpp index 65ec8036e..7bde452fa 100644 --- a/global/global.cpp +++ b/global/global.cpp @@ -344,7 +344,6 @@ void OliveGlobal::open_preferences() { panel_footage_viewer->pause(); PreferencesDialog pd(olive::MainWindow); - pd.setup_kbd_shortcuts(olive::MainWindow->menuBar()); pd.exec(); }