diff options
Diffstat (limited to 'kate/plugins/autobookmarker/autobookmarker.h')
-rw-r--r-- | kate/plugins/autobookmarker/autobookmarker.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/kate/plugins/autobookmarker/autobookmarker.h b/kate/plugins/autobookmarker/autobookmarker.h new file mode 100644 index 000000000..188c8a360 --- /dev/null +++ b/kate/plugins/autobookmarker/autobookmarker.h @@ -0,0 +1,137 @@ +/* + This library is free software you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License. + + 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. + + --- + file: autobookmarker.h + + KTextEditor plugin to add bookmarks to documents. + Copyright Anders Lund <anders.lund@lund.tdcadsl.dk>, 2003 +*/ + +#ifndef _AUTOBOOKMARKER_H_ +#define _AUTOBOOKMARKER_H_ + +#include <ktexteditor/plugin.h> +#include <ktexteditor/configinterfaceextension.h> + +#include <kdialogbase.h> + +#include <qptrlist.h> +#include <qvbox.h> + +class AutoBookmarkEnt +{ + public: + enum REFlags { CaseSensitive=1, MinimalMatching=2 }; + AutoBookmarkEnt(const QString &p=QString::null, + const QStringList &f=QStringList(), + const QStringList &m=QStringList(), + int flags=1 ); + ~AutoBookmarkEnt(){}; + QString pattern; + QStringList filemask; + QStringList mimemask; + int flags; +}; + +class AutoBookmarker + : public KTextEditor::Plugin, public KTextEditor::PluginViewInterface, + public KTextEditor::ConfigInterfaceExtension +{ + Q_OBJECT + public: + AutoBookmarker( QObject *parent = 0, + const char* name = 0, + const QStringList &args = QStringList() ); + virtual ~AutoBookmarker() {}; + + void addView (KTextEditor::View *view); + void removeView (KTextEditor::View *view); + + // ConfigInterfaceExtention + uint configPages() const { return 1; }; + KTextEditor::ConfigPage * configPage( uint number, QWidget *parent, const char *name ); + QString configPageName( uint ) const; + QString configPageFullName( uint ) const; + QPixmap configPagePixmap( uint, int ) const; + bool abDone; + + private slots: + void slotCompleted(); + void applyEntity( AutoBookmarkEnt *e ); +}; + +typedef QPtrList<AutoBookmarkEnt> ABEntityList; +typedef QPtrListIterator<AutoBookmarkEnt> ABEntityListIterator; + +/* singleton to keep the data */ +class ABGlobal +{ + public: + ABGlobal(); + ~ABGlobal(); + + static ABGlobal* self(); + + ABEntityList* entities() { return m_ents; }; + void readConfig(); + void writeConfig(); + + private: + ABEntityList *m_ents; + static ABGlobal *s_self; +}; + +class AutoBookmarkerConfigPage : public KTextEditor::ConfigPage +{ + Q_OBJECT + public: + AutoBookmarkerConfigPage( QWidget *parent, const char *name ); + virtual ~AutoBookmarkerConfigPage() {}; + + virtual void apply(); + virtual void reset(); + virtual void defaults(); + + private slots: + void slotNew(); + void slotDel(); + void slotEdit(); + + private: + class KListView *lvPatterns; + class QPushButton *btnNew, *btnDel, *btnEdit; + ABEntityList *m_ents; +}; + +class AutoBookmarkerEntEditor : public KDialogBase +{ + Q_OBJECT + public: + AutoBookmarkerEntEditor( QWidget *parent, AutoBookmarkEnt *e ); + ~AutoBookmarkerEntEditor(){}; + + void apply(); + + private slots: + void showMTDlg(); + void slotPatternChanged( const QString& ); + private: + class QLineEdit *lePattern, *leMimeTypes, *leFileMask; + class QCheckBox *cbCS, *cbMM; + AutoBookmarkEnt *e; +}; + +#endif //_AUTOBOOKMARKER_H_ |