Commit cbe3074c authored by Aleks Kissinger's avatar Aleks Kissinger

string validation for the styleeditor (closes #44)

parent 5bcacbe0
......@@ -35,6 +35,7 @@
class DelimitedStringValidator : public QValidator
{
Q_OBJECT
public:
DelimitedStringValidator(QObject *parent);
QValidator::State validate(QString &input, int &/*pos*/) const override;
......
/*
TikZiT - a GUI diagram editor for TikZ
Copyright (C) 2018 Aleks Kissinger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include "delimitedstringitemdelegate.h"
#include <QLineEdit>
DelimitedStringItemDelegate::DelimitedStringItemDelegate(QObject *parent) : QItemDelegate (parent)
{
_validator = new DelimitedStringValidator(this);
}
DelimitedStringItemDelegate::~DelimitedStringItemDelegate()
{
}
QWidget *DelimitedStringItemDelegate::createEditor(
QWidget *parent,
const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QWidget *editor = QItemDelegate::createEditor(parent, option, index);
if (QLineEdit *lineEdit = dynamic_cast<QLineEdit*>(editor)) {
lineEdit->setValidator(_validator);
}
return editor;
}
/*
TikZiT - a GUI diagram editor for TikZ
Copyright (C) 2018 Aleks Kissinger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*!
* A QItemDelete that attaches a DelimitedStringValidator to any QLineEdit
*/
#ifndef DELIMITEDSTRINGITEMDELEGATE_H
#define DELIMITEDSTRINGITEMDELEGATE_H
#include "delimitedstringvalidator.h"
#include <QWidget>
#include <QItemDelegate>
class DelimitedStringItemDelegate : public QItemDelegate
{
Q_OBJECT
public:
DelimitedStringItemDelegate(QObject *parent=nullptr);
virtual ~DelimitedStringItemDelegate() override;
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
private:
DelimitedStringValidator *_validator;
};
#endif // DELIMITEDSTRINGITEMDELEGATE_H
......@@ -24,6 +24,7 @@
#include "styleeditor.h"
#include "delimitedstringvalidator.h"
#include "ui_styleeditor.h"
#include "delimitedstringitemdelegate.h"
StyleEditor::StyleEditor(QWidget *parent) :
QMainWindow(parent),
......@@ -39,6 +40,11 @@ StyleEditor::StyleEditor(QWidget *parent) :
DelimitedStringValidator *v = new DelimitedStringValidator(this);
ui->name->setValidator(v);
ui->category->lineEdit()->setValidator(v);
ui->shape->lineEdit()->setValidator(v);
DelimitedStringItemDelegate *delegate = new DelimitedStringItemDelegate(ui->properties);
ui->properties->setItemDelegate(delegate);
setWindowIcon(QIcon(":/images/tikzit.png"));
_styles = nullptr;
......
......@@ -5,8 +5,8 @@
% Node styles
\tikzstyle{red node}=[fill=red, tikzit category=nodes, shape=circle, draw=black]
\tikzstyle{blue node}=[fill=blue, shape=circle, draw=black]
\tikzstyle{blue node 2}=[tikzit fill=green, fill=blue, shape=circle, draw=black]
\tikzstyle{blue node}=[fill=blue, shape=circle, draw=black, tikzit category=nodes]
\tikzstyle{blue node 2}=[tikzit fill=green, fill=blue, shape=circle, draw=black, tikzit category=nodes]
\tikzstyle{yellow square}=[draw=black, fill=yellow, shape=rectangle]
% Edge styles
......
......@@ -80,7 +80,8 @@ SOURCES += src/gui/mainwindow.cpp \
src/gui/latexprocess.cpp \
src/data/pdfdocument.cpp \
src/gui/exportdialog.cpp \
src/data/delimitedstringvalidator.cpp
src/data/delimitedstringvalidator.cpp \
src/gui/delimitedstringitemdelegate.cpp
HEADERS += src/gui/mainwindow.h \
src/gui/toolpalette.h \
......@@ -111,7 +112,8 @@ HEADERS += src/gui/mainwindow.h \
src/gui/latexprocess.h \
src/data/pdfdocument.h \
src/gui/exportdialog.h \
src/data/delimitedstringvalidator.h
src/data/delimitedstringvalidator.h \
src/gui/delimitedstringitemdelegate.h
FORMS += src/gui/mainwindow.ui \
src/gui/propertypalette.ui \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment