summaryrefslogtreecommitdiffstats
path: root/kate/plugins/autobookmarker/autobookmarker.h
diff options
context:
space:
mode:
Diffstat (limited to 'kate/plugins/autobookmarker/autobookmarker.h')
-rw-r--r--kate/plugins/autobookmarker/autobookmarker.h137
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_