[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