iVS3D v2.0.9
Loading...
Searching...
No Matches
maskstackview.h
1#pragma once
2
3#include <QWidget>
4#include <QListWidget>
5#include <QPushButton>
6#include <QLabel>
7#include <QVBoxLayout>
8#include <QHBoxLayout>
9#include <QScrollArea>
10#include <QFrame>
11#include <QSpacerItem>
12#include <QMap>
13
14#include "maskstack.h"
15
27class MaskStackView : public QWidget {
28 Q_OBJECT
29public:
30 explicit MaskStackView(QWidget* parent = nullptr);
31 ~MaskStackView() override = default;
32
36 void setRecords(const QVector<MaskRecord>& records);
37
41 void addRecord(const MaskRecord& record);
42
46 void removeRecordById(int id);
47
51 void clearRecords();
52
53signals:
57 void sig_removeRecord(int id);
58
63
67 void sig_recordSelected(int id);
68
69private:
70 struct ItemWidgets {
71 QWidget* container = nullptr;
72 QLabel* title = nullptr;
73 QLabel* resolutionLabel = nullptr;
74 QLabel* details = nullptr;
75 QPushButton* removeButton = nullptr;
76 QPushButton* expandButton = nullptr;
77 bool isExpanded = false;
78 int id = -1;
79 };
80
81 QListWidget* m_list = nullptr;
82 QPushButton* m_clearButton = nullptr;
83 QMap<int, ItemWidgets> m_itemWidgets;
84
85 // Helpers
86 QWidget* createListItem(const MaskRecord& record, ItemWidgets& outWidgets);
87 QString formatDetails(const MaskRecord& record) const;
88 void toggleItemExpanded(int id);
89
90 void connectSelectionSignals();
91};
UI widget to display and manage a stack of mask configurations.
Definition maskstackview.h:27
void clearRecords()
Clear all records from the list.
Definition maskstackview.cpp:235
void sig_recordSelected(int id)
Emitted when a record is selected (clicked) by the user.
void removeRecordById(int id)
Remove a record by ID.
Definition maskstackview.cpp:197
void setRecords(const QVector< MaskRecord > &records)
Replace the current list with the given records.
Definition maskstackview.cpp:174
void sig_clearAll()
Request to clear all records.
void addRecord(const MaskRecord &record)
Append a single record to the list.
Definition maskstackview.cpp:182
void sig_removeRecord(int id)
Request to remove a record with given id.
Contains all information needed to generate a mask at export time.
Definition maskstack.h:25
Definition maskstackview.h:70