From: <gr...@us...> - 2009-06-17 18:36:22
|
Revision: 3558 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=3558&view=rev Author: granjow Date: 2009-06-17 18:35:16 +0000 (Wed, 17 Jun 2009) Log Message: ----------- Title Widget: Icon for align:none and Unicode Insert added Unicode dialog checking for control character Comments added WordWrap enabled for Unicode dialog Modified Paths: -------------- trunk/kdenlive/src/titlewidget.cpp trunk/kdenlive/src/unicodedialog.cpp trunk/kdenlive/src/unicodedialog.h trunk/kdenlive/src/widgets/titlewidget_ui.ui trunk/kdenlive/src/widgets/unicodedialog_ui.ui Added Paths: ----------- trunk/kdenlive/icons/hi16-action-kdenlive-align-none.png trunk/kdenlive/icons/hi16-action-kdenlive-insert-unicode.png trunk/kdenlive/icons/hisc-action-kdenlive-align-none.svgz trunk/kdenlive/icons/hisc-action-kdenlive-insert-unicode.svgz trunk/kdenlive/icons/ox16-action-kdenlive-align-none.png trunk/kdenlive/icons/ox16-action-kdenlive-insert-unicode.png trunk/kdenlive/icons/oxsc-action-kdenlive-align-none.svgz trunk/kdenlive/icons/oxsc-action-kdenlive-insert-unicode.svgz Added: trunk/kdenlive/icons/hi16-action-kdenlive-align-none.png =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/hi16-action-kdenlive-align-none.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/hi16-action-kdenlive-insert-unicode.png =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/hi16-action-kdenlive-insert-unicode.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/hisc-action-kdenlive-align-none.svgz =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/hisc-action-kdenlive-align-none.svgz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/hisc-action-kdenlive-insert-unicode.svgz =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/hisc-action-kdenlive-insert-unicode.svgz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/ox16-action-kdenlive-align-none.png =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/ox16-action-kdenlive-align-none.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/ox16-action-kdenlive-insert-unicode.png =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/ox16-action-kdenlive-insert-unicode.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/oxsc-action-kdenlive-align-none.svgz =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/oxsc-action-kdenlive-align-none.svgz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/kdenlive/icons/oxsc-action-kdenlive-insert-unicode.svgz =================================================================== (Binary files differ) Property changes on: trunk/kdenlive/icons/oxsc-action-kdenlive-insert-unicode.svgz ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/kdenlive/src/titlewidget.cpp =================================================================== --- trunk/kdenlive/src/titlewidget.cpp 2009-06-17 16:01:59 UTC (rev 3557) +++ trunk/kdenlive/src/titlewidget.cpp 2009-06-17 18:35:16 UTC (rev 3558) @@ -116,6 +116,9 @@ buttonAlignCenter->setIcon(KIcon("format-justify-center")); buttonAlignLeft->setIcon(KIcon("format-justify-left")); buttonAlignRight->setIcon(KIcon("format-justify-right")); + buttonAlignNone->setIcon(KIcon("kdenlive-align-none")); + buttonInsertUnicode->setIcon(KIcon("kdenlive-insert-unicode")); + buttonAlignNone->setToolTip(i18n("No alignment")); buttonAlignRight->setToolTip(i18n("Align right")); buttonAlignLeft->setToolTip(i18n("Align left")); Modified: trunk/kdenlive/src/unicodedialog.cpp =================================================================== --- trunk/kdenlive/src/unicodedialog.cpp 2009-06-17 16:01:59 UTC (rev 3557) +++ trunk/kdenlive/src/unicodedialog.cpp 2009-06-17 18:35:16 UTC (rev 3558) @@ -39,17 +39,42 @@ /// METHODS +bool UnicodeDialog::controlCharacter(QString text) +{ + bool isControlCharacter = false; + QString t = text.toLower(); + + switch (inputMethod) { + case InputHex: + if (t == "" + || (t.length() == 1 && !(t == "9" || t == "a" || t == "d")) + || (t.length() == 2 && t.at(0) == QChar('1'))) { + isControlCharacter = true; + } + break; + + case InputDec: + break; + } + + return isControlCharacter; +} + +QString UnicodeDialog::trimmedUnicodeNumber(QString text) +{ + while (text.length() > 0 && text.at(0) == QChar('0')) { + text = text.remove(0, 1); + } + return text; +} + QString UnicodeDialog::unicodeInfo(QString unicode_number) { QString infoText(""); - QString u = unicode_number; + QString u = trimmedUnicodeNumber(unicode_number); - while (unicode_number.at(0) == QChar('0')) { - unicode_number = unicode_number.remove(0, 1); - } - - if (false) { - // Just a placeholder for reason of ease (shifting around lines) + if (controlCharacter(u)) { + infoText = i18n("Control character. Cannot be inserted/printed. See <a href=\"http://en.wikipedia.org/wiki/Control_character\">Wikipedia:Control_character</a>"); } else if (u == "2009") { infoText = i18n("A thin space, in HTML also &thinsp;. See <a href=\"http://en.wikipedia.org/wiki/Space_(punctuation)\">Wikipedia:Space_(punctuation)</a>"); } else if (u == "2019") { @@ -65,9 +90,6 @@ return infoText; } -/** - * Validates an Unicode number. - */ QString UnicodeDialog::validateText(QString text) { QRegExp regex("([0-9]|[a-f])", Qt::CaseInsensitive, QRegExp::RegExp2); @@ -76,6 +98,7 @@ switch (inputMethod) { case InputHex: + // Remove all characters we don't want while ((pos = regex.indexIn(text, pos)) != -1) { newText += regex.cap(1); pos++; @@ -107,6 +130,7 @@ unicodeNumber->setText(newText); unicodeNumber->setCursorPosition(cursorPos); + // Get the decimal number as uint to create the QChar from uint value; switch (inputMethod) { case InputHex: @@ -118,7 +142,7 @@ } if (!ok) { - //TODO! + // Impossible! validateText never fails! } // If an invalid character has been entered: @@ -135,9 +159,16 @@ unicodeNumber->blockSignals(false); } +/** + * When return pressed, we return the selected unicode character + * if it was not a control character. + */ void UnicodeDialog::slotReturnPressed() { - emit charSelected(unicodeChar->text()); + QString text = trimmedUnicodeNumber(unicodeNumber->text()); + if (!controlCharacter(text)) { + emit charSelected(unicodeChar->text()); + } emit accept(); } Modified: trunk/kdenlive/src/unicodedialog.h =================================================================== --- trunk/kdenlive/src/unicodedialog.h 2009-06-17 16:01:59 UTC (rev 3557) +++ trunk/kdenlive/src/unicodedialog.h 2009-06-17 18:35:16 UTC (rev 3558) @@ -23,7 +23,7 @@ UnicodeDialog(InputMethod inputMeth); ~UnicodeDialog(); - /** \brief Returns infos about an unicode number. Extendable/improvable ;) */ + /** \brief Returns infos about a unicode number. Extendable/improvable ;) */ QString unicodeInfo(QString unicode_number); private: @@ -31,8 +31,13 @@ /** Selected input method */ InputMethod inputMethod; + /** \brief Validates text and removes all invalid characters (non-hex e.g.) */ QString validateText(QString text); + /** \brief Removes all leading zeros */ + QString trimmedUnicodeNumber(QString text); + /** \brief Checks whether the given string is a control character */ + bool controlCharacter(QString text); int lastCursorPos; QString lastUnicodeNumber; Modified: trunk/kdenlive/src/widgets/titlewidget_ui.ui =================================================================== --- trunk/kdenlive/src/widgets/titlewidget_ui.ui 2009-06-17 16:01:59 UTC (rev 3557) +++ trunk/kdenlive/src/widgets/titlewidget_ui.ui 2009-06-17 18:35:16 UTC (rev 3558) @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>902</width> + <width>906</width> <height>442</height> </rect> </property> @@ -286,6 +286,13 @@ </widget> </item> <item> + <widget class="Line" name="line"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + </widget> + </item> + <item> <widget class="QToolButton" name="buttonInsertUnicode"> <property name="text"> <string>...</string> @@ -331,7 +338,7 @@ <rect> <x>0</x> <y>0</y> - <width>441</width> + <width>443</width> <height>143</height> </rect> </property> @@ -450,8 +457,8 @@ <rect> <x>0</x> <y>0</y> - <width>441</width> - <height>143</height> + <width>96</width> + <height>73</height> </rect> </property> <attribute name="label"> @@ -498,7 +505,7 @@ <rect> <x>0</x> <y>0</y> - <width>425</width> + <width>272</width> <height>224</height> </rect> </property> Modified: trunk/kdenlive/src/widgets/unicodedialog_ui.ui =================================================================== --- trunk/kdenlive/src/widgets/unicodedialog_ui.ui 2009-06-17 16:01:59 UTC (rev 3557) +++ trunk/kdenlive/src/widgets/unicodedialog_ui.ui 2009-06-17 18:35:16 UTC (rev 3558) @@ -187,6 +187,9 @@ <property name="alignment"> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set> </property> + <property name="wordWrap"> + <bool>true</bool> + </property> </widget> </item> <item row="0" column="0"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |