-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlayersDialog.h
More file actions
55 lines (43 loc) · 1.19 KB
/
Copy pathlayersDialog.h
File metadata and controls
55 lines (43 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//layerDialog.h
#pragma once
#include <QDialog>
#include <QVector>
#include <QMap>
#include "mapViewType.h"
// Forward declarations
class QVBoxLayout;
class QAbstractButton;
class QDialogButtonBox;
class QScrollArea;
class CLayersDialog : public QDialog
{
Q_OBJECT
//Constructor
public:
explicit CLayersDialog(QWidget *parent = nullptr);
~CLayersDialog();
//Methods
public:
void setLayers(const QVector<LayerData>& data);
QMap<int, bool> getPendingChanges() const;
protected:
bool eventFilter(QObject* obj, QEvent* event) override;
private slots:
void onAccept();
void onCancel();
void manuallyKeepExclusive();
private:
// UI Construction helpers
void setupUi();
void createLayerGroup(int groupId, const QString& groupName, bool isBase);
// Main layouts
QVBoxLayout* m_pMainLayout;
QVBoxLayout* m_pScrollLayout;
QScrollArea* m_pScrollArea;
QDialogButtonBox* m_pButtonBox;
// Data tracking
// Maps Layer ID to the actual Button (Checkbox or Radio) in the UI
QMap<int, QAbstractButton*> m_layerButtons;
// Tracks which GroupBox belongs to which ID to avoid duplicates
QMap<int, QVBoxLayout*> m_groupLayouts;
};