diff options
author | Aleks Kissinger <aleks0@gmail.com> | 2019-01-03 16:28:16 +0100 |
---|---|---|
committer | Aleks Kissinger <aleks0@gmail.com> | 2019-01-03 16:28:16 +0100 |
commit | 6760247a5ca6143779699cbd5de5022e7477bd80 (patch) | |
tree | 0888916278b41bf816a22718496886cbbae5e157 | |
parent | af55e1aac22126f72f738a666db01c8a146d99dc (diff) |
validate node label text
-rw-r--r-- | src/gui/tikzscene.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 950bd59..31d5bf6 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -28,6 +28,7 @@ #include <QClipboard> #include <QInputDialog> #include <cmath> +#include <delimitedstringvalidator.h> TikzScene::TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, @@ -664,16 +665,23 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) } break; } else if (NodeItem *ni = dynamic_cast<NodeItem*>(it)) { - bool ok; - QString newLabel = QInputDialog::getText(views()[0], tr("Node label"), - tr("Label:"), QLineEdit::Normal, - ni->node()->label(), &ok); - if (ok) { + QInputDialog *d = new QInputDialog(views()[0]); + d->setLabelText(tr("Label:")); + d->setTextValue(ni->node()->label()); + d->setWindowTitle(tr("Node label")); + + if (QLineEdit *le = d->findChild<QLineEdit*>()) { + le->setValidator(new DelimitedStringValidator(le)); + } + + if (d->exec()) { QMap<Node*,QString> oldLabels; oldLabels.insert(ni->node(), ni->node()->label()); - ChangeLabelCommand *cmd = new ChangeLabelCommand(this, oldLabels, newLabel); + ChangeLabelCommand *cmd = new ChangeLabelCommand(this, oldLabels, d->textValue()); _tikzDocument->undoStack()->push(cmd); } + + d->deleteLater(); break; } } |