Studio/Data/LandmarkItemDelegate.h
Namespaces
Name |
---|
shapeworks User usage reporting (telemetry) |
Classes
Name | |
---|---|
class | shapeworks::LandmarkItemDelegate |
Source code
#pragma once
#include <memory>
// Qt includes
#include <QStyledItemDelegate>
namespace shapeworks {
class LandmarkItemDelegatePrivate;
class LandmarkTableModel;
// Delegate for editing length and note columns in measurement table. Note that only one delegate
// can be set per view, so this delegate handles all custom columns in the table.
class LandmarkItemDelegate : public QStyledItemDelegate {
Q_OBJECT
public:
LandmarkItemDelegate(QObject* parent = 0);
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option,
const QModelIndex& index) const override;
void setEditorData(QWidget* editor, const QModelIndex& index) const override;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override;
void updateEditorGeometry(QWidget* editor,
const QStyleOptionViewItem& option, const QModelIndex& index) const override;
void set_button_text(std::string button_text);
void set_model(std::shared_ptr<LandmarkTableModel> model);
Q_SIGNALS:
void button_clicked(int row);
private Q_SLOTS:
void set_button_pressed(int row);
void cell_entered(QModelIndex index);
private:
std::shared_ptr<LandmarkItemDelegatePrivate> private_;
std::shared_ptr<LandmarkTableModel> model_;
};
} // namespace shapeworks
Updated on 2024-03-17 at 12:58:44 -0600