add dashboards
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user