summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2018-04-05 14:21:24 +0200
committerAleks Kissinger <aleks0@gmail.com>2018-04-05 14:21:24 +0200
commite57923c7d767f5a532bc35571d74a5470eb76314 (patch)
tree8126896daf0ac998267da993fd2592c20bcd0789
parent1a71fd8efa0350d1e121f6792e8fad67e82b25c1 (diff)
built-in style palette
-rw-r--r--src/data/nodestyle.cpp32
-rw-r--r--src/gui/mainwindow.cpp13
-rw-r--r--src/gui/mainwindow.h7
-rw-r--r--src/gui/tikzscene.cpp10
-rw-r--r--src/gui/tikzscene.h4
-rw-r--r--src/tikzit.cpp16
-rw-r--r--src/tikzit.h4
-rw-r--r--stylepalette.cpp35
-rw-r--r--stylepalette.h3
-rw-r--r--stylepalette.ui129
10 files changed, 130 insertions, 123 deletions
diff --git a/src/data/nodestyle.cpp b/src/data/nodestyle.cpp
index 302ab84..b3d72fb 100644
--- a/src/data/nodestyle.cpp
+++ b/src/data/nodestyle.cpp
@@ -26,6 +26,8 @@ QString NodeStyle::name() const
NodeStyle::Shape NodeStyle::shape() const
{
+ if (_data == 0) return NodeStyle::Circle;
+
QString sh = _data->property("shape");
if (sh.isNull()) return NodeStyle::Circle;
else if (sh == "circle") return NodeStyle::Circle;
@@ -35,6 +37,8 @@ NodeStyle::Shape NodeStyle::shape() const
QColor NodeStyle::fillColor() const
{
+ if (_data == 0) return Qt::white;
+
QString col = _data->property("fill");
if (col.isNull()) {
@@ -52,6 +56,8 @@ QColor NodeStyle::fillColor() const
QColor NodeStyle::strokeColor() const
{
+ if (_data == 0) return Qt::black;
+
QString col = _data->property("draw");
if (col.isNull()) {
@@ -103,11 +109,29 @@ QIcon NodeStyle::icon() const
px.fill(Qt::transparent);
QPainter painter(&px);
QPainterPath pth = path();
- painter.setPen(pen());
- painter.setBrush(brush());
-
pth.translate(50.0f, 50.0f);
- painter.drawPath(pth);
+
+ if (_data == 0) {
+ QColor c(180,180,200);
+ painter.setPen(QPen(c));
+ painter.setBrush(QBrush(c));
+ painter.drawEllipse(QPointF(50.0f,50.0f), 3,3);
+
+ QPen pen(QColor(180,180,220));
+ pen.setWidth(3);
+ QVector<qreal> p;
+ p << 2.0 << 2.0;
+ pen.setDashPattern(p);
+ painter.setPen(pen);
+ painter.setBrush(Qt::NoBrush);
+ painter.drawPath(pth);
+ } else {
+ painter.setPen(pen());
+ painter.setBrush(brush());
+ painter.drawPath(pth);
+ }
+
+
return QIcon(px);
}
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 26e19b6..9ce340a 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -28,7 +28,11 @@ MainWindow::MainWindow(QWidget *parent) :
_toolPalette = new ToolPalette(this);
addToolBar(_toolPalette);
- _tikzScene = new TikzScene(_tikzDocument, _toolPalette, this);
+ _stylePalette = new StylePalette(this);
+ addDockWidget(Qt::RightDockWidgetArea, _stylePalette);
+
+
+ _tikzScene = new TikzScene(_tikzDocument, _toolPalette, _stylePalette, this);
ui->tikzView->setScene(_tikzScene);
_pristine = true;
@@ -79,11 +83,16 @@ void MainWindow::changeEvent(QEvent *event)
{
if (event->type() == QEvent::ActivationChange && isActiveWindow()) {
tikzit->setActiveWindow(this);
- tikzit->stylePalette()->raise();
+ //tikzit->stylePalette()->raise();
}
QMainWindow::changeEvent(event);
}
+StylePalette *MainWindow::stylePalette() const
+{
+ return _stylePalette;
+}
+
void MainWindow::updateFileName()
{
setWindowTitle("TiKZiT - " + _tikzDocument->shortName());
diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h
index 613bfcb..facce2b 100644
--- a/src/gui/mainwindow.h
+++ b/src/gui/mainwindow.h
@@ -11,6 +11,7 @@
#include "tikzdocument.h"
#include "mainmenu.h"
#include "toolpalette.h"
+#include "stylepalette.h"
#include <QMainWindow>
#include <QGraphicsView>
@@ -33,9 +34,12 @@ public:
TikzView *tikzView() const;
TikzScene *tikzScene() const;
TikzDocument *tikzDocument() const;
- ToolPalette *toolPalette() const;
+ ToolPalette *toolPalette() const;
+ StylePalette *stylePalette() const;
+
void updateFileName();
void refreshTikz();
+
protected:
void closeEvent(QCloseEvent *event);
void changeEvent(QEvent *event);
@@ -45,6 +49,7 @@ private:
TikzDocument *_tikzDocument;
MainMenu *_menu;
ToolPalette *_toolPalette;
+ StylePalette *_stylePalette;
Ui::MainWindow *ui;
bool _pristine;
int _windowId;
diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp
index 24f4ad1..8378f5e 100644
--- a/src/gui/tikzscene.cpp
+++ b/src/gui/tikzscene.cpp
@@ -11,8 +11,9 @@
#include <cmath>
-TikzScene::TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, QObject *parent) :
- QGraphicsScene(parent), _tikzDocument(tikzDocument), _tools(tools)
+TikzScene::TikzScene(TikzDocument *tikzDocument, ToolPalette *tools,
+ StylePalette *styles, QObject *parent) :
+ QGraphicsScene(parent), _tikzDocument(tikzDocument), _tools(tools), _styles(styles)
{
_modifyEdgeItem = 0;
_edgeStartNodeItem = 0;
@@ -382,7 +383,7 @@ void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
Node *n = new Node(_tikzDocument);
n->setName(graph()->freshNodeName());
n->setPoint(fromScreen(gridPos));
- n->setStyleName(tikzit->stylePalette()->activeNodeStyleName());
+ n->setStyleName(_styles->activeNodeStyleName());
QRectF grow(gridPos.x() - GLOBAL_SCALEF, gridPos.y() - GLOBAL_SCALEF, 2 * GLOBAL_SCALEF, 2 * GLOBAL_SCALEF);
QRectF newBounds = sceneRect().united(grow);
@@ -447,7 +448,7 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
}
void TikzScene::applyActiveStyleToNodes() {
- ApplyStyleToNodesCommand *cmd = new ApplyStyleToNodesCommand(this, tikzit->stylePalette()->activeNodeStyleName());
+ ApplyStyleToNodesCommand *cmd = new ApplyStyleToNodesCommand(this, _styles->activeNodeStyleName());
_tikzDocument->undoStack()->push(cmd);
}
@@ -562,6 +563,7 @@ void TikzScene::setTikzDocument(TikzDocument *tikzDocument)
void TikzScene::reloadStyles()
{
+ _styles->reloadStyles();
foreach (NodeItem *ni, _nodeItems) {
ni->node()->attachStyle();
ni->readPos(); // trigger a repaint
diff --git a/src/gui/tikzscene.h b/src/gui/tikzscene.h
index f7735ee..7061143 100644
--- a/src/gui/tikzscene.h
+++ b/src/gui/tikzscene.h
@@ -11,6 +11,7 @@
#include "edgeitem.h"
#include "tikzdocument.h"
#include "toolpalette.h"
+#include "stylepalette.h"
#include <QWidget>
#include <QGraphicsScene>
@@ -24,7 +25,7 @@ class TikzScene : public QGraphicsScene
{
Q_OBJECT
public:
- TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, QObject *parent);
+ TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, StylePalette *styles, QObject *parent);
~TikzScene();
Graph *graph();
QMap<Node*,NodeItem*> &nodeItems();
@@ -55,6 +56,7 @@ protected:
private:
TikzDocument *_tikzDocument;
ToolPalette *_tools;
+ StylePalette *_styles;
QMap<Node*,NodeItem*> _nodeItems;
QMap<Edge*,EdgeItem*> _edgeItems;
QGraphicsLineItem *_drawEdgeItem;
diff --git a/src/tikzit.cpp b/src/tikzit.cpp
index 78cb7a1..e91976c 100644
--- a/src/tikzit.cpp
+++ b/src/tikzit.cpp
@@ -26,10 +26,10 @@ void Tikzit::init(QApplication *app)
_toolPalette = new ToolPalette(dummy);
_propertyPalette = new PropertyPalette(dummy);
- _stylePalette = new StylePalette(dummy);
+ //_stylePalette = new StylePalette(dummy);
_styles = new TikzStyles(this);
- _stylePalette->show();
+ //_stylePalette->show();
_windows << new MainWindow();
_windows[0]->show();
@@ -137,7 +137,7 @@ void Tikzit::loadStyles(QString fileName)
} else {
qDebug() << "parse failed";
}
- _stylePalette->reloadStyles();
+ //_stylePalette->reloadStyles();
foreach (MainWindow *w, _windows) {
w->tikzScene()->reloadStyles();
@@ -164,10 +164,10 @@ void Tikzit::focusChanged(QWidget *old, QWidget *nw)
// }
}
-StylePalette *Tikzit::stylePalette() const
-{
- return _stylePalette;
-}
+//StylePalette *Tikzit::stylePalette() const
+//{
+// return _stylePalette;
+//}
TikzStyles *Tikzit::styles() const
@@ -177,7 +177,7 @@ TikzStyles *Tikzit::styles() const
void Tikzit::quit()
{
- _stylePalette->close();
+ //_stylePalette->close();
QApplication::quit();
}
diff --git a/src/tikzit.h b/src/tikzit.h
index 39aa9e4..6a191b5 100644
--- a/src/tikzit.h
+++ b/src/tikzit.h
@@ -98,7 +98,7 @@ public:
void loadStyles(QString fileName);
TikzStyles *styles() const;
QString styleFile() const;
- StylePalette *stylePalette() const;
+ //StylePalette *stylePalette() const;
public slots:
void focusChanged(QWidget *old, QWidget *nw);
@@ -108,7 +108,7 @@ private:
MainMenu *_mainMenu;
ToolPalette *_toolPalette;
PropertyPalette *_propertyPalette;
- StylePalette *_stylePalette;
+ //StylePalette *_stylePalette;
QVector<MainWindow*> _windows;
MainWindow *_activeWindow;
TikzStyles *_styles;
diff --git a/stylepalette.cpp b/stylepalette.cpp
index c2ddc21..bd82e30 100644
--- a/stylepalette.cpp
+++ b/stylepalette.cpp
@@ -16,17 +16,19 @@ StylePalette::StylePalette(QWidget *parent) :
{
ui->setupUi(this);
- QSettings settings("tikzit", "tikzit");
- QVariant geom = settings.value("style-palette-geometry");
- if (geom != QVariant()) {
- restoreGeometry(geom.toByteArray());
- }
+// QSettings settings("tikzit", "tikzit");
+// QVariant geom = settings.value("style-palette-geometry");
+// if (geom != QVariant()) {
+// restoreGeometry(geom.toByteArray());
+// }
_model = new QStandardItemModel(this);
ui->styleListView->setModel(_model);
ui->styleListView->setViewMode(QListView::IconMode);
ui->styleListView->setMovement(QListView::Static);
- ui->styleListView->setGridSize(QSize(70,60));
+ ui->styleListView->setGridSize(QSize(70,40));
+
+ connect(ui->styleListView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT( itemDoubleClicked(const QModelIndex&)) );
}
StylePalette::~StylePalette()
@@ -42,10 +44,16 @@ void StylePalette::reloadStyles()
ui->styleFile->setText(f);
QStandardItem *it;
- QSize sz(60,60);
+ //QSize sz(60,60);
+
+ it = new QStandardItem(noneStyle->icon(), noneStyle->name());
+ it->setEditable(false);
+ it->setData(noneStyle->name());
+ _model->appendRow(it);
foreach(NodeStyle *ns, tikzit->styles()->nodeStyles()) {
it = new QStandardItem(ns->icon(), ns->name());
+ it->setEditable(false);
it->setData(ns->name());
_model->appendRow(it);
}
@@ -62,6 +70,11 @@ QString StylePalette::activeNodeStyleName()
}
}
+void StylePalette::itemDoubleClicked(const QModelIndex &index)
+{
+ tikzit->activeWindow()->tikzScene()->applyActiveStyleToNodes();
+}
+
void StylePalette::on_buttonOpenTikzstyles_clicked()
{
tikzit->openTikzStyles();
@@ -74,10 +87,10 @@ void StylePalette::on_buttonRefreshTikzstyles_clicked()
if (!path.isEmpty()) tikzit->loadStyles(path);
}
-void StylePalette::on_buttonApplyNodeStyle_clicked()
-{
- if (tikzit->activeWindow() != 0) tikzit->activeWindow()->tikzScene()->applyActiveStyleToNodes();
-}
+//void StylePalette::on_buttonApplyNodeStyle_clicked()
+//{
+// if (tikzit->activeWindow() != 0) tikzit->activeWindow()->tikzScene()->applyActiveStyleToNodes();
+//}
void StylePalette::closeEvent(QCloseEvent *event)
{
diff --git a/stylepalette.h b/stylepalette.h
index 3861008..8d2187e 100644
--- a/stylepalette.h
+++ b/stylepalette.h
@@ -20,9 +20,10 @@ public:
public slots:
+ void itemDoubleClicked(const QModelIndex &index);
void on_buttonOpenTikzstyles_clicked();
void on_buttonRefreshTikzstyles_clicked();
- void on_buttonApplyNodeStyle_clicked();
+ //void on_buttonApplyNodeStyle_clicked();
private:
Ui::StylePalette *ui;
diff --git a/stylepalette.ui b/stylepalette.ui
index 5e370b6..3362ce2 100644
--- a/stylepalette.ui
+++ b/stylepalette.ui
@@ -6,21 +6,33 @@
<rect>
<x>0</x>
<y>0</y>
- <width>250</width>
- <height>430</height>
+ <width>88</width>
+ <height>518</height>
</rect>
</property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="minimumSize">
<size>
- <width>250</width>
- <height>430</height>
+ <width>88</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>88</width>
+ <height>524287</height>
</size>
</property>
<property name="floating">
- <bool>true</bool>
+ <bool>false</bool>
</property>
<property name="windowTitle">
- <string>Styles</string>
+ <string/>
</property>
<widget class="QWidget" name="dockWidgetContents">
<layout class="QVBoxLayout" name="verticalLayout">
@@ -33,31 +45,17 @@
<number>0</number>
</property>
<item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Styles:</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="styleFile">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="font">
- <font>
- <family>Courier</family>
- <weight>75</weight>
- <bold>true</bold>
- </font>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
</property>
- <property name="text">
- <string>[default]</string>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
</property>
- </widget>
+ </spacer>
</item>
<item>
<widget class="QToolButton" name="buttonOpenTikzstyles">
@@ -87,6 +85,19 @@
</layout>
</item>
<item>
+ <widget class="QLabel" name="styleFile">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>[default]</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QListView" name="styleListView">
<property name="font">
<font>
@@ -97,68 +108,8 @@
</widget>
</item>
<item>
- <layout class="QHBoxLayout" name="layoutButtons">
- <property name="spacing">
- <number>2</number>
- </property>
- <item>
- <widget class="QToolButton" name="buttonApplyNodeStyle">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string>Apply</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
<widget class="QListView" name="listView"/>
</item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <property name="spacing">
- <number>2</number>
- </property>
- <item>
- <widget class="QToolButton" name="toolButton">
- <property name="text">
- <string>Apply</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
</layout>
</widget>
</widget>