-
- unicodeNumber->setText(newText);
- unicodeNumber->setCursorPosition(cursorPos);
-
- // Get the decimal number as uint to create the QChar from
- uint value;
- switch (inputMethod) {
- case InputHex:
- value = newText.toUInt(&ok, 16);
- break;
- case InputDec:
- value = newText.toUInt(&ok, 10);
- break;
- }
-
- if (!ok) {
- // Impossible! validateText never fails!
- }
-
- // If an invalid character has been entered:
- // Reset the cursor position because the entered char has been deleted.
- if (text != newText && newText == lastUnicodeNumber) {
- unicodeNumber->setCursorPosition(lastCursorPos);
+ if (newText.length() == 0) {
+ unicodeChar->setText("");
+ unicodeNumber->setText("");
+ lastCursorPos = 0;
+ lastUnicodeNumber = "";
+ labelInfoText->setText(unicodeInfo(""));
+
+ } else {
+
+ int cursorPos = unicodeNumber->cursorPosition();
+
+ unicodeNumber->setText(newText);
+ unicodeNumber->setCursorPosition(cursorPos);
+
+ // Get the decimal number as uint to create the QChar from
+ bool ok;
+ uint value = 0;
+ switch (inputMethod) {
+ case InputHex:
+ value = newText.toUInt(&ok, 16);
+ break;
+ case InputDec:
+ value = newText.toUInt(&ok, 10);
+ break;
+ }
+ updateOverviewChars(value);
+
+ if (!ok) {
+ // Impossible! validateText never fails!
+ }
+
+ // If an invalid character has been entered:
+ // Reset the cursor position because the entered char has been deleted.
+ if (text != newText && newText == lastUnicodeNumber) {
+ unicodeNumber->setCursorPosition(lastCursorPos);
+ }
+
+ lastCursorPos = unicodeNumber->cursorPosition();
+ lastUnicodeNumber = newText;
+
+ labelInfoText->setText(unicodeInfo(newText));
+ unicodeChar->setText(QChar(value));