From 2bda8f7717adf28da4af0d34fb82f63d2868c31d Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: 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 --- kregexpeditor/compoundwidget.h | 104 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 kregexpeditor/compoundwidget.h (limited to 'kregexpeditor/compoundwidget.h') diff --git a/kregexpeditor/compoundwidget.h b/kregexpeditor/compoundwidget.h new file mode 100644 index 0000000..f757c05 --- /dev/null +++ b/kregexpeditor/compoundwidget.h @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2002-2003 Jesper K. Pedersen + * + * 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 compoundwidget +#define compoundwidget +class QLineEdit; +class QMultiLineEdit; +class KDialogBase; +class QCheckBox; + +#include "singlecontainerwidget.h" +#include "compoundregexp.h" + +/** + Widget containing configuration details for @ref CompoundWidget + @internal +*/ +class CompoundDetailWindow :public QWidget +{ +public: + CompoundDetailWindow(QWidget* parent, const char* name = 0); + QString title() const; + QString description() const; + bool allowReplace() const; + void setTitle( QString ); + void setDescription( QString ); + void setAllowReplace( bool ); + +private: + QLineEdit* _title; + QMultiLineEdit* _description; + QCheckBox* _allowReplace; +}; + + +/** + Comopund RegExp widget. + + This widget has two purposes: + @li To make it possible for a user to collapse a huge regular expression + to take up less screen space. + @li To act as back references for later use. + + @internal +*/ +class CompoundWidget :public SingleContainerWidget +{ +Q_OBJECT + +public: + CompoundWidget( RegExpEditorWindow* editorWindow, QWidget* parent, + const char* name = 0); + CompoundWidget( CompoundRegExp* regexp, RegExpEditorWindow* editorWindow, + QWidget* parent, const char* name = 0); + + virtual bool updateSelection( bool parentSelected ); + virtual QSize sizeHint() const; + virtual RegExp* regExp() const; + virtual RegExpType type() const { return COMPOUND; } + virtual int edit(); + +protected: + virtual void paintEvent( QPaintEvent *e ); + virtual void mousePressEvent( QMouseEvent* e ); + virtual void mouseReleaseEvent( QMouseEvent* e); + void init(); + QPixmap getIcon( const QString& name ); + +protected slots: + void slotConfigCanceled(); + void slotConfigWindowClosed(); + +private: + bool _hidden; + QPixmap _up, _down; + mutable QSize _pixmapSize; + mutable QPoint _pixmapPos; + + KDialogBase* _configWindow; + CompoundDetailWindow* _content; + + mutable QSize _textSize; + mutable QSize _childSize; + QByteArray _backup; + + int _backRefId; +}; + + +#endif // compoundwidget -- cgit v1.2.1