src/widgets/matrixeditor.h

2018-12-26

author
Teemu Piippo <teemu@hecknology.net>
date
Wed, 26 Dec 2018 16:38:38 +0200 (2018-12-26)
changeset 1432
4cc687851fbb
parent 1406
37fffb682d2f
permissions
-rw-r--r--

Refactored the color toolbar editing into a new model/view system

#pragma once
#include <QWidget>
#include "../linetypes/modelobject.h"

class QDoubleSpinBox;
class Ui_MatrixEditor;

class MatrixEditor : public QWidget
{
	Q_OBJECT

public:
	MatrixEditor(const QMatrix4x4& matrix = {}, QWidget* parent = nullptr);
	MatrixEditor(QWidget* parent);
	~MatrixEditor();

	QMatrix4x4 matrix() const;
	void setMatrix(const QMatrix4x4& matrix);

signals:
	void matrixChanged(const QMatrix4x4& matrix);

private slots:
	void scalingChanged();
	void matrix3x3Changed();

private:
	QDoubleSpinBox* matrixCell(int row, int column) const;
	double matrixScaling(int column) const;
	QPair<int, int> cellPosition(QDoubleSpinBox* cellWidget);
	QDoubleSpinBox* vectorElement(int index);

	Ui_MatrixEditor& ui;
};

mercurial