Files
giesCANne/dashboardwindow.h
T
2026-09-12 13:06:26 +02:00

46 lines
1.2 KiB
C++

#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