1 /***************************************************************************
2 * Copyright (C) 2008 by Simon Andreas Eugster (simon.eu@gmail.com) *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 ***************************************************************************/
10 #ifndef UNICODEDIALOG_H
11 #define UNICODEDIALOG_H
13 #include "ui_unicodedialog_ui.h"
15 class UnicodeDialog : public QDialog, public Ui::UnicodeDialog_UI
20 /** \brief The input method for the dialog. Atm only InputHex supported. */
21 enum InputMethod { InputHex, InputDec };
23 UnicodeDialog(InputMethod inputMeth);
26 /** \brief Returns infos about a unicode number. Extendable/improvable ;) */
27 QString unicodeInfo(QString unicode);
29 void showLastUnicode();
32 virtual void wheelEvent(QWheelEvent * event);
35 /** \brief Override QDialog::exec() to assure the focus being on the unicode input field */
39 Ui::UnicodeDialog_UI m_view;
41 enum Direction { Forward, Backward };
43 /** Selected input method */
44 InputMethod inputMethod;
46 /** \brief Validates text and removes all invalid characters (non-hex e.g.) */
47 QString validateText(QString text);
48 /** \brief Removes all leading zeros */
49 QString trimmedUnicodeNumber(QString text);
50 /** \brief Checks whether the given string is a control character */
51 bool controlCharacter(QString text);
52 /** \brief Checks whether the given uint is a control character */
53 bool controlCharacter(uint value);
55 /** \brief Returns the next available unicode. */
56 QString nextUnicode(QString text, Direction direction);
58 /** \brief Paints previous and next characters around current char */
59 void updateOverviewChars(uint unicode);
60 void clearOverviewChars();
63 QString m_lastUnicodeNumber;
65 /** \brief Reads the last used unicode number from the config file. */
67 /** \brief Writes the last used unicode number into the config file. */
71 /** \brief Contains the selected unicode character; emitted when Enter is pressed. */
72 void charSelected(const QString&);
75 void slotTextChanged(QString text);
76 void slotReturnPressed();
77 void slotNextUnicode();
78 void slotPrevUnicode();