diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 2bda8f7717adf28da4af0d34fb82f63d2868c31d (patch) | |
tree | 8d927b7b47a90c4adb646482a52613f58acd6f8c /kregexpeditor/characterswidget.h | |
download | tdeutils-2bda8f7717adf28da4af0d34fb82f63d2868c31d.tar.gz tdeutils-2bda8f7717adf28da4af0d34fb82f63d2868c31d.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeutils@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kregexpeditor/characterswidget.h')
-rw-r--r-- | kregexpeditor/characterswidget.h | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/kregexpeditor/characterswidget.h b/kregexpeditor/characterswidget.h new file mode 100644 index 0000000..9df89b3 --- /dev/null +++ b/kregexpeditor/characterswidget.h @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2002-2003 Jesper K. Pedersen <blackie@kde.org> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License version 2 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + **/ +#ifndef characterswidget +#define characterswidget + +#ifdef QT_ONLY +#include "compat.h" +#else +#include <kdialogbase.h> +#endif + +#include <kmultiformlistbox.h> +#include "regexpwidget.h" +#include <qvgroupbox.h> + +class KDialogBase; +class CharacterEdits; +class TextRangeRegExp; +class CharSelector; +class QCheckBox; + +/** + RegExp widget for charcter ranges. + @internal +*/ +class CharactersWidget :public RegExpWidget +{ +public: + CharactersWidget(RegExpEditorWindow* editorWindow, QWidget *parent, + const char *label = 0); + CharactersWidget( TextRangeRegExp* regexp, RegExpEditorWindow* editorWindow, + QWidget* parent, const char* name = 0 ); + ~CharactersWidget(); + virtual QSize sizeHint() const; + virtual RegExp* regExp() const; + virtual RegExpType type() const { return CHARSET; } + virtual RegExpWidget* findWidgetToEdit( QPoint globalPos ); + virtual int edit(); + +protected: + virtual void paintEvent(QPaintEvent *event); + QString text() const; + QString title() const; + +private: + TextRangeRegExp *_regexp; + static CharacterEdits *_configWindow; + + mutable QSize _textSize; + mutable QSize _contentSize; +}; + + +/** + @internal +*/ +class SingleEntry :public KMultiFormListBoxEntry +{ +public: + SingleEntry(QWidget* parent, const char* name = 0 ); + QString text() const; + void setText( QString text ); + bool isEmpty() const; + +private: + CharSelector* _selector; +}; + +/** + @internal +*/ +class RangeEntry :public KMultiFormListBoxEntry +{ +public: + RangeEntry(QWidget* parent, const char* name = 0 ); + QString fromText() const; + QString toText() const; + void setFrom( QString text ); + void setTo( QString text ); + bool isEmpty() const; +private: + CharSelector *_from, *_to; +}; + +/** + @internal +*/ +class SingleFactory :public KMultiFormListBoxFactory +{ +public: + KMultiFormListBoxEntry *create(QWidget *parent) { return new SingleEntry( parent ); } + QWidget *separator( QWidget* ) { return 0; } +}; + +/** + @internal +*/ +class RangeFactory :public KMultiFormListBoxFactory +{ +public: + KMultiFormListBoxEntry *create(QWidget *parent) { return new RangeEntry( parent ); } + QWidget *separator( QWidget* ) { return 0; } +}; + +/** + @internal +*/ +class CharacterEdits : public KDialogBase +{ + Q_OBJECT +public: + CharacterEdits(QWidget *parent = 0, const char *name = 0); + +public slots: + int exec( TextRangeRegExp* regexp ); + +protected slots: + void slotOK(); + +private: + QCheckBox *negate, *wordChar, *_nonWordChar, *digit, *_nonDigit, *space, *_nonSpace; + KMultiFormListBox *_single, *_range; + + void addCharacter( QString txt ); + void addRange( QString from, QString to ); + TextRangeRegExp* _regexp; +}; + +#endif // characterswidget |