From 20e06dd885819f7b16711ac5359fcdcfb8d26c86 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sat, 4 Aug 2018 18:16:18 +0200 Subject: style editor --- src/data/graphelementdata.cpp | 11 ++++++----- src/data/nodestyle.cpp | 17 +++++++++-------- src/data/nodestyle.h | 6 +----- src/data/style.cpp | 1 + src/data/style.h | 2 +- src/data/tikzstyles.cpp | 2 -- 6 files changed, 18 insertions(+), 21 deletions(-) (limited to 'src/data') diff --git a/src/data/graphelementdata.cpp b/src/data/graphelementdata.cpp index fcd90ea..85ae4cd 100644 --- a/src/data/graphelementdata.cpp +++ b/src/data/graphelementdata.cpp @@ -106,7 +106,7 @@ bool GraphElementData::atom(QString atom) QVariant GraphElementData::data(const QModelIndex &index, int role) const { - if (role != Qt::DisplayRole) + if (role != Qt::DisplayRole && role != Qt::EditRole) return QVariant(); if (index.row() >= 0 && index.row() < _properties.length()) { @@ -135,9 +135,10 @@ QModelIndex GraphElementData::index(int row, int column, const QModelIndex &pare QModelIndex GraphElementData::parent(const QModelIndex &index) const { - GraphElementProperty *p = static_cast(index.internalPointer()); - if (p == root) return QModelIndex(); - else return createIndex(0,0,static_cast(root)); + //GraphElementProperty *p = static_cast(index.internalPointer()); + //if (p == root) return QModelIndex(); + //else return createIndex(0,0,static_cast(root)); + return QModelIndex(); } int GraphElementData::rowCount(const QModelIndex &parent) const @@ -156,7 +157,7 @@ int GraphElementData::columnCount(const QModelIndex &) const Qt::ItemFlags GraphElementData::flags(const QModelIndex &index) const { - return QAbstractItemModel::flags(index); + return QAbstractItemModel::flags(index) | Qt::ItemIsEditable; } //bool GraphElementData::setData(const QModelIndex &index, const QVariant &value, int role) diff --git a/src/data/nodestyle.cpp b/src/data/nodestyle.cpp index aec899f..9c38dfd 100644 --- a/src/data/nodestyle.cpp +++ b/src/data/nodestyle.cpp @@ -45,20 +45,21 @@ QBrush NodeStyle::brush() const return QBrush(fillColor()); } -NodeStyle::Shape NodeStyle::shape(bool tikzitOverride) const +QString NodeStyle::shape(bool tikzitOverride) const { - if (_data == 0) return NodeStyle::Circle; - - QString sh = propertyWithDefault("shape", "circle", tikzitOverride); - if (sh == "circle") return NodeStyle::Circle; - else if (sh == "rectangle") return NodeStyle::Rectangle; - else return NodeStyle::Circle; + return propertyWithDefault("shape", "circle", tikzitOverride); } QPainterPath NodeStyle::path() const { QPainterPath pth; - pth.addEllipse(QPointF(0.0f,0.0f), 30.0f, 30.0f); + QString sh = shape(); + + if (sh == "rectangle") { + pth.addRect(-30.0f, -30.0f, 60.0f, 60.0f); + } else { // default is 'circle' + pth.addEllipse(QPointF(0.0f,0.0f), 30.0f, 30.0f); + } return pth; } diff --git a/src/data/nodestyle.h b/src/data/nodestyle.h index ce36006..67219db 100644 --- a/src/data/nodestyle.h +++ b/src/data/nodestyle.h @@ -30,17 +30,13 @@ class NodeStyle : public Style { public: - enum Shape { - Rectangle, UpTriangle, DownTriangle, Circle - }; - NodeStyle(); NodeStyle(QString name, GraphElementData *data); QColor fillColor(bool tikzitOverride=true) const; QBrush brush() const; QPainterPath path() const override; - Shape shape(bool tikzitOverride=true) const; + QString shape(bool tikzitOverride=true) const; QPainterPath palettePath() const override; QIcon icon() const override; diff --git a/src/data/style.cpp b/src/data/style.cpp index 2e19c4f..0128d36 100644 --- a/src/data/style.cpp +++ b/src/data/style.cpp @@ -65,6 +65,7 @@ QPen Style::pen() const QString Style::propertyWithDefault(QString prop, QString def, bool tikzitOverride) const { + if (_data == 0) return def; QString val; if (tikzitOverride) { val = _data->property("tikzit " + prop); diff --git a/src/data/style.h b/src/data/style.h index 7a6ff18..1b0618e 100644 --- a/src/data/style.h +++ b/src/data/style.h @@ -47,9 +47,9 @@ public: virtual QPainterPath palettePath() const = 0; virtual QIcon icon() const = 0; void setName(const QString &name); + QString propertyWithDefault(QString prop, QString def, bool tikzitOverride=true) const; protected: - QString propertyWithDefault(QString prop, QString def, bool tikzitOverride=true) const; QString _name; GraphElementData *_data; }; diff --git a/src/data/tikzstyles.cpp b/src/data/tikzstyles.cpp index 4a92d6d..a743d0c 100644 --- a/src/data/tikzstyles.cpp +++ b/src/data/tikzstyles.cpp @@ -120,10 +120,8 @@ void TikzStyles::addStyle(QString name, GraphElementData *data) data->atom("<-") || data->atom("<->") || data->atom("<-|") || data->atom("|-") || data->atom("|->") || data->atom("|-|")) { // edge style - qDebug() << "got edge style" << name; _edgeStyles << new EdgeStyle(name, data); } else { // node style - qDebug() << "got node style" << name; _nodeStyles << new NodeStyle(name, data); } } -- cgit v1.2.3