summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2019-01-03 16:28:16 +0100
committerAleks Kissinger <aleks0@gmail.com>2019-01-03 16:28:16 +0100
commit6760247a5ca6143779699cbd5de5022e7477bd80 (patch)
tree0888916278b41bf816a22718496886cbbae5e157
parentaf55e1aac22126f72f738a666db01c8a146d99dc (diff)
validate node label text
-rw-r--r--src/gui/tikzscene.cpp20
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;
}
}