summaryrefslogtreecommitdiff
path: root/src/data
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-08-03 23:22:11 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-08-03 23:22:11 +0200
commit247d9e6b004b2920d696245838b9969690637fd2 (patch)
treec5120e553ed37ddd1ed899f61eaba141af57f9b2 /src/data
parent31a78ae551b781eccc47546a2f6d4bf121af24cf (diff)
support for RGB colors, edit color and name in style editor
Diffstat (limited to 'src/data')
-rw-r--r--src/data/nodestyle.cpp11
-rw-r--r--src/data/style.cpp17
-rw-r--r--src/data/style.h2
-rw-r--r--src/data/tikzstyles.cpp67
-rw-r--r--src/data/tikzstyles.h5
5 files changed, 36 insertions, 66 deletions
diff --git a/src/data/nodestyle.cpp b/src/data/nodestyle.cpp
index 928712d..aec899f 100644
--- a/src/data/nodestyle.cpp
+++ b/src/data/nodestyle.cpp
@@ -17,6 +17,8 @@
*/
#include "nodestyle.h"
+#include "tikzit.h"
+
#include <QPainter>
NodeStyle *noneStyle = new NodeStyle();
@@ -35,14 +37,7 @@ QColor NodeStyle::fillColor(bool tikzitOverride) const
if (_data == 0) return Qt::white;
QString col = propertyWithDefault("fill", "white", tikzitOverride);
-
- QColor namedColor(col);
- if (namedColor.isValid()) {
- return namedColor;
- } else {
- // TODO: read RGB colors
- return QColor(Qt::white);
- }
+ return tikzit->colorByName(col);
}
QBrush NodeStyle::brush() const
diff --git a/src/data/style.cpp b/src/data/style.cpp
index 61c86d6..2e19c4f 100644
--- a/src/data/style.cpp
+++ b/src/data/style.cpp
@@ -17,6 +17,7 @@
*/
#include "style.h"
+#include "tikzit.h"
Style::Style() : _name("none"), _data(0)
{
@@ -43,17 +44,10 @@ QString Style::name() const
QColor Style::strokeColor(bool tikzitOverride) const
{
- if (_data == 0) return Qt::black;
+ if (_data == 0) return QColor(Qt::black);
QString col = propertyWithDefault("draw", "black", tikzitOverride);
-
- QColor namedColor(col);
- if (namedColor.isValid()) {
- return namedColor;
- } else {
- // TODO: read RGB colors
- return QColor(Qt::black);
- }
+ return tikzit->colorByName(col);
}
// TODO
@@ -81,3 +75,8 @@ QString Style::propertyWithDefault(QString prop, QString def, bool tikzitOverrid
if (val.isNull()) val = def;
return val;
}
+
+void Style::setName(const QString &name)
+{
+ _name = name;
+}
diff --git a/src/data/style.h b/src/data/style.h
index 0be8b87..7a6ff18 100644
--- a/src/data/style.h
+++ b/src/data/style.h
@@ -46,6 +46,8 @@ public:
virtual QPainterPath path() const = 0;
virtual QPainterPath palettePath() const = 0;
virtual QIcon icon() const = 0;
+ void setName(const QString &name);
+
protected:
QString propertyWithDefault(QString prop, QString def, bool tikzitOverride=true) const;
QString _name;
diff --git a/src/data/tikzstyles.cpp b/src/data/tikzstyles.cpp
index c96c55b..4a92d6d 100644
--- a/src/data/tikzstyles.cpp
+++ b/src/data/tikzstyles.cpp
@@ -18,40 +18,15 @@
#include "tikzstyles.h"
#include "nodestyle.h"
+#include "tikzassembler.h"
#include <QDebug>
#include <QColorDialog>
+#include <QFile>
+#include <QFileInfo>
TikzStyles::TikzStyles(QObject *parent) : QObject(parent)
{
- // 19 standard xcolor colours
- _colNames <<
- "black" <<
- "gray" <<
- "darkgray" <<
- "lightgray" <<
- "white" <<
-
- "red" <<
- "orange" <<
- "yellow" <<
- "lime" <<
- "blue" <<
- "purple" <<
-
- "brown" <<
- "olive" <<
- "green" <<
- "teal" <<
- "cyan" <<
-
- "magenta" <<
- "violet" <<
- "pink";
-
- for (int i = 0; i < _colNames.length(); ++i) {
- _cols << QColor(_colNames[i]);
- }
}
NodeStyle *TikzStyles::nodeStyle(QString name) const
@@ -79,31 +54,28 @@ void TikzStyles::clear()
_edgeStyles.clear();
}
-QColor TikzStyles::colorByIndex(int i)
-{
- return _cols[i];
-}
-
-QColor TikzStyles::colorByName(QString name)
-{
- for (int i = 0; i < _colNames.length(); ++i) {
- if (_colNames[i] == name) return _cols[i];
- }
- return QColor();
-}
-
-QString TikzStyles::nameForColor(QColor col)
+bool TikzStyles::loadStyles(QString fileName)
{
- for (int i = 0; i < _colNames.length(); ++i) {
- if (_cols[i] == col) return _colNames[i];
+ QFile file(fileName);
+ if (file.open(QIODevice::ReadOnly)) {
+ QTextStream in(&file);
+ QString styleTikz = in.readAll();
+ file.close();
+
+ clear();
+ TikzAssembler ass(this);
+ return ass.parse(styleTikz);
+ } else {
+ return false;
}
- return QString();
}
void TikzStyles::refreshModels(QStandardItemModel *nodeModel, QStandardItemModel *edgeModel)
{
nodeModel->clear();
edgeModel->clear();
+
+
//QString f = tikzit->styleFile();
//ui->styleFile->setText(f);
@@ -113,11 +85,14 @@ void TikzStyles::refreshModels(QStandardItemModel *nodeModel, QStandardItemModel
it->setEditable(false);
it->setData(noneStyle->name());
nodeModel->appendRow(it);
+ it->setTextAlignment(Qt::AlignCenter);
+ it->setSizeHint(QSize(48,48));
foreach(NodeStyle *ns, _nodeStyles) {
it = new QStandardItem(ns->icon(), ns->name());
it->setEditable(false);
it->setData(ns->name());
+ it->setSizeHint(QSize(48,48));
nodeModel->appendRow(it);
}
@@ -152,3 +127,5 @@ void TikzStyles::addStyle(QString name, GraphElementData *data)
_nodeStyles << new NodeStyle(name, data);
}
}
+
+
diff --git a/src/data/tikzstyles.h b/src/data/tikzstyles.h
index 51392b2..26ff0a3 100644
--- a/src/data/tikzstyles.h
+++ b/src/data/tikzstyles.h
@@ -41,10 +41,7 @@ public:
QVector<EdgeStyle *> edgeStyles() const;
void clear();
- // convenience functions for named colors
- QColor colorByIndex(int i);
- QColor colorByName(QString name);
- QString nameForColor(QColor col);
+ bool loadStyles(QString fileName);
void refreshModels(QStandardItemModel *nodeModel, QStandardItemModel *edgeModel);
signals: