20#include <tqtextstream.h>
22#include <tqtabwidget.h>
23#include <tqpaintdevicemetrics.h>
26#include "kivio_page.h"
28#include "kivio_view.h"
29#include "kivio_factory.h"
30#include "export_page_dialog.h"
31#include "kivio_common.h"
32#include "kivio_group_stencil.h"
33#include "kivio_icon_view.h"
34#include "kivio_layer.h"
35#include "kivio_painter.h"
36#include "kivio_screen_painter.h"
37#include "kivio_stencil.h"
38#include "kivio_stencil_spawner_set.h"
39#include "kivioglobal.h"
40#include "kivio_config.h"
41#include "polylineconnectorspawner.h"
42#include "kivio_canvas.h"
44#include "stencilbarbutton.h"
47#include <tdemessagebox.h>
52#include <tdeapplication.h>
54#include <tqdatetime.h>
60#include <tqfileinfo.h>
67#include <tqvaluelist.h>
70#include <kstandarddirs.h>
71#include <tdepopupmenu.h>
72#include <tdemenubar.h>
73#include <kiconloader.h>
76#include <KoTemplateChooseDia.h>
77#include <KoFilterManager.h>
78#include <KoStoreDevice.h>
79#include "KIvioDocIface.h"
81#include <KoZoomHandler.h>
82#include <KoApplication.h>
84#include <KoCommandHistory.h>
85#include <KoXmlWriter.h>
86#include <KoGenStyles.h>
87#include <KoOasisSettings.h>
99TQPtrList<KivioDoc>* KivioDoc::s_docs = 0;
100int KivioDoc::s_docId = 0;
102KivioDoc::KivioDoc( TQWidget *parentWidget,
const char* widgetName, TQObject* parent,
const char* name,
bool singleViewMode )
103: KoDocument( parentWidget, widgetName, parent, name, singleViewMode )
107 s_docs =
new TQPtrList<KivioDoc>;
109 s_docs->append(
this);
111 m_pLstSpawnerSets =
new TQPtrList<KivioStencilSpawnerSet>;
112 m_pLstSpawnerSets->setAutoDelete(
true);
116 setInstance( KivioFactory::global(),
false );
117 setTemplateType(
"kivio_template");
121 TQString tmp(
"Document%1" );
122 tmp = tmp.arg( s_docId++ );
123 setName( tmp.latin1() );
128 m_pMap =
new KivioMap(
this,
"Map" );
131 m_pInternalSet =
new KivioStencilSpawnerSet(
"Kivio_Internal");
132 m_pInternalSet->setId(
"Kivio - Internal - Do Not Touch");
133 TQStringList list = instance()->dirs()->findAllResources(
"data",instance()->instanceName()+
"/autoloadStencils/*",
true,
false);
134 TQStringList::ConstIterator pIt = list.begin();
135 TQStringList::ConstIterator pEnd = list.end();
137 for (; pIt != pEnd; ++pIt )
139 m_pInternalSet->loadFile(*pIt);
143 addInternalStencilSpawner(
new Kivio::PolyLineConnectorSpawner(internalSpawnerSet()));
148 m_commandHistory =
new KoCommandHistory( actionCollection(),
true ) ;
149 connect( m_commandHistory, TQ_SIGNAL( documentRestored() ),
this, TQ_SLOT( slotDocumentRestored() ) );
150 connect( m_commandHistory, TQ_SIGNAL( commandExecuted() ),
this, TQ_SLOT( slotCommandExecuted() ) );
157DCOPObject* KivioDoc::dcopObject()
160 dcop =
new KIvioDocIface(
this );
166TQPtrList<KivioDoc>& KivioDoc::documents()
169 s_docs =
new TQPtrList<KivioDoc>;
175bool KivioDoc::initDoc(InitDocFlags flags, TQWidget* parentWidget)
177 KivioPage *t = createPage();
178 m_pMap->addPage( t );
181 if(flags == KoDocument::InitDocEmpty) {
188 KoTemplateChooseDia::ReturnType ret;
189 KoTemplateChooseDia::DialogType dlgtype;
191 if(flags != KoDocument::InitDocFileNew) {
192 dlgtype = KoTemplateChooseDia::Everything;
195 dlgtype = KoTemplateChooseDia::OnlyTemplates;
198 ret = KoTemplateChooseDia::choose( KivioFactory::global(), f,
199 dlgtype,
"kivio_template", parentWidget );
201 if( ret == KoTemplateChooseDia::File ) {
203 bool ok = openURL(url);
206 }
else if ( ret == KoTemplateChooseDia::Template ) {
207 TQFileInfo fileInfo( f );
208 TQString fileName( fileInfo.dirPath(
true) +
"/" + fileInfo.baseName() +
".kft" );
210 bool ok = loadNativeFormat( fileName );
212 showLoadingErrorDialog();
216 }
else if ( ret == KoTemplateChooseDia::Empty ) {
225void KivioDoc::openExistingFile(
const TQString& file )
227 KivioPage* t = createPage();
230 KoDocument::openExistingFile(file);
233void KivioDoc::openTemplate(
const TQString& file )
235 KivioPage* t = createPage();
238 KoDocument::openTemplate(file);
241void KivioDoc::initEmpty()
243 KivioPage* t = createPage();
245 KoDocument::initEmpty();
248KoView* KivioDoc::createViewInstance( TQWidget* parent,
const char* name )
254 return new KivioView( parent, name,
this );
257TQDomDocument KivioDoc::saveXML()
259 TQDomDocument doc(
"kiviodoc" );
260 doc.appendChild( doc.createProcessingInstruction(
"xml",
"version=\"1.0\" encoding=\"UTF-8\"" ) );
261 TQDomElement kivio = doc.createElement(
"kiviosheet" );
262 kivio.setAttribute(
"editor",
"Kivio" );
263 kivio.setAttribute(
"mime", MIME_TYPE );
265 kivio.setAttribute(
"units", unitName() );
266 gridData.save(kivio,
"grid");
268 TQDomElement viewItemsElement = doc.createElement(
"ViewItems");
269 kivio.appendChild(viewItemsElement);
271 doc.appendChild(kivio);
284 KivioStencilSpawnerSet *pSet = m_pLstSpawnerSets->first();
287 if(checkStencilsForSpawnerSet(pSet)) {
288 kivio.appendChild(pSet->saveXML(doc));
291 pSet = m_pLstSpawnerSets->next();
295 TQDomElement e = m_pMap->save(doc);
296 kivio.appendChild(e);
302bool KivioDoc::saveOasis(KoStore* store, KoXmlWriter* manifestWriter)
304 KoStoreDevice storeDev(store);
308 TQString layoutName = styles.lookup(pageLayout,
"PL");
309 KoGenStyle masterPage(KoGenStyle::STYLE_MASTER);
310 masterPage.addAttribute(
"style:page-layout-name", layoutName);
311 styles.lookup(masterPage,
"Standard",
false);
313 if(!store->open(
"content.xml")) {
317 KoXmlWriter* docWriter = createOasisXmlWriter(&storeDev,
"office:document-content");
319 docWriter->startElement(
"office:body");
320 docWriter->startElement(
"office:drawing");
322 m_pMap->saveOasis(store, docWriter, &styles);
324 docWriter->endElement();
325 docWriter->endElement();
326 docWriter->endElement();
327 docWriter->endDocument();
330 if(!store->close()) {
334 manifestWriter->addManifestEntry(
"content.xml",
"text/xml");
336 if(!store->open(
"styles.xml")) {
340 KoXmlWriter* styleWriter = createOasisXmlWriter(&storeDev,
"office:document-styles");
342 styleWriter->startElement(
"office:automatic-styles");
344 TQValueList<KoGenStyles::NamedStyle> styleList = styles.styles(KoGenStyle::STYLE_PAGELAYOUT);
345 TQValueList<KoGenStyles::NamedStyle>::const_iterator it = styleList.begin();
347 for ( ; it != styleList.end(); ++it) {
348 (*it).style->writeStyle(styleWriter, styles,
"style:page-layout", (*it).name,
"style:page-layout-properties");
351 styleList = styles.styles(Kivio::STYLE_PAGE);
352 it = styleList.begin();
354 for ( ; it != styleList.end(); ++it) {
355 (*it).style->writeStyle(styleWriter, styles,
"style:style", (*it).name,
"style:properties");
358 styleWriter->endElement();
360 styleList = styles.styles(KoGenStyle::STYLE_MASTER);
361 it = styleList.begin();
362 styleWriter->startElement(
"office:master-styles");
364 for ( ; it != styleList.end(); ++it) {
365 (*it).style->writeStyle(styleWriter, styles,
"style:master-page", (*it).name,
"");
368 styleWriter->endElement();
370 styleWriter->endElement();
371 styleWriter->endDocument();
374 if(!store->close()) {
378 manifestWriter->addManifestEntry(
"styles.xml",
"text/xml");
380 if(!store->open(
"settings.xml")) {
385 KoXmlWriter* settingsWriter = createOasisXmlWriter(&storeDev,
"office:document-settings");
386 settingsWriter->startElement(
"office:settings");
387 settingsWriter->startElement(
"config:config-item-set");
388 settingsWriter->addAttribute(
"config:name",
"view-settings");
390 KoUnit::saveOasis( settingsWriter, unit() );
391 saveOasisSettings( *settingsWriter );
393 settingsWriter->endElement();
394 settingsWriter->endElement();
395 settingsWriter->endDocument();
397 delete settingsWriter;
399 if(!store->close()) {
403 manifestWriter->addManifestEntry(
"settings.xml",
"text/xml");
409void KivioDoc::saveOasisSettings( KoXmlWriter & )
414bool KivioDoc::loadOasis(
const TQDomDocument& doc, KoOasisStyles& oasisStyles,
const TQDomDocument& settings, KoStore* )
416 kdDebug(43000) <<
"Start loading OASIS document..." << endl;
419 TQDomElement contents = doc.documentElement();
420 TQDomElement body(KoDom::namedItemNS( contents, KoXmlNS::office,
"body"));
423 kdDebug(43000) <<
"No office:body found!" << endl;
424 setErrorMessage(i18n(
"Invalid OASIS document. No office:body tag found."));
429 body = KoDom::namedItemNS( body, KoXmlNS::office,
"drawing");
432 kdDebug(43000) <<
"No office:drawing found!" << endl;
433 setErrorMessage(i18n(
"Invalid OASIS document. No office:drawing tag found."));
438 TQDomNode node = body.firstChild();
443 while(!node.isNull()) {
444 localName = node.localName();
446 if(localName ==
"page" ) {
447 KivioPage* p = createPage();
450 if(!p->loadOasis(node.toElement(), oasisStyles)) {
456 node = node.nextSibling();
459 loadOasisSettings( settings );
461 emit loadingFinished();
466void KivioDoc::loadOasisSettings(
const TQDomDocument&settingsDoc )
468 if ( settingsDoc.isNull() )
470 KoOasisSettings settings( settingsDoc );
471 KoOasisSettings::Items viewSettings = settings.itemSet(
"view-settings" );
472 if ( !viewSettings.isNull() )
474 setUnit(KoUnit::unit(viewSettings.parseConfigItemString(
"unit")));
479bool KivioDoc::loadXML( TQIODevice *,
const TQDomDocument& doc )
483 if ( doc.doctype().name() !=
"kiviodoc" ) {
488 TQDomElement kivio = doc.documentElement();
489 if ( kivio.attribute(
"mime" ) !=
"application/x-kivio" &&
490 kivio.attribute(
"mime" ) !=
"application/vnd.kde.kivio" )
492 kdDebug(43000) <<
"KivioDoc::loadXML() - Invalid mime type" << endl;
497 TQDomNode node = kivio.firstChild();
498 while( !node.isNull() )
500 TQString name = node.nodeName();
501 if( name ==
"KivioMap" )
503 if( !m_pMap->loadXML( node.toElement() ) )
509 else if( name ==
"KivioStencilSpawnerSet" )
511 TQString
id = XmlReadString( node.toElement(),
"id",
"" );
512 bool hidden = (XmlReadString(node.toElement(),
"hidden",
"false") ==
"true");
516 kdDebug(43000) <<
"KivioDoc::loadXML() - Bad KivioStencilSpawnerSet found, it contains no id!" << endl;
520 loadStencilSpawnerSet(
id, hidden);
523 else if( name ==
"Options" )
529 kdDebug(43000) <<
"KivioDoc::loadXML() - Unknown node " << name << endl;
532 node = node.nextSibling();
535 TQString us = kivio.attribute(
"units", Kivio::Config::unit());
537 int u = us.toInt(&isInt);
540 setUnit(KoUnit::unit(us));
542 setUnit(Kivio::convToKoUnit(u));
545 if(kivio.hasAttribute(
"gridIsShow")) {
546 gridData.load(kivio,
"grid");
549 emit loadingFinished();
553bool KivioDoc::loadStencilSpawnerSet(
const TQString &
id,
bool hidden)
555 TDEStandardDirs *dirs = TDEGlobal::dirs();
556 TQStringList dirList = dirs->findDirs(
"data",
"kivio/stencils");
560 for( TQStringList::Iterator it = dirList.begin(); it != dirList.end(); ++it )
567 d.setFilter( TQDir::Dirs );
568 d.setSorting( TQDir::Name );
570 const TQFileInfoList *list = d.entryInfoList();
571 TQFileInfoListIterator listIT( *list );
575 while( (fi=listIT.current()) )
577 if( fi->fileName() !=
"." &&
578 fi->fileName() !=
".." )
580 TQDir innerD(fi->absFilePath() );
581 innerD.setFilter( TQDir::Dirs );
582 innerD.setSorting( TQDir::Name );
584 const TQFileInfoList *innerList = innerD.entryInfoList();
585 TQFileInfoListIterator innerIT( *innerList );
589 while( (innerFI = innerIT.current()) )
591 if( innerFI->fileName() !=
".." &&
592 innerFI->fileName() !=
"." )
598 foundId = KivioStencilSpawnerSet::readId(innerFI->absFilePath());
603 addSpawnerSetDuringLoad(innerFI->absFilePath(), hidden);
619bool KivioDoc::completeLoading( KoStore* )
623 setModified(
false );
627KivioPage* KivioDoc::createPage()
629 TQString s( i18n(
"Page%1") );
630 s = s.arg( m_iPageId++ );
632 KivioPage* t =
new KivioPage(m_pMap, s);
633 t->setPageName(s,
true);
638void KivioDoc::addPage( KivioPage* page )
640 m_pMap->addPage(page);
642 emit sig_addPage(page);
645void KivioDoc::insertPage( KivioPage * page )
647 TQPtrListIterator<KoView> it( views() );
648 for (; it.current(); ++it )
649 ((KivioView*)it.current())->insertPage( page );
652void KivioDoc::takePage( KivioPage * page )
654 TQPtrListIterator<KoView> it( views() );
655 for (; it.current(); ++it )
656 ((KivioView*)it.current())->removePage( page );
660void KivioDoc::paintContent( TQPainter& painter,
const TQRect& rect,
bool transparent,
double ,
double )
662 KivioPage* page = m_pMap->firstPage();
667 zoom.setZoomAndResolution(100, KoGlobal::dpiX(),
669 KoRect r = page->getRectForAllStencils();
671 float zw = (float) rect.width() / (float)zoom.zoomItX(r.width());
672 float zh = (float) rect.height() / (float)zoom.zoomItY(r.height());
673 float z = TQMIN(zw, zh);
676 zoom.setZoomAndResolution(tqRound(z * 100), KoGlobal::dpiX(),
678 KivioScreenPainter ksp(&painter);
679 ksp.painter()->translate( - zoom.zoomItX(r.x()), - zoom.zoomItY(r.y()) );
680 paintContent(ksp,rect,transparent,page, TQPoint(zoom.zoomItX(r.x()), zoom.zoomItY(r.y())), &zoom,
false,
false);
684void KivioDoc::paintContent( KivioPainter& painter,
const TQRect& rect,
bool transparent, KivioPage* page, TQPoint p0, KoZoomHandler* zoom,
bool drawConnectorTargets,
bool drawSelection )
689 page->paintContent(painter,rect,transparent,p0,zoom, drawConnectorTargets, drawSelection);
692void KivioDoc::printContent( KPrinter &prn )
694 KivioScreenPainter p;
695 TQValueList<int> pages = prn.pageList();
702 int dpiX = doZoom ? 300 : KoGlobal::dpiX();
703 int dpiY = doZoom ? 300 : KoGlobal::dpiY();
707 TQPaintDeviceMetrics metrics( &prn );
708 p.painter()->scale( (
double)metrics.logicalDpiX() / (
double)dpiX,
709 (
double)metrics.logicalDpiY() / (
double)dpiY );
711 TQValueList<int>::iterator it;
713 for(it = pages.begin(); it != pages.end(); ++it) {
714 pPage = m_pMap->pageList().at((*it)-1);
715 pPage->printContent(p, dpiX, dpiY);
717 if( it != (--pages.end()) ) {
726KivioStencilSpawnerSet* KivioDoc::findSpawnerSet(
const TQString& dirName,
const TQString&
id)
728 KivioStencilSpawnerSet *pSet = m_pLstSpawnerSets->first();
731 if( pSet->dir() == dirName || pSet->id() ==
id )
736 pSet = m_pLstSpawnerSets->next();
742void KivioDoc::addSpawnerSet(
const TQString &dirName )
744 TQString
id = KivioStencilSpawnerSet::readId( dirName );
745 KivioStencilSpawnerSet* set = findSpawnerSet(dirName,
id);
751 set->setHidden(
false);
752 emit sig_addSpawnerSet(set);
759 set =
new KivioStencilSpawnerSet();
761 if(!set->loadDir(dirName))
763 kdDebug(43000) <<
"KivioDoc::addSpawnerSet() - Error loading dir set" << endl;
769 m_stencilSetLoadQueue.append(set);
772 m_loadTimer =
new TQTimer(
this);
773 connect(m_loadTimer, TQ_SIGNAL(timeout()),
this, TQ_SLOT(loadStencil()));
776 if(!m_loadTimer->isActive()) {
778 m_loadTimer->start(0,
false);
782void KivioDoc::addSpawnerSetDuringLoad(
const TQString& dirName,
bool hidden)
784 KivioStencilSpawnerSet *set;
786 set =
new KivioStencilSpawnerSet();
787 set->setHidden(hidden);
789 if( set->loadDir(dirName)==
false )
791 kdDebug(43000) <<
"KivioDoc::addSpawnerSetDuringLoad() - Error loading dir set" << endl;
796 TQStringList::iterator it;
797 TQStringList files = set->files();
799 for(it = files.begin(); it != files.end(); ++it) {
800 TQString fileName = set->dir() +
"/" + (*it);
801 set->loadFile(fileName);
804 m_pLstSpawnerSets->append(set);
819 delete m_commandHistory;
821 delete m_pLstSpawnerSets;
822 m_pLstSpawnerSets = 0;
824 s_docs->removeRef(
this);
827void KivioDoc::saveConfig()
829 Kivio::Config::self()->writeConfig();
832void KivioDoc::initConfig()
834 setUnit( KoUnit::unit(Kivio::Config::unit()) );
835 m_font = Kivio::Config::font();
839bool KivioDoc::removeSpawnerSet( KivioStencilSpawnerSet *pSet )
841 return m_pLstSpawnerSets->removeRef( pSet );
848void KivioDoc::slotDeleteStencilSet( DragBarButton *pBtn, TQWidget *w, KivioStackBar *pBar )
850 KivioIconView* pIconView =
static_cast<KivioIconView*
>(w);
851 KivioStencilSpawnerSet* pSet = pIconView->spawnerSet();
854 if(!checkStencilsForSpawnerSet(pSet)) {
855 removeSpawnerSet(pSet);
857 pSet->setHidden(
true);
861 emit sig_deleteStencilSet(pBtn, w, pBar);
867bool KivioDoc::checkStencilsForSpawnerSet(KivioStencilSpawnerSet* spawnerSet)
869 KivioPage *pPage = m_pMap->firstPage();
871 KivioStencil *pStencil;
875 pLayer = pPage->layers()->first();
878 pStencil = pLayer->stencilList()->first();
882 if(pStencil->groupList() && pStencil->groupList()->count() > 0) {
883 if(checkGroupForSpawnerSet(pStencil, spawnerSet)) {
886 }
else if(pStencil->spawner()->set() == spawnerSet) {
890 pStencil = pLayer->stencilList()->next();
893 pLayer = pPage->layers()->next();
896 pPage = m_pMap->nextPage();
902bool KivioDoc::checkGroupForSpawnerSet(KivioStencil* pGroup, KivioStencilSpawnerSet* spawnerSet)
904 KivioStencil *pStencil = pGroup->groupList()->first();
907 if(pStencil->groupList() && pStencil->groupList()->count() > 0) {
908 if(checkGroupForSpawnerSet(pStencil, spawnerSet))
910 }
else if(pStencil->spawner()->set() == spawnerSet) {
914 pStencil = pGroup->groupList()->next();
920void KivioDoc::slotSelectionChanged()
922 emit sig_selectionChanged();
925KivioStencilSpawner* KivioDoc::findStencilSpawner(
const TQString& setId,
const TQString& stencilId )
927 KivioStencilSpawnerSet *pSpawnerSet = m_pLstSpawnerSets->first();
930 if( pSpawnerSet->id() == setId && pSpawnerSet->find(stencilId) )
932 return pSpawnerSet->find(stencilId);
935 pSpawnerSet = m_pLstSpawnerSets->next();
938 if( m_pInternalSet->id() == setId && m_pInternalSet->find(stencilId) )
940 return m_pInternalSet->find(stencilId);
946KivioStencilSpawner* KivioDoc::findInternalStencilSpawner(
const TQString& stencilId )
948 return m_pInternalSet->find(stencilId);
951void KivioDoc::addInternalStencilSpawner(KivioStencilSpawner* spawner)
953 m_pInternalSet->addSpawner(spawner);
956void KivioDoc::updateView(KivioPage* page)
958 emit sig_updateView(page);
961void KivioDoc::updateButton()
963 TQPtrListIterator<KoView> it( views() );
964 for (; it.current(); ++it )
965 ((KivioView*)it.current())->updateButton();
968void KivioDoc::resetLayerPanel()
970 TQPtrListIterator<KoView> it( views() );
971 for (; it.current(); ++it )
972 ((KivioView*)it.current())->resetLayerPanel();
975void KivioDoc::addCommand( KCommand * cmd )
977 kdDebug(43000) <<
"KivioDoc::addCommand " << cmd->name() << endl;
978 m_commandHistory->addCommand( cmd,
false );
982int KivioDoc::undoRedoLimit()
const
984 return m_commandHistory->undoLimit();
987void KivioDoc::setUndoRedoLimit(
int val)
989 m_commandHistory->setUndoLimit(val);
990 m_commandHistory->setRedoLimit(val);
993void KivioDoc::slotDocumentRestored()
995 setModified(
false );
998void KivioDoc::slotCommandExecuted()
1000 setModified(
true );
1003void KivioDoc::updateProtectPanelCheckBox()
1005 TQPtrListIterator<KoView> it( views() );
1006 for (; it.current(); ++it )
1007 ((KivioView*)it.current())->updateProtectPanelCheckBox();
1010void KivioDoc::loadStencil()
1012 KivioStencilSpawnerSet* set = m_stencilSetLoadQueue.first();
1013 TQString fileName = set->dir() +
"/" + set->files()[m_currentFile];
1014 set->loadFile(fileName);
1016 emit progress(tqRound(((
float)m_currentFile / (
float)set->files().count()) * 100.0));
1018 if(m_currentFile >= set->files().count()) {
1019 m_pLstSpawnerSets->append(set);
1023 emit sig_addSpawnerSet(set);
1028 m_stencilSetLoadQueue.pop_front();
1030 if(m_stencilSetLoadQueue.isEmpty()) {
1031 m_loadTimer->stop();
1034 emit initProgress();
1039void KivioDoc::updateGuideLines(KoView* sender)
1041 TQValueList<double> hGuideLines;
1042 TQValueList<double> vGuideLines;
1043 KivioView* view =
static_cast<KivioView*
>(sender);
1044 view->canvasWidget()->guideLines().getGuideLines(hGuideLines, vGuideLines);
1045 view->activePage()->setGuideLines(hGuideLines, vGuideLines);
1047 TQPtrListIterator<KoView> it(views());
1048 KivioView* itView = 0;
1050 for (; it.current(); ++it ) {
1051 itView =
static_cast<KivioView*
>(it.current());
1052 if(it.current() != sender && (itView->activePage() == view->activePage())) {
1053 itView->canvasWidget()->guideLines().setGuideLines(hGuideLines, vGuideLines);
1058void KivioDoc::updateGuideLines(KivioPage* page)
1060 TQValueList<double> hGuideLines = page->horizontalGuideLines();
1061 TQValueList<double> vGuideLines = page->verticalGuideLines();
1062 TQPtrListIterator<KoView> it(views());
1063 KivioView* itView = 0;
1065 for (; it.current(); ++it ) {
1066 itView =
static_cast<KivioView*
>(it.current());
1067 if(itView->activePage() == page) {
1068 itView->canvasWidget()->guideLines().setGuideLines(hGuideLines, vGuideLines);
1073#include "kivio_doc.moc"
static KoPageLayout defaultPageLayout()
Get the default page layout.