mirror of
https://github.com/NohamR/Reclass.git
synced 2026-05-10 19:59:21 +00:00
- Clear value history when node offsets change (insert/delete/resize/ manual offset edit) so stale values from old addresses don't show false heat coloring - Invalidate in-flight async reads (bump refreshGen) when tree layout changes, preventing stale snapshot data from re-introducing heat - Fix command bar hover cursor flicker: remove premature applyHoverCursor() from applyDocument() — runs correctly via applySelectionOverlays() after text is finalized - Fix hover indicator survival: reorder refresh() so text-modifying passes (updateCommandRow) run before overlay passes - Guard synthetic Leave events during setText() to preserve hover state - Remove primitives from type chooser when pointer modifier (* / **) is active; remove primitives entirely in Root command bar mode - Add test_editor and test_controller test coverage for heat clearing, hover survival, and mixed hex/non-hex type scenarios
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#pragma once
|
|
#include <QDialog>
|
|
#include <QLineEdit>
|
|
#include <QTreeWidget>
|
|
#include <QStackedWidget>
|
|
#include <QComboBox>
|
|
#include <QCheckBox>
|
|
#include <QHash>
|
|
#include <QSpinBox>
|
|
|
|
namespace rcx {
|
|
|
|
struct OptionsResult {
|
|
int themeIndex = 0;
|
|
QString fontName;
|
|
bool menuBarTitleCase = true;
|
|
bool showIcon = false;
|
|
bool safeMode = false;
|
|
bool autoStartMcp = false;
|
|
int refreshMs = 660;
|
|
};
|
|
|
|
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;
|
|
QSpinBox* m_refreshSpin = nullptr;
|
|
|
|
// searchable keywords per leaf tree item
|
|
QHash<QTreeWidgetItem*, QStringList> m_pageKeywords;
|
|
// tree item → stacked widget page index
|
|
QHash<QTreeWidgetItem*, int> m_itemPageIndex;
|
|
};
|
|
|
|
} // namespace rcx
|