23#include <tdeglobalsettings.h>
25#include <tqscrollbar.h>
26#include <tqpopupmenu.h>
28#include <tqfileinfo.h>
29#include <tqtextstream.h>
31#include <tqtoolbutton.h>
34#include <tqclipboard.h>
35#include <tqradiobutton.h>
36#include <tqdragobject.h>
40#include "KPrBackDia.h"
41#include "autoformEdit/AFChoose.h"
42#include "KPrPropertyEditor.h"
43#include "KPrPgConfDia.h"
44#include "KPrEffectDia.h"
45#include "KPrRotationDialogImpl.h"
46#include "KPrShadowDialogImpl.h"
47#include "KPrImageEffectDia.h"
48#include "KPrBackground.h"
49#include "KPrPenStyleWidget.h"
50#include "KPrObjectProperties.h"
52#include <KoAutoFormat.h>
54#include "KPrSlideTransitionDia.h"
56#include "KPrPresDurationDia.h"
57#include "KPrPartObject.h"
58#include "KPrSideBar.h"
59#include "KPrNoteBar.h"
60#include "insertpagedia.h"
61#include "KPrCustomSlideShowDia.h"
63#include <KoPictureFilePreview.h>
64#include <KoCreateStyleDia.h>
66#include <dcopclient.h>
67#include <tdefiledialog.h>
68#include <tdemessagebox.h>
69#include <kstdaction.h>
70#include <tdeapplication.h>
71#include <tdeio/netaccess.h>
74#include "KPrDocument.h"
75#include "KPrWebPresentation.h"
76#include "KPrMSPresentationSetup.h"
77#include "KPrTextObject.h"
80#include <kcolordialog.h>
82#include <tdefontdialog.h>
85#include <tdeparts/event.h>
87#include <tdetempfile.h>
88#include <kcolorbutton.h>
91#include <KoMainWindow.h>
92#include <KoPartSelectDia.h>
93#include <KoQueryTrader.h>
94#include <KoPageLayoutDia.h>
96#include <KoTemplateCreateDia.h>
97#include <kcoloractions.h>
98#include <tkcoloractions.h>
100#include <tqspinbox.h>
101#include <tqcombobox.h>
102#include <KoPartSelectAction.h>
103#include <KoTextZoomHandler.h>
104#include <Kolinestyleaction.h>
105#include <Kolinewidthaction.h>
110#include <kstandarddirs.h>
112#include "KPrViewIface.h"
113#include "KPrConfig.h"
115#include <KoTextParag.h>
116#include <KoTextObject.h>
117#include "KPrCommand.h"
118#include <KoFontDia.h>
119#include <KoCharSelectDia.h>
120#include <KoInsertLink.h>
121#include <KoAutoFormatDia.h>
122#include <KoParagCounter.h>
123#include <KoParagDia.h>
124#include <KoVariable.h>
125#include <KoCustomVariablesDia.h>
126#include <KoGuideLineDia.h>
127#include <KoCompletionDia.h>
130#include <kstatusbar.h>
131#include "KPrTextDocument.h"
133#include <KoChangeCaseDia.h>
136#include <KoSearchDia.h>
137#include "KPrFindReplace.h"
138#include "KPrVariableCollection.h"
139#include "KPrCanvas.h"
140#include <tqpaintdevicemetrics.h>
141#include <KoStyleCollection.h>
142#include "KPrStyleManager.h"
143#include "KPrPixmapObject.h"
144#include <KoCommentDia.h>
146#include "KPrDuplicateObjDia.h"
147#include <tdestdaccel.h>
148#include <KoDocumentInfo.h>
149#include <tdeaccelgen.h>
150#include "KPrImportStyleDia.h"
154#include <KoStoreDrag.h>
156#include <tdespell2/broker.h>
157#include <tdespell2/defaultdictionary.h>
158#include <tdespell2/dialog.h>
160#include "KPrPrinterDlg.h"
161using namespace KSpell2;
163#define COPYOASISFORMAT 0
165static const char *
const pageup_xpm[] = {
185static const char *
const pagedown_xpm[] = {
207#include <X11/Xutil.h>
209#include <X11/extensions/dpms.h>
213#ifndef HAVE_DPMSCAPABLE_PROTO
214Bool DPMSCapable( Display * );
218#if defined(XIMStringConversionRetrival) || defined (__sun) || defined(__hpux)
221 Bool DPMSQueryExtension(Display *,
int *,
int *);
222 Status DPMSEnable(Display *);
223 Status DPMSDisable(Display *);
224 Bool DPMSGetTimeouts(Display *, CARD16 *, CARD16 *, CARD16 *);
225#if defined(XIMStringConversionRetrival) || defined (__sun) || defined(__hpux)
230static void enableDPMS(
bool enable)
233 Display *display = tqt_xdisplay();
236 bool hasDPMS = DPMSQueryExtension(display, &dummy, &dummy);
237 if (hasDPMS && DPMSCapable(display)) {
239 kdDebug() <<
"Enabling DPMS" << endl;
242 kdDebug() <<
"Disabling DPMS" << endl;
243 DPMSDisable(display);
246 tqWarning(
"Server has no DPMS extension");
254static bool isDPMSEnabled()
263 Display *display = tqt_xdisplay();
264 if (DPMSQueryExtension(display, &event_base, &error_base))
265 if (DPMSCapable(display))
266 result = (DPMSGetTimeouts(display, &x_standby, &x_suspend, &x_off));
271KPrView::KPrView( KPrDocument* _doc, TQWidget *_parent,
const char *_name )
272 : KoView( _doc, _parent, _name )
275 setInstance( KPrFactory::global() );
276 if ( !_doc->isReadWrite() )
277 setXMLFile(
"kpresenter_readonly.rc" );
279 setXMLFile(
"kpresenter.rc" );
284 m_bDisplayFieldCode=
false;
287 m_propertyEditor = 0;
295 pen = KoPen( black, 1.0, TQt::SolidLine );
296 brush = TQBrush( white, SolidPattern );
297 lineBegin = L_NORMAL;
309 setMouseTracking(
true );
312 m_autoPresRestart =
false;
313 m_autoPresStop =
false;
316 m_editMaster =
false;
326 m_spell.textIterator = 0L;
327 m_spell.macroCmdSpellCheck = 0L;
329 m_broker = Broker::openBroker( TDESharedConfig::openConfig(
"kpresenterrc" ) );
331 m_autoPresTimerConnected =
false;
332 m_actionList.setAutoDelete(
true );
333 checkConcavePolygon =
false;
336 tbAlign = TQt::AlignLeft;
340 mirrorType = PM_NORMAL;
346 m_currentLineTool = LtLine;
347 m_currentShapeTool = StRectangle;
348 m_currentClosedLineTool = CltFreehand;
357 m_pKPresenterDoc = _doc;
361 setKeyCompression(
true );
365 changeNbOfRecentFiles( m_pKPresenterDoc->maxRecentFiles() );
367 connect(
this, TQ_SIGNAL(embeddImage(
const TQString &)), TQ_SLOT(insertPicture(
const TQString &)));
368 connect( m_pKPresenterDoc, TQ_SIGNAL( sig_refreshMenuCustomVariable()),
369 this, TQ_SLOT( refreshCustomMenu()));
372 if ( m_pKPresenterDoc->isReadWrite() )
373 connect( m_canvas, TQ_SIGNAL(selectionChanged(
bool)),
374 this, TQ_SLOT(slotChangeCutState(
bool )) );
376 actionEditCut->setEnabled(
false );
378 connect( m_canvas, TQ_SIGNAL(selectionChanged(
bool)),
379 actionEditCopy, TQ_SLOT(setEnabled(
bool)) );
381 connect (m_canvas, TQ_SIGNAL(selectionChanged(
bool)),
382 actionChangeCase, TQ_SLOT(setEnabled(
bool)));
386 connect( m_canvas, TQ_SIGNAL( currentObjectEditChanged() ),
this, TQ_SLOT( slotObjectEditChanged()));
388 connect( h_ruler, TQ_SIGNAL( tabListChanged(
const KoTabulatorList & ) ),
this,
389 TQ_SLOT( tabListChanged(
const KoTabulatorList & ) ) );
392 connect( m_pKPresenterDoc, TQ_SIGNAL( pageNumChanged() ),
this, TQ_SLOT( pageNumChanged()) );
393 connect(
this, TQ_SIGNAL( currentPageChanged(
int) ),
this, TQ_SLOT( pageNumChanged()) );
394 connect( m_canvas, TQ_SIGNAL( objectSizeChanged() ),
this, TQ_SLOT( updateObjectStatusBarItem() ));
395 connect( m_canvas, TQ_SIGNAL( objectSelectedChanged() ),
this, TQ_SLOT( updateObjectStatusBarItem() ));
396 connect (m_pKPresenterDoc, TQ_SIGNAL(sig_updateRuler()),
this, TQ_SLOT( slotUpdateRuler()));
397 connect (m_pKPresenterDoc, TQ_SIGNAL(sig_updateRuler()),
this, TQ_SLOT( slotUpdateScrollBarRanges()));
398 connect (m_pKPresenterDoc, TQ_SIGNAL(sig_updateMenuBar()),
this, TQ_SLOT(updateSideBarMenu()));
399 connect (m_pKPresenterDoc, TQ_SIGNAL(unitChanged(KoUnit::Unit)),
this, TQ_SLOT(slotUnitChanged(KoUnit::Unit)));
400 connect( m_pKPresenterDoc, TQ_SIGNAL( modified(
bool ) ),
this, TQ_SLOT( documentModified(
bool )) );
401 connect( m_pKPresenterDoc, TQ_SIGNAL(completed()),
this, TQ_SLOT(loadingFinished()));
403 KStatusBar * sb = statusBar();
405 m_sbObjectLabel = 0L;
406 m_sbModifiedLabel = 0;
412 m_sbPageLabel =
new KStatusBarLabel( TQString(), 0, sb );
413 m_sbPageLabel->setAlignment( AlignLeft | AlignVCenter );
414 addStatusBarItem( m_sbPageLabel, 0 );
416 m_sbModifiedLabel =
new KStatusBarLabel(
" ", 0, sb );
417 m_sbModifiedLabel->setAlignment( AlignLeft | AlignVCenter );
418 addStatusBarItem( m_sbModifiedLabel, 0 );
420 m_sbObjectLabel =
new KStatusBarLabel( TQString(), 0, sb );
421 m_sbObjectLabel->setAlignment( AlignLeft | AlignVCenter );
422 addStatusBarItem( m_sbObjectLabel, 1 );
424 m_sbZoomLabel =
new KStatusBarLabel(
' ' + TQString::number( m_pKPresenterDoc->zoomHandler()->zoom() ) +
"% ", 0, sb );
425 m_sbZoomLabel->setAlignment( AlignHCenter | AlignVCenter );
426 addStatusBarItem( m_sbZoomLabel, 0 );
428 m_sbUnitLabel =
new KStatusBarLabel(
' ' + KoUnit::unitDescription( m_pKPresenterDoc->unit() ) +
' ', 0, sb );
429 m_sbUnitLabel->setAlignment( AlignHCenter | AlignVCenter );
430 addStatusBarItem( m_sbUnitLabel, 0 );
435 if(!m_pKPresenterDoc->isReadWrite())
437 setZoom( 100,
true );
440 m_pKPresenterDoc->updateZoomRuler();
444 setAcceptDrops(
true );
447DCOPObject* KPrView::dcopObject()
450 dcop =
new KPrViewIface(
this );
457 delete m_findReplace;
460 TDEConfig *config=TDEGlobal::config();
461 config->setGroup(
"Global");
462 config->writeEntry(
"Sidebar", sidebar->isVisible());
465 TDEConfig *config=TDEGlobal::config();
466 config->setGroup(
"Global");
467 config->writeEntry(
"Notebar", notebar->isVisible());
475 delete m_sbPageLabel;
476 delete m_sbObjectLabel;
478 delete m_searchEntry;
480 delete m_replaceEntry;
482 delete m_propertyEditor;
489 delete m_arrangeObjectsPopup;
491 if ( m_specialCharDlg )
492 m_specialCharDlg->closeDialog();
493 delete m_specialCharDlg;
496void KPrView::setupPrinter( KPrinter &prt )
498 deSelectAllObjects();
499 m_pKPresenterDoc->recalcVariables( VT_TIME );
500 m_pKPresenterDoc->recalcVariables( VT_DATE );
501 prt.setMinMax( 1, m_pKPresenterDoc->getPageNums() );
502 prt.setFromTo( 1, m_pKPresenterDoc->getPageNums() );
503 prt.setOption(
"kde-range", m_pKPresenterDoc->selectedForPrinting() );
504 prt.setPageSelection(KPrinter::ApplicationSide);
505 KoPageLayout layout = m_pKPresenterDoc->pageLayout();
506 prt.setOption(
"kde-margin-top", TQString::number(layout.ptTop) );
507 prt.setOption(
"kde-margin-bottom", TQString::number(layout.ptBottom) );
508 prt.setOption(
"kde-margin-left", TQString::number(layout.ptLeft) );
509 prt.setOption(
"kde-margin-right", TQString::number(layout.ptRight) );
510 KoFormat pageFormat = layout.format;
511 prt.setPageSize(
static_cast<KPrinter::PageSize
>( KoPageFormat::printerPageSize( pageFormat ) ) );
513 if ( m_pKPresenterDoc->pageLayout().orientation == PG_LANDSCAPE || pageFormat == PG_SCREEN )
514 prt.setOrientation( KPrinter::Landscape );
516 prt.setOrientation( KPrinter::Portrait );
517 if ( !prt.previewOnly() )
518 prt.addDialogPage(
new KPrPrinterDlg( 0,
"KPresenter page" ) );
521void KPrView::unZoomDocument(
int &dpiX,
int &dpiY)
527 dpiX = doZoom ? 300 : KoGlobal::dpiX();
528 dpiY = doZoom ? 300 : KoGlobal::dpiY();
529 zoomHandler()->setZoomAndResolution( 100, dpiX, dpiY );
530 m_pKPresenterDoc->newZoomAndResolution(
false,
true );
533void KPrView::zoomDocument(
int zoom)
535 zoomHandler()->setZoomAndResolution( zoom, KoGlobal::dpiX(), KoGlobal::dpiY() );
536 m_pKPresenterDoc->newZoomAndResolution(
false,
false );
540void KPrView::print( KPrinter &prt )
542 float left_margin = 0.0;
543 float top_margin = 0.0;
546 int oldZoom = zoomHandler()->zoom();
547 bool displayFieldCode = m_pKPresenterDoc->getVariableCollection()->variableSetting()->displayFieldCode();
548 if ( displayFieldCode )
550 m_pKPresenterDoc->getVariableCollection()->variableSetting()->setDisplayFieldCode(
false);
551 m_pKPresenterDoc->recalcVariables( VT_ALL );
554 TQPaintDeviceMetrics metrics( &prt );
555 unZoomDocument(dpiX,dpiY);
556 if ( m_pKPresenterDoc->pageLayout().format == PG_SCREEN )
563 painter.begin( &prt );
564 TQRect rect = m_pKPresenterDoc->pageList().at( 0 )->getZoomPageRect();
565 double zoom = TQMIN(
double( metrics.width() ) /
double( rect.width() ),
566 double( metrics.height() ) /
double( rect.height() ) );
567 double newZoom = zoom * m_pKPresenterDoc->zoomHandler()->zoom();
568 kdDebug(33001) <<
"KPrView::print newZoom = " << newZoom << endl;
569 setZoom(
int( newZoom ),
false );
570 TQRect paintingRect = m_pKPresenterDoc->pageList().at( 0 )->getZoomPageRect();
572 m_canvas->print( &painter, &prt, left_margin, top_margin );
575 zoomDocument(oldZoom);
576 if ( displayFieldCode )
578 m_pKPresenterDoc->getVariableCollection()->variableSetting()->setDisplayFieldCode(
true);
579 m_pKPresenterDoc->recalcVariables( VT_ALL );
583 kdDebug(33001) <<
"KPrView::print zoom&res reset" << endl;
584 m_pKPresenterDoc->getVariableCollection()->variableSetting()->setLastPrintingDate(TQDateTime::currentDateTime());
585 m_pKPresenterDoc->recalcVariables( VT_DATE );
588void KPrView::editCut()
590 if ( !m_canvas->currentTextObjectView() ) {
591 m_canvas->setToolEditMode( TEM_MOUSE );
593 m_canvas->copyOasisObjs();
595 m_canvas->copyObjs();
597 m_canvas->deleteObjs();
599 if ( !m_canvas->currentTextObjectView()->kpTextObject()->isProtectContent())
600 m_canvas->currentTextObjectView()->cut();
604void KPrView::editCopy()
606 if ( !m_canvas->currentTextObjectView() ) {
607 m_canvas->setToolEditMode( TEM_MOUSE );
609 m_canvas->copyOasisObjs();
611 m_canvas->copyObjs();
615 m_canvas->currentTextObjectView()->copy();
618void KPrView::editPaste()
620 if ( !m_canvas->currentTextObjectView() ) {
621 m_canvas->setToolEditMode( TEM_MOUSE );
622 deSelectAllObjects();
623 TQMimeSource *data = TQApplication::clipboard()->data();
624 if ( data->provides(
"text/uri-list" ) )
626 m_pKPresenterDoc->pastePage( data, currPg );
628 skipToPage( currPg );
631 else if ( data->provides( KoStoreDrag::mimeType(
"application/x-kpresenter" ) ))
634 m_canvas->activePage()->pasteObjs(
635 data->encodedData(KoStoreDrag::mimeType(
"application/x-kpresenter")),
636 1, 0.0, 0.0, 0.0, 20.0, 20.0);
638 m_canvas->setMouseSelectedObject(
true);
639 emit objectSelectedChanged();
642 else if ( data->provides( KoStoreDrag::mimeType(
"application/vnd.oasis.opendocument.presentation" ) ))
650 m_canvas->setMouseSelectedObject(
true);
651 emit objectSelectedChanged();
654 else if (TQImageDrag::canDecode (data)) {
655 m_canvas->dropImage( data );
658 if ( !m_canvas->currentTextObjectView()->kpTextObject()->isProtectContent())
659 m_canvas->currentTextObjectView()->paste();
663void KPrView::editDelete()
665 m_canvas->setToolEditMode( TEM_MOUSE );
666 m_canvas->deleteObjs();
669void KPrView::editSelectAll()
671 KPrTextView *edit=m_canvas->currentTextObjectView();
673 m_canvas->setToolEditMode( TEM_MOUSE );
674 m_canvas->selectAllObj();
680void KPrView::editDeSelectAll()
682 KPrTextView *edit=m_canvas->currentTextObjectView();
684 m_canvas->setToolEditMode( TEM_MOUSE );
685 deSelectAllObjects();
688 edit->selectAll(
false);
691void KPrView::editCopyPage()
693 m_pKPresenterDoc->copyPageToClipboard( currPg );
696void KPrView::editDuplicatePage()
698 m_pKPresenterDoc->copyPage( currPg );
702void KPrView::updateSideBarMenu()
704 actionEditDelPage->setEnabled( m_pKPresenterDoc->getPageNums() > 1 );
707void KPrView::editDelPage()
709 if ( KMessageBox::warningContinueCancel(
this,
710 i18n(
"Do you want to remove the current slide?"),i18n(
"Remove Slide"),KGuiItem(i18n(
"&Delete"),
"edit-delete") )
711 != KMessageBox::Continue )
713 m_canvas->exitEditMode();
714 m_pKPresenterDoc->deletePage( currPg );
718void KPrView::insertPage()
720 InsertPageDia dia(
this, 0,
true );
722 TQString templ = locateLocal(
"data",
"kpresenter/default.oop" );
724 TQString templ = locateLocal(
"data",
"kpresenter/default.kpr" );
726 if ( !TQFile::exists( templ ) ) {
727 dia.radioDifferent->setChecked(
true );
728 dia.radioDefault->setEnabled(
false );
730 if ( dia.exec() != TQDialog::Accepted )
733 if (dia.radioCurrentDefault->isChecked())
736 TQString file = locateLocal(
"data",
"kpresenter/default.oop" );
737 m_pKPresenterDoc->savePage( file, currPg,
true );
739 TQString file = locateLocal(
"data",
"kpresenter/default.kpr" );
740 m_pKPresenterDoc->savePage( file, currPg,
true );
744 InsertPos pos = (InsertPos)dia.locationCombo->currentItem();
745 m_pKPresenterDoc->insertNewPage( i18n(
"Insert new slide"), currPg, pos,
746 dia.radioDifferent->isChecked(), TQString() );
750void KPrView::insertPicture()
752 m_canvas->setToolEditMode( INS_PICTURE );
753 deSelectAllObjects();
755 TQStringList mimetypes;
756 mimetypes += KImageIO::mimeTypes( KImageIO::Reading );
757 mimetypes += KoPictureFilePreview::clipartMimeTypes();
759 KFileDialog fd( m_pKPresenterDoc->picturePath(), TQString(),
this, 0,
true );
760 fd.setCaption( i18n(
"Insert Picture" ) );
761 fd.setMimeFilter( mimetypes );
762 fd.setPreviewWidget(
new KoPictureFilePreview( &fd ) );
765 if ( fd.exec() == TQDialog::Accepted )
766 url = fd.selectedURL();
768 if( url.isEmpty() || !url.isValid() )
770 m_canvas->setToolEditMode( TEM_MOUSE,
false );
774 if ( !TDEIO::NetAccess::download( url, file,
this ) )
776 m_canvas->setToolEditMode( TEM_MOUSE,
false );
780 if ( !file.isEmpty() )
781 m_canvas->activePage()->setInsPictureFile( file );
784void KPrView::insertPicture(
const TQString &file)
786 m_canvas->setToolEditMode( INS_PICTURE );
787 deSelectAllObjects();
789 if ( !file.isEmpty() )
790 m_canvas->activePage()->setInsPictureFile( file );
793void KPrView::savePicture()
795 m_canvas->savePicture();
798void KPrView::savePicture(
const TQString& oldName, KoPicture& picture)
800 TQString oldFile(oldName);
802 url.setPath( oldFile );
803 if (!TQDir(url.directory()).exists())
804 oldFile = url.fileName();
806 TQString mimetype=picture.getMimeType();
807 kdDebug(33001) <<
"Picture has mime type: " << mimetype << endl;
808 TQStringList mimetypes;
809 mimetypes << mimetype;
811 KFileDialog fd( oldFile, TQString(),
this, 0,
true );
812 fd.setMimeFilter( mimetypes );
813 fd.setCaption(i18n(
"Save Picture"));
814 fd.setOperationMode(KFileDialog::Saving);
815 if ( fd.exec() == TQDialog::Accepted )
817 url = fd.selectedURL();
820 if ( url.isLocalFile() )
822 TQFile file( url.path() );
823 if ( file.open( IO_ReadWrite ) )
825 picture.save( &file );
830 KMessageBox::error(
this,
831 i18n(
"Error during saving: could not open '%1' for writing.").arg ( url.path() ),
832 i18n(
"Save Picture"));
838 tempFile.setAutoDelete(
true );
839 if ( tempFile.status() == 0 )
841 TQFile file( tempFile.name() );
842 if ( file.open( IO_ReadWrite ) )
844 picture.save( &file );
846 if ( !TDEIO::NetAccess::upload( tempFile.name(), url,
this ) )
848 KMessageBox::sorry(
this, i18n(
849 "Unable to save the file to '%1'. %2.").arg( url.prettyURL() ).arg( TDEIO::NetAccess::lastErrorString() ),
850 i18n(
"Save Failed") );
854 KMessageBox::error(
this,
855 i18n(
"Error during saving: could not open '%1' temporary file for writing.").arg ( file.name() ),
856 i18n(
"Save Picture"));
859 KMessageBox::sorry(
this, i18n(
860 "Error during saving: could not create temporary file: %1.").arg( strerror( tempFile.status() ) ),
861 i18n(
"Save Picture") );
867void KPrView::savePicture( KPrPixmapObject* obj )
869 TQString oldFile=obj->getFileName();
870 KoPicture picture(obj->picture());
871 savePicture(oldFile, picture);
874void KPrView::toolsMouse()
876 if ( actionToolsMouse->isChecked() )
877 m_canvas->setToolEditMode( TEM_MOUSE,
false );
879 actionToolsMouse->setChecked(
true);
883void KPrView::toolsRotate()
885 if ( actionToolsRotate->isChecked() )
886 m_canvas->setToolEditMode( TEM_ROTATE,
false );
888 actionToolsRotate->setChecked(
true);
891void KPrView::toolsZoom()
893 if ( actionToolsZoom->isChecked() )
894 m_canvas->setToolEditMode( TEM_ZOOM,
false );
896 actionToolsZoom->setChecked(
true);
899void KPrView::toolsLinePopup()
901 switch (m_currentLineTool)
904 actionToolsLine->activate();
907 actionToolsFreehand->activate();
910 actionToolsPolyline->activate();
912 case LtQuadricBezier:
913 actionToolsQuadricBezierCurve->activate();
916 actionToolsCubicBezierCurve->activate();
921void KPrView::toolsLine()
923 if ( actionToolsLine->isChecked() )
925 m_canvas->setToolEditMode( INS_LINE,
false );
926 deSelectAllObjects();
927 m_currentLineTool = LtLine;
928 actionToolsLinePopup->setIcon(
"line");
931 actionToolsLine->setChecked(
true);
934void KPrView::toolsShapePopup()
936 switch (m_currentShapeTool)
939 actionToolsRectangle->activate();
942 actionToolsCircleOrEllipse->activate();
945 actionToolsPie->activate();
948 actionToolsConvexOrConcavePolygon->activate();
953void KPrView::toolsRectangle()
955 if ( actionToolsRectangle->isChecked() )
957 deSelectAllObjects();
958 m_canvas->setToolEditMode( INS_RECT,
false );
959 m_currentShapeTool = StRectangle;
960 actionToolsShapePopup->setIcon(
"rectangle");
963 actionToolsRectangle->setChecked(
true);
966void KPrView::toolsCircleOrEllipse()
968 if ( actionToolsCircleOrEllipse->isChecked() )
970 deSelectAllObjects();
971 m_canvas->setToolEditMode( INS_ELLIPSE,
false );
972 m_currentShapeTool = StCircle;
973 actionToolsShapePopup->setIcon(
"circle");
976 actionToolsCircleOrEllipse->setChecked(
true);
979void KPrView::toolsPie()
981 if ( actionToolsPie->isChecked() )
983 deSelectAllObjects();
984 m_canvas->setToolEditMode( INS_PIE,
false );
985 m_currentShapeTool = StPie;
986 actionToolsShapePopup->setIcon(
"pie");
989 actionToolsPie->setChecked(
true);
992void KPrView::toolsDiagramm()
994 if ( actionToolsDiagramm->isChecked() )
996 deSelectAllObjects();
997 m_canvas->setToolEditMode( INS_DIAGRAMM,
false );
999 KoDocumentEntry entry = KoDocumentEntry::queryByMimeType(
"application/x-kchart" );
1000 if (entry.isEmpty())
1002 KMessageBox::sorry(
this, i18n(
"No chart component registered" ) );
1003 m_canvas->setToolEditMode( TEM_MOUSE );
1006 m_canvas->setPartEntry( entry );
1009 actionToolsDiagramm->setChecked(
true);
1012void KPrView::toolsTable()
1014 if ( actionToolsTable->isChecked() )
1016 deSelectAllObjects();
1017 m_canvas->setToolEditMode( INS_TABLE,
false );
1019 KoDocumentEntry entry = KoDocumentEntry::queryByMimeType(
"application/x-kspread" );
1020 if (entry.isEmpty())
1022 KMessageBox::sorry(
this, i18n(
"No table component registered" ) );
1023 m_canvas->setToolEditMode( TEM_MOUSE );
1026 m_canvas->setPartEntry( entry );
1029 actionToolsTable->setChecked(
true);
1032void KPrView::toolsFormula()
1034 if ( actionToolsFormula->isChecked() )
1036 deSelectAllObjects();
1037 m_canvas->setToolEditMode( INS_FORMULA,
false );
1039 KoDocumentEntry entry = KoDocumentEntry::queryByMimeType(
"application/x-kformula" );
1040 if (entry.isEmpty())
1042 KMessageBox::sorry(
this, i18n(
"No formula component registered" ) );
1043 m_canvas->setToolEditMode( TEM_MOUSE );
1046 m_canvas->setPartEntry( entry );
1049 actionToolsFormula->setChecked(
true);
1052void KPrView::toolsText()
1054 if ( actionToolsText->isChecked() )
1056 deSelectAllObjects();
1057 m_canvas->setToolEditMode( INS_TEXT,
false );
1060 actionToolsText->setChecked(
true);
1063void KPrView::toolsAutoform()
1065 if ( actionToolsAutoform->isChecked() )
1067 deSelectAllObjects();
1068 m_canvas->setToolEditMode( TEM_MOUSE,
false );
1073 afChoose =
new AFChoose(
this, i18n(
"Autoform-Choose" ) );
1074 afChoose->resize( 400, 300 );
1075 afChoose->setCaption( i18n(
"Insert Autoform" ) );
1077 TQObject::connect( afChoose, TQ_SIGNAL( formChosen(
const TQString & ) ),
1078 this, TQ_SLOT( afChooseOk(
const TQString & ) ) );
1079 TQObject::connect( afChoose, TQ_SIGNAL( afchooseCanceled()),
1080 this, TQ_SLOT(slotAfchooseCanceled()));
1083 TQObject::disconnect( afChoose, TQ_SIGNAL( formChosen(
const TQString & ) ),
1084 this, TQ_SLOT( afChooseOk(
const TQString & ) ) );
1089 actionToolsAutoform->setChecked(
true);
1092void KPrView::toolsObject()
1094 KoDocumentEntry pe = actionToolsObject->documentEntry();
1095 if ( pe.isEmpty() ) {
1096 m_canvas->setToolEditMode( TEM_MOUSE );
1100 m_canvas->setToolEditMode( INS_OBJECT );
1101 m_canvas->setPartEntry( pe );
1104void KPrView::toolsFreehand()
1106 if ( actionToolsFreehand->isChecked() ) {
1107 m_canvas->setToolEditMode( INS_FREEHAND,
false );
1108 deSelectAllObjects();
1109 m_currentLineTool = LtFreehand;
1110 actionToolsLinePopup->setIcon(
"freehand");
1113 actionToolsFreehand->setChecked(
true);
1116void KPrView::toolsPolyline()
1118 if ( actionToolsPolyline->isChecked() ) {
1119 m_canvas->setToolEditMode( INS_POLYLINE,
false );
1120 deSelectAllObjects();
1121 m_currentLineTool = LtPolyline;
1122 actionToolsLinePopup->setIcon(
"polyline");
1125 actionToolsPolyline->setChecked(
true);
1128void KPrView::toolsQuadricBezierCurve()
1130 if ( actionToolsQuadricBezierCurve->isChecked() ) {
1131 m_canvas->setToolEditMode( INS_QUADRICBEZIERCURVE,
false );
1132 deSelectAllObjects();
1133 m_currentLineTool = LtQuadricBezier;
1134 actionToolsLinePopup->setIcon(
"quadricbeziercurve");
1137 actionToolsQuadricBezierCurve->setChecked(
true);
1140void KPrView::toolsCubicBezierCurve()
1142 if ( actionToolsCubicBezierCurve->isChecked() ) {
1143 m_canvas->setToolEditMode( INS_CUBICBEZIERCURVE,
false );
1144 deSelectAllObjects();
1145 m_currentLineTool = LtCubicBezier;
1146 actionToolsLinePopup->setIcon(
"cubicbeziercurve");
1149 actionToolsCubicBezierCurve->setChecked(
true);
1152void KPrView::toolsConvexOrConcavePolygon()
1154 if ( actionToolsConvexOrConcavePolygon->isChecked() ) {
1155 m_canvas->setToolEditMode( INS_POLYGON,
false );
1156 deSelectAllObjects();
1157 m_currentShapeTool = StPolygon;
1158 actionToolsShapePopup->setIcon(
"polygon");
1161 actionToolsConvexOrConcavePolygon->setChecked(
true);
1164void KPrView::toolsClosedLinePopup()
1166 switch (m_currentClosedLineTool)
1169 actionToolsClosedFreehand->activate();
1172 actionToolsClosedPolyline->activate();
1174 case CltQuadricBezier:
1175 actionToolsClosedQuadricBezierCurve->activate();
1177 case CltCubicBezier:
1178 actionToolsClosedCubicBezierCurve->activate();
1183void KPrView::toolsClosedFreehand()
1185 if ( actionToolsClosedFreehand->isChecked() ) {
1186 m_canvas->setToolEditMode( INS_CLOSED_FREEHAND,
false );
1187 deSelectAllObjects();
1188 m_currentClosedLineTool = CltFreehand;
1189 actionToolsClosedLinePopup->setIcon(
"closed_freehand");
1192 actionToolsClosedFreehand->setChecked(
true );
1195void KPrView::toolsClosedPolyline()
1197 if ( actionToolsClosedPolyline->isChecked() ) {
1198 m_canvas->setToolEditMode( INS_CLOSED_POLYLINE,
false );
1199 deSelectAllObjects();
1200 m_currentClosedLineTool = CltPolyline;
1201 actionToolsClosedLinePopup->setIcon(
"closed_polyline");
1204 actionToolsClosedPolyline->setChecked(
true );
1207void KPrView::toolsClosedQuadricBezierCurve()
1209 if ( actionToolsClosedQuadricBezierCurve->isChecked() ) {
1210 m_canvas->setToolEditMode( INS_CLOSED_QUADRICBEZIERCURVE,
false );
1211 deSelectAllObjects();
1212 m_currentClosedLineTool = CltQuadricBezier;
1213 actionToolsClosedLinePopup->setIcon(
"closed_quadricbeziercurve");
1216 actionToolsClosedQuadricBezierCurve->setChecked(
true );
1219void KPrView::toolsClosedCubicBezierCurve()
1221 if ( actionToolsClosedCubicBezierCurve->isChecked() ) {
1222 m_canvas->setToolEditMode( INS_CLOSED_CUBICBEZIERCURVE,
false );
1223 deSelectAllObjects();
1224 m_currentClosedLineTool = CltCubicBezier;
1225 actionToolsClosedLinePopup->setIcon(
"closed_cubicbeziercurve");
1228 actionToolsClosedCubicBezierCurve->setChecked(
true );
1231void KPrView::extraProperties()
1233 m_canvas->setToolEditMode( TEM_MOUSE );
1235 m_propertyEditor =
new KPrPropertyEditor(
this,
"KPrPropertyEditor", m_canvas->activePage(), m_pKPresenterDoc );
1236 m_propertyEditor->setCaption( i18n(
"Properties" ) );
1238 connect( m_propertyEditor, TQ_SIGNAL( propertiesOk() ),
this, TQ_SLOT( propertiesOk() ) );
1239 m_propertyEditor->exec();
1240 disconnect( m_propertyEditor, TQ_SIGNAL( propertiesOk() ),
this, TQ_SLOT( propertiesOk() ) );
1242 delete m_propertyEditor;
1243 m_propertyEditor = 0;
1246void KPrView::extraRaise()
1248 m_canvas->setToolEditMode( TEM_MOUSE );
1249 m_canvas->raiseObjs(
true );
1252void KPrView::extraLower()
1254 m_canvas->setToolEditMode( TEM_MOUSE );
1255 m_canvas->lowerObjs(
true );
1258void KPrView::extraRotate()
1260 if ( m_canvas->numberOfObjectSelected() > 0 ) {
1263 connect( rotateDia, TQ_SIGNAL( apply() ),
this, TQ_SLOT( rotateOk() ) );
1265 rotateDia->setAngle( m_canvas->getSelectedObj()->getAngle() );
1266 m_canvas->setToolEditMode( TEM_MOUSE );
1271void KPrView::extraShadow()
1273 if ( m_canvas->numberOfObjectSelected() > 0 ) {
1276 shadowDia =
new KPrShadowDialogImpl(
this );
1277 shadowDia->resize( shadowDia->minimumSize() );
1278 connect( shadowDia, TQ_SIGNAL( apply() ),
this, TQ_SLOT( shadowOk() ) );
1281 KPrObject *
object=m_canvas->getSelectedObj();
1282 shadowDia->setShadowDirection( object->getShadowDirection() );
1283 if ( object->getShadowDistance() != 0 )
1284 shadowDia->setShadowDistance( object->getShadowDistance() );
1286 shadowDia->setShadowDistance( 3 );
1288 shadowDia->setShadowColor( object->getShadowColor() );
1289 m_canvas->setToolEditMode( TEM_MOUSE );
1294void KPrView::extraBackground()
1296 KPrPage *page=m_canvas->activePage();
1297 KPrBackDialog* backDia =
new KPrBackDialog(
this,
"InfoDia", page->getBackType( ),
1298 page->getBackColor1( ),
1299 page->getBackColor2( ),
1300 page->getBackColorType( ),
1301 page->getBackPicture( ),
1302 page->getBackView(),
1303 page->getBackUnbalanced(),
1304 page->getBackXFactor(),
1305 page->getBackYFactor( ),
1307 backDia->setCaption( i18n(
"Slide Background" ) );
1308 TQObject::connect( backDia, TQ_SIGNAL( backOk( KPrBackDialog*,
bool ) ),
this, TQ_SLOT( backOk( KPrBackDialog*,
bool ) ) ) ;
1311 TQObject::disconnect( backDia, TQ_SIGNAL( backOk( KPrBackDialog*,
bool ) ),
this, TQ_SLOT( backOk( KPrBackDialog*,
bool ) ) );
1315void KPrView::extraLayout()
1317 KoPageLayout pgLayout = m_pKPresenterDoc->pageLayout();
1318 KoPageLayout oldLayout = pgLayout;
1320 KoUnit::Unit oldUnit = m_pKPresenterDoc->unit();
1321 KoUnit::Unit unit = oldUnit;
1323 if ( KoPageLayoutDia::pageLayout( pgLayout, hf, FORMAT_AND_BORDERS, unit,
this ) ) {
1324 KPrPgLayoutCmd *pgLayoutCmd =
new KPrPgLayoutCmd( i18n(
"Set Page Layout" ),
1325 pgLayout, oldLayout, oldUnit, unit,kPresenterDoc() );
1326 pgLayoutCmd->execute();
1327 kPresenterDoc()->addCommand( pgLayoutCmd );
1332void KPrView::extraConfigure()
1334 KPrConfig configDia(
this );
1338void KPrView::extraCreateTemplate()
1342 TQPixmap pix = m_pKPresenterDoc->generatePreview(TQSize(width, height));
1344 KTempFile tempFile( TQString(),
".otp" );
1345 tempFile.setAutoDelete(
true );
1346 m_pKPresenterDoc->savePage( tempFile.name(), getCurrPgNum() - 1);
1348 KTempFile tempFile( TQString(),
".kpt" );
1349 tempFile.setAutoDelete(
true );
1350 m_pKPresenterDoc->savePage( tempFile.name(), getCurrPgNum() - 1);
1353 KoTemplateCreateDia::createTemplate(
"kpresenter_template", KPrFactory::global(),
1354 tempFile.name(), pix,
this);
1355 KPrFactory::global()->dirs()->addResourceType(
"kpresenter_template",
1356 TDEStandardDirs::kde_default(
"data" ) +
1357 "kpresenter/templates/");
1360void KPrView::extraDefaultTemplate()
1363 TQString file = locateLocal(
"data",
"kpresenter/default.oop" );
1364 m_pKPresenterDoc->savePage( file, currPg );
1366 TQString file = locateLocal(
"data",
"kpresenter/default.kpr" );
1367 m_pKPresenterDoc->savePage( file, currPg );
1371void KPrView::extraWebPres()
1373 if ( !allowWebPres )
1377 TQString config = TQString();
1378 int ret =KMessageBox::questionYesNoCancel(
this,
1379 i18n(
"Do you want to load a previously saved configuration"
1380 " which will be used for this HTML Presentation?" ),
1381 i18n(
"Create HTML Presentation" ) );
1382 if( ret == KMessageBox::Cancel )
1384 else if ( ret == KMessageBox::Yes )
1386 url = KFileDialog::getOpenURL( TQString(), i18n(
"*.kpweb|KPresenter HTML Presentation (*.kpweb)"),
this );
1391 if( !url.isLocalFile() )
1393 KMessageBox::sorry(
this, i18n(
"Only local files are currently supported." ) );
1397 config = url.path();
1400 KPrWebPresentationWizard::createWebPresentation( config, m_pKPresenterDoc,
this );
1403void KPrView::extraMSPres()
1408 KPrMSPresentationSetup::createMSPresentation( m_pKPresenterDoc,
this );
1411void KPrView::extraLineBegin()
1413 m_canvas->setToolEditMode( TEM_MOUSE );
1414 TQPoint pnt( TQCursor::pos() );
1415 rb_lbegin->popup( pnt );
1418void KPrView::extraLineEnd()
1420 m_canvas->setToolEditMode( TEM_MOUSE );
1421 TQPoint pnt( TQCursor::pos() );
1422 rb_lend->popup( pnt );
1425void KPrView::extraGroup()
1427 m_canvas->setToolEditMode( TEM_MOUSE );
1428 m_canvas->groupObjects();
1429 objectSelectedChanged();
1432void KPrView::extraUnGroup()
1434 m_canvas->setToolEditMode( TEM_MOUSE );
1435 m_canvas->ungroupObjects();
1436 objectSelectedChanged();
1439void KPrView::extraPenStyle(
int newStyle )
1441 m_canvas->setToolEditMode( TEM_MOUSE );
1442 setExtraPenStyle(
static_cast<TQt::PenStyle
>(newStyle));
1445void KPrView::extraPenWidth(
double newWidth )
1447 m_canvas->setToolEditMode( TEM_MOUSE );
1448 setExtraPenWidth( newWidth );
1451void KPrView::screenConfigPages()
1454 pgConfDia =
new KPrPgConfDia(
this, kPresenterDoc() );
1455 pgConfDia->setCaption( i18n(
"Configure Slide Show" ) );
1456 TQObject::connect( pgConfDia, TQ_SIGNAL( pgConfDiaOk() ),
this, TQ_SLOT( pgConfOk() ) );
1459 TQObject::disconnect( pgConfDia, TQ_SIGNAL( pgConfDiaOk() ),
this, TQ_SLOT( pgConfOk() ) );
1465void KPrView::screenTransEffect()
1467 KPrSlideTransitionDia transitionDia(
this,
"slideTransitionDialog",
this );
1468 transitionDia.exec();
1471void KPrView::screenAssignEffect()
1473 m_canvas->setToolEditMode( TEM_MOUSE );
1475 TQPtrList<KPrObject> objs;
1476 if ( m_canvas->canAssignEffect( objs ) ) {
1477 KPrEffectDia *effectDia =
new KPrEffectDia(
this,
"Object Effect", objs,
this );
1478 effectDia->setCaption( i18n(
"Object Effect" ) );
1484void KPrView::screenStart()
1486 startScreenPres( getCurrPgNum() );
1489void KPrView::screenStartFromFirst()
1491 startScreenPres( 1 );
1494void KPrView::startScreenPres(
int pgNum )
1497 if( !kPresenterDoc()->displaySelectedSlides().count() )
1499 KMessageBox::sorry(
this, i18n(
"You didn't select any slide." ),
1504 m_canvas->setToolEditMode( TEM_MOUSE );
1506 if ( m_canvas && !presStarted ) {
1507 const TQString xdgScreenSaver = TDEStandardDirs::findExe(
"xdg-screensaver");
1508 if (!xdgScreenSaver.isEmpty()) {
1510 proc << xdgScreenSaver;
1512 proc << TQString::number( topLevelWidget()->winId() );
1513 kdDebug() << k_funcinfo << proc.args() << endl;
1514 proc.start( TDEProcess::DontCare );
1517 TQByteArray replyData;
1518 TQCString replyType;
1519 m_screenSaverWasEnabled =
false;
1521 if (kapp->dcopClient()->call(
"kdesktop",
"KScreensaverIface",
"isEnabled()", data, replyType, replyData)
1522 && replyType==
"bool")
1524 TQDataStream replyArg(replyData, IO_ReadOnly);
1525 replyArg >> m_screenSaverWasEnabled;
1526 kdDebug() <<
"Screensaver was enabled:" << m_screenSaverWasEnabled << endl;
1527 if ( m_screenSaverWasEnabled )
1530 TQDataStream arg(data, IO_WriteOnly);
1532 if (!kapp->dcopClient()->send(
"kdesktop",
"KScreensaverIface",
"enable(bool)", data))
1533 kdWarning(33001) <<
"Couldn't disable screensaver (using dcop to kdesktop)!" << endl;
1535 kdDebug(33001) <<
"Screensaver successfully disabled" << endl;
1538 kdWarning(33001) <<
"Couldn't check screensaver (using dcop to kdesktop)!" << endl;
1541 m_dpmsWasEnabled = isDPMSEnabled();
1542 kdDebug() <<
"DPMS was enabled:" << m_dpmsWasEnabled << endl;
1543 if ( m_dpmsWasEnabled ) {
1544 enableDPMS(
false );
1548 deSelectAllObjects();
1550 m_autoPresRestart =
false;
1551 TQRect desk = TDEGlobalSettings::desktopGeometry(
this);
1552 kdDebug(33001) <<
"KPrView::startScreenPres desk=" << desk << endl;
1553 TQRect pgRect = kPresenterDoc()->pageList().at(0)->getZoomPageRect();
1554 kdDebug(33001) <<
"KPrView::startScreenPres pgRect=" << pgRect << endl;
1556 double zoomX =
static_cast<double>( desk.width() ) / (
double)pgRect.width();
1557 double zoomY =
static_cast<double>( desk.height() ) / (
double)pgRect.height();
1558 kdDebug(33001) <<
"KPrView::startScreenPres zoomX=" << zoomX <<
" zoomY=" << zoomY << endl;
1560 xOffsetSaved = canvasXOffset();
1561 yOffsetSaved = canvasYOffset();
1562 setCanvasXOffset( 0 );
1563 setCanvasYOffset( 0 );
1565 m_bDisplayFieldCode = m_pKPresenterDoc->getVariableCollection()->variableSetting()->displayFieldCode();
1566 if ( m_bDisplayFieldCode )
1568 m_pKPresenterDoc->getVariableCollection()->variableSetting()->setDisplayFieldCode(
false);
1569 m_pKPresenterDoc->recalcVariables( VT_ALL );
1572 vert->setEnabled(
false );
1573 horz->setEnabled(
false );
1575 m_canvas->reparent( ( TQWidget* )0L, 0, TQPoint( 0, 0 ),
false );
1576 m_canvas->setPaletteBackgroundColor( TQt::white );
1577 m_canvas->showFullScreen();
1578 m_canvas->setFocusPolicy( TQWidget::StrongFocus );
1580 if ( !kPresenterDoc()->spManualSwitch() )
1582 m_autoPresStop =
false;
1583 m_pKPresenterDoc->repaint(
false );
1585 if ( ! m_autoPresTimerConnected ) {
1586 connect( &m_autoPresTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( doAutomaticScreenPres() ) );
1587 m_autoPresTimerConnected =
true;
1591 m_canvas->startScreenPresentation( zoomX, zoomY, pgNum );
1593 actionScreenStart->setEnabled(
false );
1595 if ( kPresenterDoc()->presentationDuration() ) {
1599 for (
unsigned int i = 0; i < kPresenterDoc()->pageList().count(); ++i )
1600 m_presentationDurationList.append( 0 );
1605void KPrView::screenStop()
1607 if ( presStarted ) {
1608 m_autoPresStop =
true;
1609 m_canvas->stopSound();
1610 m_canvas->showNormal();
1612 m_canvas->reparent( pageBase, 0, TQPoint( 0, 0 ),
true );
1614 setCanvasXOffset( xOffsetSaved );
1615 setCanvasYOffset( yOffsetSaved );
1617 if ( m_bDisplayFieldCode )
1619 m_pKPresenterDoc->getVariableCollection()->variableSetting()->setDisplayFieldCode(
true);
1620 m_pKPresenterDoc->recalcVariables( VT_ALL );
1623 m_canvas->stopScreenPresentation();
1624 presStarted =
false;
1625 vert->setEnabled(
true );
1626 horz->setEnabled(
true );
1628 m_canvas->setMouseTracking(
true );
1629 m_canvas->setBackgroundMode( TQt::NoBackground );
1631 const TQString xdgScreenSaver = TDEStandardDirs::findExe(
"xdg-screensaver");
1632 if (!xdgScreenSaver.isEmpty()) {
1634 proc << xdgScreenSaver;
1636 proc << TQString::number( topLevelWidget()->winId() );
1637 kdDebug() << k_funcinfo << proc.args() << endl;
1638 proc.start( TDEProcess::DontCare );
1640 if ( m_screenSaverWasEnabled )
1644 TQDataStream arg(data, IO_WriteOnly);
1646 if (!kapp->dcopClient()->send(
"kdesktop",
"KScreensaverIface",
"enable(bool)", data))
1647 kdWarning(33001) <<
"Couldn't re-enabled screensaver (using dcop to kdesktop)" << endl;
1649 if ( m_dpmsWasEnabled )
1652 kdDebug(33001) <<
"Re-enabling DPMS" << endl;
1657 actionScreenStart->setEnabled(
true );
1658 pageBase->resizeEvent( 0 );
1660 if ( kPresenterDoc()->presentationDuration() && !m_presentationDurationList.isEmpty() ) {
1661 openThePresentationDurationDialog();
1662 m_presentationDurationList.clear();
1665 emit presentationFinished();
1668void KPrView::screenPause()
1672void KPrView::screenFirst()
1674 m_canvas->deSelectAllObj();
1682void KPrView::screenPrev(
bool gotoPreviousPage )
1684 if ( m_canvas->currentTextObjectView() )
1687 if ( presStarted ) {
1688 m_canvas->pPrev( gotoPreviousPage );
1689 m_canvas->setFocus();
1695void KPrView::screenNext(
bool gotoNextPage )
1697 if ( m_canvas->currentTextObjectView() )
1701 m_canvas->pNext( gotoNextPage );
1702 m_canvas->setFocus();
1710void KPrView::screenLast()
1712 m_canvas->deSelectAllObj();
1715 skipToPage( m_pKPresenterDoc->getPageNums() - 1 );
1717 gotoPresPage( getNumPresPages() );
1720void KPrView::screenSkip()
1724void KPrView::sizeSelected(
int size )
1726 tbFont.setPointSize( size );
1727 m_canvas->setTextPointSize( size );
1728 m_canvas->setFocus();
1731void KPrView::fontSelected(
const TQString &fontFamily )
1733 tbFont.setFamily( fontFamily );
1734 m_canvas->setTextFamily( fontFamily );
1735 m_canvas->setFocus();
1738void KPrView::textBold()
1740 bool b=actionTextBold->isChecked();
1741 tbFont.setBold( b );
1742 m_canvas->setTextBold(b );
1746void KPrView::textStrikeOut()
1748 bool b=actionFormatStrikeOut->isChecked();
1749 tbFont.setStrikeOut( b );
1750 m_canvas->setTextStrikeOut( b );
1753void KPrView::textItalic()
1755 bool b=actionTextItalic->isChecked();
1756 tbFont.setItalic( b );
1757 m_canvas->setTextItalic( b );
1760void KPrView::textUnderline()
1762 bool b=actionTextUnderline->isChecked();
1763 tbFont.setUnderline( b );
1764 m_canvas->setTextUnderline( b );
1767void KPrView::textColor()
1769 tbColor = actionTextColor->color();
1770 m_canvas->setTextColor( tbColor );
1773void KPrView::textAlignLeft()
1775 if ( actionTextAlignLeft->isChecked() )
1777 tbAlign = TQt::AlignLeft;
1778 m_canvas->setTextAlign( tbAlign );
1781 actionTextAlignLeft->setChecked(
true);
1784void KPrView::textAlignCenter()
1786 if ( actionTextAlignCenter->isChecked() )
1788 tbAlign = TQt::AlignHCenter;
1789 m_canvas->setTextAlign(tbAlign);
1792 actionTextAlignCenter->setChecked(
true);
1795void KPrView::textAlignRight()
1797 if ( actionTextAlignRight->isChecked() )
1799 tbAlign = TQt::AlignRight;
1800 m_canvas->setTextAlign(tbAlign);
1803 actionTextAlignRight->setChecked(
true);
1807void KPrView::textAlignBlock()
1809 if ( actionTextAlignBlock->isChecked() )
1811 tbAlign = TQt::AlignJustify;
1812 m_canvas->setTextAlign(tbAlign);
1815 actionTextAlignBlock->setChecked(
true);
1819void KPrView::textInsertPageNum()
1821 KPrTextView *edit=m_canvas->currentTextObjectView();
1823 edit->insertVariable( VT_PGNUM, KoPageVariable::VST_PGNUM_CURRENT );
1826void KPrView::mtextFont()
1828 KoTextFormatInterface* textIface = m_canvas->applicableTextInterfaces().first();
1831 col = textIface->textBackgroundColor();
1832 col = col.isValid() ? col : TQApplication::palette().color( TQPalette::Active, TQColorGroup::Base );
1836 m_fontDlg =
new KoFontDia( *textIface->currentFormat()
1840 connect( m_fontDlg, TQ_SIGNAL( applyFont() ),
1841 this, TQ_SLOT( slotApplyFont() ) );
1848void KPrView::slotApplyFont()
1850 int flags = m_fontDlg->changedFlags();
1853 m_canvas->setTextFormat(m_fontDlg->newFormat(), flags);
1857void KPrView::slotCounterStyleSelected()
1859 TQString actionName = TQString::fromLatin1(sender()->name());
1860 if ( actionName.startsWith(
"counterstyle_" ) )
1862 TQString styleStr = actionName.mid(13);
1864 KoParagCounter::Style style = (KoParagCounter::Style)(styleStr.toInt());
1866 if ( style == KoParagCounter::STYLE_NONE )
1867 c.setNumbering( KoParagCounter::NUM_NONE );
1869 c.setNumbering( KoParagCounter::NUM_LIST );
1870 c.setStyle( style );
1872 c.setSuffix( TQString() );
1879 KPrTextView *edit = m_canvas->currentTextObjectView();
1880 if ( edit && !edit->textObject()->hasSelection() ) {
1881 KoTextParag* parag = edit->cursor()->parag();
1882 if ( parag->prev() && !parag->prev()->counter() )
1883 c.setRestartCounter(
true);
1887 TQPtrList<KoTextFormatInterface> lst = m_canvas->applicableTextInterfaces();
1888 TQPtrListIterator<KoTextFormatInterface> it( lst );
1889 KMacroCommand* macroCmd = 0L;
1890 for ( ; it.current() ; ++it )
1892 KCommand *cmd = it.current()->setCounterCommand( c );
1896 macroCmd =
new KMacroCommand( i18n(
"Change List Type") );
1897 macroCmd->addCommand( cmd );
1901 m_pKPresenterDoc->addCommand( macroCmd );
1906void KPrView::textDepthPlus()
1908 m_canvas->setTextDepthPlus();
1911void KPrView::textDepthMinus()
1913 m_canvas->setTextDepthMinus();
1916void KPrView::textContentsToHeight()
1918 m_canvas->textContentsToHeight();
1921void KPrView::textObjectToContents()
1923 m_canvas->textObjectToContents();
1926void KPrView::penChosen()
1928 TQColor c = actionPenColor->color();
1929 if ( !m_canvas->currentTextObjectView() )
1931 KCommand * cmd( getPenCmd( i18n(
"Change Outline Color" ), KoPen(c),
1932 L_NORMAL, L_NORMAL, KoPenCmd::Color ) );
1934 m_pKPresenterDoc->addCommand( cmd );
1941 m_canvas->setTextColor( tbColor );
1945void KPrView::brushChosen()
1947 TQColor c = actionBrushColor->color();
1948 KPrTextView *edit = m_canvas->currentTextObjectView();
1952 KMacroCommand * macro= NULL;
1953 KCommand * cmd = NULL;
1954 TQBrush newBrush( c );
1956 cmd = m_canvas->activePage()->setBrush( newBrush, FT_BRUSH, TQColor(), TQColor(), BCT_PLAIN,
false,
1957 0, 0, KPrBrushCmd::BrushColor | KPrBrushCmd::BrushStyle |
1958 KPrBrushCmd::BrushGradientSelect );
1962 macro =
new KMacroCommand( i18n(
"Change Fill Color" ) );
1963 macro->addCommand( cmd );
1968 m_pKPresenterDoc->addCommand( macro );
1970 brush.setColor( c );
1975 m_canvas->setTextBackgroundColor( c );
1979void KPrView::extraAlignObjLeft()
1981 m_canvas->alignObjects( AT_LEFT );
1984void KPrView::extraAlignObjCenterH()
1986 m_canvas->alignObjects( AT_HCENTER );
1989void KPrView::extraAlignObjRight()
1991 m_canvas->alignObjects( AT_RIGHT );
1994void KPrView::extraAlignObjTop()
1996 m_canvas->alignObjects( AT_TOP );
1999void KPrView::extraAlignObjCenterV()
2001 m_canvas->alignObjects( AT_VCENTER );
2004void KPrView::extraAlignObjBottom()
2006 m_canvas->alignObjects( AT_BOTTOM );
2009void KPrView::extraLineBeginNormal()
2011 setExtraLineBegin(L_NORMAL);
2014void KPrView::extraLineBeginArrow()
2016 setExtraLineBegin(L_ARROW);
2019void KPrView::extraLineBeginRect()
2021 setExtraLineBegin(L_SQUARE);
2024void KPrView::extraLineBeginCircle()
2026 setExtraLineBegin(L_CIRCLE);
2029void KPrView::extraLineBeginLineArrow()
2031 setExtraLineBegin( L_LINE_ARROW );
2034void KPrView::extraLineBeginDimensionLine()
2036 setExtraLineBegin( L_DIMENSION_LINE );
2039void KPrView::extraLineBeginDoubleArrow()
2041 setExtraLineBegin( L_DOUBLE_ARROW );
2044void KPrView::extraLineBeginDoubleLineArrow()
2046 setExtraLineBegin( L_DOUBLE_LINE_ARROW );
2049void KPrView::setExtraLineBegin(LineEnd lb)
2051 KCommand * cmd( getPenCmd( i18n(
"Change Line Begin"), KoPen(),
2052 lb, L_NORMAL, KoPenCmd::BeginLine ) );
2054 kPresenterDoc()->addCommand( cmd );
2059void KPrView::extraLineEndNormal()
2061 setExtraLineEnd(L_NORMAL);
2064void KPrView::extraLineEndArrow()
2066 setExtraLineEnd(L_ARROW);
2069void KPrView::extraLineEndRect()
2071 setExtraLineEnd(L_SQUARE);
2074void KPrView::extraLineEndCircle()
2076 setExtraLineEnd(L_CIRCLE);
2079void KPrView::extraLineEndLineArrow()
2081 setExtraLineEnd( L_LINE_ARROW );
2084void KPrView::extraLineEndDimensionLine()
2086 setExtraLineEnd( L_DIMENSION_LINE );
2089void KPrView::extraLineEndDoubleArrow()
2091 setExtraLineEnd( L_DOUBLE_ARROW );
2094void KPrView::extraLineEndDoubleLineArrow()
2096 setExtraLineEnd( L_DOUBLE_LINE_ARROW );
2099void KPrView::setExtraLineEnd(LineEnd le)
2101 KCommand * cmd( getPenCmd( i18n(
"Change Line End"), KoPen(),
2102 L_NORMAL, le, KoPenCmd::EndLine ) );
2104 kPresenterDoc()->addCommand( cmd );
2109void KPrView::setExtraPenStyle( TQt::PenStyle style )
2112 tmpPen.setStyle( style );
2114 KCommand * cmd( getPenCmd( i18n(
"Change Outline Style"), tmpPen,
2115 L_NORMAL, L_NORMAL, KoPenCmd::Style ) );
2117 kPresenterDoc()->addCommand( cmd );
2119 pen.setStyle( style );
2122void KPrView::setExtraPenWidth(
double width )
2125 tmpPen.setPointWidth( width );
2126 KCommand * cmd( getPenCmd( i18n(
"Change Outline Width"), tmpPen,
2127 L_NORMAL, L_NORMAL, KoPenCmd::Width ) );
2130 kPresenterDoc()->addCommand( cmd );
2132 pen.setPointWidth( width );
2135void KPrView::newPageLayout(
const KoPageLayout &_layout )
2137 KoPageLayout oldLayout = m_pKPresenterDoc->pageLayout();
2138 KoUnit::Unit unit = m_pKPresenterDoc->unit();
2140 KPrPgLayoutCmd *pgLayoutCmd =
new KPrPgLayoutCmd( i18n(
"Set Page Layout" ), _layout, oldLayout, unit, unit,kPresenterDoc() );
2141 pgLayoutCmd->execute();
2142 kPresenterDoc()->addCommand( pgLayoutCmd );
2146void KPrView::updateRuler()
2149 TQRect r=m_canvas->activePage()->getZoomPageRect();
2150 getHRuler()->setFrameStartEnd( r.left(), r.right() );
2151 getVRuler()->setFrameStartEnd( r.top(), r.bottom() );
2154void KPrView::createGUI()
2156 splitter =
new TQSplitter(
this );
2158 if ( !m_pKPresenterDoc->isEmbedded()
2159 && !m_pKPresenterDoc->isSingleViewMode() )
2161 sidebar =
new KPrSideBar( splitter, m_pKPresenterDoc,
this );
2162 connect( sidebar, TQ_SIGNAL( movePage(
int,
int ) ),
2163 m_pKPresenterDoc, TQ_SLOT( movePage(
int,
int ) ) );
2164 connect( sidebar, TQ_SIGNAL( selectPage(
int,
bool ) ),
2165 m_pKPresenterDoc, TQ_SLOT( selectPage(
int,
bool ) ) );
2166 connect( sidebar, TQ_SIGNAL( showPage(
int ) ),
2167 this, TQ_SLOT( skipToPage(
int ) ) );
2171 splitter->setResizeMode( sidebar, TQSplitter::KeepSize );
2174 TQSplitter *splitterVertical =
new TQSplitter( TQt::Vertical, splitter );
2177 pageBase =
new PageBase( splitterVertical,
this );
2178 pageBase->setSizePolicy( TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Expanding ) );
2180 m_canvas=
new KPrCanvas( pageBase,
"Canvas",
this );
2182 TQObject::connect( m_canvas, TQ_SIGNAL( fontChanged(
const TQFont & ) ),
2183 this, TQ_SLOT( fontChanged(
const TQFont & ) ) );
2184 TQObject::connect( m_canvas, TQ_SIGNAL( colorChanged(
const TQColor & ) ),
2185 this, TQ_SLOT( colorChanged(
const TQColor & ) ) );
2186 TQObject::connect( m_canvas, TQ_SIGNAL( alignChanged(
int ) ),
2187 this, TQ_SLOT( alignChanged(
int ) ) );
2188 TQObject::connect( m_canvas, TQ_SIGNAL( objectSelectedChanged()),
2189 this, TQ_SLOT( objectSelectedChanged()));
2190 TQObject::connect( m_canvas, TQ_SIGNAL( sigMouseWheelEvent( TQWheelEvent* ) ),
2191 this, TQ_SLOT( getPageMouseWheelEvent( TQWheelEvent* ) ) );
2195 if ( !m_pKPresenterDoc->isEmbedded()
2196 && !m_pKPresenterDoc->isSingleViewMode() )
2198 notebar =
new KPrNoteBar( splitterVertical,
this );
2208 if ( m_pKPresenterDoc && m_canvas )
2210 TQObject::connect( m_canvas, TQ_SIGNAL( stopAutomaticPresentation() ),
this, TQ_SLOT( stopAutomaticPresentation() ) );
2211 TQObject::connect( m_canvas, TQ_SIGNAL( restartPresentation() ),
this, TQ_SLOT( restartPresentation() ) );
2213 connect( getVRuler(), TQ_SIGNAL( addGuide(
const TQPoint &,
bool,
int ) ),
2214 &( m_canvas->guideLines() ), TQ_SLOT( addGuide(
const TQPoint &,
bool,
int ) ) );
2215 connect( getVRuler(), TQ_SIGNAL( moveGuide(
const TQPoint &,
bool,
int ) ),
2216 &( m_canvas->guideLines() ), TQ_SLOT( moveGuide(
const TQPoint &,
bool,
int ) ) );
2217 connect( getHRuler(), TQ_SIGNAL( addGuide(
const TQPoint &,
bool,
int ) ),
2218 &( m_canvas->guideLines() ), TQ_SLOT( addGuide(
const TQPoint &,
bool,
int ) ) );
2219 connect( getHRuler(), TQ_SIGNAL( moveGuide(
const TQPoint &,
bool,
int ) ),
2220 &( m_canvas->guideLines() ), TQ_SLOT( moveGuide(
const TQPoint &,
bool,
int ) ) );
2221 connect( &( m_canvas->guideLines() ), TQ_SIGNAL( moveGuides(
bool ) ),
2222 m_canvas, TQ_SLOT( setPaintGuides(
bool ) ) );
2223 connect( &( m_canvas->guideLines() ), TQ_SIGNAL( paintGuides(
bool ) ),
2224 m_canvas, TQ_SLOT( setPaintGuides(
bool ) ) );
2225 connect( &( m_canvas->guideLines() ), TQ_SIGNAL( guideLinesChanged( KoView * ) ),
2226 m_pKPresenterDoc, TQ_SLOT( slotGuideLinesChanged( KoView * ) ) );
2227 m_canvas->guideLines().setGuideLines( m_pKPresenterDoc->horizontalGuideLines(), m_pKPresenterDoc->verticalGuideLines() );
2232 sidebar->outline()->setCurrentItem( sidebar->outline()->firstChild() );
2233 sidebar->outline()->setSelected( sidebar->outline()->firstChild(),
true );
2234 TDEConfig *config=TDEGlobal::config();
2235 config->setGroup(
"Global");
2236 if(!config->readBoolEntry(
"Sidebar",
true)) {
2238 actionViewShowSideBar->setChecked(
false);
2240 else actionViewShowSideBar->setChecked(
true);
2245 TDEConfig *config=TDEGlobal::config();
2246 config->setGroup(
"Global");
2247 if(!config->readBoolEntry(
"Notebar",
true)) {
2249 actionViewShowNoteBar->setChecked(
false);
2251 else actionViewShowNoteBar->setChecked(
true);
2253 TQTimer::singleShot( 0,
this, TQ_SLOT( initialLayoutOfSplitter() ) );
2255 KPrPage *initPage=m_pKPresenterDoc->initialActivePage();
2257 m_pKPresenterDoc->pageList().at( 0 );
2258 skipToPage( m_pKPresenterDoc->pageList().findRef( initPage ) );
2261void KPrView::initGui()
2263 tbColor = TQt::black;
2264 actionTextColor->setCurrentColor( TQt::black );
2265 actionBrushColor->setCurrentColor( TQt::white );
2266 actionPenColor->setCurrentColor( TQt::black );
2267 updateSideBarMenu();
2268 objectSelectedChanged();
2269 refreshPageButton();
2271 KStatusBar * sb = statusBar();
2274 showZoom( zoomHandler()->zoom() );
2275 updateHeaderFooterButton();
2276 updateDisplayObjectMasterPageButton();
2277 updateDisplayBackgroundButton();
2279 actionAllowAutoFormat->setChecked( m_pKPresenterDoc->allowAutoFormat() );
2280 actionViewFormattingChars->setChecked( m_pKPresenterDoc->viewFormattingChars() );
2282 updateGuideLineButton();
2286 m_pKPresenterDoc->updateZoomRuler();
2288 actionAllowBgSpellCheck->setChecked( m_pKPresenterDoc->backgroundSpellCheckEnabled());
2289 updateDirectCursorButton();
2290 m_pKPresenterDoc->updatePresentationButton();
2293void KPrView::updateDisplayObjectMasterPageButton()
2295 actionDisplayObjectFromMasterPage->setChecked( !m_canvas->activePage()->displayObjectFromMasterPage());
2298void KPrView::updateDisplayBackgroundButton()
2300 actionDisplayBackgroundPage->setChecked( !m_canvas->activePage()->displayBackground() );
2303void KPrView::updateHeaderFooterButton()
2305 m_actionExtraHeader->setChecked( m_canvas->activePage()->hasHeader() );
2306 m_actionExtraFooter->setChecked( m_canvas->activePage()->hasFooter() );
2309void KPrView::guiActivateEvent( KParts::GUIActivateEvent *ev )
2311 if ( ev->activated() )
2314 KoView::guiActivateEvent( ev );
2317void KPrView::setupActions()
2319 actionEditCut = KStdAction::cut(
this, TQ_SLOT( editCut() ), actionCollection(),
"edit_cut" );
2320 actionEditCopy = KStdAction::copy(
this, TQ_SLOT( editCopy() ), actionCollection(),
"edit_copy" );
2321 actionEditPaste = KStdAction::paste(
this, TQ_SLOT( editPaste() ), actionCollection(),
"edit_paste" );
2322 connect( m_pKPresenterDoc, TQ_SIGNAL( enablePaste(
bool ) ),
2323 actionEditPaste, TQ_SLOT( setEnabled(
bool ) ) );
2324 m_pKPresenterDoc->clipboardDataChanged();
2326 actionEditDelete =
new TDEAction( i18n(
"&Delete" ),
"edit-delete", CTRL + TQt::Key_Delete,
2327 this, TQ_SLOT( editDelete() ),
2328 actionCollection(),
"edit_delete" );
2329 actionEditSelectAll = KStdAction::selectAll(
this, TQ_SLOT( editSelectAll() ), actionCollection(),
"edit_selectall" );
2330 actionEditDeSelectAll= KStdAction::deselect(
this, TQ_SLOT( editDeSelectAll()), actionCollection(),
"edit_deselectall");
2331 actionEditCopyPage =
new TDEAction( i18n(
"Copy Slide" ),
"edit-copy",
2332 0,
this, TQ_SLOT( editCopyPage() ),
2333 actionCollection(),
"edit_copypage" );
2334 actionEditDuplicatePage =
new TDEAction( i18n(
"Duplicate Slide" ),
"newslide",
2335 0,
this, TQ_SLOT( editDuplicatePage() ),
2336 actionCollection(),
"edit_duplicatepage" );
2337 actionEditDelPage =
new TDEAction( i18n(
"Delete Slide" ),
"delslide", 0,
2338 this, TQ_SLOT( editDelPage() ),
2339 actionCollection(),
"edit_delpage" );
2341 actionEditFind=KStdAction::find(
this, TQ_SLOT( editFind() ), actionCollection(),
"edit_find" );
2342 actionEditFindNext = KStdAction::findNext(
this, TQ_SLOT( editFindNext() ), actionCollection(),
"edit_findnext" );
2343 actionEditFindPrevious = KStdAction::findPrev(
this, TQ_SLOT( editFindPrevious() ), actionCollection(),
"edit_findprevious" );
2344 actionEditReplace=KStdAction::replace(
this, TQ_SLOT( editReplace() ), actionCollection(),
"edit_replace" );
2348 if ( !m_pKPresenterDoc->isEmbedded() )
2350 actionViewShowSideBar =
new TDEToggleAction( i18n(
"Show Sidebar"), 0,
2351 this, TQ_SLOT( viewShowSideBar() ),
2352 actionCollection(),
"view_showsidebar" );
2353 actionViewShowSideBar->setCheckedState(i18n(
"Hide Sidebar"));
2355 actionViewShowNoteBar =
new TDEToggleAction( i18n(
"Show Notebar"), 0,
2356 this, TQ_SLOT( viewShowNoteBar() ),
2357 actionCollection(),
"view_shownotebar" );
2358 actionViewShowNoteBar->setCheckedState(i18n(
"Hide Notebar"));
2361 actionViewFormattingChars =
new TDEToggleAction( i18n(
"&Formatting Characters" ), 0,
2362 this, TQ_SLOT( slotViewFormattingChars() ),
2363 actionCollection(),
"view_formattingchars" );
2364 actionViewFormattingChars->setToolTip( i18n(
"Toggle the display of non-printing characters." ) );
2365 actionViewFormattingChars->setWhatsThis( i18n(
"Toggle the display of non-printing characters.<br><br>When this is enabled, KPresenter shows you tabs, spaces, carriage returns and other non-printing characters." ) );
2367 actionViewSlideMaster =
new TDEToggleAction( i18n(
"Slide &Master" ), 0,
2368 this, TQ_SLOT( viewSlideMaster() ),
2369 actionCollection(),
"view_master" );
2371 actionViewShowGuideLine=
new TDEToggleAction( i18n(
"Guide Lines" ), 0,
2372 this, TQ_SLOT( viewGuideLines() ),
2373 actionCollection(),
"view_guidelines" );
2375 actionViewShowGrid =
new TDEToggleAction( i18n(
"Show &Grid" ), 0,
2376 this, TQ_SLOT( viewGrid() ),
2377 actionCollection(),
"view_grid" );
2378 actionViewShowGrid->setCheckedState(i18n(
"Hide &Grid"));
2380 actionViewSnapToGrid=
new TDEToggleAction( i18n(
"Snap to Grid" ), 0,
2381 this, TQ_SLOT(viewSnapToGrid() ),
2382 actionCollection(),
"view_snaptogrid" );
2386 actionInsertPage =
new TDEAction( i18n(
"&Slide..." ),
"slide", TQt::Key_F2,
2387 this, TQ_SLOT( insertPage() ),
2388 actionCollection(),
"insert_page" );
2390 new TDEAction( i18n(
"Insert &Slide..." ),
"newslide", 0,
2391 this, TQ_SLOT( insertPage() ),
2392 actionCollection(),
"insert_page_popup" );
2394 actionInsertPicture =
new TDEAction( i18n(
"P&icture..." ),
"frame_image", TQt::SHIFT+TQt::Key_F5,
2395 this, TQ_SLOT( insertPicture() ),
2396 actionCollection(),
"insert_picture" );
2400 actionToolsMouse =
new TDEToggleAction( i18n(
"Select" ),
"select", 0,
2401 this, TQ_SLOT( toolsMouse() ),
2402 actionCollection(),
"tools_mouse" );
2403 actionToolsMouse->setExclusiveGroup(
"tools" );
2404 actionToolsMouse->setChecked(
true );
2406 actionToolsRotate =
new TDEToggleAction( i18n(
"&Rotate" ),
"rotate", 0,
2407 this, TQ_SLOT( toolsRotate() ),
2408 actionCollection(),
"tools_rotate" );
2409 actionToolsRotate->setExclusiveGroup(
"tools" );
2411 actionToolsZoom =
new TDEToggleAction( i18n(
"&Zoom" ),
"viewmag", 0,
2412 this, TQ_SLOT( toolsZoom() ),
2413 actionCollection(),
"tools_zoom" );
2414 actionToolsZoom->setExclusiveGroup(
"tools" );
2416 actionToolsShapePopup =
new TDEActionMenu( i18n(
"&Shape" ),
"rectangle",
2417 actionCollection(),
"tools_shapepopup" );
2418 actionToolsShapePopup->setDelayed(
true);
2419 connect(actionToolsShapePopup, TQ_SIGNAL(activated()),
this, TQ_SLOT(toolsShapePopup()));
2421 actionToolsRectangle =
new TDEToggleAction( i18n(
"&Rectangle" ),
"rectangle",
2422 0,
this, TQ_SLOT( toolsRectangle() ),
2423 actionCollection(),
"tools_rectangle" );
2424 actionToolsRectangle->setExclusiveGroup(
"tools" );
2426 actionToolsCircleOrEllipse =
new TDEToggleAction( i18n(
"&Circle/Ellipse" ),
"circle",
2427 0,
this, TQ_SLOT( toolsCircleOrEllipse() ),
2428 actionCollection(),
"tools_circle" );
2429 actionToolsCircleOrEllipse->setExclusiveGroup(
"tools" );
2431 actionToolsPie =
new TDEToggleAction( i18n(
"&Pie/Arc/Chord" ),
"pie", 0,
2432 this, TQ_SLOT( toolsPie() ),
2433 actionCollection(),
"tools_pie" );
2434 actionToolsPie->setExclusiveGroup(
"tools" );
2436 actionToolsText =
new TDEToggleAction( i18n(
"&Text" ),
"frame_text", TQt::Key_F10,
2437 this, TQ_SLOT( toolsText() ),
2438 actionCollection(),
"tools_text" );
2439 actionToolsText->setExclusiveGroup(
"tools" );
2441 actionToolsAutoform =
new TDEToggleAction( i18n(
"&Arrows && Connections" ),
"autoform",
2442 0,
this, TQ_SLOT( toolsAutoform() ),
2443 actionCollection(),
"tools_autoform" );
2444 actionToolsAutoform->setExclusiveGroup(
"tools" );
2446 actionToolsDiagramm =
new TDEToggleAction( i18n(
"&Chart" ),
"frame_chart", 0,
2447 this, TQ_SLOT( toolsDiagramm() ),
2448 actionCollection(),
"tools_diagramm" );
2449 actionToolsDiagramm->setExclusiveGroup(
"tools" );
2451 actionToolsTable =
new TDEToggleAction( i18n(
"Ta&ble"),
"frame_spreadsheet", TQt::Key_F5 ,
2452 this, TQ_SLOT( toolsTable() ),
2453 actionCollection(),
"tools_table" );
2454 actionToolsTable->setExclusiveGroup(
"tools" );
2456 actionToolsObject =
new KoPartSelectAction( i18n(
"&Object" ),
"frame_query",
2457 this, TQ_SLOT( toolsObject() ),
2458 actionCollection(),
"tools_object" );
2460 actionToolsLinePopup =
new TDEActionMenu( i18n(
"&Line" ),
"line",
2461 actionCollection(),
"tools_linepopup" );
2462 actionToolsLinePopup->setDelayed(
true);
2463 connect(actionToolsLinePopup, TQ_SIGNAL(activated()),
this, TQ_SLOT(toolsLinePopup()));
2465 actionToolsLine =
new TDEToggleAction( i18n(
"&Line" ),
"line", 0,
2466 this, TQ_SLOT( toolsLine() ),
2467 actionCollection(),
"tools_line" );
2468 actionToolsLine->setExclusiveGroup(
"tools" );
2470 actionToolsFreehand =
new TDEToggleAction( i18n(
"&Freehand" ),
"freehand", 0,
2471 this, TQ_SLOT( toolsFreehand() ),
2472 actionCollection(),
"tools_freehand" );
2473 actionToolsFreehand->setExclusiveGroup(
"tools" );
2475 actionToolsPolyline =
new TDEToggleAction( i18n(
"Po&lyline" ),
"polyline", 0,
2476 this, TQ_SLOT( toolsPolyline() ),
2477 actionCollection(),
"tools_polyline" );
2478 actionToolsPolyline->setExclusiveGroup(
"tools" );
2480 actionToolsQuadricBezierCurve =
new TDEToggleAction( i18n(
"&Quadric Bezier Curve" ),
"quadricbeziercurve", 0,
2481 this, TQ_SLOT( toolsQuadricBezierCurve() ),
2482 actionCollection(),
"tools_quadricbeziercurve" );
2483 actionToolsQuadricBezierCurve->setExclusiveGroup(
"tools" );
2485 actionToolsCubicBezierCurve =
new TDEToggleAction( i18n(
"C&ubic Bezier Curve" ),
"cubicbeziercurve", 0,
2486 this, TQ_SLOT( toolsCubicBezierCurve() ),
2487 actionCollection(),
"tools_cubicbeziercurve" );
2488 actionToolsCubicBezierCurve->setExclusiveGroup(
"tools" );
2490 actionToolsConvexOrConcavePolygon =
new TDEToggleAction( i18n(
"Co&nvex/Concave Polygon" ),
"polygon", 0,
2491 this, TQ_SLOT( toolsConvexOrConcavePolygon() ),
2492 actionCollection(),
"tools_polygon" );
2493 actionToolsConvexOrConcavePolygon->setExclusiveGroup(
"tools" );
2496 actionToolsClosedLinePopup =
new TDEActionMenu( i18n(
"&Closed Line" ),
"closed_freehand",
2497 actionCollection(),
"tools_closed_linepopup" );
2498 actionToolsClosedLinePopup->setDelayed(
true);
2499 connect(actionToolsClosedLinePopup, TQ_SIGNAL(activated()),
this, TQ_SLOT(toolsClosedLinePopup()));
2501 actionToolsClosedFreehand =
new TDEToggleAction( i18n(
"Closed &Freehand" ),
"closed_freehand", 0,
2502 this, TQ_SLOT( toolsClosedFreehand() ),
2503 actionCollection(),
"tools_closed_freehand" );
2504 actionToolsClosedFreehand->setExclusiveGroup(
"tools" );
2507 actionToolsClosedPolyline =
new TDEToggleAction( i18n(
"Closed Po&lyline" ),
"closed_polyline", 0,
2508 this, TQ_SLOT( toolsClosedPolyline() ),
2509 actionCollection(),
"tools_closed_polyline" );
2510 actionToolsClosedPolyline->setExclusiveGroup(
"tools" );
2513 actionToolsClosedQuadricBezierCurve =
new TDEToggleAction( i18n(
"Closed &Quadric Bezier Curve" ),
"closed_quadricbeziercurve", 0,
2514 this, TQ_SLOT( toolsClosedQuadricBezierCurve() ),
2515 actionCollection(),
"tools_closed_quadricbeziercurve" );
2516 actionToolsClosedQuadricBezierCurve->setExclusiveGroup(
"tools" );
2519 actionToolsClosedCubicBezierCurve =
new TDEToggleAction( i18n(
"Closed C&ubic Bezier Curve" ),
"closed_cubicbeziercurve", 0,
2520 this, TQ_SLOT( toolsClosedCubicBezierCurve() ),
2521 actionCollection(),
"tools_closed_cubicbeziercurve" );
2522 actionToolsClosedCubicBezierCurve->setExclusiveGroup(
"tools" );
2526 actionTextFont =
new TDEAction( i18n(
"&Font..." ), 0,
this, TQ_SLOT( mtextFont() ),
2527 actionCollection(),
"text_font" );
2529 actionTextFontSize =
new TDEFontSizeAction( i18n(
"Font Size" ), 0, actionCollection(),
"text_fontsize" );
2530 connect( actionTextFontSize, TQ_SIGNAL( fontSizeChanged(
int ) ),
2531 this, TQ_SLOT( sizeSelected(
int ) ) );
2533#ifdef KFONTACTION_HAS_CRITERIA_ARG
2534 actionTextFontFamily =
new TDEFontAction( TDEFontChooser::SmoothScalableFonts,
2535 i18n(
"Font Family" ), 0,
2536 actionCollection(),
"text_fontfamily" );
2538 actionTextFontFamily =
new TDEFontAction( i18n(
"Font Family" ), 0,
2539 actionCollection(),
"text_fontfamily" );
2541 connect( actionTextFontFamily , TQ_SIGNAL( activated(
const TQString & ) ),
2542 this, TQ_SLOT( fontSelected(
const TQString & ) ) );
2544 actionTextBold =
new TDEToggleAction( i18n(
"&Bold" ),
"format-text-bold", CTRL + TQt::Key_B,
2545 this, TQ_SLOT( textBold() ),
2546 actionCollection(),
"format-text-bold" );
2548 actionTextItalic =
new TDEToggleAction( i18n(
"&Italic" ),
"format-text-italic", CTRL + TQt::Key_I,
2549 this, TQ_SLOT( textItalic() ),
2550 actionCollection(),
"format-text-italic" );
2552 actionTextUnderline =
new TDEToggleAction( i18n(
"&Underline" ),
"format-text-underline", CTRL + TQt::Key_U,
2553 this, TQ_SLOT( textUnderline() ),
2554 actionCollection(),
"text_underline" );
2556 actionFormatStrikeOut =
new TDEToggleAction( i18n(
"&Strike Out" ),
"format-text-strikethrough", 0 ,
2557 this, TQ_SLOT( textStrikeOut() ),
2558 actionCollection(),
"format_strike" );
2560 actionTextColor =
new TTDESelectColorAction( i18n(
"&Color..." ), TTDESelectColorAction::TextColor,
2561 actionCollection(),
"text_color" ,
true);
2562 connect( actionTextColor, TQ_SIGNAL( activated() ), TQ_SLOT( textColor() ) );
2563 actionTextColor->setDefaultColor(TQColor());
2566 actionTextAlignLeft =
new TDEToggleAction( i18n(
"Align &Left" ),
"format-text-direction-ltr", ALT + TQt::Key_L,
2567 this, TQ_SLOT( textAlignLeft() ),
2568 actionCollection(),
"text_alignleft" );
2569 actionTextAlignLeft->setExclusiveGroup(
"align" );
2570 actionTextAlignLeft->setChecked(
true );
2572 actionTextAlignCenter =
new TDEToggleAction( i18n(
"Align &Center" ),
"text_center", ALT + TQt::Key_C,
2573 this, TQ_SLOT( textAlignCenter() ),
2574 actionCollection(),
"text_aligncenter" );
2575 actionTextAlignCenter->setExclusiveGroup(
"align" );
2577 actionTextAlignRight =
new TDEToggleAction( i18n(
"Align &Right" ),
"format-text-direction-rtl", ALT + TQt::Key_R,
2578 this, TQ_SLOT( textAlignRight() ),
2579 actionCollection(),
"text_alignright" );
2580 actionTextAlignRight->setExclusiveGroup(
"align" );
2582 actionTextAlignBlock =
new TDEToggleAction( i18n(
"Align &Block" ),
"text_block", CTRL + TQt::Key_J,
2583 this, TQ_SLOT( textAlignBlock() ),
2584 actionCollection(),
"text_alignblock" );
2585 actionTextAlignBlock->setExclusiveGroup(
"align" );
2588 actionFormatNumber =
new TDEActionMenu( i18n(
"Number" ),
"enumList", actionCollection(),
"format_number" );
2589 actionFormatNumber->setDelayed(
false );
2590 actionFormatBullet =
new TDEActionMenu( i18n(
"Bullet" ),
"unsortedList", actionCollection(),
"format_bullet" );
2591 actionFormatBullet->setDelayed(
false );
2592 TQPtrList<KoCounterStyleWidget::StyleRepresenter> stylesList;
2593 KoCounterStyleWidget::makeCounterRepresenterList( stylesList );
2594 TQPtrListIterator<KoCounterStyleWidget::StyleRepresenter> styleIt( stylesList );
2595 for ( ; styleIt.current() ; ++styleIt ) {
2598 TDEToggleAction* act =
new TDEToggleAction( styleIt.current()->name(),
2599 0,
this, TQ_SLOT( slotCounterStyleSelected() ),
2600 actionCollection(), TQString(
"counterstyle_%1").arg( styleIt.current()->style() ).latin1() );
2601 act->setExclusiveGroup(
"counterstyle" );
2603 if ( styleIt.current()->style() == KoParagCounter::STYLE_NONE ) {
2604 actionFormatBullet->insert( act );
2605 actionFormatNumber->insert( act );
2606 }
else if ( styleIt.current()->isBullet() )
2607 actionFormatBullet->insert( act );
2609 actionFormatNumber->insert( act );
2611 actionTextDepthPlus =
new TDEAction( i18n(
"&Increase Depth" ), TQApplication::reverseLayout() ?
"format_decreaseindent" :
"format_increaseindent",
2612 CTRL + TQt::Key_Plus, this, TQ_SLOT( textDepthPlus() ),
2613 actionCollection(),
"text_depthPlus" );
2615 actionTextDepthMinus =
new TDEAction( i18n(
"&Decrease Depth" ), TQApplication::reverseLayout() ?
"format_increaseindent" :
"format_decreaseindent",
2616 CTRL + TQt::Key_Minus, this, TQ_SLOT( textDepthMinus() ),
2617 actionCollection(),
"text_depthMinus" );
2619 actionTextExtentCont2Height =
new TDEAction( i18n(
"Extend Contents to Object &Height" ), 0,
2620 this, TQ_SLOT( textContentsToHeight() ),
2621 actionCollection(),
"text_con2hei" );
2623 actionTextExtendObj2Cont =
new TDEAction( i18n(
"&Extend Object to Fit Contents" ), 0,
2624 this, TQ_SLOT( textObjectToContents() ),
2625 actionCollection(),
"text_obj2cont" );
2627 actionTextInsertPageNum =
new TDEAction( i18n(
"&Insert Slide Number" ),
"pgnum", 0,
2628 this, TQ_SLOT( textInsertPageNum() ),
2629 actionCollection(),
"text_inspgnum" );
2633 actionExtraProperties =
new TDEAction( i18n(
"&Properties" ),
"penbrush", 0,
2634 this, TQ_SLOT( extraProperties() ),
2635 actionCollection(),
"extra_properties" );
2637 actionExtraArrangePopup =
new TDEActionMenu( i18n(
"Arra&nge Objects" ),
"arrange",
2638 actionCollection(),
"extra_arrangepopup" );
2639 actionExtraArrangePopup->setDelayed(
false );
2641 actionExtraRaise =
new TDEAction( i18n(
"Ra&ise Objects" ),
"raise",
2642 CTRL+TQt::SHIFT+TQt::Key_R,
this, TQ_SLOT( extraRaise() ),
2643 actionCollection(),
"extra_raise" );
2645 actionExtraLower =
new TDEAction( i18n(
"&Lower Objects" ),
"lower", CTRL +TQt::SHIFT+ TQt::Key_L,
2646 this, TQ_SLOT( extraLower() ),
2647 actionCollection(),
"extra_lower" );
2649 actionExtraBringForward=
new TDEAction( i18n(
"Bring to Front" ),
"bring_forward",
2650 0,
this, TQ_SLOT( extraBringForward() ),
2651 actionCollection(),
"extra_bring_forward" );
2653 actionExtraSendBackward=
new TDEAction( i18n(
"Send to Back" ),
"send_backward",
2654 0,
this, TQ_SLOT( extraSendBackward() ),
2655 actionCollection(),
"extra_send_backward" );
2659 actionExtraRotate =
new TDEAction( i18n(
"R&otate Objects..." ),
"object-rotate-right", 0,
2660 this, TQ_SLOT( extraRotate() ),
2661 actionCollection(),
"extra_rotate" );
2663 actionExtraShadow =
new TDEAction( i18n(
"&Shadow Objects..." ),
"shadow", 0,
2664 this, TQ_SLOT( extraShadow() ),
2665 actionCollection(),
"extra_shadow" );
2667 actionExtraAlignObjLeft =
new TDEAction( i18n(
"Align &Left" ),
"aoleft", 0,
2668 this, TQ_SLOT( extraAlignObjLeft() ),
2669 actionCollection(),
"extra_alignleft" );
2671 actionExtraAlignObjCenterH =
new TDEAction( i18n(
"Align Center (&horizontally)" ),
2673 this, TQ_SLOT( extraAlignObjCenterH() ),
2674 actionCollection(),
"extra_aligncenterh" );
2676 actionExtraAlignObjRight =
new TDEAction( i18n(
"Align &Right" ),
"aoright", 0,
2677 this, TQ_SLOT( extraAlignObjRight() ),
2678 actionCollection(),
"extra_alignright" );
2680 actionExtraAlignObjTop =
new TDEAction( i18n(
"Align &Top" ),
"aotop", 0,
2681 this, TQ_SLOT( extraAlignObjTop() ),
2682 actionCollection(),
"extra_aligntop" );
2684 actionExtraAlignObjCenterV =
new TDEAction( i18n(
"Align Center (&vertically)" ),
2686 this, TQ_SLOT( extraAlignObjCenterV() ),
2687 actionCollection(),
"extra_aligncenterv" );
2689 actionExtraAlignObjBottom =
new TDEAction( i18n(
"Align &Bottom" ),
"aobottom", 0,
2690 this, TQ_SLOT( extraAlignObjBottom() ),
2691 actionCollection(),
"extra_alignbottom" );
2694 actionExtraBackground =
new TDEAction( i18n(
"Slide Bac&kground..." ),
"background", 0,
2695 this, TQ_SLOT( extraBackground() ),
2696 actionCollection(),
"extra_background" );
2698 actionExtraLayout =
new TDEAction( i18n(
"Page &Layout..." ), 0,
2699 this, TQ_SLOT( extraLayout() ),
2700 actionCollection(),
"extra_layout" );
2702 m_actionExtraHeader =
new TDEToggleAction( i18n(
"Enable Document &Header" ), 0,
2703 this, TQ_SLOT( viewHeader() ),
2704 actionCollection(),
"extra_header" );
2705 m_actionExtraHeader->setCheckedState( i18n(
"Disable Document &Header" ) );
2706 m_actionExtraHeader->setToolTip( i18n(
"Shows and hides header display for the current slide." ) );
2708 m_actionExtraFooter =
new TDEToggleAction( i18n(
"Enable Document Foo&ter" ), 0,
2709 this, TQ_SLOT( viewFooter() ),
2710 actionCollection(),
"extra_footer" );
2711 m_actionExtraFooter->setCheckedState( i18n(
"Disable Document Foo&ter" ) );
2712 m_actionExtraFooter->setToolTip( i18n(
"Shows and hides footer display for the current slide." ) );
2714 actionExtraConfigure =
new TDEAction( i18n(
"Configure KPresenter..." ),
2716 this, TQ_SLOT( extraConfigure() ),
2717 actionCollection(),
"extra_configure" );
2719 actionExtraWebPres =
new TDEAction( i18n(
"Create &HTML Slideshow..." ),
2721 this, TQ_SLOT( extraWebPres() ),
2722 actionCollection(),
"extra_webpres" );
2724 actionExtraMSPres =
new TDEAction( i18n(
"Create Memor&y Stick Slideshow..." ),
2725 0,
this, TQ_SLOT( extraMSPres() ),
2726 actionCollection(),
"extra_mspres" );
2728 actionExtraCreateTemplate =
new TDEAction( i18n(
"Template Manager" ), 0,
2729 this, TQ_SLOT( extraCreateTemplate() ),
2730 actionCollection(),
"extra_template" );
2732 actionExtraDefaultTemplate =
new TDEAction( i18n(
"Use Current Slide as Default Template" ), 0,
2733 this, TQ_SLOT( extraDefaultTemplate() ),
2734 actionCollection(),
"extra_defaulttemplate" );
2736 actionExtraAlignObjsPopup =
new TDEActionMenu( i18n(
"Align O&bjects"),
"alignobjs",
2737 actionCollection(),
"extra_alignobjs" );
2738 actionExtraAlignObjsPopup->setDelayed(
false );
2740 actionExtraLineBegin =
new TDEAction( i18n(
"Line Begin"),
"line_begin", 0,
2741 this, TQ_SLOT( extraLineBegin() ),
2742 actionCollection(),
"extra_linebegin" );
2744 actionExtraLineEnd =
new TDEAction( i18n(
"Line End"),
"line_end", 0,
2745 this, TQ_SLOT( extraLineEnd() ),
2746 actionCollection(),
"extra_lineend" );
2748 actionExtraPenStyle =
new KoLineStyleAction( i18n(
"Outline Style"),
"pen_style",
2749 this, TQ_SLOT( extraPenStyle(
int) ),
2750 actionCollection(),
"extra_penstyle" );
2751 actionExtraPenStyle->setShowCurrentSelection(
false);
2753 actionExtraPenWidth =
new KoLineWidthAction( i18n(
"Outline Width"),
"pen_width",
2754 this, TQ_SLOT( extraPenWidth(
double) ),
2755 actionCollection(),
"extra_penwidth" );
2756 actionExtraPenWidth->setUnit( kPresenterDoc()->unit() );
2757 actionExtraPenWidth->setShowCurrentSelection(
false);
2758 connect( kPresenterDoc(), TQ_SIGNAL( unitChanged( KoUnit::Unit ) ),
2759 actionExtraPenWidth, TQ_SLOT( setUnit( KoUnit::Unit ) ) );
2761 actionExtraGroup =
new TDEAction( i18n(
"&Group Objects" ),
"group",
2762 TQKeySequence(
"Ctrl+G" ),
2763 this, TQ_SLOT( extraGroup() ),
2764 actionCollection(),
"extra_group" );
2766 actionExtraUnGroup =
new TDEAction( i18n(
"&Ungroup Objects" ),
"ungroup",
2767 TQKeySequence(
"Ctrl+Shift+G" ),
2768 this, TQ_SLOT( extraUnGroup() ),
2769 actionCollection(),
"extra_ungroup" );
2773 actionScreenConfigPages =
new TDEAction( i18n(
"&Configure Slide Show..." ),
2775 this, TQ_SLOT( screenConfigPages() ),
2776 actionCollection(),
"screen_configpages" );
2778 actionScreenAssignEffect =
new TDEAction( i18n(
"Edit &Object Effect..." ),
2780 this, TQ_SLOT( screenAssignEffect() ),
2781 actionCollection(),
"screen_assigneffect");
2783 actionScreenTransEffect =
new TDEAction( i18n(
"Edit Slide &Transition..." ),
2785 this, TQ_SLOT( screenTransEffect() ),
2786 actionCollection(),
"screen_transeffect");
2789 actionScreenStart =
new TDEAction( i18n(
"&Start" ),
2790 "2rightarrow", TQt::Key_F12,
2791 this, TQ_SLOT( screenStart() ),
2792 actionCollection(),
"screen_start" );
2794 actionScreenStartFromFirst =
new TDEAction( i18n(
"Start From &First Slide" ),
2796 this, TQ_SLOT( screenStartFromFirst() ),
2797 actionCollection(),
"screen_startfromfirst" );
2799 actionScreenFirst =
new TDEAction( i18n(
"&Go to Start" ),
2801 this, TQ_SLOT( screenFirst() ),
2802 actionCollection(),
"screen_first" );
2804 actionScreenPrev =
new TDEAction( i18n(
"&Previous Slide" ),
2805 "back", TQt::Key_Prior,
2806 this, TQ_SLOT( screenPrev() ),
2807 actionCollection(),
"screen_prev" );
2809 actionScreenNext =
new TDEAction( i18n(
"&Next Slide" ),
2810 "forward", TQt::Key_Next,
2811 this, TQ_SLOT( screenNext() ),
2812 actionCollection(),
"screen_next" );
2814 actionScreenLast =
new TDEAction( i18n(
"Go to &End" ),
2816 this, TQ_SLOT( screenLast() ),
2817 actionCollection(),
"screen_last" );
2819 actionScreenSkip =
new TDEAction( i18n(
"Goto &Slide..." ),
2821 this, TQ_SLOT( screenSkip() ),
2822 actionCollection(),
"screen_skip" );
2826 actionBrushColor =
new TTDESelectColorAction( i18n(
"Fill Color..." ), TTDESelectColorAction::FillColor,
2827 actionCollection(),
"brush_color" ,
true);
2828 connect( actionBrushColor, TQ_SIGNAL( activated() ), TQ_SLOT( brushChosen() ) );
2829 actionBrushColor->setDefaultColor(TQColor());
2831 actionPenColor =
new TTDESelectColorAction( i18n(
"Outline Color..." ), TTDESelectColorAction::LineColor,
2832 actionCollection(),
"pen_color" );
2833 connect( actionPenColor, TQ_SIGNAL( activated() ), TQ_SLOT( penChosen() ) );
2834 actionPenColor->setDefaultColor(TQColor());
2835 actionExtendObjectHeight =
new TDEAction( i18n(
"&Extend Contents to Object Height" ),0,
this, TQ_SLOT( textContentsToHeight() ),
2836 actionCollection(),
"extendobjectheight" );
2838 actionResizeTextObject =
new TDEAction( i18n(
"&Resize Object to Fit Contents" ),0,
this, TQ_SLOT( textObjectToContents() ),
2839 actionCollection(),
"resizetextobject" );
2841 actionRenamePage=
new TDEAction(i18n(
"&Rename Slide..." ),0,
this,
2842 TQ_SLOT( renamePageTitle() ),
2843 actionCollection(),
"rename_page" );
2845 actionPicOriginalSize =
new TDEAction( i18n(
"Sca&le to Original Size" ), 0,
this,
2846 TQ_SLOT( picViewOriginalSize() ),
2847 actionCollection(),
"pic_original_size" );
2849 actionPic640x480=
new TDEAction(i18n(
"640x480" ),0,
this,
2850 TQ_SLOT( picViewOrig640x480() ),
2851 actionCollection(),
"pic_640_480" );
2853 actionPic800x600=
new TDEAction(i18n(
"800x600" ),0,
this,
2854 TQ_SLOT( picViewOrig800x600() ),
2855 actionCollection(),
"pic_800_600" );
2857 actionPic1024x768=
new TDEAction(i18n(
"1024x768" ),0,
this,
2858 TQ_SLOT( picViewOrig1024x768() ),
2859 actionCollection(),
"pic_1024_768" );
2861 actionPic1280x1024=
new TDEAction(i18n(
"1280x1024" ),0,
this,
2862 TQ_SLOT( picViewOrig1280x1024() ),
2863 actionCollection(),
"pic_1280_1024" );
2865 actionPic1600x1200=
new TDEAction(i18n(
"1600x1200" ),0,
this,
2866 TQ_SLOT( picViewOrig1600x1200() ),
2867 actionCollection(),
"pic_1600_1200" );
2869 actionChangePic=
new TDEAction( i18n(
"&Change Picture..." ),
"frame_image",0,
this,
2870 TQ_SLOT( chPic() ), actionCollection(),
"change_picture" );
2873 actionImageEffect =
new TDEAction( i18n(
"Image &Effect..."), 0,
this,
2874 TQ_SLOT(imageEffect()), actionCollection(),
"image_effect");
2877 actionFormatSuper =
new TDEToggleAction( i18n(
"Superscript" ),
"super", 0,
2878 this, TQ_SLOT( textSuperScript() ),
2879 actionCollection(),
"format_super" );
2880 actionFormatSuper->setExclusiveGroup(
"valign" );
2881 actionFormatSub =
new TDEToggleAction( i18n(
"Subscript" ),
"sub", 0,
2882 this, TQ_SLOT( textSubScript() ),
2883 actionCollection(),
"format_sub" );
2884 actionFormatSub->setExclusiveGroup(
"valign" );
2887 actionInsertSpecialChar =
new TDEAction( i18n(
"Sp&ecial Character..." ),
"char",
2888 ALT + TQt::SHIFT + TQt::Key_C,
2889 this, TQ_SLOT( insertSpecialChar() ),
2890 actionCollection(),
"insert_specialchar" );
2892 actionInsertLink =
new TDEAction( i18n(
"Link..." ), 0,
2893 this, TQ_SLOT( insertLink() ),
2894 actionCollection(),
"insert_link" );
2899 picResizeMenu->insertSeparator();
2900 picResizeMenu->insertItem( i18n(
"Enter Custom Factor..." ),
this, TQ_SLOT( picViewOrigFactor() ) );
2902 (void)
new TDEAction( i18n(
"Configure &Autocorrection..." ), 0,
2903 this, TQ_SLOT( extraAutoFormat() ),
2904 actionCollection(),
"extra_autocorrection" );
2905 actionExtraSpellCheck = KStdAction::spelling(
this, TQ_SLOT( slotSpellCheck() ), actionCollection(),
"extra_spellcheck" );
2907 actionFormatParag =
new TDEAction( i18n(
"&Paragraph..." ), ALT + CTRL + TQt::Key_P,
2908 this, TQ_SLOT( formatParagraph() ),
2909 actionCollection(),
"format_paragraph" );
2911 actionFormatDefault=
new TDEAction( i18n(
"Default Format" ), 0,
2912 this, TQ_SLOT( textDefaultFormat() ),
2913 actionCollection(),
"text_default" );
2915 actionOpenLink =
new TDEAction( i18n(
"Open Link" ), 0,
2916 this, TQ_SLOT( openLink() ),
2917 actionCollection(),
"open_link" );
2919 actionChangeLink=
new TDEAction( i18n(
"Change Link..."), 0,
2920 this, TQ_SLOT(changeLink()),
2921 actionCollection(),
"change_link");
2923 actionCopyLink =
new TDEAction( i18n(
"Copy Link" ), 0,
2924 this, TQ_SLOT( copyLink() ),
2925 actionCollection(),
"copy_link" );
2927 actionRemoveLink =
new TDEAction( i18n(
"Remove Link" ), 0,
2928 this, TQ_SLOT( removeLink() ),
2929 actionCollection(),
"remove_link" );
2932 actionAddLinkToBookmak =
new TDEAction( i18n(
"Add to Bookmark" ), 0,
2933 this, TQ_SLOT( addToBookmark() ),
2934 actionCollection(),
"add_to_bookmark" );
2936 actionEditCustomVarsEdit =
new TDEAction( i18n(
"&Custom Variables..." ), 0,
2937 this, TQ_SLOT( editCustomVars() ),
2938 actionCollection(),
"edit_vars" );
2940 actionEditCustomVars =
new TDEAction( i18n(
"Edit Variable..." ), 0,
2941 this, TQ_SLOT( editCustomVariable() ),
2942 actionCollection(),
"edit_customvars" );
2945 m_variableDefMap.clear();
2946 actionInsertVariable =
new TDEActionMenu( i18n(
"&Variable" ),
2947 actionCollection(),
"insert_variable" );
2949 addVariableActions( VT_FIELD, KoFieldVariable::actionTexts(), actionInsertVariable, i18n(
"&Property") );
2950 addVariableActions( VT_DATE, KoDateVariable::actionTexts(), actionInsertVariable, i18n(
"&Date") );
2951 addVariableActions( VT_TIME, KoTimeVariable::actionTexts(), actionInsertVariable, i18n(
"&Time") );
2953 actionInsertCustom =
new TDEActionMenu( i18n(
"&Custom" ),
2954 actionCollection(),
"insert_custom" );
2955 actionInsertVariable->insert(actionInsertCustom);
2956 refreshCustomMenu();
2958 addVariableActions( VT_PGNUM, KoPageVariable::actionTexts(), actionInsertVariable, i18n(
"&Page") );
2959 addVariableActions( VT_STATISTIC, KPrStatisticVariable::actionTexts(), actionInsertVariable, i18n(
"&Statistic") );
2961 actionInsertVariable->popupMenu()->insertSeparator();
2962 actionRefreshAllVariable =
new TDEAction( i18n(
"&Refresh All Variables" ), 0,
2963 this, TQ_SLOT( refreshAllVariable() ),
2964 actionCollection(),
"refresh_all_variable" );
2965 actionInsertVariable->insert(actionRefreshAllVariable);
2967 actionIncreaseFontSize =
new TDEAction( i18n(
"Increase Font Size"),
"fontsizeup", 0,
2968 this, TQ_SLOT( increaseFontSize() ),
2969 actionCollection(),
"increaseFontSize" );
2971 actionDecreaseFontSize =
new TDEAction( i18n(
"Decrease Font Size"),
"fontsizedown", 0,
2972 this, TQ_SLOT( decreaseFontSize() ),
2973 actionCollection(),
"decreaseFontSize" );
2975 actionChangeCase=
new TDEAction( i18n(
"Change Case..." ), 0,
2976 this, TQ_SLOT( changeCaseOfText() ),
2977 actionCollection(),
"change_case" );
2979 actionViewZoom =
new TDESelectAction( i18n(
"Zoom" ),
"viewmag", 0,
2980 actionCollection(),
"view_zoom" );
2981 connect( actionViewZoom, TQ_SIGNAL( activated(
const TQString & ) ),
2982 this, TQ_SLOT( viewZoom(
const TQString & ) ) );
2983 actionViewZoom->setEditable(
true);
2986 actionFormatStylist =
new TDEAction( i18n(
"&Style Manager" ), ALT + CTRL + TQt::Key_S,
2987 this, TQ_SLOT( extraStylist() ),
2988 actionCollection(),
"format_stylist" );
2990 actionFormatStyleMenu =
new TDEActionMenu( i18n(
"St&yle" ), 0,
2991 actionCollection(),
"format_stylemenu" );
2994 actionFormatStyle =
new TDESelectAction( i18n(
"St&yle" ), 0,
2995 actionCollection(),
"format_style" );
2996 connect( actionFormatStyle, TQ_SIGNAL( activated(
int ) ),
2997 this, TQ_SLOT( textStyleSelected(
int ) ) );
2998 actionFormatStyle->setMenuAccelsEnabled(
true );
3001 actionAllowAutoFormat =
new TDEToggleAction( i18n(
"Enable Autocorrection" ), 0,
3002 this, TQ_SLOT( slotAllowAutoFormat() ),
3003 actionCollection(),
"enable_autocorrection" );
3004 actionAllowAutoFormat->setCheckedState(i18n(
"Disable Autocorrection"));
3007 new TDEAction( i18n(
"Insert Non-Breaking Space" ), CTRL+TQt::Key_Space,
3008 this, TQ_SLOT( slotNonbreakingSpace() ), actionCollection(),
"nonbreaking_space" );
3009 new TDEAction( i18n(
"Insert Non-Breaking Hyphen" ), CTRL+TQt::SHIFT+TQt::Key_Minus,
3010 this, TQ_SLOT( slotNonbreakingHyphen() ), actionCollection(),
"nonbreaking_hyphen" );
3011 new TDEAction( i18n(
"Insert Soft Hyphen" ), CTRL+TQt::Key_Minus,
3012 this, TQ_SLOT( slotSoftHyphen() ), actionCollection(),
"soft_hyphen" );
3013 new TDEAction( i18n(
"Line Break" ), TQt::SHIFT+TQt::Key_Return,
3014 this, TQ_SLOT( slotLineBreak() ), actionCollection(),
"line_break" );
3015 new TDEAction( i18n(
"Completion" ), TDEStdAccel::shortcut(TDEStdAccel::TextCompletion),
3016 this, TQ_SLOT( slotCompletion() ), actionCollection(),
"completion" );
3018 new TDEAction( i18n(
"Increase Numbering Level" ), ALT+TQt::Key_Right,
3019 this, TQ_SLOT( slotIncreaseNumberingLevel() ), actionCollection(),
"increase_numbering_level" );
3020 new TDEAction( i18n(
"Decrease Numbering Level" ), ALT+TQt::Key_Left,
3021 this, TQ_SLOT( slotDecreaseNumberingLevel() ), actionCollection(),
"decrease_numbering_level" );
3024 actionInsertComment =
new TDEAction( i18n(
"Comment..." ), 0,
3025 this, TQ_SLOT( insertComment() ),
3026 actionCollection(),
"insert_comment" );
3027 actionEditComment =
new TDEAction( i18n(
"Edit Comment..."), 0,
3028 this, TQ_SLOT(editComment()),
3029 actionCollection(),
"edit_comment");
3031 actionAddGuideLine =
new TDEAction( i18n(
"Add Guide Line..."), 0,
3032 this, TQ_SLOT( addGuideLine()),
3033 actionCollection(),
"add_guideline");
3035 actionRemoveComment =
new TDEAction( i18n(
"Remove Comment"), 0,
3036 this, TQ_SLOT(removeComment()),
3037 actionCollection(),
"remove_comment");
3039 actionCopyTextOfComment =
new TDEAction( i18n(
"Copy Text of Comment..."), 0,
3040 this, TQ_SLOT(copyTextOfComment()),
3041 actionCollection(),
"copy_text_comment");
3043 actionConfigureCompletion =
new TDEAction( i18n(
"&Configure Completion..." ), 0,
3044 this, TQ_SLOT( configureCompletion() ),
3045 actionCollection(),
"configure_completion" );
3047 actionZoomMinus =
new TDEAction( i18n(
"Zoom Out" ),
"zoom-out",0,
3048 this, TQ_SLOT( zoomMinus() ),
3049 actionCollection(),
"zoom_minus" );
3050 actionZoomPlus =
new TDEAction( i18n(
"Zoom In" ),
"zoom-in",0,
3051 this, TQ_SLOT( zoomPlus() ),
3052 actionCollection(),
"zoom_plus" );
3053 actionZoomEntirePage =
new TDEAction( i18n(
"Zoom Entire Slide" ), 0,
3054 this, TQ_SLOT( zoomEntirePage() ),
3055 actionCollection(),
"zoom_entire_page" );
3057 actionZoomMinus =
new TDEAction( i18n(
"Zoom Slide Width" ), 0,
3058 this, TQ_SLOT( zoomPageWidth() ),
3059 actionCollection(),
"zoom_page_width" );
3060 actionZoomSelectedObject=
new TDEAction( i18n(
"Zoom Selected Objects" ),
"zoom-fit-best",0,
3061 this, TQ_SLOT( zoomSelectedObject() ),
3062 actionCollection(),
"zoom_selected_object" );
3063 actionZoomPageHeight=
new TDEAction( i18n(
"Zoom Slide Height" ), 0,
3064 this, TQ_SLOT( zoomPageHeight() ),
3065 actionCollection(),
"zoom_page_height" );
3067 actionZoomAllObject=
new TDEAction( i18n(
"Zoom All Objects" ), 0,
3068 this, TQ_SLOT( zoomAllObject() ),
3069 actionCollection(),
"zoom_all_object" );
3071 actionFlipHorizontal=
new TDEAction( i18n(
"Horizontal Flip" ), 0,
3072 this, TQ_SLOT( flipHorizontal() ),
3073 actionCollection(),
"horizontal_flip" );
3075 actionFlipVertical=
new TDEAction( i18n(
"Vertical Flip" ), 0,
3076 this, TQ_SLOT( flipVertical() ),
3077 actionCollection(),
"vertical_flip" );
3079 actionDuplicateObj =
new TDEAction( i18n(
"Duplicate Object..." ), 0,
3080 this, TQ_SLOT( duplicateObj() ),
3081 actionCollection(),
"duplicate_obj" );
3083 actionApplyAutoFormat=
new TDEAction( i18n(
"Apply Autocorrection" ), 0,
3084 this, TQ_SLOT( applyAutoFormat() ),
3085 actionCollection(),
"apply_autoformat" );
3087 actionCreateStyleFromSelection =
new TDEAction( i18n(
"Create Style From Selection..." ), 0,
3088 this, TQ_SLOT( createStyleFromSelection()),
3089 actionCollection(),
"create_style" );
3091 actionCloseObject =
new TDEAction( i18n(
"Close Object" ), 0,
3092 this, TQ_SLOT( closeObject()),
3093 actionCollection(),
"close_object" );
3096 actionAlignVerticalTop =
new TDEToggleAction( i18n(
"Align Top" ), 0,
3097 this, TQ_SLOT( alignVerticalTop() ),
3098 actionCollection(),
"align_top" );
3099 actionAlignVerticalTop->setExclusiveGroup(
"vertical_alignment" );
3100 actionAlignVerticalTop->setChecked(
true );
3103 actionAlignVerticalBottom =
new TDEToggleAction( i18n(
"Align Bottom" ), 0,
3104 this, TQ_SLOT( alignVerticalBottom() ),
3105 actionCollection(),
"align_bottom" );
3106 actionAlignVerticalBottom->setExclusiveGroup(
"vertical_alignment" );
3108 actionAlignVerticalCenter =
new TDEToggleAction( i18n(
"Align Middle" ), 0,
3109 this, TQ_SLOT( alignVerticalCenter() ),
3110 actionCollection(),
"align_center" );
3111 actionAlignVerticalCenter->setExclusiveGroup(
"vertical_alignment" );
3114 actionSavePicture=
new TDEAction( i18n(
"Save Picture..."), 0,
3115 this, TQ_SLOT( savePicture() ),
3116 actionCollection(),
"save_picture");
3118 actionAllowBgSpellCheck =
new TDEToggleAction( i18n(
"Autospellcheck" ), 0,
3119 this, TQ_SLOT( autoSpellCheck() ),
3120 actionCollection(),
"tool_auto_spellcheck" );
3122 actionInsertFile=
new TDEAction( i18n(
"File..." ), 0,
3123 this, TQ_SLOT( insertFile() ),
3124 actionCollection(),
"insert_file" );
3125 actionImportStyle=
new TDEAction( i18n(
"Import Styles..." ), 0,
3126 this, TQ_SLOT( importStyle() ),
3127 actionCollection(),
"import_style" );
3129 actionSaveBackgroundPicture=
new TDEAction( i18n(
"Save Background Picture..." ), 0,
3130 this, TQ_SLOT(backgroundPicture() ),
3131 actionCollection(),
"save_bgpicture" );
3133 actionInsertDirectCursor =
new TDEToggleAction( i18n(
"Type Anywhere Cursor" ), 0,
3134 this, TQ_SLOT( insertDirectCursor() ),
3135 actionCollection(),
"direct_cursor" );
3138 actionSpellIgnoreAll =
new TDEAction( i18n(
"Ignore All" ), 0,
3139 this, TQ_SLOT( slotAddIgnoreAllWord() ),
3140 actionCollection(),
"ignore_all" );
3142 actionAddWordToPersonalDictionary=
new TDEAction( i18n(
"Add Word to Dictionary" ),0,
3143 this, TQ_SLOT( addWordToDictionary() ),
3144 actionCollection(),
"add_word_to_dictionary" );
3145 actionCustomSlideShow =
new TDEAction( i18n(
"Custom Slide Show..." ), 0,
3146 this, TQ_SLOT( customSlideShow() ),
3147 actionCollection(),
"custom_slide_show" );
3149 actionDisplayObjectFromMasterPage =
new TDEToggleAction( i18n(
"Hide Object From Slide Master" ), 0,
3150 this, TQ_SLOT( displayObjectFromMasterPage() ),
3151 actionCollection(),
"display_object_from_master_page" );
3152 actionDisplayObjectFromMasterPage->setCheckedState(i18n(
"Display Object From Slide Master"));
3155 actionDisplayBackgroundPage =
new TDEToggleAction( i18n(
"Hide Background" ), 0,
3156 this, TQ_SLOT( displayBackground() ),
3157 actionCollection(),
"display_background" );
3158 actionDisplayBackgroundPage->setCheckedState(i18n(
"Display Background"));
3161void KPrView::displayObjectFromMasterPage()
3163 bool state=actionDisplayObjectFromMasterPage->isChecked();
3164 m_canvas->activePage()->setDisplayObjectFromMasterPage( !state );
3165 KPrDisplayObjectFromMasterPage * cmd =
new KPrDisplayObjectFromMasterPage( state ? i18n(
"Hide Object From Slide Master") : i18n(
"Display Object From Slide Master"), m_pKPresenterDoc, m_canvas->activePage(), !state);
3166 m_pKPresenterDoc->addCommand(cmd);
3167 m_pKPresenterDoc->updateSideBarItem( m_pKPresenterDoc->masterPage() );
3170void KPrView::displayBackground()
3172 bool state=actionDisplayBackgroundPage->isChecked();
3173 m_canvas->activePage()->setDisplayBackground( !state );
3174 KPrDisplayBackgroundPage * cmd =
new KPrDisplayBackgroundPage( state ? i18n(
"Hide Background") : i18n(
"Display Background"), m_pKPresenterDoc, m_canvas->activePage(), !state);
3175 m_pKPresenterDoc->addCommand(cmd);
3176 m_pKPresenterDoc->updateSideBarItem( m_pKPresenterDoc->masterPage() );
3179void KPrView::customSlideShow()
3181 KPrCustomSlideShowDia *dlg =
new KPrCustomSlideShowDia(
this, m_pKPresenterDoc,
"custom slide show" );
3185 m_pKPresenterDoc->clearTestCustomSlideShow();
3188void KPrView::textSubScript()
3190 m_canvas->setTextSubScript(actionFormatSub->isChecked());
3193void KPrView::textSuperScript()
3195 m_canvas->setTextSuperScript(actionFormatSuper->isChecked());
3198void KPrView::decreaseFontSize()
3200 m_canvas->setDecreaseFontSize();
3203void KPrView::increaseFontSize()
3205 m_canvas->setIncreaseFontSize();
3208void KPrView::objectSelectedChanged()
3211 bool state=m_canvas->isOneObjectSelected();
3212 bool headerfooterselected=
false;
3214 if (m_canvas->numberOfObjectSelected()==1)
3216 KPrObject *obj=m_canvas->getSelectedObj();
3218 if (obj==m_pKPresenterDoc->header() || obj==m_pKPresenterDoc->footer())
3219 headerfooterselected=
true;
3221 headerfooterselected=
false;
3223 actionScreenAssignEffect->setEnabled(state && !headerfooterselected);
3224 actionEditDelete->setEnabled(state && !headerfooterselected);
3225 actionEditCut->setEnabled(state && !headerfooterselected);
3227 KPrObjectProperties objectProperties( m_canvas->activePage()->getSelectedObjects() );
3228 int flags = objectProperties.getPropertyFlags();
3230 actionBrushColor->setEnabled( !state || ( flags & KPrObjectProperties::PtBrush ) );
3231 actionExtraLineBegin->setEnabled( !state || ( flags & KPrObjectProperties::PtLineEnds ) );
3232 actionExtraLineEnd->setEnabled( !state || ( flags & KPrObjectProperties::PtLineEnds ) );
3233 actionExtraPenWidth->setEnabled( !state || ( flags & KPrObjectProperties::PtPenWidth ) );
3235 actionExtraProperties->setEnabled(state && !headerfooterselected);
3236 actionExtraRotate->setEnabled(state && !headerfooterselected);
3237 actionExtraShadow->setEnabled(state && !m_canvas->haveASelectedPartObj() && !headerfooterselected);
3239 actionExtraAlignObjsPopup->setEnabled(state && !headerfooterselected);
3240 actionExtraGroup->setEnabled(state && m_canvas->numberOfObjectSelected()>1);
3241 actionExtraUnGroup->setEnabled(state && m_canvas->haveASelectedGroupObj());
3243 bool enableAlign = m_canvas->canMoveOneObject() && state && !headerfooterselected;
3245 actionExtraAlignObjLeft->setEnabled(enableAlign);
3246 actionExtraAlignObjCenterH->setEnabled(enableAlign);
3247 actionExtraAlignObjRight->setEnabled(enableAlign);
3248 actionExtraAlignObjTop->setEnabled(enableAlign);
3249 actionExtraAlignObjCenterV->setEnabled(enableAlign);
3250 actionExtraAlignObjBottom->setEnabled(enableAlign);
3252 int nbobj=m_canvas->numberOfObjectSelected();
3253 actionDuplicateObj->setEnabled(state && (nbobj>=1));
3255 state = state && (nbobj==1);
3256 actionExtraArrangePopup->setEnabled(state);
3258 actionExtraRaise->setEnabled( nbobj > 0 );
3259 actionExtraLower->setEnabled( nbobj > 0 );
3260 actionExtraBringForward->setEnabled( nbobj > 0 );
3261 actionExtraSendBackward->setEnabled( nbobj > 0 );
3268 actionApplyAutoFormat->setEnabled(m_canvas->oneObjectTextExist());
3269 slotObjectEditChanged();
3272void KPrView::backOk( KPrBackDialog* backDia,
bool takeGlobal )
3274 KPrPage *page=m_canvas->activePage();
3275 KPrSetBackCmd *setBackCmd =
new KPrSetBackCmd( i18n(
"Set Background" ),
3276 backDia->getBackGround(),
3277 page->background()->getBackGround(),
3278 backDia->useMasterBackground(),
3279 takeGlobal, m_pKPresenterDoc,page);
3280 setBackCmd->execute();
3281 m_pKPresenterDoc->addCommand( setBackCmd );
3284void KPrView::afChooseOk(
const TQString & c )
3286 TQFileInfo fileInfo( c );
3287 TQString fileName = locate(
"autoforms",
3288 fileInfo.dirPath(
false ) +
"/" + fileInfo.baseName() +
".atf",
3289 KPrFactory::global() );
3291 deSelectAllObjects();
3292 m_canvas->setToolEditMode( INS_AUTOFORM );
3293 m_canvas->setAutoForm( fileName );
3296void KPrView::slotAfchooseCanceled()
3298 setTool( TEM_MOUSE );
3301void KPrView::propertiesOk()
3303 KCommand *cmd = m_propertyEditor->getCommand();
3308 kPresenterDoc()->addCommand( cmd );
3312void KPrView::pgConfOk()
3314 TQValueList<bool> selectedSlides;
3315 for(
unsigned i = 0; i < kPresenterDoc()->pageList().count(); i++ ) {
3316 selectedSlides.append( kPresenterDoc()->pageList().at( i )->isSlideSelected() );
3319 KPrPgConfCmd *pgConfCmd =
new KPrPgConfCmd( i18n(
"Configure Slide Show" ),
3320 pgConfDia->getManualSwitch(), pgConfDia->getInfiniteLoop(),
3321 pgConfDia->getShowEndOfPresentationSlide(), pgConfDia->getPresentationDuration(), pgConfDia->getPen(),
3322 pgConfDia->getSelectedSlides(),
3323 pgConfDia->presentationName(),
3324 kPresenterDoc()->spManualSwitch(),
3325 kPresenterDoc()->spInfiniteLoop(),
3326 kPresenterDoc()->spShowEndOfPresentationSlide(),
3327 kPresenterDoc()->presentationDuration(),
3328 kPresenterDoc()->presPen(),
3330 kPresenterDoc()->presentationName(),
3332 pgConfCmd->execute();
3333 kPresenterDoc()->addCommand( pgConfCmd );
3335 TQPtrListIterator<KPrPage> it( kPresenterDoc()->pageList() );
3336 for ( ; it.current(); ++it )
3337 updateSideBarItem( it.current() );
3341void KPrView::rotateOk()
3343 float _newAngle=rotateDia->angle();
3345 KCommand *cmd=m_canvas->activePage()->rotateSelectedObjects(_newAngle);
3347 kPresenterDoc()->addCommand( cmd );
3350void KPrView::shadowOk()
3352 KCommand *cmd=m_canvas->activePage()->shadowObj(shadowDia->shadowDirection(),
3353 shadowDia->shadowDistance(),
3354 shadowDia->shadowColor());
3356 kPresenterDoc()->addCommand( cmd );
3359unsigned int KPrView::getCurrPgNum()
const
3365void KPrView::recalcCurrentPageNum()
3367 KPrPage *activePage = m_canvas->activePage();
3369 TQPtrList<KPrPage> pageList( m_pKPresenterDoc->pageList() );
3371 int pos = pageList.findRef( activePage );
3379 kdDebug(33001) <<
"KPrView::recalcCurrentPageNum: activePage not found" << endl;
3384 sidebar->setCurrentPage( currPg );
3388void KPrView::scrollH(
int value )
3390 if ( !presStarted ) {
3391 m_canvas->scrollX( value );
3393 h_ruler->setOffset( value, 0 );
3397void KPrView::scrollV(
int value )
3399 if ( !presStarted ) {
3400 m_canvas->scrollY( value );
3402 v_ruler->setOffset( 0, value );
3406void KPrView::fontChanged(
const TQFont &font )
3408 tbFont.setFamily( font.family() );
3409 tbFont.setBold( font.bold() );
3410 tbFont.setItalic( font.italic() );
3411 tbFont.setUnderline( font.underline() );
3412 tbFont.setPointSize( font.pointSize() );
3414 actionTextFontFamily->setFont( tbFont.family() );
3415 actionTextFontSize->setFontSize( tbFont.pointSize() );
3416 actionTextBold->setChecked( tbFont.bold() );
3417 actionTextItalic->setChecked( tbFont.italic() );
3418 actionTextUnderline->setChecked( tbFont.underline() );
3421void KPrView::colorChanged(
const TQColor &color )
3424 actionTextColor->setEnabled(
true );
3425 actionTextColor->setCurrentColor( tbColor );
3428void KPrView::alignChanged(
int align )
3430 if ( align != tbAlign ) {
3432 if ( ( align & AlignLeft ) == AlignLeft ) {
3433 actionTextAlignLeft->blockSignals(
true );
3434 actionTextAlignLeft->setChecked(
true );
3435 actionTextAlignLeft->blockSignals(
false );
3436 }
else if ( ( align & AlignHCenter ) == AlignHCenter ||
3437 ( align & AlignCenter ) == AlignCenter ) {
3438 actionTextAlignCenter->blockSignals(
true );
3439 actionTextAlignCenter->setChecked(
true );
3440 actionTextAlignCenter->blockSignals(
false );
3441 }
else if ( ( align & AlignRight ) == AlignRight ) {
3442 actionTextAlignRight->blockSignals(
true );
3443 actionTextAlignRight->setChecked(
true );
3444 actionTextAlignRight->blockSignals(
false );
3445 }
else if ( (align & AlignJustify ) == AlignJustify ) {
3446 actionTextAlignBlock->blockSignals(
true );
3447 actionTextAlignBlock->setChecked(
true );
3448 actionTextAlignBlock->blockSignals(
false );
3453void KPrView::changePicture(
const TQString & filename )
3455 TQStringList mimetypes;
3456 mimetypes += KImageIO::mimeTypes( KImageIO::Reading );
3457 mimetypes += KoPictureFilePreview::clipartMimeTypes();
3459 KFileDialog fd( filename, TQString(),
this, 0,
true );
3460 fd.setCaption(i18n(
"Select New Picture"));
3461 fd.setMimeFilter( mimetypes );
3462 fd.setPreviewWidget(
new KoPictureFilePreview( &fd ) );
3465 if ( fd.exec() == TQDialog::Accepted )
3466 url = fd.selectedURL();
3468 if( url.isEmpty() || !url.isValid())
3471 m_canvas->changePicture( url, m_canvas );
3474void KPrView::resizeEvent( TQResizeEvent *e )
3477 TQWidget::resizeEvent( e );
3479 TQSize s = e ? e->size() : size();
3480 splitter->setGeometry( 0, 0, s.width(), s.height() );
3483void KPrView::reorganize()
3492 if(kPresenterDoc()->showRuler())
3494 int hSpace = v_ruler->minimumSizeHint().width();
3495 int vSpace = h_ruler->minimumSizeHint().height();
3497 m_canvas->move( hSpace, vSpace );
3501 h_ruler->setGeometry( hSpace, 0, m_canvas->width(), vSpace );
3506 v_ruler->setGeometry( 0, vSpace, hSpace, m_canvas->height() );
3510 getTabChooser()->setGeometry(0, 0, hSpace, vSpace);
3511 getTabChooser()->show();
3516 m_canvas->move( 0, 0 );
3521 getTabChooser()->hide();
3526 if(m_pKPresenterDoc->showStatusBar())
3527 statusBar()->show();
3529 statusBar()->hide();
3542 getTabChooser()->hide();
3543 m_canvas->move( 0, 0 );
3547void PageBase::resizeEvent( TQResizeEvent *e )
3549 if ( !view->presStarted )
3550 TQWidget::resizeEvent( e );
3552 TQSize s = e ? e->size() : size();
3554 if ( view->m_bShowGUI ) {
3555 int hSpace = view->getVRuler()->minimumSizeHint().width();
3556 int vSpace = view->getVRuler()->minimumSizeHint().height();
3558 view->m_canvas->resize( s.width() - ( hSpace + 16 ), s.height() - ( vSpace + 16 ) );
3559 view->vert->setGeometry( s.width() - 16, 0, 16, s.height() - 32 );
3560 view->pgPrev->setGeometry( s.width() - 15, s.height() - 32, 15, 16 );
3561 view->pgNext->setGeometry( s.width() - 15, s.height() - 16, 15, 16 );
3562 view->horz->setGeometry( 0, s.height() - 16, s.width() - 16, 16 );
3566 view->m_canvas->move( 0, 0 );
3567 view->m_canvas->resize( s.width(), s.height() );
3572void KPrView::dragEnterEvent( TQDragEnterEvent *e )
3574 TQApplication::sendEvent( m_canvas, e );
3577void KPrView::dragMoveEvent( TQDragMoveEvent *e )
3579 TQApplication::sendEvent( m_canvas, e );
3582void KPrView::dragLeaveEvent( TQDragLeaveEvent *e )
3584 TQApplication::sendEvent( m_canvas, e );
3587void KPrView::dropEvent( TQDropEvent *e )
3589 TQApplication::sendEvent( m_canvas, e );
3592void KPrView::getPageMouseWheelEvent( TQWheelEvent *e )
3594 TQApplication::sendEvent( vert, e );
3597void KPrView::keyPressEvent( TQKeyEvent *e )
3599 if ( e->key() == TQt::Key_Delete && !m_canvas->currentTextObjectView() )
3602 TQApplication::sendEvent( m_canvas, e );
3605void KPrView::doAutomaticScreenPres()
3607 if ( m_autoPresStop )
3609 else if ( m_autoPresRestart && kPresenterDoc()->spInfiniteLoop() ) {
3610 m_autoPresRestart =
false;
3611 m_canvas->presGotoFirstPage();
3617void KPrView::updateReadWrite(
bool readwrite )
3620 TQValueList<TDEAction*> actions = actionCollection()->actions();
3622 actions += m_pKPresenterDoc->actionCollection()->actions();
3623 TQValueList<TDEAction*>::ConstIterator aIt = actions.begin();
3624 TQValueList<TDEAction*>::ConstIterator aEnd = actions.end();
3625 for (; aIt != aEnd; ++aIt )
3626 (*aIt)->setEnabled( readwrite );
3632 refreshPageButton();
3633 actionViewFormattingChars->setEnabled(
true );
3634 actionViewZoom->setEnabled(
true );
3635 actionEditFind->setEnabled(
true );
3636 actionEditFindNext->setEnabled(
true );
3637 actionEditFindPrevious->setEnabled(
true );
3638 actionEditReplace->setEnabled(
true );
3639 actionEditSelectAll->setEnabled(
true );
3640 actionEditDeSelectAll->setEnabled(
true );
3644 refreshPageButton();
3645 objectSelectedChanged();
3647 refreshCustomMenu();
3650 m_pKPresenterDoc->commandHistory()->updateActions();
3651 updateSideBarMenu();
3656void KPrView::setupPopupMenus()
3659 rb_lbegin =
new TQPopupMenu();
3660 TQ_CHECK_PTR( rb_lbegin );
3661 rb_lbegin->insertItem( KPBarIcon(
"line_normal_begin" ),
this, TQ_SLOT( extraLineBeginNormal() ) );
3662 rb_lbegin->insertSeparator();
3663 rb_lbegin->insertItem( KPBarIcon(
"line_arrow_begin" ),
this, TQ_SLOT( extraLineBeginArrow() ) );
3664 rb_lbegin->insertSeparator();
3665 rb_lbegin->insertItem( KPBarIcon(
"line_rect_begin" ),
this, TQ_SLOT( extraLineBeginRect() ) );
3666 rb_lbegin->insertSeparator();
3667 rb_lbegin->insertItem( KPBarIcon(
"line_circle_begin" ),
this, TQ_SLOT( extraLineBeginCircle() ) );
3668 rb_lbegin->insertSeparator();
3669 rb_lbegin->insertItem( KPBarIcon(
"line_line_arrow_begin" ),
this, TQ_SLOT( extraLineBeginLineArrow() ) );
3670 rb_lbegin->insertSeparator();
3671 rb_lbegin->insertItem( KPBarIcon(
"line_dimension_line_begin" ),
this, TQ_SLOT( extraLineBeginDimensionLine() ) );
3672 rb_lbegin->insertSeparator();
3673 rb_lbegin->insertItem( KPBarIcon(
"line_double_arrow_begin" ),
this, TQ_SLOT( extraLineBeginDoubleArrow() ) );
3674 rb_lbegin->insertSeparator();
3675 rb_lbegin->insertItem( KPBarIcon(
"line_double_line_arrow_begin" ),
this, TQ_SLOT( extraLineBeginDoubleLineArrow() ) );
3676 rb_lbegin->setMouseTracking(
true );
3677 rb_lbegin->setCheckable(
false );
3680 rb_lend =
new TQPopupMenu();
3681 TQ_CHECK_PTR( rb_lend );
3682 rb_lend->insertItem( KPBarIcon(
"line_normal_end" ),
this, TQ_SLOT( extraLineEndNormal() ) );
3683 rb_lend->insertSeparator();
3684 rb_lend->insertItem( KPBarIcon(
"line_arrow_end" ),
this, TQ_SLOT( extraLineEndArrow() ) );
3685 rb_lend->insertSeparator();
3686 rb_lend->insertItem( KPBarIcon(
"line_rect_end" ),
this, TQ_SLOT( extraLineEndRect() ) );
3687 rb_lend->insertSeparator();
3688 rb_lend->insertItem( KPBarIcon(
"line_circle_end" ),
this, TQ_SLOT( extraLineEndCircle() ) );
3689 rb_lend->insertSeparator();
3690 rb_lend->insertItem( KPBarIcon(
"line_line_arrow_end" ),
this, TQ_SLOT( extraLineEndLineArrow() ) );
3691 rb_lend->insertSeparator();
3692 rb_lend->insertItem( KPBarIcon(
"line_dimension_line_end" ),
this, TQ_SLOT( extraLineEndDimensionLine() ) );
3693 rb_lend->insertSeparator();
3694 rb_lend->insertItem( KPBarIcon(
"line_double_arrow_end" ),
this, TQ_SLOT( extraLineEndDoubleArrow() ) );
3695 rb_lend->insertSeparator();
3696 rb_lend->insertItem( KPBarIcon(
"line_double_line_arrow_end" ),
this, TQ_SLOT( extraLineEndDoubleLineArrow() ) );
3697 rb_lend->setMouseTracking(
true );
3698 rb_lend->setCheckable(
false );
3701 m_arrangeObjectsPopup =
new TQPopupMenu();
3702 TQ_CHECK_PTR(m_arrangeObjectsPopup);
3703 m_arrangeObjectsPopup->insertItem(KPBarIcon(
"lower"),
this, TQ_SLOT(extraLower()));
3704 m_arrangeObjectsPopup->insertSeparator();
3705 m_arrangeObjectsPopup->insertItem(KPBarIcon(
"send_backward"),
this, TQ_SLOT(extraSendBackward()));
3706 m_arrangeObjectsPopup->insertSeparator();
3707 m_arrangeObjectsPopup->insertItem(KPBarIcon(
"bring_forward"),
this, TQ_SLOT(extraBringForward()));
3708 m_arrangeObjectsPopup->insertSeparator();
3709 m_arrangeObjectsPopup->insertItem(KPBarIcon(
"raise"),
this, TQ_SLOT(extraRaise()));
3710 m_arrangeObjectsPopup->setMouseTracking(
true);
3711 m_arrangeObjectsPopup->setCheckable(
false);
3714 actionToolsLinePopup->insert(actionToolsLine);
3715 actionToolsLinePopup->insert(actionToolsFreehand);
3716 actionToolsLinePopup->insert(actionToolsPolyline);
3717 actionToolsLinePopup->insert(actionToolsCubicBezierCurve);
3718 actionToolsLinePopup->insert(actionToolsQuadricBezierCurve);
3721 actionToolsShapePopup->insert(actionToolsRectangle);
3722 actionToolsShapePopup->insert(actionToolsCircleOrEllipse);
3723 actionToolsShapePopup->insert(actionToolsPie);
3724 actionToolsShapePopup->insert(actionToolsConvexOrConcavePolygon);
3727 actionToolsClosedLinePopup->insert(actionToolsClosedFreehand);
3728 actionToolsClosedLinePopup->insert(actionToolsClosedPolyline);
3729 actionToolsClosedLinePopup->insert(actionToolsClosedQuadricBezierCurve);
3730 actionToolsClosedLinePopup->insert(actionToolsClosedCubicBezierCurve);
3732 actionExtraAlignObjsPopup->insert( actionExtraAlignObjLeft );
3733 actionExtraAlignObjsPopup->insert( actionExtraAlignObjCenterV );
3734 actionExtraAlignObjsPopup->insert( actionExtraAlignObjRight );
3735 actionExtraAlignObjsPopup->insert( actionExtraAlignObjTop );
3736 actionExtraAlignObjsPopup->insert( actionExtraAlignObjCenterH );
3737 actionExtraAlignObjsPopup->insert( actionExtraAlignObjBottom );
3739 actionExtraArrangePopup->insert( actionExtraLower );
3740 actionExtraArrangePopup->insert( actionExtraSendBackward );
3741 actionExtraArrangePopup->insert( actionExtraBringForward );
3742 actionExtraArrangePopup->insert( actionExtraRaise );
3745void KPrView::setupScrollbars()
3747 vert =
new TQScrollBar( TQt::Vertical, pageBase );
3748 horz =
new TQScrollBar( TQt::Horizontal, pageBase );
3751 TQObject::connect( vert, TQ_SIGNAL( valueChanged(
int ) ),
this, TQ_SLOT( scrollV(
int ) ) );
3752 TQObject::connect( horz, TQ_SIGNAL( valueChanged(
int ) ),
this, TQ_SLOT( scrollH(
int ) ) );
3753 vert->setValue(vert->maxValue());
3754 horz->setValue(horz->maxValue());
3755 vert->setValue(vert->minValue());
3756 horz->setValue(horz->minValue());
3757 pgNext =
new TQToolButton( pageBase );
3758 pgNext->setPixmap( TQPixmap( pagedown_xpm ) );
3759 pgNext->setAutoRepeat(
true );
3760 TQToolTip::add( pgNext, i18n(
"Next slide" ) );
3761 connect( pgNext, TQ_SIGNAL( clicked() ),
this, TQ_SLOT( nextPage() ) );
3762 pgPrev =
new TQToolButton( pageBase );
3763 pgPrev->setPixmap( TQPixmap( pageup_xpm ) );
3764 pgPrev->setAutoRepeat(
true );
3765 TQToolTip::add( pgPrev, i18n(
"Previous slide" ) );
3766 connect( pgPrev, TQ_SIGNAL( clicked() ),
this, TQ_SLOT( prevPage() ) );
3769void KPrView::setupRulers()
3771 tabChooser =
new KoTabChooser( pageBase, KoTabChooser::TAB_ALL );
3772 tabChooser->setReadWrite(kPresenterDoc()->isReadWrite());
3773 h_ruler =
new KoRuler( pageBase, m_canvas, TQt::Horizontal, kPresenterDoc()->pageLayout(),
3774 KoRuler::F_INDENTS | KoRuler::F_TABS, kPresenterDoc()->unit(), tabChooser );
3775 h_ruler->changeFlags(0);
3777 h_ruler->setReadWrite(kPresenterDoc()->isReadWrite());
3778 v_ruler =
new KoRuler( pageBase, m_canvas, TQt::Vertical, kPresenterDoc()->pageLayout(), 0, kPresenterDoc()->unit() );
3779 v_ruler->setReadWrite(kPresenterDoc()->isReadWrite());
3781 int hSpace = v_ruler->minimumSizeHint().width();
3782 int vSpace = h_ruler->minimumSizeHint().height();
3784 m_canvas->resize( m_canvas->width() - hSpace, m_canvas->height() - vSpace );
3785 m_canvas->move( hSpace, vSpace );
3786 h_ruler->setGeometry( hSpace, 0, m_canvas->width(), vSpace );
3787 v_ruler->setGeometry( 0, vSpace, hSpace, m_canvas->height() );
3789 TQObject::connect( h_ruler, TQ_SIGNAL( unitChanged( KoUnit::Unit ) ),
3790 this, TQ_SLOT( unitChanged( KoUnit::Unit ) ) );
3791 TQObject::connect( h_ruler, TQ_SIGNAL( newPageLayout(
const KoPageLayout & ) ),
3792 this, TQ_SLOT( newPageLayout(
const KoPageLayout & ) ) );
3794 connect( h_ruler, TQ_SIGNAL( doubleClicked() ),
this,
3795 TQ_SLOT( slotHRulerDoubleClicked() ) );
3796 connect( h_ruler, TQ_SIGNAL( doubleClicked(
double) ),
this,
3797 TQ_SLOT( slotHRulerDoubleClicked(
double) ) );
3799 TQObject::connect( v_ruler, TQ_SIGNAL( unitChanged( KoUnit::Unit ) ),
3800 this, TQ_SLOT( unitChanged( KoUnit::Unit ) ) );
3801 TQObject::connect( v_ruler, TQ_SIGNAL( newPageLayout(
const KoPageLayout & ) ),
3802 this, TQ_SLOT( newPageLayout(
const KoPageLayout & ) ) );
3803 TQObject::connect( v_ruler, TQ_SIGNAL( doubleClicked() ),
3804 this, TQ_SLOT( openPageLayoutDia() ) );
3806 connect( h_ruler, TQ_SIGNAL( newLeftIndent(
double ) ),
this, TQ_SLOT( newLeftIndent(
double ) ) );
3807 connect( h_ruler, TQ_SIGNAL( newFirstIndent(
double ) ),
this, TQ_SLOT( newFirstIndent(
double ) ) );
3808 connect( h_ruler, TQ_SIGNAL( newRightIndent(
double ) ),
this, TQ_SLOT( newRightIndent(
double ) ) );
3811void KPrView::unitChanged( KoUnit::Unit u )
3813 m_pKPresenterDoc->setUnit( u );
3816void KPrView::setRanges()
3818 if ( vert && horz && m_canvas && m_pKPresenterDoc ) {
3819 vert->setSteps( 10, m_canvas->height() );
3820 vert->setRange( 0, TQMAX( 0, m_canvas->activePage()->getZoomPageRect().height() - m_canvas->height() ) );
3821 horz->setSteps( 10, m_canvas->width() );
3822 horz->setRange( 0, TQMAX( 0, m_canvas->activePage()->getZoomPageRect().width() + 16 - m_canvas->width() ) );
3826void KPrView::skipToPage(
int num )
3828 setEditMaster(
false );
3829 if ( num < 0 || num >
static_cast<int>( m_pKPresenterDoc->getPageNums() ) - 1 || !m_canvas )
3831 m_canvas->exitEditMode();
3833 emit currentPageChanged( currPg );
3835 sidebar->setCurrentPage( currPg );
3836 KPrPage* page = m_pKPresenterDoc->pageList().at( currPg );
3837 m_canvas->setActivePage( page );
3840 vert->setValue( 0 );
3841 horz->setValue( 0 );
3843 TQString text = page->noteText( );
3844 notebar->setCurrentNoteText( text );
3846 refreshPageButton();
3849 deSelectAllObjects();
3850 m_pKPresenterDoc->repaint(
false );
3852 m_pKPresenterDoc->displayActivePage( page );
3855void KPrView::refreshPageButton()
3857 bool state = (currPg > 0);
3858 pgPrev->setEnabled( state );
3859 actionScreenFirst->setEnabled(state);
3860 actionScreenPrev->setEnabled(state);
3861 state=(currPg < (int)m_pKPresenterDoc->getPageNums() - 1);
3862 pgNext->setEnabled( state );
3863 actionScreenLast->setEnabled(state);
3864 actionScreenNext->setEnabled(state);
3865 updateHeaderFooterButton();
3866 updateDisplayObjectMasterPageButton();
3867 updateDisplayBackgroundButton();
3870void KPrView::showObjectRect(
const KPrObject *
object )
3872 TQRect r = zoomHandler()->zoomRect( object->getRealRect() );
3873 if ( ! TQRect( getCanvas()->diffx(),
3874 getCanvas()->diffy(),
3875 getCanvas()->width(),
3876 getCanvas()->height() ).contains( r ) )
3878 int x = r.left() - 20;
3879 int y = r.top() - 20;
3888 horz->setValue( x );
3889 vert->setValue( y );
3893void KPrView::setTool( ToolEditMode toolEditMode )
3895 switch ( toolEditMode ) {
3897 actionToolsMouse->setChecked(
true );
3900 actionToolsRotate->setChecked(
true );
3903 actionToolsZoom->setChecked(
true );
3906 actionToolsLine->setChecked(
true );
3909 actionToolsRectangle->setChecked(
true );
3912 actionToolsCircleOrEllipse->setChecked(
true );
3915 actionToolsPie->setChecked(
true );
3918 actionToolsDiagramm->setChecked(
true );
3921 actionToolsTable->setChecked(
true );
3924 actionToolsFormula->setChecked(
true );
3927 actionToolsText->setChecked(
true );
3930 actionToolsAutoform->setChecked(
true );
3937void KPrView::setRulerMouseShow(
bool _show )
3939 v_ruler->showMousePos( _show );
3940 h_ruler->showMousePos( _show );
3943void KPrView::setRulerMousePos(
int mx,
int my )
3945 v_ruler->setMousePos( mx, my );
3946 h_ruler->setMousePos( mx, my );
3949void KPrView::enableWebPres()
3953void KPrView::enableMSPres()
3957bool KPrView::doubleClickActivation()
const
3962TQWidget* KPrView::canvas()
const
3967int KPrView::canvasXOffset()
const
3969 return m_canvas->diffx();
3972int KPrView::canvasYOffset()
const
3974 return m_canvas->diffy();
3977void KPrView::setCanvasXOffset(
int _x )
3979 m_canvas->setDiffX( _x );
3982void KPrView::setCanvasYOffset(
int _y )
3984 m_canvas->setDiffY( _y );
3987int KPrView::getCurrentPresPage()
const
3992 return m_canvas->presPage();
3995int KPrView::getCurrentPresStep()
const
4000 return m_canvas->presStep();
4003int KPrView::getPresStepsOfPage()
const
4008 return m_canvas->numPresSteps();
4011int KPrView::getNumPresPages()
const
4016 return m_canvas->numPresPages();
4019bool KPrView::gotoPresPage(
int pg )
4024 m_canvas->gotoPage( pg );
4028void KPrView::nextPage()
4034 if ( currPg >= (
int)m_pKPresenterDoc->getPageNums() - 1 )
4038 skipToPage( currPg+1 );
4041void KPrView::prevPage()
4049 skipToPage( currPg-1 );
4052void KPrView::updateSideBar()
4056 sidebar->blockSignals(
true );
4057 sidebar->thumbBar()->uptodate =
false;
4058 sidebar->outline()->rebuildItems();
4059 sidebar->thumbBar()->rebuildItems();
4060 sidebar->blockSignals(
false );
4064void KPrView::updateSideBarItem( KPrPage * page )
4067 sidebar->updateItem( page );
4068 m_pKPresenterDoc->recalcVariables( VT_STATISTIC );
4071void KPrView::addSideBarItem(
int pos )
4075 sidebar->blockSignals(
true );
4076 sidebar->addItem( pos );
4077 sidebar->blockSignals(
false );
4081void KPrView::moveSideBarItem(
int oldPos,
int newPos )
4085 sidebar->blockSignals(
true );
4086 sidebar->moveItem( oldPos, newPos );
4087 sidebar->blockSignals(
false );
4091void KPrView::removeSideBarItem(
int pos )
4095 sidebar->blockSignals(
true );
4096 sidebar->removeItem( pos );
4097 sidebar->blockSignals(
false );
4101void KPrView::updatePageInfo()
4104 m_sbPageLabel->setText( TQString(
" ") +
4105 i18n(
"Slide %1/%2").arg(getCurrPgNum()).arg(m_pKPresenterDoc->getPageNums())+
4109void KPrView::updateObjectStatusBarItem()
4111 KStatusBar * sb = statusBar();
4112 int nbObjects = m_canvas->objNums();
4114 if ( m_pKPresenterDoc->showStatusBar() && sb && nbObjects > 0 ) {
4115 int nbSelected = m_canvas->numberOfObjectSelected();
4117 if (nbSelected == 1) {
4118 KoUnit::Unit unit = m_pKPresenterDoc->unit();
4120 KPrObject * obj = m_canvas->getSelectedObj();
4121 KoSize size = obj->getSize();
4122 m_sbObjectLabel->setText(
' ' + i18n(
"Statusbar info",
"%1: %2, %3 - %4, %5 (width: %6, height: %7)" )
4123 .arg( obj->getObjectName() )
4124 .arg( KoUnit::toUserStringValue( obj->getOrig().x(), unit ) )
4125 .arg( KoUnit::toUserStringValue( obj->getOrig().y() , unit) )
4126 .arg( KoUnit::toUserStringValue( obj->getOrig().x() + size.width(), unit ) )
4127 .arg( KoUnit::toUserStringValue( obj->getOrig().y() + size.height(), unit ) )
4128 .arg( KoUnit::toUserStringValue( size.width(), unit ) )
4129 .arg( KoUnit::toUserStringValue( size.height(), unit ) ) );
4132 m_sbObjectLabel->setText( i18n(
"1 object selected",
"%n objects selected", nbSelected) );
4134 else if ( sb && m_sbObjectLabel )
4135 m_sbObjectLabel->setText( TQString() );
4138void KPrView::pageNumChanged()
4143void KPrView::viewShowSideBar()
4147 if ( sidebar->isVisible() )
4153void KPrView::viewShowNoteBar()
4157 if ( notebar->isVisible() )
4163void KPrView::viewSlideMaster()
4165 bool state = actionViewSlideMaster->isChecked();
4166 setEditMaster( state );
4169 m_actionExtraHeader->setEnabled( state );
4170 m_actionExtraFooter->setEnabled( state );
4171 actionDisplayBackgroundPage->setEnabled( state );
4172 actionDisplayObjectFromMasterPage->setEnabled( state );
4176void KPrView::setEditMaster(
bool editMaster )
4178 if ( m_editMaster != editMaster )
4180 m_canvas->exitEditMode();
4181 m_canvas->deSelectAllObj();
4182 m_editMaster = editMaster;
4185 m_canvas->setActivePage( m_pKPresenterDoc->masterPage() );
4186 pgPrev->setEnabled(
false );
4187 actionScreenFirst->setEnabled(
false );
4188 actionScreenPrev->setEnabled(
false );
4189 pgNext->setEnabled(
false );
4190 actionScreenLast->setEnabled(
false );
4191 actionScreenNext->setEnabled(
false );
4192 actionEditCopyPage->setEnabled(
false );
4193 actionEditDuplicatePage->setEnabled(
false );
4194 actionEditDelPage->setEnabled(
false );
4195 actionViewSlideMaster->setChecked(
true );
4199 m_canvas->setActivePage( m_pKPresenterDoc->pageList().at( currPg ) );
4200 actionEditCopyPage->setEnabled(
true );
4201 actionEditDuplicatePage->setEnabled(
true );
4202 actionEditDelPage->setEnabled( m_pKPresenterDoc->getPageNums() > 1 );
4203 actionViewSlideMaster->setChecked(
false );
4204 refreshPageButton();
4207 sidebar->setViewMasterPage( m_editMaster );
4208 updateNoteBarText();
4209 m_canvas->repaint(
false );
4213void KPrView::updateNoteBarText()
4218 TQString text = m_pKPresenterDoc->masterPage()->noteText();
4219 notebar->setCurrentNoteText( text );
4223 TQString text = m_pKPresenterDoc->pageList().at( currPg )->noteText( );
4224 notebar->setCurrentNoteText( text );
4229void KPrView::openPopupMenuMenuPage(
const TQPoint & _point )
4231 if(!koDocument()->isReadWrite() || !factory())
4233 TQPtrList<TDEAction> actionList= TQPtrList<TDEAction>();
4234 TDEActionSeparator *separator=
new TDEActionSeparator();
4235 switch( m_canvas->activePage()->getBackType())
4242 actionList.append(separator);
4243 actionList.append(actionSaveBackgroundPicture);
4246 if ( actionList.count()>0)
4247 plugActionList(
"picture_action", actionList );
4248 m_mousePos = m_canvas->mapFromGlobal( _point );
4249 TQPopupMenu* menu =
dynamic_cast<TQPopupMenu*
>(factory()->container(
"menupage_popup",
this));
4252 m_mousePos = TQPoint( 0, 0 );
4253 unplugActionList(
"picture_action" );
4257void KPrView::openPopupMenuObject(
const TQString & name,
const TQPoint & _point )
4259 if(!koDocument()->isReadWrite() || !factory())
4261 dynamic_cast<TQPopupMenu*
>(factory()->container(name,
this))->popup(_point);
4264void KPrView::openPopupMenuSideBar(
const TQPoint & _point)
4266 if(!koDocument()->isReadWrite() || !factory())
4268 dynamic_cast<TQPopupMenu*
>(factory()->container(
"sidebarmenu_popup",
this))->popup(_point);
4271void KPrView::renamePageTitle()
4274 sidebar->renamePageTitle();
4277void KPrView::picViewOriginalSize()
4279 m_canvas->picViewOriginalSize();
4282void KPrView::picViewOrig640x480()
4284 m_canvas->picViewOrig640x480();
4287void KPrView::picViewOrig800x600()
4289 m_canvas->picViewOrig800x600();
4292void KPrView::picViewOrig1024x768()
4294 m_canvas->picViewOrig1024x768();
4297void KPrView::picViewOrig1280x1024()
4299 m_canvas->picViewOrig1280x1024();
4302void KPrView::picViewOrig1600x1200()
4304 m_canvas->picViewOrig1600x1200();
4307void KPrView::chPic()
4312void KPrView::penColorChanged(
const KoPen & _pen )
4315 actionPenColor->setCurrentColor( _pen.color() );
4318void KPrView::brushColorChanged(
const TQBrush & _brush )
4321 actionBrushColor->setCurrentColor(_brush.style ()==TQt::NoBrush ? TQt::white : _brush.color() );
4324void KPrView::restartAutoPresTimer()
4326 m_autoPresTime.start();
4327 m_autoPresElapsedTime = 0;
4328 m_autoPresTimer.start( m_autoPresTimerValue,
true );
4331void KPrView::continueAutoPresTimer()
4333 m_autoPresTime.restart();
4335 m_autoPresTimer.start( m_autoPresTimerValue - m_autoPresElapsedTime,
true );
4338void KPrView::stopAutoPresTimer()
4340 m_autoPresTimer.stop();
4341 m_autoPresElapsedTime += m_autoPresTime.elapsed();
4344void KPrView::setAutoPresTimer(
int sec )
4346 m_autoPresTimerValue = sec * 1000;
4347 restartAutoPresTimer();
4350void KPrView::insertSpecialChar()
4352 KPrTextView *edit=m_canvas->currentTextObjectView();
4355 TQString f = edit->textFontFamily();
4357 if (m_specialCharDlg==0)
4359 m_specialCharDlg =
new KoCharSelectDia(
this,
"insert special char", f, c,
false );
4360 connect( m_specialCharDlg, TQ_SIGNAL(insertChar(TQChar,
const TQString &)),
4361 this, TQ_SLOT(slotSpecialChar(TQChar,
const TQString &)));
4362 connect( m_specialCharDlg, TQ_SIGNAL( finished() ),
4363 this, TQ_SLOT( slotSpecialCharDlgClosed() ) );
4365 m_specialCharDlg->show();
4368void KPrView::slotSpecialCharDlgClosed()
4370 if ( m_specialCharDlg)
4372 disconnect( m_specialCharDlg, TQ_SIGNAL(insertChar(TQChar,
const TQString &)),
4373 this, TQ_SLOT(slotSpecialChar(TQChar,
const TQString &)));
4374 disconnect( m_specialCharDlg, TQ_SIGNAL( finished() ),
4375 this, TQ_SLOT( slotSpecialCharDlgClosed() ) );
4376 m_specialCharDlg->deleteLater();
4377 m_specialCharDlg = 0L;
4381void KPrView::slotSpecialChar(TQChar c,
const TQString &_font)
4383 KPrTextView *edit=m_canvas->currentTextObjectView();
4386 edit->insertSpecialChar(c, _font);
4389void KPrView::insertLink()
4391 KPrTextView *edit=m_canvas->currentTextObjectView();
4396 if ( edit->textObject()->hasSelection() )
4398 TQString selectedText = edit->textObject()->selectedText();
4399 if ( edit->textObject()->selectionHasCustomItems() || selectedText.contains(
'\n') )
4401 if ( selectedText.startsWith(
"mailto:/" ) ||
4402 selectedText.startsWith(
"ftp:/" ) ||
4403 selectedText.startsWith(
"http:/" ) )
4411 link = selectedText;
4415 if(KoInsertLinkDia::createLinkDia(link, ref, TQStringList(),
false,
this))
4417 if(!link.isEmpty() && !ref.isEmpty())
4418 edit->insertLink(link, ref);
4422void KPrView::changeLink()
4424 KPrTextView * edit = m_canvas->currentTextObjectView();
4427 KoLinkVariable * var=edit->linkVariable();
4430 TQString oldhref= var->url();
4431 TQString oldLinkName=var->value();
4432 TQString link=oldLinkName;
4433 TQString ref=oldhref;
4434 if(KoInsertLinkDia::createLinkDia(link, ref, TQStringList(),
false,
this))
4436 if(!link.isEmpty() && !ref.isEmpty())
4438 if( ref != oldhref || link!=oldLinkName)
4440 KPrChangeLinkVariable*cmd=
new KPrChangeLinkVariable( i18n(
"Change Link"),
4441 m_pKPresenterDoc, oldhref,
4442 ref, oldLinkName,link, var);
4444 m_pKPresenterDoc->addCommand(cmd);
4452void KPrView::showFormat(
const KoTextFormat ¤tFormat )
4454 actionTextFontFamily->setFont( currentFormat.font().family() );
4455 actionTextFontSize->setFontSize( currentFormat.pointSize() );
4456 actionTextBold->setChecked( currentFormat.font().bold());
4457 actionTextItalic->setChecked( currentFormat.font().italic() );
4458 actionTextUnderline->setChecked( currentFormat.underline());
4459 actionFormatStrikeOut->setChecked( currentFormat.strikeOut());
4461 actionBrushColor->setEnabled(
true);
4464 switch(currentFormat.vAlign())
4466 case KoTextFormat::AlignSuperScript:
4468 actionFormatSub->setChecked(
false );
4469 actionFormatSuper->setChecked(
true );
4472 case KoTextFormat::AlignSubScript:
4474 actionFormatSub->setChecked(
true );
4475 actionFormatSuper->setChecked(
false );
4478 case KoTextFormat::AlignNormal:
4481 actionFormatSub->setChecked(
false );
4482 actionFormatSuper->setChecked(
false );
4488void KPrView::slotSoftHyphen()
4490 KPrTextView *edit = m_canvas->currentTextObjectView();
4492 edit->insertSoftHyphen();
4495void KPrView::slotNonbreakingSpace()
4497 KPrTextView *edit=m_canvas->currentTextObjectView();
4499 edit->insertNonbreakingSpace();
4502void KPrView::slotNonbreakingHyphen()
4504 KPrTextView *edit=m_canvas->currentTextObjectView();
4506 edit->insertNonbreakingHyphen();
4509void KPrView::slotLineBreak()
4511 KPrTextView *edit=m_canvas->currentTextObjectView();
4513 edit->insertLineBreak();
4516void KPrView::slotIncreaseNumberingLevel()
4518 KPrTextView *edit=m_canvas->currentTextObjectView();
4521 edit->increaseNumberingLevel( m_pKPresenterDoc->styleCollection() );
4525void KPrView::slotDecreaseNumberingLevel()
4527 KPrTextView *edit=m_canvas->currentTextObjectView();
4529 edit->decreaseNumberingLevel( m_pKPresenterDoc->styleCollection() );
4532void KPrView::extraAutoFormat()
4534 m_pKPresenterDoc->getAutoFormat()->readConfig();
4535 KoAutoFormatDia dia(
this, 0, m_pKPresenterDoc->getAutoFormat() );
4537 m_pKPresenterDoc->startBackgroundSpellCheck();
4540void KPrView::slotSpellCheck()
4542 if (m_spell.kospell)
return;
4544 m_spell.macroCmdSpellCheck = 0L;
4545 m_spell.replaceAll.clear();
4546 TQValueList<KoTextObject *> objects;
4547 KPrTextView *edit=m_canvas->currentTextObjectView();
4549 if ( edit && edit->textObject()->hasSelection() )
4551 objects.append(edit->kpTextObject()->textObject());
4552 options = KFindDialog::SelectedText;
4556 objects = spellAddTextObject();
4557 TQPtrList<KPrObject> lstObj;
4559 if ( ! objects.empty() )
4561 m_spell.textIterator =
new KoTextIterator( objects, edit, options );
4566TQValueList<KoTextObject *> KPrView::spellAddTextObject()
const
4568 TQValueList<KoTextObject *> lst;
4569 TQPtrList<KPrObject> lstObj;
4570 m_canvas->activePage()->getAllObjectSelectedList(lstObj,
true);
4571 TQPtrListIterator<KPrObject> it( lstObj );
4572 for ( ; it.current() ; ++it )
4574 if(it.current()->getType()==OT_TEXT)
4576 KPrTextObject* tmp =
dynamic_cast<KPrTextObject*
>(it.current() );
4577 if ( tmp && !tmp->isProtectContent())
4578 lst.append( tmp->textObject() );
4586void KPrView::startKSpell()
4589 if ( !m_spell.kospell )
4590 m_spell.kospell =
new KoSpell( m_broker,
this );
4591 m_spell.kospell->check( m_spell.textIterator,
true );
4594 m_spell.dlg =
new KSpell2::Dialog( m_spell.kospell,
this );
4595 m_spell.dlg->activeAutoCorrect(
true );
4596 TQObject::connect( m_spell.dlg, TQ_SIGNAL(misspelling(
const TQString&,
int)),
4597 this, TQ_SLOT(spellCheckerMisspelling(
const TQString&,
int)) );
4598 TQObject::connect( m_spell.dlg, TQ_SIGNAL(replace(
const TQString&,
int,
const TQString&)),
4599 this, TQ_SLOT(spellCheckerCorrected(
const TQString&,
int,
const TQString&)) );
4600 TQObject::connect( m_spell.dlg, TQ_SIGNAL(done(
const TQString&) ),
4601 this, TQ_SLOT(spellCheckerDone(
const TQString&)) );
4602 TQObject::connect( m_spell.dlg, TQ_SIGNAL(cancel() ),
4603 this, TQ_SLOT( spellCheckerCancel() ) );
4604 TQObject::connect( m_spell.dlg, TQ_SIGNAL(autoCorrect(
const TQString &,
const TQString & ) ),
4605 this, TQ_SLOT( spellAddAutoCorrect (
const TQString &,
const TQString &) ) );
4607 m_spell.dlg->show();
4612void KPrView::spellCheckerCancel()
4614 kdDebug()<<
"void KPrView::spellCheckerCancel() \n";
4615 spellCheckerRemoveHighlight();
4616 clearSpellChecker(
true);
4620void KPrView::spellCheckerRemoveHighlight()
4622 KoTextObject* textobj = m_spell.kospell->currentTextObject();
4628 KPrTextView *edit=m_canvas->currentTextObjectView();
4630 edit->drawCursor(
true );
4634void KPrView::clearSpellChecker(
bool cancelSpellCheck)
4636 kdDebug() <<
"KPrView::clearSpellChecker()" << endl;
4637 delete m_spell.textIterator;
4638 m_spell.textIterator = 0L;
4641 delete m_spell.kospell;
4642 m_spell.kospell = 0;
4643 m_initSwitchPage = -1;
4646 if ( m_spell.macroCmdSpellCheck )
4648 if ( !cancelSpellCheck )
4649 m_pKPresenterDoc->addCommand(m_spell.macroCmdSpellCheck);
4653 m_spell.macroCmdSpellCheck->unexecute();
4654 delete m_spell.macroCmdSpellCheck;
4657 m_spell.macroCmdSpellCheck=0L;
4659 m_spell.replaceAll.clear();
4663void KPrView::spellCheckerMisspelling(
const TQString &old,
int pos )
4666 KoTextObject* textobj = m_spell.kospell->currentTextObject();
4667 KoTextParag* parag = m_spell.kospell->currentParag();
4668 Q_ASSERT( textobj );
4670 if ( !textobj || !parag )
return;
4672 Q_ASSERT( textdoc );
4673 if ( !textdoc )
return;
4674 pos += m_spell.kospell->currentStartIndex();
4676 kdDebug() <<
"KWView::spellCheckerMisspelling parag=" << parag->paragId() <<
" pos=" << pos <<
" length=" << old.length() << endl;
4678 textdoc->
textObject()->highlightPortion( parag, pos, old.length(), m_canvas,
true );
4681void KPrView::spellCheckerCorrected(
const TQString &old,
int pos,
const TQString &corr )
4686 KoTextObject* textobj = m_spell.kospell->currentTextObject();
4687 KoTextParag* parag = m_spell.kospell->currentParag();
4688 Q_ASSERT( textobj );
4690 if ( !textobj || !parag )
return;
4693 Q_ASSERT( textdoc );
4696 pos += m_spell.kospell->currentStartIndex();
4697 textdoc->
textObject()->highlightPortion( parag, pos, old.length(), m_canvas,
true );
4699 KoTextCursor cursor( textdoc );
4700 cursor.setParag( parag );
4701 cursor.setIndex( pos );
4702 if(!m_spell.macroCmdSpellCheck)
4703 m_spell.macroCmdSpellCheck=
new KMacroCommand(i18n(
"Correct Misspelled Word"));
4704 m_spell.macroCmdSpellCheck->addCommand(textobj->replaceSelectionCommand(&cursor, corr, TQString(), KoTextDocument::HighlightSelection));
4707void KPrView::spellCheckerDone(
const TQString & )
4710 kdDebug() <<
"KPrView::spellCheckerDone" << endl;
4712 Q_ASSERT( textdoc );
4716 clearSpellChecker();
4719void KPrView::showCounter( KoParagCounter &c )
4721 TQString styleStr(
"counterstyle_");
4722 styleStr += TQString::number( c.style() );
4724 TDEToggleAction* act =
static_cast<TDEToggleAction *
>( actionCollection()->action( styleStr.latin1() ) );
4727 act->setChecked(
true );
4730void KPrView::formatParagraph()
4732 showParagraphDialog();
4735void KPrView::showParagraphDialog(
int initialPage,
double initialTabPos)
4737 TQPtrList<KoTextFormatInterface> lst = m_canvas->applicableTextInterfaces();
4738 if ( lst.isEmpty() )
4740 TQPtrList<KPrTextObject> lstObjects = m_canvas->applicableTextObjects();
4741 if ( lstObjects.isEmpty() )
4745 m_paragDlg =
new KoParagDia(
this,
"",
4746 KoParagDia::PD_SPACING | KoParagDia::PD_ALIGN |
4747 KoParagDia::PD_DECORATION | KoParagDia::PD_NUMBERING |
4748 KoParagDia::PD_TABS,
4749 m_pKPresenterDoc->unit(),
4750 lstObjects.first()->getSize().width(),
false );
4751 m_paragDlg->setCaption( i18n(
"Paragraph Settings" ) );
4754 m_paragDlg->setParagLayout( * lst.first()->currentParagLayoutFormat() );
4756 if ( initialPage != -1 )
4758 m_paragDlg->setCurrentPage( initialPage );
4759 if ( initialPage == KoParagDia::PD_TABS )
4760 m_paragDlg->tabulatorsWidget()->setCurrentTab( initialTabPos );
4762 connect( m_paragDlg, TQ_SIGNAL( applyParagStyle() ),
this, TQ_SLOT( slotApplyParag() ) );
4770void KPrView::slotApplyParag()
4772 TQPtrList<KoTextFormatInterface> lst = m_canvas->applicableTextInterfaces();
4773 Q_ASSERT( !lst.isEmpty() );
4774 if ( lst.isEmpty() )
return;
4775 TQPtrListIterator<KoTextFormatInterface> it( lst );
4776 KMacroCommand * macroCommand =
new KMacroCommand( i18n(
"Paragraph Settings" ) );
4777 KoParagLayout newLayout = m_paragDlg->paragLayout();
4778 int flags = m_paragDlg->changedFlags();
4779 kdDebug() << k_funcinfo <<
"flags=" << flags << endl;
4782 for ( ; it.current() ; ++it )
4784 KCommand* cmd = it.current()->setParagLayoutFormatCommand( &newLayout, flags );
4788 macroCommand->addCommand(cmd);
4793 m_pKPresenterDoc->addCommand(macroCommand);
4795 delete macroCommand;
4799 m_paragDlg->setParagLayout( *lst.first()->currentParagLayoutFormat() );
4802void KPrView::textDefaultFormat()
4804 m_canvas->setTextDefaultFormat( );
4807void KPrView::changeNbOfRecentFiles(
int _nb)
4810 shell()->setMaxRecentItems( _nb );
4813TQPopupMenu * KPrView::popupMenu(
const TQString& name )
4815 Q_ASSERT(factory());
4817 return ((TQPopupMenu*)factory()->container( name,
this ));
4821void KPrView::addVariableActions(
int type,
const TQStringList & texts,
4822 TDEActionMenu * parentMenu,
const TQString & menuText )
4826 if ( texts.count() > 1 && !menuText.isEmpty() )
4828 TDEActionMenu * subMenu =
new TDEActionMenu( menuText, actionCollection() );
4829 parentMenu->insert( subMenu );
4830 parentMenu = subMenu;
4832 TQStringList::ConstIterator it = texts.begin();
4833 for (
int i = 0; it != texts.end() ; ++it, ++i )
4835 if ( !(*it).isEmpty() )
4840 TDEAction * act =
new TDEAction( (*it), 0,
this, TQ_SLOT( insertVariable() ),
4841 actionCollection(),
"var-action" );
4842 m_variableDefMap.insert( act, v );
4843 parentMenu->insert( act );
4848void KPrView::refreshCustomMenu()
4850 TDEActionPtrList lst2 = actionCollection()->actions(
"custom-variable-action");
4851 TQValueList<TDEAction *> actions = lst2;
4852 TQValueList<TDEAction *>::ConstIterator it2 = lst2.begin();
4853 TQValueList<TDEAction *>::ConstIterator end = lst2.end();
4854 TQMap<TQString, TDEShortcut> shortCuts;
4856 for (; it2 != end; ++it2 )
4858 shortCuts.insert((*it2)->text(), (*it2)->shortcut());
4862 delete actionInsertCustom;
4863 actionInsertCustom =
new TDEActionMenu( i18n(
"&Custom" ),
4864 actionCollection(),
"insert_custom" );
4866 actionInsertVariable->insert(actionInsertCustom, 0);
4869 actionInsertCustom->popupMenu()->clear();
4870 TQPtrListIterator<KoVariable> it( m_pKPresenterDoc->getVariableCollection()->getVariables() );
4875 for ( ; it.current() ; ++it )
4877 KoVariable *var = it.current();
4878 if ( var->type() == VT_CUSTOM )
4880 varName=( (KoCustomVariable*) var )->name();
4881 if ( !lst.contains( varName) )
4883 lst.append( varName );
4884 TQCString name = TQString(
"custom-action_%1").arg(i).latin1();
4885 act =
new TDEAction( varName, shortCuts[varName],
this,
4886 TQ_SLOT( insertCustomVariable() ), actionCollection(), name );
4888 act->setGroup(
"custom-variable-action" );
4889 actionInsertCustom->insert( act );
4894 bool state=!lst.isEmpty();
4896 actionInsertCustom->popupMenu()->insertSeparator();
4898 act =
new TDEAction( i18n(
"New..."), 0,
this, TQ_SLOT( insertNewCustomVariable() ), actionCollection(),
4899 TQString(
"custom-action_%1").arg(i).latin1() );
4900 act->setGroup(
"custom-variable-action" );
4901 actionInsertCustom->insert( act );
4903 actionInsertCustom->popupMenu()->insertSeparator();
4905 actionEditCustomVars->setEnabled(state);
4906 actionEditCustomVarsEdit->setEnabled( state );
4907 actionInsertCustom->insert( actionEditCustomVarsEdit );
4910void KPrView::insertCustomVariable()
4912 KPrTextView *edit=m_canvas->currentTextObjectView();
4915 TDEAction * act = (TDEAction *)(sender());
4916 edit->insertCustomVariable(act->text());
4920void KPrView::insertNewCustomVariable()
4922 KPrTextView *edit=m_canvas->currentTextObjectView();
4924 edit->insertVariable( VT_CUSTOM, 0 );
4927void KPrView::editCustomVariable()
4929 KPrTextView *edit=m_canvas->currentTextObjectView();
4932 KoCustomVariable *var =
static_cast<KoCustomVariable *
>(edit->variable());
4935 TQString oldvalue = var->value();
4936 KoCustomVarDialog dia(
this, var );
4939 if( var->value() != oldvalue )
4941 KPrChangeCustomVariableValue *cmd=
new KPrChangeCustomVariableValue(i18n(
"Change Custom Variable" ),
4942 m_pKPresenterDoc, oldvalue, var->value(), var );
4943 m_pKPresenterDoc->addCommand(cmd);
4945 m_pKPresenterDoc->recalcVariables( VT_CUSTOM );
4951void KPrView::editCustomVars()
4953 KoCustomVariablesDia dia(
this, m_pKPresenterDoc->getVariableCollection()->getVariables() );
4954 TQStringList listOldCustomValue;
4955 TQPtrListIterator<KoVariable> oldIt( m_pKPresenterDoc->getVariableCollection()->getVariables() );
4956 for ( ; oldIt.current() ; ++oldIt )
4958 if(oldIt.current()->type()==VT_CUSTOM)
4959 listOldCustomValue.append(((KoCustomVariable*)oldIt.current())->value());
4963 m_pKPresenterDoc->recalcVariables( VT_CUSTOM );
4964 TQPtrListIterator<KoVariable> it( m_pKPresenterDoc->getVariableCollection()->getVariables() );
4965 KMacroCommand * macroCommand = 0L;
4967 for ( ; it.current() ; ++it )
4969 if(it.current()->type() == VT_CUSTOM )
4971 if(((KoCustomVariable*)it.current())->value()!=*(listOldCustomValue.at(i)))
4974 macroCommand =
new KMacroCommand( i18n(
"Change Custom Variable" ) );
4975 KPrChangeCustomVariableValue *cmd=
4976 new KPrChangeCustomVariableValue(i18n(
"Change Custom Variable" ), m_pKPresenterDoc,
4977 *(listOldCustomValue.at(i)),
4978 ((KoCustomVariable*)it.current())->value(),
4979 ((KoCustomVariable*)it.current()));
4980 macroCommand->addCommand(cmd);
4986 m_pKPresenterDoc->addCommand(macroCommand);
4990void KPrView::insertVariable()
4992 KPrTextView *edit=m_canvas->currentTextObjectView();
4995 TDEAction * act = (TDEAction *)(sender());
4996 VariableDefMap::ConstIterator it = m_variableDefMap.find( act );
4997 if ( it == m_variableDefMap.end() )
4998 kdWarning(33001) <<
"Action not found in m_variableDefMap." << endl;
5001 if ( (*it).type == VT_FIELD )
5002 edit->insertVariable( (*it).type, KoFieldVariable::fieldSubType( (*it).subtype ) );
5004 edit->insertVariable( (*it).type, (*it).subtype );
5009void KPrView::openLink()
5011 KPrTextView *edit=m_canvas->currentTextObjectView();
5016void KPrView::showRulerIndent(
double _leftMargin,
double _firstLine,
double _rightMargin,
bool rtl )
5018 KoRuler * hRuler = getHRuler();
5021 hRuler->setFirstIndent( KoUnit::toUserValue( _firstLine, m_pKPresenterDoc->unit() ) );
5022 hRuler->setLeftIndent( KoUnit::toUserValue( _leftMargin, m_pKPresenterDoc->unit() ) );
5023 hRuler->setRightIndent( KoUnit::toUserValue( _rightMargin, m_pKPresenterDoc->unit() ) );
5024 hRuler->setDirection( rtl );
5025 actionTextDepthMinus->setEnabled( _leftMargin>0);
5029void KPrView::tabListChanged(
const KoTabulatorList & tabList )
5031 if(!m_pKPresenterDoc->isReadWrite())
5034 m_canvas->setTabList( tabList );
5037void KPrView::newFirstIndent(
double _firstIndent )
5039 m_canvas->setNewFirstIndent(_firstIndent);
5042void KPrView::newLeftIndent(
double _leftIndent)
5044 m_canvas->setNewLeftIndent(_leftIndent);
5047void KPrView::newRightIndent(
double _rightIndent)
5049 m_canvas->setNewRightIndent(_rightIndent);
5052void KPrView::slotUpdateRuler()
5055 bool isText=!m_canvas->applicableTextObjects().isEmpty();
5058 KPrTextObject *txtobj= m_canvas->applicableTextObjects().first();
5061 TQRect r= zoomHandler()->zoomRect(txtobj->getRealRect());
5062 getHRuler()->setFrameStartEnd( r.left() , r.right() );
5063 getVRuler()->setFrameStartEnd( r.top(), r.bottom() );
5066 int flags = txtobj->isProtectContent() ? 0 : (KoRuler::F_INDENTS | KoRuler::F_TABS);
5067 if( getHRuler()->flags()!= flags )
5069 getHRuler()->changeFlags(flags);
5070 getHRuler()->repaint();
5075 if( getVRuler()->flags() != 0 )
5077 getVRuler()->changeFlags(0);
5078 getVRuler()->repaint();
5085 refreshRuler( kPresenterDoc()->showGuideLines() );
5091void KPrView::slotHRulerDoubleClicked(
double ptpos )
5093 showParagraphDialog( KoParagDia::PD_TABS, ptpos );
5101void KPrView::slotHRulerDoubleClicked()
5103 KoRuler *ruler = getHRuler();
5105 if ( m_canvas && m_canvas->currentTextObjectView() && (ruler->flags() & KoRuler::F_INDENTS) && ruler->doubleClickedIndent() )
5108 openPageLayoutDia();
5111void KPrView::changeCaseOfText()
5113 TQPtrList<KoTextFormatInterface> lst = m_canvas->applicableTextInterfaces();
5114 if ( lst.isEmpty() )
return;
5115 TQPtrListIterator<KoTextFormatInterface> it( lst );
5116 KoChangeCaseDia *caseDia=
new KoChangeCaseDia(
this,
"change case" );
5119 KMacroCommand* macroCmd = 0L;
5120 for ( ; it.current() ; ++it )
5122 KCommand *cmd = it.current()->setChangeCaseOfTextCommand(caseDia->getTypeOfCase());
5126 macroCmd =
new KMacroCommand( i18n(
"Change Case of Text") );
5127 macroCmd->addCommand(cmd);
5131 m_pKPresenterDoc->addCommand(macroCmd);
5136void KPrView::editFind()
5139 m_searchEntry =
new KoSearchContext();
5140 KPrTextView * edit = m_canvas->currentTextObjectView();
5141 bool hasSelection = edit && (edit->kpTextObject())->textObject()->hasSelection();
5142 bool hasCursor = edit != 0;
5143 KoSearchDia dialog( m_canvas,
"find", m_searchEntry, hasSelection, hasCursor );
5146 TQValueList<KoTextObject *> list;
5147 TQPtrList<KoTextObject> list2 = m_pKPresenterDoc->allTextObjects();
5148 TQPtrListIterator<KoTextObject> it( list2 );
5149 for ( ; it.current() ; ++it )
5150 list.append(it.current());
5152 if( list.isEmpty() )
5155 if ( dialog.exec() == TQDialog::Accepted )
5157 delete m_findReplace;
5158 m_findReplace =
new KPrFindReplace(
this, m_canvas, &dialog, list, edit );
5163void KPrView::editReplace()
5166 m_searchEntry =
new KoSearchContext();
5167 if (!m_replaceEntry)
5168 m_replaceEntry =
new KoSearchContext();
5170 KPrTextView * edit = m_canvas->currentTextObjectView();
5171 bool hasSelection = edit && (edit->kpTextObject())->textObject()->hasSelection();
5172 bool hasCursor = edit != 0;
5173 KoReplaceDia dialog( m_canvas,
"replace", m_searchEntry, m_replaceEntry, hasSelection, hasCursor );
5176 TQValueList<KoTextObject *> list;
5177 TQPtrList<KoTextObject> list2 = m_pKPresenterDoc->allTextObjects();
5178 TQPtrListIterator<KoTextObject> it( list2 );
5179 for ( ; it.current() ; ++it )
5180 list.append(it.current());
5182 if( list.isEmpty() )
5185 if ( dialog.exec() == TQDialog::Accepted )
5187 delete m_findReplace;
5188 m_findReplace =
new KPrFindReplace(
this, m_canvas, &dialog, list, edit );
5193void KPrView::editFindPrevious()
5195 if ( !m_findReplace )
5200 (void) m_findReplace->findPrevious();
5203void KPrView::editFindNext()
5205 if ( !m_findReplace )
5210 (void) m_findReplace->findNext();
5213void KPrView::refreshAllVariable()
5215 m_pKPresenterDoc->recalcVariables( VT_ALL );
5218void KPrView::changeZoomMenu(
int zoom )
5221 lst << i18n(
"Width" );
5222 lst << i18n(
"Whole Slide" );
5226 TQValueList<int> list;
5228 const TQStringList itemsList ( actionViewZoom->items() );
5229 TQRegExp regexp(
"(\\d+)");
5231 for (TQStringList::ConstIterator it = itemsList.begin() ; it != itemsList.end() ; ++it)
5234 const int val=regexp.cap(1).toInt(&ok);
5236 if(ok && val>9 && list.contains(val)==0)
5241 if(list.contains(zoom)==0)
5242 list.append( zoom );
5246 for (TQValueList<int>::Iterator it = list.begin() ; it != list.end() ; ++it)
5247 lst.append( i18n(
"%1%").arg(*it) );
5251 lst << i18n(
"%1%").arg(
"33");
5252 lst << i18n(
"%1%").arg(
"50");
5253 lst << i18n(
"%1%").arg(
"75");
5254 lst << i18n(
"%1%").arg(
"100");
5255 lst << i18n(
"%1%").arg(
"125");
5256 lst << i18n(
"%1%").arg(
"150");
5257 lst << i18n(
"%1%").arg(
"200");
5258 lst << i18n(
"%1%").arg(
"250");
5259 lst << i18n(
"%1%").arg(
"350");
5260 lst << i18n(
"%1%").arg(
"400");
5261 lst << i18n(
"%1%").arg(
"450");
5262 lst << i18n(
"%1%").arg(
"500");
5264 actionViewZoom->setItems( lst );
5267void KPrView::showZoom(
int zoom )
5269 TQStringList list = actionViewZoom->items();
5270 TQString zoomStr( i18n(
"%1%").arg( zoom ) );
5271 int pos = list.findIndex(zoomStr);
5274 changeZoomMenu( zoom );
5275 list = actionViewZoom->items();
5277 actionViewZoom->setCurrentItem( list.findIndex(zoomStr) );
5280void KPrView::viewZoom(
const TQString &s )
5284 if ( s == i18n(
"Width") )
5286 zoom = tqRound(
static_cast<double>(m_canvas->visibleRect().width() * 100 ) /
5287 (zoomHandler()->resolutionX() * m_pKPresenterDoc->pageLayout().ptWidth ) );
5290 else if ( s == i18n(
"Whole Slide") )
5292 zoom = getZoomEntirePage();
5297 TQRegExp regexp(
"(\\d+)");
5299 zoom=regexp.cap(1).toInt(&ok);
5301 if( !ok || zoom<10 )
5302 zoom = zoomHandler()->zoom();
5303 zoom = TQMIN( zoom, 4000);
5305 changeZoomMenu( zoom );
5309 if( zoom != zoomHandler()->zoom() )
5311 setZoom( zoom,
true );
5312 KPrTextView *edit=m_canvas->currentTextObjectView();
5314 edit->ensureCursorVisible();
5317 m_canvas->setFocus();
5318 m_canvas->repaint();
5321void KPrView::setZoomRect(
const KoRect & rect )
5323 double height = zoomHandler()->resolutionY() * rect.height();
5324 double width = zoomHandler()->resolutionX() * rect.width();
5325 int zoom = TQMIN( tqRound(
static_cast<double>( m_canvas->visibleRect().height() * 100 ) / height ),
5326 tqRound(
static_cast<double>( m_canvas->visibleRect().width() * 100 ) / width ) );
5328 m_canvas->setUpdatesEnabled(
false );
5329 viewZoom( TQString::number( zoom ) );
5331 m_canvas->setToolEditMode( TEM_MOUSE );
5332 m_canvas->scrollTopLeftPoint( zoomHandler()->zoomPoint( rect.topLeft() ) );
5333 m_canvas->setUpdatesEnabled(
true );
5334 m_canvas->repaint();
5337void KPrView::setZoom(
int zoom,
bool updateViews )
5339 zoomHandler()->setZoomAndResolution( zoom, KoGlobal::dpiX(),
5341 m_pKPresenterDoc->newZoomAndResolution(updateViews,
false);
5342 m_pKPresenterDoc->updateZoomRuler();
5347 m_sbZoomLabel->setText(
' ' + TQString::number( zoom ) +
"% " );
5350void KPrView::slotUpdateScrollBarRanges()
5355KoTextZoomHandler *KPrView::zoomHandler()
const
5357 return m_pKPresenterDoc->zoomHandler();
5360void KPrView::slotViewFormattingChars()
5362 m_pKPresenterDoc->setViewFormattingChars(actionViewFormattingChars->isChecked());
5363 m_pKPresenterDoc->layout();
5364 m_pKPresenterDoc->repaint(
false);
5367void KPrView::setPageDuration(
int _pgNum )
5369 if ( kPresenterDoc()->presentationDuration() )
5372 *m_presentationDurationList.at( _pgNum ) += m_duration.elapsed();
5373 m_duration.restart();
5377void KPrView::openThePresentationDurationDialog()
5380 TQStringList presentationDurationStringList;
5381 for ( TQValueList<int>::Iterator it = m_presentationDurationList.begin();
5382 it != m_presentationDurationList.end(); ++it ) {
5384 TQString presentationDurationString = presentationDurationDataFormatChange( _time );
5385 presentationDurationStringList.append( presentationDurationString );
5389 TQString presentationTotalDurationString = presentationDurationDataFormatChange( totalTime );
5391 delete presDurationDia;
5392 presDurationDia = 0;
5394 presDurationDia =
new KPrPresDurationDia(
this,
"presDurationDia", kPresenterDoc(),
5395 presentationDurationStringList, presentationTotalDurationString );
5396 presDurationDia->setCaption( i18n(
"Presentation Duration" ) );
5397 TQObject::connect( presDurationDia, TQ_SIGNAL( presDurationDiaClosed() ),
this, TQ_SLOT( pddClosed() ) );
5398 presDurationDia->exec();
5400 delete presDurationDia;
5401 presDurationDia = 0;
5404void KPrView::pddClosed()
5406 presDurationDia = 0;
5414TQString KPrView::presentationDurationDataFormatChange(
int _time )
5416 TQTime time( 0, 0, 0 );
5417 return TDEGlobal::locale()->formatTime( time.addMSecs( _time ),
true,
true );
5421void KPrView::viewFooter()
5423 bool state = m_actionExtraFooter->isChecked();
5424 m_canvas->activePage()->setFooter( state );
5425 KPrHideShowHeaderFooter * cmd =
new KPrHideShowHeaderFooter( state ? i18n(
"Enable Document Header") : i18n(
"Disable Document Header"),
5426 m_pKPresenterDoc, m_canvas->activePage(), state, m_pKPresenterDoc->footer());
5427 m_pKPresenterDoc->addCommand(cmd);
5429 m_pKPresenterDoc->updateSideBarItem( m_pKPresenterDoc->masterPage() );
5432void KPrView::viewHeader()
5434 bool state = m_actionExtraHeader->isChecked();
5435 m_canvas->activePage()->setHeader( state );
5436 KPrHideShowHeaderFooter * cmd =
new KPrHideShowHeaderFooter( state ? i18n(
"Enable Document Footer") : i18n(
"Disable Document Footer"),
5437 m_pKPresenterDoc, m_canvas->activePage(), state, m_pKPresenterDoc->header());
5438 m_pKPresenterDoc->addCommand(cmd);
5440 m_pKPresenterDoc->updateSideBarItem( m_pKPresenterDoc->masterPage() );
5443void KPrView::showStyle(
const TQString & styleName )
5445 KoParagStyle* style = m_pKPresenterDoc->styleCollection()->findStyle( styleName );
5447 int pos = m_pKPresenterDoc->styleCollection()->indexOf( style );
5449 actionFormatStyle->setCurrentItem( pos );
5453void KPrView::updateStyleList()
5455 TQString currentStyle = actionFormatStyle->currentText();
5457 const TQStringList lst = m_pKPresenterDoc->styleCollection()->displayNameList();
5458 const int pos = lst.findIndex( currentStyle );
5460 actionFormatStyle->setItems( lst );
5462 actionFormatStyle->setCurrentItem( pos );
5466 TQStringList lstWithAccels;
5468 TDEAccelGen::generate( lst, lstWithAccels );
5469 TQMap<TQString, TDEShortcut> shortCuts;
5471 TDEActionPtrList lst2 = actionCollection()->actions(
"styleList");
5472 TQValueList<TDEAction *> actions = lst2;
5473 TQValueList<TDEAction *>::ConstIterator it = lst2.begin();
5474 TQValueList<TDEAction *>::ConstIterator end = lst2.end();
5475 for (; it != end; ++it )
5477 shortCuts.insert( TQString::fromUtf8( (*it)->name() ), (*it)->shortcut() );
5478 actionFormatStyleMenu->remove( *it );
5484 for ( TQStringList::Iterator it = lstWithAccels.begin(); it != lstWithAccels.end(); ++it, ++i )
5486 KoParagStyle *style = m_pKPresenterDoc->styleCollection()->styleAt( i );
5489 TQString name =
"paragstyle_" + style->name();
5490 TDEToggleAction* act =
new TDEToggleAction( (*it),
5491 shortCuts[name],
this, TQ_SLOT( slotStyleSelected() ),
5492 actionCollection(), name.utf8() );
5493 act->setGroup(
"styleList" );
5494 act->setExclusiveGroup(
"styleListAction" );
5495 act->setToolTip( i18n(
"Apply a paragraph style" ) );
5496 actionFormatStyleMenu->insert( act );
5499 bool isText=!m_canvas->applicableTextInterfaces().isEmpty();
5500 actionFormatStyleMenu->setEnabled( isText );
5501 actionFormatStyle->setEnabled(isText);
5504void KPrView::extraStylist()
5506 KPrTextView *edit=m_canvas->currentTextObjectView();
5507 TQString activeStyleName = TQString();
5511 if (edit->cursor() && edit->cursor()->parag() && edit->cursor()->parag()->style())
5512 activeStyleName = edit->cursor()->parag()->style()->displayName();
5514 KPrStyleManager * styleManager =
new KPrStyleManager(
this, m_pKPresenterDoc->unit(), m_pKPresenterDoc,
5515 *m_pKPresenterDoc->styleCollection(), activeStyleName);
5516 styleManager->exec();
5517 delete styleManager;
5523void KPrView::slotStyleSelected()
5525 TQString actionName = TQString::fromUtf8(sender()->name());
5526 kdDebug(33001) <<
"KPrView::slotStyleSelected " << actionName << endl;
5527 textStyleSelected( m_pKPresenterDoc->styleCollection()->findStyle( actionName ) );
5530void KPrView::textStyleSelected(
int index )
5532 textStyleSelected( m_pKPresenterDoc->styleCollection()->styleAt( index ) );
5535void KPrView::textStyleSelected( KoParagStyle *_sty )
5540 KPrTextView *edit=m_canvas->currentTextObjectView();
5543 edit->applyStyle( _sty );
5544 m_canvas->setFocus();
5548 TQPtrList<KPrTextObject> selectedFrames = m_canvas->selectedTextObjs();
5550 if (selectedFrames.count() <= 0)
5553 TQPtrListIterator<KPrTextObject> it( selectedFrames );
5554 KMacroCommand *globalCmd = 0L;
5555 for ( ; it.current() ; ++it )
5557 KoTextObject *textObject = it.current()->textObject();
5558 textObject->textDocument()->selectAll( KoTextDocument::Temp );
5559 KCommand *cmd = textObject->applyStyleCommand( 0L, _sty,
5560 KoTextDocument::Temp, KoParagLayout::All, KoTextFormat::Format,
5562 textObject->textDocument()->removeSelection( KoTextDocument::Temp );
5566 globalCmd =
new KMacroCommand( selectedFrames.count() == 1 ? i18n(
"Apply Style to Frame") :
5567 i18n(
"Apply Style to Frames"));
5568 globalCmd->addCommand( cmd );
5572 m_pKPresenterDoc->addCommand( globalCmd );
5577void KPrView::slotAllowAutoFormat()
5579 bool state = actionAllowAutoFormat->isChecked();
5580 m_pKPresenterDoc->setAllowAutoFormat( state );
5583void KPrView::slotCompletion()
5585 KPrTextView *edit=m_canvas->currentTextObjectView();
5590void KPrView::insertComment()
5592 KPrTextView *edit=m_canvas->currentTextObjectView();
5595 TQString authorName;
5596 KoDocumentInfo * info = m_pKPresenterDoc->documentInfo();
5597 KoDocumentInfoAuthor * authorPage =
static_cast<KoDocumentInfoAuthor *
>(info->page(
"author" ));
5599 kdWarning() <<
"Author information not found in documentInfo !" << endl;
5601 authorName = authorPage->fullName();
5603 KoCommentDia *commentDia =
new KoCommentDia(
this, TQString(),authorName );
5604 if( commentDia->exec() )
5605 edit->insertComment(commentDia->commentText());
5609void KPrView::editComment()
5611 KPrTextView *edit=m_canvas->currentTextObjectView();
5614 KoVariable * tmpVar=edit->variable();
5615 KoNoteVariable * var =
dynamic_cast<KoNoteVariable *
>(tmpVar);
5618 TQString authorName;
5619 KoDocumentInfo * info = m_pKPresenterDoc->documentInfo();
5620 KoDocumentInfoAuthor * authorPage =
static_cast<KoDocumentInfoAuthor *
>(info->page(
"author" ));
5622 kdWarning() <<
"Author information not found in documentInfo !" << endl;
5624 authorName = authorPage->fullName();
5625 TQString oldValue = var->note();
5626 TQString createDate = var->createdNote();
5627 KoCommentDia *commentDia =
new KoCommentDia(
this, oldValue, authorName, createDate);
5629 if( commentDia->exec() )
5631 if ( oldValue != commentDia->commentText())
5633 KPrChangeVariableNoteText *cmd =
new KPrChangeVariableNoteText( i18n(
"Change Note Text"), m_pKPresenterDoc, oldValue,commentDia->commentText(), var);
5634 m_pKPresenterDoc->addCommand( cmd );
5643void KPrView::viewGuideLines()
5645 bool state=actionViewShowGuideLine->isChecked();
5646 m_pKPresenterDoc->setShowGuideLines( state );
5647 m_pKPresenterDoc->updateGuideLineButton();
5648 deSelectAllObjects();
5649 refreshRuler( state );
5650 m_pKPresenterDoc->repaint(
false);
5654void KPrView::viewGrid()
5656 m_pKPresenterDoc->setShowGrid( actionViewShowGrid->isChecked() );
5657 m_pKPresenterDoc->setModified(
true );
5658 m_pKPresenterDoc->updateGridButton();
5659 m_pKPresenterDoc->repaint(
false);
5663void KPrView::updateGuideLineButton()
5665 bool state = m_pKPresenterDoc->showGuideLines();
5666 actionViewShowGuideLine->setChecked( state );
5667 refreshRuler( state );
5670void KPrView::updateGridButton()
5672 actionViewShowGrid->setChecked( m_pKPresenterDoc->showGrid() );
5673 actionViewSnapToGrid->setChecked ( m_pKPresenterDoc->snapToGrid() );
5676void KPrView::refreshRuler(
bool state )
5681 if ( !m_pKPresenterDoc->isReadWrite())
5683 getHRuler()->changeFlags(KoRuler::F_NORESIZE);
5684 getHRuler()->repaint();
5690 if( getHRuler()->flags() != KoRuler::F_HELPLINES )
5692 getHRuler()->changeFlags(KoRuler::F_HELPLINES);
5693 getHRuler()->repaint();
5698 if( getHRuler()->flags() != 0 )
5700 getHRuler()->changeFlags( 0 );
5701 getHRuler()->repaint();
5709 if ( !m_pKPresenterDoc->isReadWrite())
5711 getVRuler()->changeFlags(KoRuler::F_NORESIZE);
5712 getVRuler()->repaint();
5718 if( getVRuler()->flags() != KoRuler::F_HELPLINES )
5720 getVRuler()->changeFlags(KoRuler::F_HELPLINES);
5721 getVRuler()->repaint();
5726 if( getVRuler()->flags()!= 0)
5728 getVRuler()->changeFlags(0);
5729 getVRuler()->repaint();
5737void KPrView::addGuideLine()
5739 KoRect rect( m_canvas->activePage()->getPageRect() );
5741 KoPoint pos( zoomHandler()->unzoomPoint( m_mousePos + TQPoint( m_canvas->diffx(), m_canvas->diffy() ) ) );
5742 KoGuideLineDia dia( 0, pos, rect, m_pKPresenterDoc->unit() );
5743 if ( dia.exec() == TQDialog::Accepted )
5745 m_pKPresenterDoc->addGuideLine( dia.orientation(), dia.pos() );
5749void KPrView::removeComment()
5751 KPrTextView *edit=m_canvas->currentTextObjectView();
5753 edit->removeComment();
5756void KPrView::configureCompletion()
5758 m_pKPresenterDoc->getAutoFormat()->readConfig();
5759 KoCompletionDia dia(
this, 0, m_pKPresenterDoc->getAutoFormat() );
5763void KPrView::openPopupMenuZoom(
const TQPoint & _point )
5765 if(!koDocument()->isReadWrite() || !factory())
5767 actionZoomSelectedObject->setEnabled( m_canvas->isOneObjectSelected());
5768 int nbObj = m_canvas->activePage()->objectList().count();
5769 actionZoomAllObject->setEnabled( nbObj > 0);
5770 static_cast<TQPopupMenu*
>(factory()->container(
"zoom_popup",
this))->popup(_point);
5773void KPrView::zoomMinus()
5776 int zoom = zoomHandler()->zoom() - (int)(zoomHandler()->zoom()*0.25);
5777 viewZoom( TQString::number(zoom ) );
5778 m_canvas->setToolEditMode( TEM_MOUSE );
5781void KPrView::zoomPageWidth()
5783 int zoom = tqRound(
static_cast<double>(m_canvas->visibleRect().width() * 100 ) /
5784 (zoomHandler()->resolutionX() * m_pKPresenterDoc->pageLayout().ptWidth ) );
5785 viewZoom( TQString::number(zoom ) );
5786 m_canvas->setToolEditMode( TEM_MOUSE );
5789void KPrView::zoomEntirePage()
5791 viewZoom( TQString::number(getZoomEntirePage() ) );
5792 m_canvas->setToolEditMode( TEM_MOUSE );
5795void KPrView::zoomPlus()
5797 int zoom = zoomHandler()->zoom() + int( zoomHandler()->zoom() * 0.25 );
5798 viewZoom( TQString::number( zoom ) );
5799 m_canvas->setToolEditMode( TEM_MOUSE );
5802int KPrView::getZoomEntirePage()
const
5804 double height = zoomHandler()->resolutionY() * m_pKPresenterDoc->pageLayout().ptHeight;
5805 double width = zoomHandler()->resolutionX() * m_pKPresenterDoc->pageLayout().ptWidth;
5806 int zoom = TQMIN( tqRound(
static_cast<double>(m_canvas->visibleRect().height() * 100 ) / height ),
5807 tqRound(
static_cast<double>(m_canvas->visibleRect().width() * 100 ) / width ) );
5811void KPrView::zoomSelectedObject()
5813 if( m_canvas->isOneObjectSelected() )
5815 KoRect rect = m_canvas->objectRect(
false );
5816 setZoomRect( rect );
5820void KPrView::zoomPageHeight()
5822 int zoom = tqRound(
static_cast<double>(m_canvas->visibleRect().height() * 100 ) /
5823 (zoomHandler()->resolutionX() * m_pKPresenterDoc->pageLayout().ptHeight ) );
5824 viewZoom( TQString::number(zoom ) );
5825 m_canvas->setToolEditMode( TEM_MOUSE );
5828void KPrView::zoomAllObject()
5830 KoRect rect = m_canvas->objectRect(
true );
5831 double height = zoomHandler()->resolutionY() * rect.height();
5832 double width = zoomHandler()->resolutionX() * rect.width();
5833 int zoom = TQMIN( tqRound(
static_cast<double>(m_canvas->visibleRect().height() * 100 ) / height ),
5834 tqRound(
static_cast<double>(m_canvas->visibleRect().width() * 100 ) / width ) );
5835 viewZoom( TQString::number(zoom ) );
5837 m_canvas->setToolEditMode( TEM_MOUSE );
5838 m_canvas->scrollTopLeftPoint( zoomHandler()->zoomPoint( rect.topLeft()) );
5841void KPrView::flipHorizontal()
5843 m_canvas->flipObject(
true );
5846void KPrView::flipVertical()
5848 m_canvas->flipObject(
false );
5851void KPrView::slotObjectEditChanged()
5853 bool state=m_canvas->isOneObjectSelected();
5854 bool rw = koDocument()->isReadWrite();
5856 bool isText=!m_canvas->applicableTextInterfaces().isEmpty();
5857 actionTextFont->setEnabled(isText);
5858 actionTextFontSize->setEnabled(isText);
5859 actionTextFontFamily->setEnabled(isText);
5860 actionTextColor->setEnabled(isText);
5861 actionTextAlignLeft->setEnabled(isText);
5862 actionTextAlignCenter->setEnabled(isText);
5863 actionTextAlignRight->setEnabled(isText);
5864 actionTextAlignBlock->setEnabled(isText);
5866 actionFormatBullet->setEnabled(rw && isText );
5867 actionFormatNumber->setEnabled(rw && isText );
5869 actionTextDepthPlus->setEnabled(isText);
5870 actionFormatDefault->setEnabled(isText);
5871 actionTextDepthMinus->setEnabled(isText);
5873 actionTextExtentCont2Height->setEnabled(isText);
5874 actionTextExtendObj2Cont->setEnabled(isText);
5875 actionTextBold->setEnabled(isText);
5876 actionTextItalic->setEnabled(isText);
5877 actionTextUnderline->setEnabled(isText);
5878 actionFormatStrikeOut->setEnabled(isText);
5879 actionFormatSuper->setEnabled(isText);
5880 actionFormatSub->setEnabled(isText);
5881 actionIncreaseFontSize->setEnabled(isText);
5882 actionDecreaseFontSize->setEnabled(isText);
5886 KoTextFormat format =*(m_canvas->applicableTextInterfaces().first()->currentFormat());
5887 showFormat( format );
5888 const KoParagLayout * paragLayout=m_canvas->applicableTextInterfaces().first()->currentParagLayoutFormat();
5889 KoParagCounter counter;
5890 if(paragLayout->counter)
5891 counter = *(paragLayout->counter);
5892 int align = paragLayout->alignment;
5893 if ( align == TQt::AlignAuto )
5894 align = TQt::AlignLeft;
5895 alignChanged( align );
5898 KPrTextView *edit=m_canvas->currentTextObjectView();
5899 bool val=(edit!=0) && isText && !edit->kpTextObject()->isProtectContent();
5900 actionInsertSpecialChar->setEnabled(val);
5901 actionInsertComment->setEnabled( val );
5903 actionInsertLink->setEnabled(val);
5904 actionFormatParag->setEnabled(isText);
5905 actionInsertVariable->setEnabled(val);
5906 actionTextInsertPageNum->setEnabled(val);
5908 actionBrushColor->setEnabled(val);
5910 bool hasSelection = false ;
5913 double leftMargin =edit->currentParagLayout().margins[TQStyleSheetItem::MarginLeft];
5914 actionTextDepthMinus->setEnabled(val && leftMargin>0);
5915 hasSelection = edit->textObject()->hasSelection();
5916 actionEditCut->setEnabled(hasSelection);
5918 actionCreateStyleFromSelection->setEnabled(edit!=0);
5920 actionChangeCase->setEnabled( (val && rw && hasSelection ) || (rw && !edit && isText) );
5924 actionEditCopy->setEnabled(state);
5925 bool headerfooterselected =
false;
5926 if(m_canvas->numberOfObjectSelected()==1)
5928 KPrObject *obj=m_canvas->getSelectedObj();
5930 if(obj==m_pKPresenterDoc->header() || obj==m_pKPresenterDoc->footer())
5931 headerfooterselected=
true;
5933 headerfooterselected=
false;
5936 actionEditCut->setEnabled(state&&!headerfooterselected);
5938 actionFormatStyleMenu->setEnabled( isText );
5939 actionFormatStyle->setEnabled(isText);
5941 state=m_canvas->oneObjectTextExist();
5942 actionEditFind->setEnabled(state);
5943 actionEditFindNext->setEnabled( state );
5944 actionEditFindPrevious->setEnabled( state );
5945 actionEditReplace->setEnabled(state);
5950void KPrView::duplicateObj()
5952 if (m_canvas->currentTextObjectView() && !m_canvas->isOneObjectSelected() )
5955 KPrDuplicatObjDia *dlg=
new KPrDuplicatObjDia(
this, m_pKPresenterDoc);
5958 int nbCopy= dlg->nbCopy();
5959 double angle = dlg->angle();
5960 double increaseX = dlg->increaseX();
5961 double increaseY = dlg->increaseY();
5962 double moveX = dlg->moveX();
5963 double moveY = dlg->moveY();
5964 m_canvas->copyObjs();
5965 m_canvas->setToolEditMode( TEM_MOUSE );
5966 deSelectAllObjects();
5967 TQMimeSource *data = TQApplication::clipboard()->data();
5968 TQCString clip_str = KoStoreDrag::mimeType(
"application/x-kpresenter");
5969 if ( data->provides( clip_str ) )
5971 m_canvas->activePage()->pasteObjs( data->encodedData(clip_str),
5972 nbCopy, angle, increaseX,increaseY, moveX, moveY );
5973 m_canvas->setMouseSelectedObject(
true);
5974 emit objectSelectedChanged();
5980void KPrView::extraArrangePopup()
5982 m_canvas->setToolEditMode( TEM_MOUSE );
5983 TQPoint pnt( TQCursor::pos() );
5984 m_arrangeObjectsPopup->popup( pnt );
5987void KPrView::extraSendBackward()
5989 m_canvas->setToolEditMode( TEM_MOUSE );
5990 m_canvas->lowerObjs(
false );
5993void KPrView::extraBringForward()
5995 m_canvas->setToolEditMode( TEM_MOUSE );
5996 m_canvas->raiseObjs(
false );
5999void KPrView::applyAutoFormat()
6001 m_pKPresenterDoc->getAutoFormat()->readConfig();
6002 KMacroCommand *macro = 0L;
6003 m_switchPage=m_pKPresenterDoc->pageList().findRef(m_canvas->activePage());
6004 m_initSwitchPage=m_switchPage;
6005 TQPtrList<KoTextObject> list=m_canvas->activePage()->allTextObjects();
6007 KCommand * cmd2 = applyAutoFormatToCurrentPage( list );
6011 macro =
new KMacroCommand( i18n(
"Apply Autoformat"));
6012 macro->addCommand( cmd2 );
6015 while(switchInOtherPage(i18n(
"Do you want to apply autoformat in new slide?")) )
6017 KCommand * cmd = applyAutoFormatToCurrentPage(m_canvas->activePage()->allTextObjects());
6021 macro =
new KMacroCommand( i18n(
"Apply Autoformat"));
6022 macro->addCommand( cmd );
6026 m_pKPresenterDoc->addCommand(macro);
6028 m_initSwitchPage=-1;
6031bool KPrView::switchInOtherPage(
const TQString & text )
6034 if(m_pKPresenterDoc->pageList().count()==1)
6037 if( m_switchPage>=(
int)m_pKPresenterDoc->pageList().count())
6039 if( m_switchPage==m_initSwitchPage)
6041 if ( KMessageBox::questionYesNo(
this, text) != KMessageBox::Yes )
6043 skipToPage(m_switchPage);
6047KCommand * KPrView::applyAutoFormatToCurrentPage(
const TQPtrList<KoTextObject> & lst)
6049 KMacroCommand *macro = 0L;
6050 TQPtrList<KoTextObject> list(lst);
6051 TQPtrListIterator<KoTextObject> fit(list);
6052 for ( ; fit.current() ; ++fit )
6054 KCommand *cmd = m_pKPresenterDoc->getAutoFormat()->applyAutoFormat( fit.current() );
6058 macro =
new KMacroCommand( i18n(
"Apply Autoformat"));
6059 macro->addCommand( cmd );
6065void KPrView::createStyleFromSelection()
6067 KPrTextView *edit=m_canvas->currentTextObjectView();
6070 KoStyleCollection* coll = m_pKPresenterDoc->styleCollection();
6071 KoCreateStyleDia *dia =
new KoCreateStyleDia( TQStringList(),
this, 0 );
6074 TQString name = dia->nameOfNewStyle();
6075 KoParagStyle* style = coll->findStyleByDisplayName( name );
6079 edit->updateStyleFromSelection( style );
6083 style = edit->createStyleFromSelection( name );
6084 m_pKPresenterDoc->styleCollection()->addStyle( style );
6085 m_pKPresenterDoc->updateAllStyleLists();
6093void KPrView::closeObject()
6095 m_canvas->closeObject(
true);
6098void KPrView::viewSnapToGrid()
6100 m_pKPresenterDoc->setSnapToGrid( actionViewSnapToGrid->isChecked() );
6101 m_pKPresenterDoc->setModified(
true );
6102 m_pKPresenterDoc->updateGridButton();
6105void KPrView::alignVerticalTop()
6107 if ( actionAlignVerticalTop->isChecked() )
6108 m_canvas->alignVertical(KP_TOP );
6110 actionAlignVerticalTop->setChecked(
true);
6113void KPrView::alignVerticalBottom()
6115 if ( actionAlignVerticalBottom->isChecked() )
6116 m_canvas->alignVertical(KP_BOTTOM );
6118 actionAlignVerticalBottom->setChecked(
true);
6121void KPrView::alignVerticalCenter()
6123 if ( actionAlignVerticalCenter->isChecked() )
6124 m_canvas->alignVertical(KP_CENTER );
6126 actionAlignVerticalCenter->setChecked(
true);
6129void KPrView::changeVerticalAlignmentStatus( VerticalAlignmentType _type )
6134 actionAlignVerticalCenter->setChecked(
true );
6137 actionAlignVerticalTop->setChecked(
true );
6140 actionAlignVerticalBottom->setChecked(
true );
6145void KPrView::autoSpellCheck()
6147 m_pKPresenterDoc->changeBgSpellCheckingState( actionAllowBgSpellCheck->isChecked() );
6150void KPrView::insertFile( )
6152 KFileDialog fd( TQString(), TQString(),
this, 0,
true );
6153 TQStringList filter;
6154 filter<<
"application/x-kpresenter";
6155 filter<<
"application/vnd.oasis.opendocument.presentation";
6156 fd.setMimeFilter( filter );
6157 fd.setCaption(i18n(
"Insert File"));
6160 if ( fd.exec() == TQDialog::Accepted )
6162 url = fd.selectedURL();
6165 KMessageBox::sorry(
this,
6166 i18n(
"File name is empty."),
6167 i18n(
"Insert File"));
6170 insertFile(url.path());
6174void KPrView::insertFile(
const TQString &path)
6176 m_pKPresenterDoc->insertFile(path);
6179void KPrView::importStyle()
6181 KPrImportStyleDia dia( m_pKPresenterDoc, m_pKPresenterDoc->styleCollection(),
this );
6182 if ( dia.exec() && !dia.importedStyles().isEmpty() ) {
6183 m_pKPresenterDoc->styleCollection()->importStyles( dia.importedStyles() );
6184 m_pKPresenterDoc->setModified(
true );
6185 m_pKPresenterDoc->updateAllStyleLists();
6189void KPrView::backgroundPicture()
6191 switch( m_canvas->activePage()->getBackType())
6198 KoPicture picture=m_canvas->activePage()->background()->picture();
6199 savePicture(picture.getKey().filename(), picture);
6204void KPrView::testAndCloseAllTextObjectProtectedContent()
6206 KPrTextView *edit=m_canvas->currentTextObjectView();
6207 if ( edit && edit->kpTextObject()->isProtectContent())
6209 m_canvas->setToolEditMode( TEM_MOUSE );
6210 deSelectAllObjects();
6214void KPrView::updateBgSpellCheckingState()
6216 actionAllowBgSpellCheck->setChecked( m_pKPresenterDoc->backgroundSpellCheckEnabled() );
6219void KPrView::updateRulerInProtectContentMode()
6221 KPrTextView *edit=m_canvas->currentTextObjectView();
6222 if ( edit && getHRuler()) {
6223 if ( !edit->kpTextObject()->isProtectContent() )
6224 getHRuler()->changeFlags(KoRuler::F_INDENTS | KoRuler::F_TABS);
6226 getHRuler()->changeFlags(0);
6227 getHRuler()->repaint();
6231void KPrView::slotChangeCutState(
bool b)
6233 KPrTextView *edit=m_canvas->currentTextObjectView();
6235 if ( edit && edit->kpTextObject()->isProtectContent())
6236 actionEditCut->setEnabled(
false );
6238 actionEditCut->setEnabled( b );
6241void KPrView::updatePresentationButton(
bool b)
6243 actionScreenStart->setEnabled( b );
6246void KPrView::refreshGroupButton()
6248 bool state=m_canvas->isOneObjectSelected();
6249 actionExtraGroup->setEnabled(state && m_canvas->numberOfObjectSelected()>1);
6250 actionExtraUnGroup->setEnabled(state && m_canvas->haveASelectedGroupObj());
6253void KPrView::closeTextObject()
6255 KPrTextView *edit=m_canvas->currentTextObjectView();
6258 m_canvas->setToolEditMode( TEM_MOUSE );
6259 deSelectAllObjects();
6263void KPrView::deSelectAllObjects()
6265 m_canvas->deSelectAllObj();
6268void KPrView::copyLink()
6270 KPrTextView *edit=m_canvas->currentTextObjectView();
6275void KPrView::addToBookmark()
6277 KPrTextView *edit=m_canvas->currentTextObjectView();
6280 KoLinkVariable * var=edit->linkVariable();
6282 edit->addBookmarks(var->url());
6286void KPrView::removeLink()
6288 KPrTextView *edit=m_canvas->currentTextObjectView();
6293void KPrView::insertDirectCursor()
6296 insertDirectCursor( actionInsertDirectCursor->isChecked());
6300void KPrView::insertDirectCursor(
bool b)
6302 m_pKPresenterDoc->setInsertDirectCursor(b);
6305void KPrView::updateDirectCursorButton()
6308 actionInsertDirectCursor->setChecked(m_pKPresenterDoc->insertDirectCursor());
6312void KPrView::copyTextOfComment()
6314 KPrTextView *edit=m_canvas->currentTextObjectView();
6316 edit->copyTextOfComment();
6319void KPrView::slotAddIgnoreAllWord()
6321 KPrTextView *edit=m_canvas->currentTextObjectView();
6323 m_pKPresenterDoc->addSpellCheckIgnoreWord( edit->currentWordOrSelection() );
6326void KPrView::addWordToDictionary()
6328 KPrTextView* edit = m_canvas->currentTextObjectView();
6331 TQString word = edit->wordUnderCursor( *edit->cursor() );
6332 if ( !word.isEmpty() )
6333 m_pKPresenterDoc->addWordToDictionary( word );
6337void KPrView::imageEffect()
6339 if (m_canvas->numberOfObjectSelected() > 0) {
6340 imageEffectDia =
new KPrImageEffectDia(
this);
6342 KPrPixmapObject *
object=m_canvas->getSelectedImage();
6344 imageEffectDia->setPixmap(object->getOriginalPixmap());
6345 imageEffectDia->setEffect(object->getImageEffect(), object->getIEParam1(), object->getIEParam2(),
6346 object->getIEParam3());
6348 m_canvas->setToolEditMode(TEM_MOUSE);
6350 if (imageEffectDia->exec()==TQDialog::Accepted) {
6351 KCommand *cmd=m_canvas->activePage()->setImageEffect(imageEffectDia->getEffect(), imageEffectDia->getParam1(),
6352 imageEffectDia->getParam2(), imageEffectDia->getParam3());
6354 kPresenterDoc()->addCommand( cmd );
6357 delete imageEffectDia;
6358 imageEffectDia = 0L;
6362void KPrView::spellAddAutoCorrect (
const TQString & originalword,
const TQString & newword)
6364 m_pKPresenterDoc->getAutoFormat()->addAutoFormatEntry( originalword, newword );
6367TQPtrList<TDEAction> KPrView::listOfResultOfCheckWord(
const TQString &word )
6369 TQPtrList<TDEAction> listAction;
6370 DefaultDictionary *dict = m_broker->defaultDictionary();
6371 TQStringList lst = dict->suggest( word );
6372 if ( !lst.contains( word ))
6374 TQStringList::ConstIterator it = lst.begin();
6375 for (
int i = 0; it != lst.end() ; ++it, ++i )
6377 if ( !(*it).isEmpty() )
6379 TDEAction * act =
new TDEAction( (*it));
6380 connect( act, TQ_SIGNAL(activated()),
this, TQ_SLOT(slotCorrectWord()) );
6381 listAction.append( act );
6389void KPrView::slotCorrectWord()
6391 TDEAction * act = (TDEAction *)(sender());
6392 KPrTextView* edit = m_canvas->currentTextObjectView();
6395 edit->selectWordUnderCursor( *(edit->cursor()) );
6396 m_pKPresenterDoc->addCommand(edit->textObject()->replaceSelectionCommand(
6397 edit->cursor(), act->text(),
6398 i18n(
"Replace Word"), KoTextDocument::Standard));
6402KCommand * KPrView::getPenCmd(
const TQString &name, KoPen pen, LineEnd lb, LineEnd le,
int flags )
6404 KMacroCommand * macro = NULL;
6407 KCommand * cmd = m_canvas->activePage()->setPen( pen, lb, le, flags );
6410 macro =
new KMacroCommand( name );
6411 macro->addCommand( cmd );
6417void KPrView::initialLayoutOfSplitter()
6424 TQSplitter* splitterVertical =
static_cast<TQSplitter*
>( notebar->parent() );
6425 TQValueList<int> tmpList;
6426 int noteHeight = height() / 25;
6427 tmpList << height() - noteHeight << noteHeight;
6428 splitterVertical->setSizes( tmpList );
6431void KPrView::slotChildActivated(
bool a)
6433 KoViewChild* ch = child( (KoView*)sender() );
6438 m_canvas->exitEditMode();
6441 KoView::slotChildActivated( a );
6444Broker *KPrView::broker()
const
6449void KPrView::slotUnitChanged( KoUnit::Unit unit )
6451 h_ruler->setUnit( unit );
6452 v_ruler->setUnit( unit );
6455 m_sbUnitLabel->setText(
' ' + KoUnit::unitDescription( unit ) +
' ' );
6456 updateObjectStatusBarItem();
6460void KPrView::documentModified(
bool b )
6466 m_sbModifiedLabel->setPixmap( TDEGlobal::iconLoader()->loadIcon(
"action-modified", TDEIcon::Small ) );
6468 m_sbModifiedLabel->setText(
" " );
6471void KPrView::loadingFinished()
6473 h_ruler->setPageLayout(m_pKPresenterDoc->pageLayout());
6474 v_ruler->setPageLayout(m_pKPresenterDoc->pageLayout());
6476 m_pKPresenterDoc->updateZoomRuler();
6480#include "KPrView.moc"
Class KPCanvas - There is a single instance of this class for a given view.
This class implements the 'find' functionality ( the "search next, prompt" loop ) and the 'replace' f...
A dialog that lets the user interactively choose an angle for rotation.
This is our KoTextDocument reimplementation, to relate it to the textobject it's in.
KPrTextObject * textObject() const
Return the text object in which this document is.