[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kword
From:       Thomas Zander <zander () kde ! org>
Date:       2006-12-15 16:28:56
Message-ID: 1166200136.909831.22075.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 613902 by zander:

Get rid of the evil const_cast (I made them const for a reason!) and provide a proper
API with TODOs of things left to be done.


 M  +24 -0     part/KWDocument.cpp  
 M  +6 -0      part/KWDocument.h  
 M  +6 -5      plugins/scripting/Module.cpp  


--- trunk/koffice/kword/part/KWDocument.cpp #613901:613902
@@ -158,7 +158,31 @@
     return insertPage( m_pageManager.lastPageNumber() );
 }
 
+void KWDocument::removePage(int pageNumber) {
+    // TODO make this undo-able.
+    KWPage *page = m_pageManager.page(pageNumber);
+    if(page == 0) {
+        kWarning() << "remove page requested for a non exiting page!\n";
+        return;
+    }
+    emit pageRemoved(page);
+    m_pageManager.removePage(page);
+}
 
+void KWDocument::setStartPage(int pagenumber) {
+    if(pagenumber%2 != startPage()%2) {
+        // TODO remove all odd/even headers and recreate them
+        // TODO insert pages so pagespreads always start on an even pagenumber.
+    }
+    m_pageManager.setStartPage(pagenumber);
+}
+
+void KWDocument::setDefaultPageLayout(const KoPageLayout &layout) {
+    m_pageManager.setDefaultPage(layout);
+    // TODO loop over each page that doesn't have a page-specific page-layout and \
re-layout all the textframes there. +}
+
+
 void KWDocument::removeFrameSet( KWFrameSet *fs ) {
     m_frameSets.removeAt( m_frameSets.indexOf(fs) );
     setModified( true );
--- trunk/koffice/kword/part/KWDocument.h #613901:613902
@@ -112,6 +112,8 @@
      */
     KWPage* appendPage();
 
+    void removePage(int pageNumber);
+
     /**
      * Remove frameset from the document stopping it from being saved or displayed.
      * Note that the document is normally the one that deletes framesets when the
@@ -162,6 +164,10 @@
      */
     int lastPage() const;
 
+    void setStartPage(int pageNumber);
+
+    void setDefaultPageLayout(const KoPageLayout &layout);
+
     /// return the amount of framesets this document holds
     int frameSetCount() const { return m_frameSets.count(); }
     /// return a list of all the framesets this document holds
--- trunk/koffice/kword/plugins/scripting/Module.cpp #613901:613902
@@ -113,7 +113,7 @@
 void Module::removePage( int pageNumber )
 {
     //TODO remove also the wrapper? and what's about pages that are "Spread" (page \
                that represents 2 pagenumbers)?
-    const_cast<KWPageManager*>( doc()->pageManager() )->removePage(pageNumber);
+    doc()->removePage(pageNumber);
 }
 
 int Module::startPage()
@@ -124,7 +124,7 @@
 void Module::setStartPage(int pageNumber)
 {
      //TODO this is evil since it changes page(int pageNumber) above... we need a \
                more persistent way to deal with pages!
-     const_cast<KWPageManager*>( doc()->pageManager() )->setStartPage(pageNumber);
+     doc()->setStartPage(pageNumber);
 }
 
 int Module::frameSetCount()
@@ -134,7 +134,7 @@
 
 QObject* Module::frameSet(int frameSetNr)
 {
-    KWFrameSet* frameset = (frameSetNr>=0 && frameSetNr<doc()->frameSets().size()) ? \
doc()->frameSets().at(frameSetNr) : 0; +    KWFrameSet* frameset = (frameSetNr>=0 && \
frameSetNr<doc()->frameSetCount()) ? doc()->frameSets().at(frameSetNr) : 0;  return \
new FrameSet(this, frameset);  }
 
@@ -176,14 +176,15 @@
 
 QObject* Module::defaultPageLayout()
 {
-    const KoPageLayout *pagelayout = const_cast<KWPageManager*>( \
doc()->pageManager() )->defaultPage(); +    const KoPageLayout *pagelayout = \
doc()->pageManager()->defaultPage();  return pagelayout ? new PageLayout(this, \
*pagelayout) : 0;  }
 
 void Module::setDefaultPageLayout(QObject* pagelayout)
 {
     PageLayout* l = dynamic_cast<PageLayout*>( pagelayout );
-    if( l ) const_cast<KWPageManager*>( doc()->pageManager() )->setDefaultPage( \
l->pageLayout() ); +    if( l )
+        doc()->setDefaultPageLayout( l->pageLayout() );
 }
 
 #include "Module.moc"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic