#pragma once #include <QWindow> #include <QPushButton> #include <QCheckBox> #include <QRadioButton> #include <QBoxLayout> #include <QLabel> #include <vector> #include <string> #include <map> class PrefsWindow : public QWidget { Q_OBJECT; std::vector<std::string> backend_ids; int cur_option = 0; QLabel *restart_warning; std::string new_label_setting; std::string new_frontend; QPushButton *frontend_btn; QMenu *frontend_menu; std::vector<QAction*> frontend_options; std::map<std::string, QPixmap> cats; std::map<std::string, QRadioButton*> cat_btns; QCheckBox *menu_icons; QRadioButton *labels_only; QRadioButton *icons_only; QRadioButton *both_labels_icons; QPushButton *revert_btn; QPushButton *apply_btn; QCheckBox *cat_enable; bool enable_cat; std::string cat_setting; void update_label_setting(); void set_options_changed(bool changed); void revert(); void apply(); public: void send_cat_signal(); PrefsWindow(); Q_SIGNALS: void cat_set(QPixmap &img); void cat_unset(); void settings_changed(bool use_labels, bool use_icons); };