diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/delimitedstringitemdelegate.cpp | 44 | ||||
-rw-r--r-- | src/gui/delimitedstringitemdelegate.h | 42 | ||||
-rw-r--r-- | src/gui/styleeditor.cpp | 6 |
3 files changed, 92 insertions, 0 deletions
diff --git a/src/gui/delimitedstringitemdelegate.cpp b/src/gui/delimitedstringitemdelegate.cpp new file mode 100644 index 0000000..7b6c58e --- /dev/null +++ b/src/gui/delimitedstringitemdelegate.cpp @@ -0,0 +1,44 @@ +/* + 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; +} diff --git a/src/gui/delimitedstringitemdelegate.h b/src/gui/delimitedstringitemdelegate.h new file mode 100644 index 0000000..bd1a856 --- /dev/null +++ b/src/gui/delimitedstringitemdelegate.h @@ -0,0 +1,42 @@ +/* + 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 diff --git a/src/gui/styleeditor.cpp b/src/gui/styleeditor.cpp index 17929da..7817731 100644 --- a/src/gui/styleeditor.cpp +++ b/src/gui/styleeditor.cpp @@ -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; |