/
klischa
/
AstraScanner2
Обзор
Документация
Войти
/
klischa
/
AstraScanner2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/gui/SettingsDialog.h
125 строк
5 KB
k k
refactor: capture subsystem overhaul
15 июл 2026, 11:17
15 июл 2026, 11:17
1123c30
Код
Авторство
О чём код?
#ifndef SETTINGSDIALOG_H #define SETTINGSDIALOG_H #include <QDialog> QT_BEGIN_NAMESPACE class QSpinBox; class QDoubleSpinBox; class QCheckBox; class QLineEdit; class QPushButton; class QSlider; class QLabel; class QDialogButtonBox; class QComboBox; QT_END_NAMESPACE class HelpDialog; // Единый GUI-диалог для редактирования параметров приложения, которые // хранятся в SettingsManager (QSettings). До этого диалога все параметры // правились через разрозненные UI-группы на вкладках «Сканирование», // «Обработка» и т.п. — это было разбросано и часть значений (например, // частота кадров или кол-во ключевых параметров Poisson) вообще нигде в // UI не светилась и читалась только из QSettings. // // Диалог — модальный, OK/Cancel/Apply/Reset. OK и Apply вызывают save() // и эмитят SettingsManager::settingsChanged на все затронутые ключи. // Reset возвращает дефолты прямо в UI (не трогает QSettings, пока не // нажат OK/Apply). class SettingsDialog : public QDialog { Q_OBJECT public: explicit SettingsDialog(QWidget *parent = nullptr); private slots: void onApply(); void onResetDefaults(); void onAccepted(); void onBrowseProjectsDir(); void onBrowseExportDir(); void onShowHelpSection(const QString &anchor); private: void buildUi(); void loadFromSettings(); void saveToSettings(); // Сканирование / захват QSpinBox *m_scanTimeout = nullptr; QDoubleSpinBox *m_voxelLeaf = nullptr; QSpinBox *m_frameSkip = nullptr; QDoubleSpinBox *m_depthMin = nullptr; QDoubleSpinBox *m_depthMax = nullptr; QCheckBox *m_colorCamera = nullptr; QCheckBox *m_mirrorRgb = nullptr; // Фильтры QSpinBox *m_sorMeanK = nullptr; QDoubleSpinBox *m_sorStddev = nullptr; QDoubleSpinBox *m_rorRadius = nullptr; QSpinBox *m_rorMinNb = nullptr; // ICP QDoubleSpinBox *m_icpMaxCorr = nullptr; QSpinBox *m_icpMaxIter = nullptr; QCheckBox *m_icpSkipNonConv = nullptr; QDoubleSpinBox *m_icpVoxelOut = nullptr; // Poisson QSpinBox *m_poissonDepth = nullptr; QDoubleSpinBox *m_poissonPointWeight = nullptr; QDoubleSpinBox *m_poissonSamples = nullptr; QDoubleSpinBox *m_poissonNormalRadius = nullptr; QSpinBox *m_poissonKNearest = nullptr; // Пути QLineEdit *m_projectsDir = nullptr; QLineEdit *m_exportDir = nullptr; QPushButton *m_browseProjects = nullptr; QPushButton *m_browseExport = nullptr; // Оптический трекинг по маркерам QDoubleSpinBox *m_markerSizeMm = nullptr; QSpinBox *m_markerInitCount = nullptr; // Параметры детектора маркеров (для отладки) QDoubleSpinBox *m_markerMinArea = nullptr; QDoubleSpinBox *m_markerMaxArea = nullptr; QDoubleSpinBox *m_markerMinCircularity = nullptr; QDoubleSpinBox *m_markerMinConvexity = nullptr; QDoubleSpinBox *m_markerMinInertiaRatio = nullptr; // CCTag параметры QComboBox *m_markerDetectorType = nullptr; QSpinBox *m_cctagNumRings = nullptr; QDoubleSpinBox *m_cctagMinIdentProba = nullptr; // Отображение маркеров (исправление #14) QCheckBox *m_showMarkersChk = nullptr; // CUDA для нейросети (исправление #21) QCheckBox *m_useCudaForNeural = nullptr; // Neural + ICP confirm QCheckBox *m_neuralIcpConfirmEnabled = nullptr; QDoubleSpinBox *m_neuralIcpConfirmMaxCorr = nullptr; QSpinBox *m_neuralIcpConfirmMaxIter = nullptr; QDoubleSpinBox *m_neuralIcpConfirmMaxFitness = nullptr; QDoubleSpinBox *m_neuralIcpCorrectionTranslation = nullptr; QDoubleSpinBox *m_neuralIcpCorrectionRotation = nullptr; // PR #2: Mesh processing QSlider *m_meshSimplification = nullptr; QLabel *m_meshSimplificationValue = nullptr; QDoubleSpinBox *m_meshHoleFilling = nullptr; // QComboBox *m_trackingModeCombo = nullptr; // Удалено: элемент управления для выбора режима трекинга HelpDialog *m_helpDialog = nullptr; QDialogButtonBox *m_buttons = nullptr; }; #endif // SETTINGSDIALOG_H