25#include <KoDocument.h>
28#include "kis_undo_adapter.h"
30#include <koffice_export.h>
38class KoCommandHistory;
49class KRITACORE_EXPORT KisDoc :
public KoDocument,
private KisUndoAdapter {
51 typedef KoDocument super;
56 KisDoc(TQWidget *parentWidget = 0,
const char *widgetName = 0, TQObject* parent = 0,
const char* name = 0,
bool singleViewMode =
false);
61 virtual bool wantExportConfirmation()
const {
return false; };
62 virtual bool completeLoading(KoStore *store);
63 virtual bool completeSaving(KoStore*);
64 virtual DCOPObject* dcopObject();
65 virtual bool initDoc(InitDocFlags flags, TQWidget* parentWidget=0);
66 virtual bool loadOasis(
const TQDomDocument&, KoOasisStyles&,
const TQDomDocument&, KoStore* );
67 virtual bool saveOasis( KoStore*, KoXmlWriter* );
68 virtual bool loadChildren( KoStore* store);
69 virtual bool loadXML(TQIODevice *,
const TQDomDocument& doc);
70 virtual TQCString mimeType()
const;
71 virtual TQWidget* createCustomDocumentWidget(TQWidget *parent);
72 virtual KoDocument* hitTest(
const TQPoint &pos,
const TQWMatrix& matrix = TQWMatrix());
81 virtual void paintContent(TQPainter& painter,
const TQRect& rect,
bool ,
double ,
double );
83 virtual TQDomDocument saveXML();
92 virtual void initEmpty();
99 virtual KCommand * presentCommand();
100 virtual void addCommand(KCommand *cmd);
101 virtual void setUndo(
bool undo);
102 virtual bool undo()
const;
103 virtual void beginMacro(
const TQString& macroName);
104 virtual void endMacro();
110 TQ_INT32 undoLimit()
const;
111 void setUndoLimit(TQ_INT32 limit);
113 TQ_INT32 redoLimit()
const;
114 void setRedoLimit(TQ_INT32 limit);
120 bool newImage(
const TQString& name, TQ_INT32 width, TQ_INT32 height,
KisColorSpace * cs,
const KisColor &bgColor,
const TQString &imgDescription,
const double imgResolution);
126 KisImageSP newImage(
const TQString& name, TQ_INT32 width, TQ_INT32 height,
KisColorSpace * colorstrategy);
128 void renameImage(
const TQString& oldName,
const TQString& newName);
136 KisChildDoc * createChildDoc(
const TQRect& rect, KoDocument* childDoc );
141 void prepareForImport();
143 KisImageSP currentImage();
148 void setCurrentImage(KisImageSP image);
150 KisUndoAdapter * undoAdapter() {
return this; }
153 void slotImageUpdated();
154 void slotImageUpdated(
const TQRect& rect);
155 void slotDocumentRestored();
156 void slotCommandExecuted(KCommand *command);
160 void docUpdated(TQRect rect);
161 void loadingFinished();
167 void sigCommandExecuted();
171 virtual KoView* createViewInstance(TQWidget *parent,
const char *name);
175 virtual void openExistingFile(
const TQString& file);
176 virtual void openTemplate(
const TQString& file);
179 void slotUpdate(KisImageSP img, TQ_UINT32 x, TQ_UINT32 y, TQ_UINT32 w, TQ_UINT32 h);
180 void slotIOProgress(TQ_INT8 percentage);
184 TQDomElement saveImage(TQDomDocument& doc, KisImageSP img);
185 KisImageSP loadImage(
const TQDomElement& elem);
186 void loadLayers(
const TQDomElement& element, KisImageSP img, KisGroupLayerSP parent);
187 KisLayerSP loadLayer(
const TQDomElement& elem, KisImageSP img);
188 KisLayerSP loadPaintLayer(
const TQDomElement& elem, KisImageSP img,
189 TQString name, TQ_INT32 x, TQ_INT32 y, TQ_INT32 opacity,
bool visible,
bool locked,
190 KisCompositeOp compositeOp);
191 KisGroupLayerSP loadGroupLayer(
const TQDomElement& elem, KisImageSP img,
192 TQString name, TQ_INT32 x, TQ_INT32 y, TQ_INT32 opacity,
bool visible,
bool locked,
193 KisCompositeOp compositeOp);
194 KisAdjustmentLayerSP loadAdjustmentLayer(
const TQDomElement& elem, KisImageSP img,
195 TQString name, TQ_INT32 x, TQ_INT32 y, TQ_INT32 opacity,
bool visible,
bool locked,
196 KisCompositeOp compositeOp);
197 KisPartLayerSP loadPartLayer(
const TQDomElement& elem, KisImageSP img,
198 TQString name, TQ_INT32 x, TQ_INT32 y, TQ_INT32 opacity,
199 bool visible,
bool locked, KisCompositeOp compositeOp);
202 void setIOSteps(TQ_INT32 nsteps);
203 void IOCompletedStep();
209 KoCommandHistory *m_cmdHistory;
210 TQPtrList<KisCommandHistoryListener> m_undoListeners;
211 KisImageSP m_currentImage;
213 KisNameServer *m_nserver;
214 KMacroCommand *m_currentMacro;
215 TQ_INT32 m_macroNestDepth;
216 TQ_INT32 m_conversionDepth;
217 int m_ioProgressTotalSteps;
218 int m_ioProgressBase;
219 TQMap<KisLayerSP, TQString> m_layerFilenames;
The child document is responsible for saving and loading the embedded layers.
A colorspace is the definition of a certain color model in Chalk.
A KisColor describes a color in a certain colorspace.
Undo listeners want to be notified of undo and redo actions.