feat: add geometry spreadsheet widget

This commit is contained in:
parker
2025-08-05 19:48:22 +01:00
parent 2a0afc7c24
commit ef372a9630
7 changed files with 249 additions and 6 deletions

View File

@@ -0,0 +1,43 @@
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h"
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetMenuBar.h"
#include <QTableWidget>
#include <QTreeWidget>
#include <QLabel>
#include <qframe.h>
#include <qtablewidget.h>
#include <QPainterPath>
GeometrySpreadsheetPanel::GeometrySpreadsheetPanel(QWidget *parent, Qt::WindowFlags f)
: QWidget(parent, f)
{
mainLayout_ = new QVBoxLayout();
auto *t = new QTreeView(parent);
t->setRootIsDecorated(false);
t->setAlternatingRowColors(true);
t->setStyleSheet(R"(
QTreeView {
background-color: #282828;
alternate-background-color: #242424;
paint-alternating-row-colors-for-empty-area: 1;
}
)");
t->setFrameStyle(QFrame::NoFrame);
mainLayout_->addWidget(new GeometrySpreadsheetMenuBar());
mainLayout_->addWidget(t);
setLayout(mainLayout_);
}
void GeometrySpreadsheetPanel::resizeEvent(QResizeEvent *event)
{
QPainterPath path;
constexpr float radius = 10;
path.addRoundedRect(mainLayout_->contentsRect(), radius, radius);
QRegion region = QRegion(path.toFillPolygon().toPolygon());
this->setMask(region);
}