#pragma once #include #include #include #include #include #include #include namespace rcx { struct OptionsResult { int themeIndex = 0; QString fontName; bool menuBarTitleCase = true; bool showIcon = false; bool safeMode = false; bool autoStartMcp = false; }; class OptionsDialog : public QDialog { Q_OBJECT public: explicit OptionsDialog(const OptionsResult& current, QWidget* parent = nullptr); OptionsResult result() const; private: void filterTree(const QString& text); static QStringList collectPageKeywords(QWidget* page); QLineEdit* m_search = nullptr; QTreeWidget* m_tree = nullptr; QStackedWidget* m_pages = nullptr; QComboBox* m_themeCombo = nullptr; QComboBox* m_fontCombo = nullptr; QCheckBox* m_titleCaseCheck = nullptr; QCheckBox* m_showIconCheck = nullptr; QCheckBox* m_safeModeCheck = nullptr; QCheckBox* m_autoMcpCheck = nullptr; // searchable keywords per leaf tree item QHash m_pageKeywords; // tree item → stacked widget page index QHash m_itemPageIndex; }; } // namespace rcx