21#include <tqmessagebox.h>
24#include <KoXmlWriter.h>
25#include <KoGenStyles.h>
29#include "kivio_view.h"
30#include "kivio_canvas.h"
31#include "kivio_page.h"
32#include "KIvioMapIface.h"
37KivioMap::KivioMap( KivioDoc* doc,
const char* name )
41 m_lstPages.setAutoDelete(
true);
52void KivioMap::takePage( KivioPage* page )
54 int pos=m_lstPages.findRef(page);
55 m_lstPages.take( pos );
56 m_lstDeletedPages.append( page );
59void KivioMap::insertPage( KivioPage* page )
61 int pos=m_lstDeletedPages.findRef(page);
63 m_lstDeletedPages.take( pos);
64 m_lstPages.append(page);
67void KivioMap::addPage( KivioPage* page )
69 m_lstPages.append(page);
72void KivioMap::movePage(
const TQString& fromPageName,
const TQString& toPageName,
bool before )
74 KivioPage* pagefrom = findPage(fromPageName);
75 KivioPage* pageto = findPage(toPageName);
77 int from = m_lstPages.find(pagefrom);
78 int to = m_lstPages.find(pageto);
82 if ( to > (
int)m_lstPages.count() ) {
83 m_lstPages.append(pagefrom);
84 m_lstPages.take(from);
87 m_lstPages.insert(to,pagefrom);
88 m_lstPages.take(from);
90 m_lstPages.take(from);
91 m_lstPages.insert(to,pagefrom);
95TQDomElement KivioMap::save( TQDomDocument& doc )
99 TQDomElement mymap = doc.createElement(
"KivioMap");
103 TQPtrListIterator<KivioPage> it2(m_lstPages);
104 for( ; it2.current(); ++it2 )
106 next = it2.current()->generateStencilIds( next );
110 TQPtrListIterator<KivioPage> it(m_lstPages);
111 for( ; it.current(); ++it )
113 TQDomElement e = it.current()->save(doc);
116 mymap.appendChild(e);
122void KivioMap::saveOasis(KoStore* store, KoXmlWriter* docWriter, KoGenStyles* styles)
124 TQPtrListIterator<KivioPage> it(m_lstPages);
126 for( ; it.current(); ++it )
128 it.current()->saveOasis(store, docWriter, styles);
132bool KivioMap::loadXML(
const TQDomElement& mymap )
135 m_lstDeletedPages.clear();
139 TQDomNode n = mymap.firstChild();
140 while( !n.isNull() ) {
141 TQDomElement e = n.toElement();
142 if ( !e.isNull() && e.tagName() ==
"KivioPage" ) {
143 KivioPage *t = m_pDoc->createPage();
144 m_pDoc->addPage( t );
145 if ( !t->loadXML( e ) )
153void KivioMap::update()
155 TQPtrListIterator<KivioPage> it( m_lstPages );
156 for( ; it.current(); ++it )
157 it.current()->update();
160KivioPage* KivioMap::findPage(
const TQString& name )
164 for ( t = m_lstPages.first(); t; t = m_lstPages.next() ) {
165 if ( name == t->pageName() )
172KivioDoc* KivioMap::doc()
const
177KivioPage* KivioMap::firstPage()
179 return m_lstPages.first();
182KivioPage* KivioMap::lastPage()
184 return m_lstPages.last();
187KivioPage* KivioMap::nextPage()
189 return m_lstPages.next();
192int KivioMap::count()
const
194 return m_lstPages.count();
197DCOPObject* KivioMap::dcopObject()
200 m_dcop =
new KIvioMapIface(
this );
205TQStringList KivioMap::visiblePages()
const
209 TQPtrListIterator<KivioPage> it( m_lstPages );
210 for( ; it.current(); ++it )
212 KivioPage* page = it.current();
213 if( !page->isHidden() )
214 pages.append( page->pageName() );
220TQStringList KivioMap::hiddenPages()
const
224 TQPtrListIterator<KivioPage> it( m_lstPages );
225 for( ; it.current(); ++it )
227 KivioPage* page = it.current();
228 if( page->isHidden() )
229 pages.append( page->pageName() );
235void KivioMap::clear()
238 m_lstDeletedPages.clear();