19#ifndef __kivio_doc_h__
20#define __kivio_doc_h__
22#include "kivio_grid_data.h"
27#include <KoDocument.h>
28#include <KoMainWindow.h>
31#include "kivio_config.h"
32#include <koffice_export.h>
38class ExportPageDialog;
39class KivioGroupStencil;
40class KivioStencilSpawner;
41class KivioStencilSpawnerSet;
53class KoCommandHistory;
61#define MIME_TYPE "application/x-kivio"
65class KIVIO_EXPORT KivioDoc :
public KoDocument
69 friend class KivioPage;
71 KivioDoc( TQWidget *parentWidget = 0,
const char* widgetName = 0, TQObject* parent = 0,
const char* name = 0,
bool singleViewMode =
false );
74 virtual DCOPObject* dcopObject();
76 virtual TQDomDocument saveXML();
77 virtual bool saveOasis(KoStore* store, KoXmlWriter* manifestWriter);
79 virtual bool loadXML( TQIODevice *,
const TQDomDocument& doc );
80 virtual bool loadOasis(
const TQDomDocument& doc, KoOasisStyles& oasisStyles,
const TQDomDocument& settings, KoStore* );
82 virtual bool initDoc(InitDocFlags flags, TQWidget* parentWidget=0);
84 virtual TQCString mimeType()
const {
return MIME_TYPE; }
89 KivioPage* createPage();
98 void addPage( KivioPage* page );
104 void addSpawnerSet(
const TQString& );
105 void addSpawnerSetDuringLoad(
const TQString& dirName,
bool hidden);
106 bool removeSpawnerSet( KivioStencilSpawnerSet * );
108 TQPtrList<KivioStencilSpawnerSet> *spawnerSets()
const {
return m_pLstSpawnerSets; }
110 KivioStencilSpawner *findStencilSpawner(
const TQString& setId,
const TQString& stencilId );
111 KivioStencilSpawner *findInternalStencilSpawner(
const TQString& title );
113 void addInternalStencilSpawner(KivioStencilSpawner* spawner);
114 KivioStencilSpawnerSet* internalSpawnerSet() {
return m_pInternalSet; }
116 KivioMap* map()
const {
return m_pMap; }
121 bool isLoading()
const {
return m_bLoading; }
123 virtual void paintContent( TQPainter& painter,
const TQRect& rect,
bool transparent =
false,
double zoomX = 1.0,
double zoomY = 1.0 );
124 void paintContent(KivioPainter& painter,
const TQRect& rect,
bool transparent, KivioPage* page,
125 TQPoint, KoZoomHandler*,
bool,
bool);
127 void printContent( KPrinter& prn );
129 static TQPtrList<KivioDoc>& documents();
136 void addCommand( KCommand * cmd );
138 int undoRedoLimit()
const;
139 void setUndoRedoLimit(
int val);
140 KoCommandHistory * commandHistory()
const {
return m_commandHistory; }
142 void insertPage( KivioPage * page );
143 void takePage( KivioPage * page );
144 void resetLayerPanel();
145 void updateProtectPanelCheckBox();
147 TQFont defaultFont()
const {
return m_font; }
150 void updateView(KivioPage*);
152 void slotDeleteStencilSet( DragBarButton *, TQWidget *, KivioStackBar * );
153 void slotSelectionChanged();
155 void setDefaultFont(
const TQFont& f) { m_font = f; }
157 void updateGuideLines(KoView* sender);
158 void updateGuideLines(KivioPage* page);
160 virtual void initEmpty();
163 void slotDocumentRestored();
164 void slotCommandExecuted();
167 virtual void openExistingFile(
const TQString& file );
168 virtual void openTemplate(
const TQString& file );
171 void sig_selectionChanged();
172 void sig_addPage(KivioPage*);
173 void sig_addSpawnerSet( KivioStencilSpawnerSet * );
174 void sig_updateView(KivioPage*);
175 void sig_pageNameChanged(KivioPage*,
const TQString&);
176 void sig_deleteStencilSet( DragBarButton*, TQWidget *, KivioStackBar * );
177 void sig_updateGrid();
183 void loadingFinished();
186 bool checkStencilsForSpawnerSet(KivioStencilSpawnerSet *);
187 bool checkGroupForSpawnerSet(KivioStencil *, KivioStencilSpawnerSet *);
188 KivioStencilSpawnerSet* findSpawnerSet(
const TQString& dirName,
const TQString& name);
190 void saveOasisSettings( KoXmlWriter & );
191 void loadOasisSettings(
const TQDomDocument&settingsDoc );
193 KoView* createViewInstance( TQWidget* parent,
const char* name );
198 TQPtrList <KivioStencilSpawnerSet> *m_pLstSpawnerSets;
204 bool loadStencilSpawnerSet(
const TQString &
id,
bool hidden);
209 virtual bool completeLoading( KoStore* );
229 TQString m_strFileURL;
239 static TQPtrList<KivioDoc>* s_docs;
242 KivioStencilSpawnerSet* m_pInternalSet;
244 KivioGridData gridData;
247 KoCommandHistory * m_commandHistory;
251 TQTimer* m_loadTimer;
252 unsigned int m_currentFile;
253 KivioStencilSpawnerSet* m_currentSet;
254 TQValueList<KivioStencilSpawnerSet*> m_stencilSetLoadQueue;
static KivioGridData grid()
Returns the grid settings.