#include "unicodedialog.h"
+#include <QWheelEvent>
+
/// CONSTANTS
const int MAX_LENGTH_HEX = 4;
showLastUnicode();
connect(unicodeNumber, SIGNAL(textChanged(QString)), this, SLOT(slotTextChanged(QString)));
connect(unicodeNumber, SIGNAL(returnPressed()), this, SLOT(slotReturnPressed()));
- connect(arrowUp, SIGNAL(clicked()), this, SLOT(slotNextUnicode()));
- connect(arrowDown, SIGNAL(clicked()), this, SLOT(slotPrevUnicode()));
+ connect(arrowUp, SIGNAL(clicked()), this, SLOT(slotPrevUnicode()));
+ connect(arrowDown, SIGNAL(clicked()), this, SLOT(slotNextUnicode()));
switch (inputMethod) {
case InputHex:
arrowUp->setShortcut(Qt::Key_Up);
arrowDown->setShortcut(Qt::Key_Down);
-
- arrowUp->setToolTip(i18n("Next Unicode character (Arrow Up)"));
- arrowDown->setToolTip(i18n("Previous Unicode character (Arrow Down)"));
+ unicode_link->setText(i18n("Information about unicode characters: <a href=\"http://decodeunicode.org\">http://decodeunicode.org</a>"));
+ arrowUp->setToolTip(i18n("Previous Unicode character (Arrow Up)"));
+ arrowDown->setToolTip(i18n("Next Unicode character (Arrow Down)"));
unicodeNumber->setToolTip(i18n("Enter your Unicode number here. Allowed characters: [0-9] and [a-f]."));
unicodeNumber->selectAll(); // Selection will be reset by setToolTip and similar, so set it here
}
+/// PUBLIC SLOTS
+
+int UnicodeDialog::exec()
+{
+ unicodeNumber->setFocus();
+ return QDialog::exec();
+}
+
+
/// METHODS
void UnicodeDialog::showLastUnicode()
switch (inputMethod) {
case InputHex:
- if (t == ""
+ if (t.isEmpty()
|| (t.length() == 1 && !(t == "9" || t == "a" || t == "d"))
|| (t.length() == 2 && t.at(0) == QChar('1'))) {
isControlCharacter = true;
} else if (u == "a0") {
infoText = i18n("No-break space. &nbsp; in HTML. See U+2009 and U+0020.");
} else if (u == "ab" || u == "bb" || u == "2039" || u == "203a") {
- infoText = i18n("<p><strong>«</strong> (u+00ab, <code>&lfquo;</code> in HTML) and <strong>»</strong> (u+00bb, <code>&rfquo;</code> in HTML) are called Guillemets or angle quotes. Usage in different countries: « France » (with non-breaking Space 0x00a0), «Switzerland», »Germany«, »Finland and Sweden».</p><p><strong>‹</strong> and <strong>›</strong> (U+2039/203a, <code>&lsaquo;/&rsaquo;</code>) are their single quote equivalents.</p><p>See <a href=\"http://en.wikipedia.org/wiki/Guillemets\">Wikipedia:Guillemets</a></p>");
+ infoText = i18n("<p><strong>«</strong> (u+00ab, <code>&lfquo;</code> in HTML) and <strong>»</strong> (u+00bb, <code>&rfquo;</code> in HTML) are called Guillemets or angle quotes. Usage in different countries: France (with non-breaking Space 0x00a0), Switzerland, Germany, Finland and Sweden.</p><p><strong>‹</strong> and <strong>›</strong> (U+2039/203a, <code>&lsaquo;/&rsaquo;</code>) are their single quote equivalents.</p><p>See <a href=\"http://en.wikipedia.org/wiki/Guillemets\">Wikipedia:Guillemets</a></p>");
} else if (u == "2002") {
infoText = i18n("En Space (width of an n)");
} else if (u == "2003") {
} else if (u == "2013") {
infoText = i18n("<p>An en Dash (dash of the width of an n).</p><p>Usage examples: In English language for value ranges (1878–1903), for relationships/connections (Zurich–Dublin). In the German language it is also used (with spaces!) for showing thoughts: “Es war – wie immer in den Ferien – ein regnerischer Tag.</p> <p>See <a href=\"http://en.wikipedia.org/wiki/Dash\">Wikipedia:Dash</a></p>");
} else if (u == "2014") {
- infoText = i18n("<p>An em Dash (dash of the widht of an m).</p><p>Usage examples: In English language to mark—like here—thoughts. Traditionally without spaces. </p><p>See <a href=\"http://en.wikipedia.org/wiki/Dash\">Wikipedia:Dash</a></p>");
+ infoText = i18n("<p>An em Dash (dash of the width of an m).</p><p>Usage examples: In English language to mark—like here—thoughts. Traditionally without spaces. </p><p>See <a href=\"http://en.wikipedia.org/wiki/Dash\">Wikipedia:Dash</a></p>");
} else if (u == "202f") {
- infoText = i18n("<p>Narrow no-break space. Has the same width as U+2009.</p><p>Usage: For units (spaces are marked with U+2423, ␣): 230␣V, −21␣°C, 50␣lb, <em>but</em> 90° (no space). In German for abbreviations (like: i. d. R. instead of i. d. R. with U+00a0).</p><p>See <a href=\"http://de.wikipedia.org/wiki/Schmales_Leerzeichen\">Wikipedia:de:Schmales_Leerzeichen</a></p>");
+ infoText = i18n("<p>Narrow no-break space. Has the same width as U+2009.</p><p>Usage: For units (spaces are marked with U+2423, ␣): 230␣V, −21␣°C, 50␣lb, <em>but</em> 90° (no space). In German for abbreviations (like: i. d. R. instead of i. d. R. with U+00a0).</p><p>See <a href=\"http://de.wikipedia.org/wiki/Schmales_Leerzeichen\">Wikipedia:de:Schmales_Leerzeichen</a></p>");
} else if (u == "2026") {
infoText = i18n("Ellipsis: If text has been left o… See <a href=\"http://en.wikipedia.org/wiki/Ellipsis\">Wikipedia:Ellipsis</a>");
} else if (u == "2212") {
infoText = i18n("Minus sign. For numbers: −42");
} else if (u == "2423") {
infoText = i18n("Open box; stands for a space.");
+ } else if (u == "2669") {
+ infoText = i18n("Quarter note (Am.) or crochet (Brit.). See <a href=\"http://en.wikipedia.org/wiki/Quarter_note\">Wikipedia:Quarter_note</a>");
+ } else if (u == "266a" || u == "266b") {
+ infoText = i18n("Eighth note (Am.) or quaver (Brit.). Half as long as a quarter note (U+2669). See <a href=\"http://en.wikipedia.org/wiki/Eighth_note\">Wikipedia:Eighth_note</a>");
+ } else if (u == "266c") {
+ infoText = i18n("Sixteenth note (Am.) or semiquaver (Brit.). Half as long as an eighth note (U+266a). See <a href=\"http://en.wikipedia.org/wiki/Sixteenth_note\">Wikipedia:Sixteenth_note</a>");
+ } else if (u == "1D162") {
+ infoText = i18n("Thirty-second note (Am.) or demisemiquaver (Brit.). Half as long as a sixteenth note (U+266b). See <a href=\"http://en.wikipedia.org/wiki/Thirty-second_note\">Wikipedia:Thirty-second_note</a>");
} else {
infoText = i18n("<small>No additional information available for this character.</small>");
}
for (i = 1; i <= 4; i++) {
if (unicode > i && !controlCharacter(unicode - i)) {
- left = " " + left;
+ left = ' ' + left;
left = QChar(unicode - i) + left;
}
}
for (i = 1; i <= 8; i++) {
if (unicode + i <= MAX_UNICODE_V1 && !controlCharacter(unicode + i)) {
right += QChar(unicode + i);
- right += " ";
+ right += ' ';
}
}
unicodeNumber->setText(nextUnicode(text, Backward));
}
+void UnicodeDialog::wheelEvent(QWheelEvent * event)
+{
+ if (frame->underMouse()) {
+ if (event->delta() > 0) slotNextUnicode();
+ else slotPrevUnicode();
+ }
+}
+
#include "unicodedialog.moc"