koDocument.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __ko_document_h__
00023 #define __ko_document_h__
00024
00025 namespace std { }
00026 using namespace std;
00027 #include <qwmatrix.h>
00028
00029 #include <kparts/part.h>
00030 #include <kurl.h>
00031 #include <kservice.h>
00032 #include <koGlobal.h>
00033
00034 class QDomElement;
00035 class QDomDocument;
00036
00037 class KoStore;
00038 class KoMainWindow;
00039
00040 class KoChild;
00041 class KoDocumentChild;
00042 class KoView;
00043 class KoDocumentInfo;
00044 class DCOPObject;
00045
00046
00054 class KoDocument : public KParts::ReadWritePart
00055 {
00056 Q_OBJECT
00057 Q_PROPERTY( QCString dcopObjectId READ dcopObjectId)
00058 Q_PROPERTY( bool backupFile READ backupFile WRITE setBackupFile )
00059
00060 public:
00061
00078 KoDocument( QWidget* parentWidget,
00079 const char* widgetName,
00080 QObject* parent,
00081 const char* name,
00082 bool singleViewMode = false );
00083
00090 virtual ~KoDocument();
00091
00096 bool isSingleViewMode() const;
00097
00101 bool isEmbedded() const;
00102
00118 virtual KAction *action( const QDomElement &element ) const;
00119
00124 virtual QDomDocument domDocument() const;
00125
00129 virtual void setManager( KParts::PartManager *manager );
00130
00135 virtual bool openURL( const KURL & url );
00136
00147 bool import( const KURL &url );
00148
00159 bool exp0rt( const KURL &url );
00160
00167 virtual void setReadWrite( bool readwrite = true );
00168
00179 static QCString readNativeFormatMimeType( KInstance *instance = 0L );
00180
00181 static KService::Ptr readNativeService( KInstance *instance = 0L );
00182
00189 virtual QCString nativeFormatMimeType() const;
00190
00191 KService::Ptr nativeService();
00192
00193 enum { SaveAsKOffice1dot1 = 1, SaveAsDirectoryStore = 2 };
00194
00198 QCString mimeType() const;
00199
00205 void setMimeType( const QCString & mimeType );
00206
00213 void setOutputMimeType( const QCString & mimeType, int specialOutputFlag = 0 );
00214 QCString outputMimeType() const;
00215 int specialOutputFlag() const;
00216
00230 bool confirmNonNativeSave( const bool exporting ) const;
00231 void setConfirmNonNativeSave( const bool exporting, const bool on );
00232
00239 void setErrorMessage( const QString& errMsg );
00240
00244 KoView *createView( QWidget *parent = 0, const char *name = 0 );
00245
00252 virtual void addView( KoView *view );
00253
00257 virtual void removeView( KoView *view );
00258
00262 const QPtrList<KoView> & views() const;
00263
00267 int viewCount() const;
00268
00272 virtual KParts::Part *hitTest( QWidget *widget, const QPoint &globalPos );
00273
00290 virtual KoDocument *hitTest( const QPoint &pos, const QWMatrix &matrix = QWMatrix() );
00291
00302 virtual void paintEverything( QPainter &painter, const QRect &rect, bool transparent = false,
00303 KoView *view = 0L, double zoomX = 1.0, double zoomY = 1.0 );
00304
00309 virtual QPixmap generatePreview( const QSize& size );
00310
00322 virtual void paintChildren( QPainter &painter, const QRect &rect, KoView *view, double zoomX = 1.0, double zoomY = 1.0 );
00323
00335 virtual void paintChild( KoDocumentChild *child, QPainter &painter, KoView *view,
00336 double zoomX = 1.0, double zoomY = 1.0 );
00337
00351 virtual void paintContent( QPainter &painter, const QRect &rect, bool transparent = false,
00352 double zoomX = 1.0, double zoomY = 1.0 ) = 0;
00353
00357 bool checkAutoSaveFile();
00358
00363 virtual bool initDoc() = 0;
00364
00365
00366 enum InitDocFlags { InitDocAppStarting, InitDocFileNew, InitDocFileClose, InitDocEmbedded };
00373 InitDocFlags initDocFlags() const;
00377 void setInitDocFlags( InitDocFlags flags );
00378
00383 virtual void setModified( bool _mod );
00384
00390 virtual void setTitleModified();
00391
00395 virtual bool isEmpty() const { return m_bEmpty; }
00396
00403 virtual void setEmpty() { m_bEmpty = true; }
00404
00410 virtual bool loadFromStore( KoStore* store, const QString& url );
00411
00416 virtual bool saveToStore( KoStore* store, const QString& path );
00417
00426 virtual bool loadXML( QIODevice *, const QDomDocument & doc ) = 0;
00427
00432 virtual QDomDocument saveXML();
00433
00440 QDomDocument createDomDocument( const QString& tagName, const QString& version ) const;
00441
00450 static QDomDocument createDomDocument( const QString& appName, const QString& tagName, const QString& version );
00451
00457 virtual bool saveToStream( QIODevice * dev );
00458
00465 virtual bool loadNativeFormat( const QString & file );
00466
00472 virtual bool saveNativeFormat( const QString & file );
00473
00478 void setAutoSave( int delay );
00479
00483 bool isAutosaving();
00484
00490 void setCheckAutoSaveFile( bool b );
00491
00497 void setAutoErrorHandlingEnabled( bool b );
00498
00503 bool isAutoErrorHandlingEnabled();
00504
00509 static int defaultAutoSave() { return s_defaultAutoSave; }
00510
00515 const QPtrList<KoDocumentChild>& children() const;
00516
00524 KoDocumentChild *child( KoDocument *doc );
00525
00530 KoDocumentInfo *documentInfo() const;
00531
00532 void setViewBuildDocument( KoView *view, const QDomDocument &doc );
00533 QDomDocument viewBuildDocument( KoView *view );
00534
00542 virtual void addShell( KoMainWindow *shell );
00543
00548 virtual void removeShell( KoMainWindow *shell );
00549
00553 const QPtrList<KoMainWindow>& shells() const;
00554
00558 int shellCount() const;
00559
00563 static QPtrList<KoDocument> *documentList() { return s_documentList; }
00564
00570 virtual DCOPObject * dcopObject();
00571
00575 QCString dcopObjectId() const;
00576
00580 void emitProgress( int value ) { emit sigProgress( value ); }
00581
00582 bool isInOperation();
00583 virtual void emitBeginOperation();
00584 virtual void emitEndOperation();
00585
00590 virtual bool isStoredExtern();
00591
00597 KoPageLayout pageLayout() const { return m_pageLayout; }
00598
00602 void removeAutoSaveFiles();
00603
00604 void setBackupFile( bool _b );
00605
00606 bool backupFile()const;
00607
00611 bool isModified();
00612
00613 int queryCloseExternalChildren();
00614 int queryCloseDia();
00615
00627 void setDoNotSaveExtDoc( bool on = true );
00628
00632 void setBackupPath( const QString & _path );
00633
00637 QString backupPath()const;
00638
00644 void setCurrent( bool on = true );
00645
00649 void forceCurrent( bool on );
00650 bool isCurrent() const;
00651
00652 void setTitleModified( const QString caption, bool mod );
00653
00660 void resetURL() { m_url = KURL(); m_file = QString::null; }
00661
00665 void setStoreInternal( bool i );
00666
00670 bool storeInternal() const;
00671
00672 bool hasExternURL();
00673
00678 void setURL( const KURL& url ) { m_url = url; }
00679
00688 QString &file() { return m_file; }
00689
00693 void setFile( const QString &file ) { m_file = file; }
00694
00695 signals:
00704 void childChanged( KoDocumentChild *child );
00705
00711 void sigProgress( int value );
00712
00717 void sigStatusBarMessage( const QString& text );
00718
00723 void sigClearStatusBarMessage();
00724
00725 void sigBeginOperation();
00726 void sigEndOperation();
00727
00728 protected:
00729
00730 QString autoSaveFile( const QString & path ) const;
00731
00732 virtual KoView *createViewInstance( QWidget *parent, const char *name ) = 0;
00733
00742 virtual bool openFile();
00743
00750 virtual bool saveFile();
00751
00757 bool isImporting() const;
00758
00766 bool isExporting() const;
00767
00785 virtual bool loadChildren( KoStore* );
00786
00792 virtual bool saveChildren( KoStore* store );
00793
00799 virtual bool completeLoading( KoStore* store );
00800
00811 virtual bool completeSaving( KoStore* store );
00812
00824 virtual void insertChild( KoDocumentChild *child );
00825
00827 virtual void setModified() { KParts::ReadWritePart::setModified(); }
00828
00830 virtual void insertChild(QObject *o) { QObject::insertChild(o); }
00831
00832 KoPageLayout m_pageLayout;
00833
00839 bool saveExternalChildren();
00840
00841 private slots:
00842 void slotChildChanged( KoChild *c );
00843 void slotChildDestroyed();
00844 void slotAutoSave();
00845 void slotStarted( KIO::Job* );
00846
00847 private:
00848 void savePreview( KoStore* store );
00849
00850 class Private;
00851 Private *d;
00852 KService::Ptr m_nativeService;
00853 bool m_bEmpty;
00854 static QPtrList<KoDocument> *s_documentList;
00855 static const int s_defaultAutoSave;
00856 };
00857
00858 #endif
This file is part of the documentation for lib Library Version 1.3.5.