KPrView::KPrView(KPrPart *part, KPrDocument *document, QWidget *parent) : KoPAView(part, document, KoPAView::ModeBox, parent) , m_part(part) , m_presentationMode( new KPrViewModePresentation( this, kopaCanvas() )) , m_normalMode( viewMode() ) , m_notesMode( new KPrViewModeNotes( this, kopaCanvas() )) , m_slidesSorterMode(new KPrViewModeSlidesSorter(this, kopaCanvas())) #ifndef CALLIGRA_DISABLE_DBUS , m_dbus(new KPrViewAdaptor( this ) ) #else , m_dbus(0) #endif { m_normalMode->setName(i18n("Normal")); initGUI(); initActions(); // Change strings because in KPresenter it's called slides and not pages actionCollection()->action("view_masterpages")->setText(i18n("Show Master Slides")); actionCollection()->action("import_document")->setText(i18n("Import Slideshow...")); actionCollection()->action("page_insertpage")->setText(i18n( "Insert Slide")); actionCollection()->action("page_insertpage")->setToolTip(i18n("Insert a new slide after the current one")); actionCollection()->action("page_insertpage")->setWhatsThis(i18n("Insert a new slide after the current one")); actionCollection()->action("page_copypage")->setText(i18n("Copy Slide")); actionCollection()->action("page_copypage")->setToolTip(i18n("Copy the current slide")); actionCollection()->action("page_copypage")->setWhatsThis(i18n("Copy the current slide")); actionCollection()->action("page_deletepage")->setText(i18n("Delete Slide")); actionCollection()->action("page_deletepage")->setToolTip(i18n("Delete the current slide")); actionCollection()->action("page_deletepage")->setWhatsThis(i18n("Delete the current slide")); actionCollection()->action("format_masterpage")->setText(i18n("Master Slide...")); actionCollection()->action("page_previous")->setText(i18n("Previous Slide")); actionCollection()->action("page_previous")->setToolTip(i18n("Go to previous slide")); actionCollection()->action("page_previous")->setWhatsThis(i18n("Go to previous slide")); actionCollection()->action("page_next")->setText(i18n("Next Slide")); actionCollection()->action("page_next")->setToolTip(i18n("Go to next slide")); actionCollection()->action("page_next")->setWhatsThis(i18n("Go to next slide")); actionCollection()->action("page_first")->setText(i18n("First Slide")); actionCollection()->action("page_first")->setToolTip(i18n("Go to first slide")); actionCollection()->action("page_first")->setWhatsThis(i18n("Go to first slide")); actionCollection()->action("page_last")->setText(i18n("Last Slide")); actionCollection()->action("page_last")->setToolTip(i18n("Go to last slide")); actionCollection()->action("page_last")->setWhatsThis(i18n("Go to last slide")); actionCollection()->action("configure")->setText(i18n("Configure Stage...")); masterShapeManager()->setPaintingStrategy( new KPrShapeManagerDisplayMasterStrategy( masterShapeManager(), new KPrPageSelectStrategyActive( kopaCanvas() ) ) ); connect(zoomController(), SIGNAL(zoomChanged(KoZoomMode::Mode,qreal)), this, SLOT(zoomChanged(KoZoomMode::Mode,qreal))); setAcceptDrops(true); }
void KPrView::createAnimation() { static int animationcount = 0; KoSelection * selection = kopaCanvas()->shapeManager()->selection(); QList<KoShape*> selectedShapes = selection->selectedShapes(); foreach( KoShape * shape, selectedShapes ) { Q_UNUSED(shape); /*KPrShapeAnimationOld * animation = new KPrAnimationMoveAppear( shape, animationcount ); KPrDocument * doc = static_cast<KPrDocument *>( kopaDocument() ); KPrAnimationCreateCommand * command = new KPrAnimationCreateCommand( doc, animation ); kopaCanvas()->addCommand( command );*/ }
KPrView::KPrView( KPrDocument *document, QWidget *parent ) : KoPAView( document, parent ) , m_presentationMode( new KPrViewModePresentation( this, kopaCanvas() )) , m_normalMode( viewMode() ) , m_notesMode( new KPrViewModeNotes( this, kopaCanvas() )) // , m_slidesSorterMode( new KPrViewModeSlidesSorter( this, kopaCanvas() )) , m_dbus( new KPrViewAdaptor( this ) ) { initGUI(); initActions(); // Change strings because in KPresenter it's called slides and not pages actionCollection()->action("view_masterpages")->setText(i18n("Show Master Slides")); actionCollection()->action("import_document")->setText(i18n("Import Slideshow...")); actionCollection()->action("page_insertpage")->setText(i18n( "Insert Slide")); actionCollection()->action("page_insertpage")->setToolTip(i18n("Insert a new slide after the current one")); actionCollection()->action("page_insertpage")->setWhatsThis(i18n("Insert a new slide after the current one")); actionCollection()->action("page_copypage")->setText(i18n("Copy Slide")); actionCollection()->action("page_copypage")->setToolTip(i18n("Copy the current slide")); actionCollection()->action("page_copypage")->setWhatsThis(i18n("Copy the current slide")); actionCollection()->action("page_deletepage")->setText(i18n("Delete Slide")); actionCollection()->action("page_deletepage")->setToolTip(i18n("Delete the current slide")); actionCollection()->action("page_deletepage")->setWhatsThis(i18n("Delete the current slide")); actionCollection()->action("format_masterpage")->setText(i18n("Master Slide...")); actionCollection()->action("page_previous")->setText(i18n("Previous Slide")); actionCollection()->action("page_next")->setText(i18n("Next Slide")); actionCollection()->action("page_first")->setText(i18n("First Slide")); actionCollection()->action("page_last")->setText(i18n("Last Slide")); actionCollection()->action("configure")->setText(i18n("Configure KPresenter...")); masterShapeManager()->setPaintingStrategy( new KPrShapeManagerDisplayMasterStrategy( masterShapeManager(), new KPrPageSelectStrategyActive( kopaCanvas() ) ) ); KoPACanvas * canvas = dynamic_cast<KoPACanvas*>(kopaCanvas()); if (canvas) { m_slidesSorterMode = new KPrViewModeSlidesSorter(this, canvas); } }
void KoPAView::addImages(const QList<QImage> &imageList, const QPoint &insertAt) { // get position from event and convert to document coordinates QPointF pos = zoomHandler()->viewToDocument(insertAt) + kopaCanvas()->documentOffset() - kopaCanvas()->documentOrigin(); // create a factory KoShapeFactoryBase *factory = KoShapeRegistry::instance()->value("PictureShape"); if (!factory) { kWarning(30003) << "No picture shape found, cannot drop images."; return; } foreach(const QImage &image, imageList) { KoProperties params; QVariant v; v.setValue<QImage>(image); params.setProperty("qimage", v); KoShape *shape = factory->createShape(¶ms, d->doc->resourceManager()); if (!shape) { kWarning(30003) << "Could not create a shape from the image"; return; } shape->setPosition(pos); pos += QPointF(25,25); // increase the position for each shape we insert so the // user can see them all. KUndo2Command *cmd = kopaCanvas()->shapeController()->addShapeDirect(shape); if (cmd) { KoSelection *selection = kopaCanvas()->shapeManager()->selection(); selection->deselectAll(); selection->select(shape); } kopaCanvas()->addCommand(cmd); }
void KoPAView::editSelectAll() { KoSelection* selection = kopaCanvas()->shapeManager()->selection(); if( !selection ) return; QList<KoShape*> shapes = activePage()->shapes(); foreach( KoShape *shape, shapes ) { KoShapeLayer *layer = dynamic_cast<KoShapeLayer *>( shape ); if ( layer ) { QList<KoShape*> layerShapes( layer->shapes() ); foreach( KoShape *layerShape, layerShapes ) { selection->select( layerShape ); layerShape->update(); } }
void KPrView::initGUI() { // add page effect docker to the main window /* if (mainWindow()) { KPrPageLayoutDockerFactory pageLayoutFactory; KPrPageLayoutDocker *pageLayoutDocker = qobject_cast<KPrPageLayoutDocker*>( mainWindow()->createDockWidget( &pageLayoutFactory ) ); pageLayoutDocker->setView( this ); } }*/ KoPABackgroundTool *designTool = dynamic_cast<KoPABackgroundTool *>(KoToolManager::instance()->toolById(kopaCanvas(), "KoPABackgroundTool")); if (designTool) { KPrPageLayoutWidget *plw = new KPrPageLayoutWidget(); plw->setView(this); designTool->addOptionWidget(plw); } QString state( "AAAA/wAAAAD9AAAAAgAAAAAAAAEHAAADWfwCAAAAA/sAAAAOAFQAbwBvAGwAQgBvAHgBAAAAUgAAAEgAAABIAP////sAAAAuAEsAbwBTAGgAYQBwAGUAQwBvAGwAbABlAGMAdABpAG8AbgBEAG8AYwBrAGUAcgEAAACdAAAAbAAAAE0A////+wAAACoAZABvAGMAdQBtAGUAbgB0ACAAcwBlAGMAdABpAG8AbgAgAHYAaQBlAHcBAAABDAAAAp8AAABvAP///wAAAAEAAAFjAAADWfwCAAAAEPsAAAAiAFMAdAByAG8AawBlACAAUAByAG8AcABlAHIAdABpAGUAcwAAAAAA/////wAAALcA////+wAAACAAUwBoAGEAcABlACAAUAByAG8AcABlAHIAdABpAGUAcwAAAAAA/////wAAABgA////+wAAACIAUwBoAGEAZABvAHcAIABQAHIAbwBwAGUAcgB0AGkAZQBzAAAAAAD/////AAAAnwD////7AAAAJABTAGkAbQBwAGwAZQAgAFQAZQB4AHQAIABFAGQAaQB0AG8AcgAAAAAA/////wAAAU4A////+wAAADAARABlAGYAYQB1AGwAdABUAG8AbwBsAEEAcgByAGEAbgBnAGUAVwBpAGQAZwBlAHQBAAAAUgAAAE4AAABOAP////sAAAAiAEQAZQBmAGEAdQBsAHQAVABvAG8AbABXAGkAZABnAGUAdAEAAACjAAAAYwAAAGMA////+wAAACoAUwBuAGEAcABHAHUAaQBkAGUAQwBvAG4AZgBpAGcAVwBpAGQAZwBlAHQBAAABCQAAAFIAAABQAP////sAAAAWAFMAdAB5AGwAZQBEAG8AYwBrAGUAcgEAAAFeAAABhAAAAFgA////+wAAABgAUwBsAGkAZABlACAAbABhAHkAbwB1AHQBAAAC5QAAAMYAAABWAP////sAAAAoAFAAaQBjAHQAdQByAGUAVABvAG8AbABGAGEAYwB0AG8AcgB5AEkAZAEAAAN6AAAAMQAAAAAAAAAA+wAAACQAVABlAHgAdABUAG8AbwBsAEYAYQBjAHQAbwByAHkAXwBJAEQBAAADJwAAAIQAAAAAAAAAAPsAAAAoAEMAZQBsAGwAVABvAG8AbABPAHAAdABpAG8AbgBXAGkAZABnAGUAdAEAAALBAAAA6gAAAAAAAAAA+wAAADAASwBvAFAAQQBCAGEAYwBrAGcAcgBvAHUAbgBkAFQAbwBvAGwAVwBpAGQAZwBlAHQBAAADnQAAAFgAAAAAAAAAAPsAAAAeAEQAdQBtAG0AeQBUAG8AbwBsAFcAaQBkAGcAZQB0AQAAAqgAAAAaAAAAAAAAAAD7AAAAKABQAGEAdAB0AGUAcgBuAE8AcAB0AGkAbwBuAHMAVwBpAGQAZwBlAHQBAAACxQAAAIYAAAAAAAAAAPsAAAAoAEsAYQByAGIAbwBuAFAAYQB0AHQAZQByAG4AQwBoAG8AbwBzAGUAcgEAAANOAAAAXQAAAAAAAAAAAAADAAAAA1kAAAAEAAAABAAAAAgAAAAI/AAAAAEAAAACAAAAAQAAABYAbQBhAGkAbgBUAG8AbwBsAEIAYQByAQAAAAAAAAVwAAAAAAAAAAA=" ); state = "AAAA/wAAAAD9AAAAAgAAAAAAAAEHAAACdfwCAAAAA/sAAAAOAFQAbwBvAGwAQgBvAHgBAAAAUgAAAF8AAABIAP////sAAAAuAEsAbwBTAGgAYQBwAGUAQwBvAGwAbABlAGMAdABpAG8AbgBEAG8AYwBrAGUAcgEAAAC0AAAAZQAAAE0A////+wAAACoAZABvAGMAdQBtAGUAbgB0ACAAcwBlAGMAdABpAG8AbgAgAHYAaQBlAHcBAAABHAAAAasAAABvAP///wAAAAEAAADlAAACdfwCAAAAEPsAAAAgAFMAaABhAHAAZQAgAFAAcgBvAHAAZQByAHQAaQBlAHMAAAAAAP////8AAAAYAP////sAAAAiAFMAaABhAGQAbwB3ACAAUAByAG8AcABlAHIAdABpAGUAcwAAAAAA/////wAAAJ8A////+wAAACQAUwBpAG0AcABsAGUAIABUAGUAeAB0ACAARQBkAGkAdABvAHIAAAAAAP////8AAAFOAP////sAAAAwAEQAZQBmAGEAdQBsAHQAVABvAG8AbABBAHIAcgBhAG4AZwBlAFcAaQBkAGcAZQB0AQAAAFIAAABOAAAATgD////7AAAAIgBEAGUAZgBhAHUAbAB0AFQAbwBvAGwAVwBpAGQAZwBlAHQBAAAAowAAAGMAAABjAP////sAAAAqAFMAbgBhAHAARwB1AGkAZABlAEMAbwBuAGYAaQBnAFcAaQBkAGcAZQB0AQAAAQkAAABQAAAAUAD////7AAAAIgBTAHQAcgBvAGsAZQAgAFAAcgBvAHAAZQByAHQAaQBlAHMBAAABXAAAALcAAAC3AP////sAAAAWAFMAdAB5AGwAZQBEAG8AYwBrAGUAcgEAAAIWAAAAWAAAAFgA////+wAAABgAUwBsAGkAZABlACAAbABhAHkAbwB1AHQBAAACcQAAAFYAAABWAP////sAAAAoAFAAaQBjAHQAdQByAGUAVABvAG8AbABGAGEAYwB0AG8AcgB5AEkAZAEAAAN6AAAAMQAAAAAAAAAA+wAAACQAVABlAHgAdABUAG8AbwBsAEYAYQBjAHQAbwByAHkAXwBJAEQBAAADJwAAAIQAAAAAAAAAAPsAAAAoAEMAZQBsAGwAVABvAG8AbABPAHAAdABpAG8AbgBXAGkAZABnAGUAdAEAAALBAAAA6gAAAAAAAAAA+wAAADAASwBvAFAAQQBCAGEAYwBrAGcAcgBvAHUAbgBkAFQAbwBvAGwAVwBpAGQAZwBlAHQBAAADnQAAAFgAAAAAAAAAAPsAAAAeAEQAdQBtAG0AeQBUAG8AbwBsAFcAaQBkAGcAZQB0AQAAAqgAAAAaAAAAAAAAAAD7AAAAKABQAGEAdAB0AGUAcgBuAE8AcAB0AGkAbwBuAHMAVwBpAGQAZwBlAHQBAAACxQAAAIYAAAAAAAAAAPsAAAAoAEsAYQByAGIAbwBuAFAAYQB0AHQAZQByAG4AQwBoAG8AbwBzAGUAcgEAAANOAAAAXQAAAAAAAAAAAAADfgAAAnUAAAAEAAAABAAAAAgAAAAI/AAAAAEAAAACAAAAAQAAABYAbQBhAGkAbgBUAG8AbwBsAEIAYQByAQAAAAAAAAVwAAAAAAAAAAA="; KConfigGroup group( KGlobal::config(), "stage" ); if ( !group.hasKey( "State" ) ) { group.writeEntry( "State", state ); } initZoomConfig(); //unhide tab bar and populate with view modes setTabBarPosition(Qt::Horizontal); tabBar()->show(); tabBar()->addTab(m_normalMode->name()); tabBar()->addTab(m_notesMode->name()); tabBar()->addTab(m_slidesSorterMode->name()); tabBar()->setCurrentIndex(0); }
void KoPAView::initActions() { KAction *action = actionCollection()->addAction( KStandardAction::Cut, "edit_cut", 0, 0); new KoCutController(kopaCanvas(), action); action = actionCollection()->addAction( KStandardAction::Copy, "edit_copy", 0, 0 ); new KoCopyController(kopaCanvas(), action); d->editPaste = actionCollection()->addAction( KStandardAction::Paste, "edit_paste", proxyObject, SLOT( editPaste() ) ); connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardDataChanged())); connect(d->canvas->toolProxy(), SIGNAL(toolChanged(const QString&)), this, SLOT(clipboardDataChanged())); clipboardDataChanged(); actionCollection()->addAction(KStandardAction::SelectAll, "edit_select_all", this, SLOT(editSelectAll())); actionCollection()->addAction(KStandardAction::Deselect, "edit_deselect_all", this, SLOT(editDeselectAll())); d->deleteSelectionAction = new KAction(KIcon("edit-delete"), i18n("D&elete"), this); actionCollection()->addAction("edit_delete", d->deleteSelectionAction ); d->deleteSelectionAction->setShortcut(QKeySequence("Del")); d->deleteSelectionAction->setEnabled(false); connect(d->deleteSelectionAction, SIGNAL(triggered()), this, SLOT(editDeleteSelection())); connect(d->canvas->toolProxy(), SIGNAL(selectionChanged(bool)), d->deleteSelectionAction, SLOT(setEnabled(bool))); KToggleAction *showGrid= d->doc->gridData().gridToggleAction(d->canvas); actionCollection()->addAction("view_grid", showGrid ); d->actionViewSnapToGrid = new KToggleAction(i18n("Snap to Grid"), this); d->actionViewSnapToGrid->setChecked(d->doc->gridData().snapToGrid()); actionCollection()->addAction("view_snaptogrid", d->actionViewSnapToGrid); connect( d->actionViewSnapToGrid, SIGNAL( triggered( bool ) ), this, SLOT (viewSnapToGrid( bool ))); KToggleAction *actionViewShowGuides = KoStandardAction::showGuides(this, SLOT(viewGuides(bool)), this); actionViewShowGuides->setChecked( d->doc->guidesData().showGuideLines() ); actionCollection()->addAction(KoStandardAction::name(KoStandardAction::ShowGuides), actionViewShowGuides ); d->actionViewShowMasterPages = new KToggleAction(i18n( "Show Master Pages" ), this ); actionCollection()->addAction( "view_masterpages", d->actionViewShowMasterPages ); connect( d->actionViewShowMasterPages, SIGNAL( triggered( bool ) ), this, SLOT( setMasterMode( bool ) ) ); d->viewRulers = new KToggleAction(i18n("Show Rulers"), this); actionCollection()->addAction("view_rulers", d->viewRulers ); d->viewRulers->setToolTip(i18n("Show/hide the view's rulers")); connect(d->viewRulers, SIGNAL(triggered(bool)), proxyObject, SLOT(setShowRulers(bool))); setShowRulers(d->doc->rulersVisible()); d->actionInsertPage = new KAction( KIcon("document-new"), i18n( "Insert Page" ), this ); actionCollection()->addAction( "page_insertpage", d->actionInsertPage ); d->actionInsertPage->setToolTip( i18n( "Insert a new page after the current one" ) ); d->actionInsertPage->setWhatsThis( i18n( "Insert a new page after the current one" ) ); connect( d->actionInsertPage, SIGNAL( triggered() ), proxyObject, SLOT( insertPage() ) ); d->actionCopyPage = new KAction( i18n( "Copy Page" ), this ); actionCollection()->addAction( "page_copypage", d->actionCopyPage ); d->actionCopyPage->setToolTip( i18n( "Copy the current page" ) ); d->actionCopyPage->setWhatsThis( i18n( "Copy the current page" ) ); connect( d->actionCopyPage, SIGNAL( triggered() ), this, SLOT( copyPage() ) ); d->actionDeletePage = new KAction( i18n( "Delete Page" ), this ); d->actionDeletePage->setEnabled( d->doc->pageCount() > 1 ); actionCollection()->addAction( "page_deletepage", d->actionDeletePage ); d->actionDeletePage->setToolTip( i18n( "Delete the current page" ) ); d->actionDeletePage->setWhatsThis( i18n( "Delete the current page" ) ); connect( d->actionDeletePage, SIGNAL( triggered() ), this, SLOT( deletePage() ) ); d->actionMasterPage = new KAction(i18n("Master Page..."), this); actionCollection()->addAction("format_masterpage", d->actionMasterPage); connect(d->actionMasterPage, SIGNAL(triggered()), this, SLOT(formatMasterPage())); d->actionPageLayout = new KAction( i18n( "Page Layout..." ), this ); actionCollection()->addAction( "format_pagelayout", d->actionPageLayout ); connect( d->actionPageLayout, SIGNAL( triggered() ), this, SLOT( formatPageLayout() ) ); actionCollection()->addAction(KStandardAction::Prior, "page_previous", this, SLOT(goToPreviousPage())); actionCollection()->addAction(KStandardAction::Next, "page_next", this, SLOT(goToNextPage())); actionCollection()->addAction(KStandardAction::FirstPage, "page_first", this, SLOT(goToFirstPage())); actionCollection()->addAction(KStandardAction::LastPage, "page_last", this, SLOT(goToLastPage())); KActionMenu *actionMenu = new KActionMenu(i18n("Variable"), this); foreach(QAction *action, d->doc->inlineTextObjectManager()->createInsertVariableActions(d->canvas)) actionMenu->addAction(action); actionCollection()->addAction("insert_variable", actionMenu); KAction * am = new KAction(i18n("Import Document..."), this); actionCollection()->addAction("import_document", am); connect(am, SIGNAL(triggered()), this, SLOT(importDocument())); d->actionConfigure = new KAction(KIcon("configure"), i18n("Configure..."), this); actionCollection()->addAction("configure", d->actionConfigure); connect(d->actionConfigure, SIGNAL(triggered()), this, SLOT(configure())); d->find = new KoFind( this, d->canvas->resourceManager(), actionCollection() ); actionCollection()->action( "object_group" )->setShortcut( QKeySequence( "Ctrl+G" ) ); actionCollection()->action( "object_ungroup" )->setShortcut( QKeySequence( "Ctrl+Shift+G" ) ); }