Logo Search packages:      
Sourcecode: kdenlive version File versions

unicodedialog.h

/***************************************************************************
 *   Copyright (C) 2008 by Simon Andreas Eugster (simon.eu@gmail.com)      *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/

#ifndef UNICODEDIALOG_H
#define UNICODEDIALOG_H

#include "ui_unicodedialog_ui.h"

00015 class UnicodeDialog : public QDialog, public Ui::UnicodeDialog_UI
{
    Q_OBJECT

public:
    /** \brief The input method for the dialog. Atm only InputHex supported. */
00021     enum InputMethod { InputHex, InputDec };

    UnicodeDialog(InputMethod inputMeth);
    ~UnicodeDialog();

    /** \brief Returns infos about a unicode number. Extendable/improvable ;) */
    QString unicodeInfo(QString unicode);

    void showLastUnicode();

protected:
    virtual void wheelEvent(QWheelEvent * event);

public slots:
    /** \brief Override QDialog::exec() to assure the focus being on the unicode input field */
    int exec();

private:
    Ui::UnicodeDialog_UI m_view;

    enum Direction { Forward, Backward };

    /** Selected input method */
00044     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);
    /** \brief Checks whether the given uint is a control character */
    bool controlCharacter(uint value);

    /** \brief Returns the next available unicode. */
    QString nextUnicode(QString text, Direction direction);

    /** \brief Paints previous and next characters around current char */
    void updateOverviewChars(uint unicode);
    void clearOverviewChars();

    int m_lastCursorPos;
    QString m_lastUnicodeNumber;

    /** \brief Reads the last used unicode number from the config file. */
    void readChoices();
    /** \brief Writes the last used unicode number into the config file. */
    void writeChoices();

signals:
    /** \brief Contains the selected unicode character; emitted when Enter is pressed. */
    void charSelected(const QString&);

private slots:
    void slotTextChanged(QString text);
    void slotReturnPressed();
    void slotNextUnicode();
    void slotPrevUnicode();

};

#endif

Generated by  Doxygen 1.6.0   Back to index