feat: basic geometry spreadsheet model
This commit is contained in:
@@ -33,6 +33,7 @@ set(GUI_SOURCES
|
||||
src/Gui/UtilWidgets/Splitter.cpp
|
||||
src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.cpp
|
||||
src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetMenuBar.cpp
|
||||
src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.cpp
|
||||
src/Gui/Viewport/Viewport.cpp
|
||||
src/Gui/Viewport/ViewportGLWidget.cpp
|
||||
src/Gui/Viewport/GLCamera.cpp
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h"
|
||||
|
||||
int GeometrySpreadsheetModel::rowCount(const QModelIndex &parent) const
|
||||
{
|
||||
return stringList.count();
|
||||
}
|
||||
|
||||
QVariant GeometrySpreadsheetModel::data(const QModelIndex &index, int role) const
|
||||
{
|
||||
if (!index.isValid())
|
||||
return QVariant();
|
||||
|
||||
if (index.row() >= stringList.size())
|
||||
return QVariant();
|
||||
|
||||
if (role == Qt::DisplayRole)
|
||||
return stringList.at(index.row());
|
||||
else
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QVariant GeometrySpreadsheetModel::headerData(int section, Qt::Orientation orientation,
|
||||
int role) const
|
||||
{
|
||||
if (role != Qt::DisplayRole)
|
||||
return QVariant();
|
||||
|
||||
if (orientation == Qt::Horizontal)
|
||||
return QStringLiteral("Column %1").arg(section);
|
||||
else
|
||||
return QStringLiteral("Row %1").arg(section);
|
||||
}
|
||||
19
src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h
Normal file
19
src/Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include <QAbstractListModel>
|
||||
|
||||
class GeometrySpreadsheetModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GeometrySpreadsheetModel(const QStringList &strings, QObject *parent = nullptr)
|
||||
: QAbstractListModel(parent), stringList(strings) {}
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
QVariant headerData(int section, Qt::Orientation orientation,
|
||||
int role = Qt::DisplayRole) const override;
|
||||
|
||||
private:
|
||||
QStringList stringList;
|
||||
};
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetPanel.h"
|
||||
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetMenuBar.h"
|
||||
#include "Gui/GeometrySpreadsheetPanel/GeometrySpreadsheetModel.h"
|
||||
#include <QTableWidget>
|
||||
#include <QTreeWidget>
|
||||
#include <QLabel>
|
||||
@@ -24,6 +25,9 @@ GeometrySpreadsheetPanel::GeometrySpreadsheetPanel(QWidget *parent, Qt::WindowFl
|
||||
}
|
||||
)");
|
||||
t->setFrameStyle(QFrame::NoFrame);
|
||||
|
||||
auto model = new GeometrySpreadsheetModel({"hello", "world"});
|
||||
t->setModel(model);
|
||||
|
||||
|
||||
mainLayout_->addWidget(new GeometrySpreadsheetMenuBar());
|
||||
|
||||
Reference in New Issue
Block a user