add dashboards

This commit is contained in:
Void
2026-09-12 13:06:26 +02:00
parent e403282e87
commit 7083574234
6 changed files with 926 additions and 10 deletions
+45
View File
@@ -0,0 +1,45 @@
#ifndef DASHBOARDWINDOW_H
#define DASHBOARDWINDOW_H
#include <QMainWindow>
class QWidget;
class QSplitter;
class QVBoxLayout;
class DashboardTile;
class DashboardWindow : public QMainWindow
{
Q_OBJECT
public:
explicit DashboardWindow(const QString &dashboardId, const QString &name, QWidget *parent = nullptr);
~DashboardWindow() override;
QString dashboardId() const;
QString dashboardName() const;
void setDashboardName(const QString &name);
void addToolWindow(QWidget *widget, const QString &toolId, const QRect &geometry = QRect());
bool removeToolWindow(QWidget *widget);
QList<QWidget *> toolWindows(const QString &toolId) const;
void restoreLayout();
void saveLayout();
protected:
void closeEvent(QCloseEvent *event) override;
private:
void rebuildLayout(bool preserveSizes = false);
void closeTile(DashboardTile *tile);
void moveTile(const QString &sourceId, DashboardTile *target);
QString id;
QString name;
QWidget *workspace;
QVBoxLayout *workspaceLayout;
QList<DashboardTile *> tiles;
QSplitter *outerSplitter;
QList<QSplitter *> rowSplitters;
};
#endif // DASHBOARDWINDOW_H