00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef __KATE_DOCMANAGER_H__
00021
#define __KATE_DOCMANAGER_H__
00022
00023
#include "katemain.h"
00024
#include "../interfaces/documentmanager.h"
00025
00026
#include <kate/document.h>
00027
00028
#include <qguardedptr.h>
00029
#include <qptrlist.h>
00030
#include <qobject.h>
00031
#include <qptrdict.h>
00032
#include <qintdict.h>
00033
00034
namespace KParts {
class Factory; }
00035
00036
class KConfig;
00037
class DCOPObject;
00038
00039
class KateDocumentInfo
00040 {
00041
public:
00042 KateDocumentInfo ()
00043 : modifiedOnDisc (false),
00044 modifiedOnDiscReason (0)
00045 {
00046 }
00047
00048
bool modifiedOnDisc;
00049
unsigned char modifiedOnDiscReason;
00050 };
00051
00052
class KateDocManager :
public QObject
00053 {
00054 Q_OBJECT
00055
00056
public:
00057 KateDocManager (QObject *parent);
00058 ~KateDocManager ();
00059
00060
Kate::DocumentManager *
documentManager () {
return m_documentManager; };
00061
00062 Kate::Document *createDoc ();
00063
void deleteDoc (Kate::Document *doc);
00064
00065 Kate::Document *document (uint n);
00066
00067 Kate::Document *activeDocument ();
00068
void setActiveDocument (Kate::Document *doc);
00069
00070 Kate::Document *firstDocument ();
00071 Kate::Document *nextDocument ();
00072
00073
00074 Kate::Document *documentWithID (uint
id);
00075
00076
const KateDocumentInfo *documentInfo (Kate::Document *doc);
00077
00078
int findDocument (Kate::Document *doc);
00080
int findDocument (KURL url);
00081
00082 Kate::Document *findDocumentByUrl( KURL url );
00083
00084
bool isOpen(KURL url);
00085
00086 uint documents ();
00087
00088 QPtrList<Kate::Document> &documentList () {
return m_docList; };
00089
00090 Kate::Document *openURL(
const KURL&,
const QString &encoding=QString::null,uint *
id =0);
00091
00092
bool closeDocument(
class Kate::Document *);
00093
bool closeDocument(uint);
00094
bool closeDocumentWithID(uint);
00095
bool closeAllDocuments();
00096
00097
bool queryCloseDocuments(KateMainWindow *w);
00098
00099
void saveDocumentList (
class KConfig *config);
00100
void restoreDocumentList (
class KConfig *config);
00101
00102 DCOPObject *dcopObject () {
return m_dcop; };
00103
00104 signals:
00105
void documentCreated (Kate::Document *doc);
00106
void documentDeleted (uint documentNumber);
00107
void documentChanged ();
00108
void initialDocumentReplaced ();
00109
00110
private slots:
00111
void slotModifiedOnDisc (Kate::Document *doc,
bool b,
unsigned char reason);
00112
00113
private:
00114
Kate::DocumentManager *m_documentManager;
00115 QPtrList<Kate::Document> m_docList;
00116 QIntDict<Kate::Document> m_docDict;
00117 QPtrDict<KateDocumentInfo> m_docInfos;
00118 QGuardedPtr<Kate::Document> m_currentDoc;
00119
00120 DCOPObject *m_dcop;
00121
00122 KParts::Factory *m_factory;
00123 };
00124
00125
#endif