void KPrViewModeNotes::keyPressEvent(QKeyEvent *event) { m_toolProxy->keyPressEvent(event); KoPageApp::PageNavigation pageNavigation; if (!event->isAccepted()) { event->accept(); switch (event->key()) { case Qt::Key_Home: pageNavigation = KoPageApp::PageFirst; break; case Qt::Key_PageUp: pageNavigation = KoPageApp::PagePrevious; break; case Qt::Key_PageDown: pageNavigation = KoPageApp::PageNext; break; case Qt::Key_End: pageNavigation = KoPageApp::PageLast; break; default: event->ignore(); return; } KoPAPageBase *activePage = m_view->activePage(); KoPAPageBase *newPage = m_view->kopaDocument()->pageByNavigation(activePage, pageNavigation); if (newPage != activePage) { updateActivePage( newPage ); } } }
void KPrViewModeNotes::activate(KoPAViewMode *previousViewMode) { Q_UNUSED( previousViewMode ); m_canvas->resourceManager()->setResource(KoText::ShowTextFrames, true); m_view->setActionEnabled( KoPAView::AllActions, false ); updateActivePage( m_view->activePage() ); }
void SCAnimationDirector::navigateToPage(int index) { if (m_pageEffectRunner) { m_pageEffectRunner->finish(); finishAnimations(); // finish on first step m_timeLine.stop(); } else if (m_timeLine.state() == QTimeLine::Running) { // there are still shape animations running finishAnimations(); m_timeLine.stop(); } m_pageIndex = index; KoPAPage *page = m_pages[m_pageIndex]; m_stepIndex = 0; updateActivePage(page); updatePageAnimation(); updateStepAnimation(); // trigger a repaint m_canvas->update(); if (hasAnimation()) { startTimeLine(m_animations.at(m_stepIndex)->totalDuration()); } }
void KoPAViewMode::activate(KoPAViewMode * previousViewMode) { Q_UNUSED(previousViewMode); m_canvas->updateSize(); updateActivePage(m_view->activePage()); // this is done to set the preferred center m_canvas->canvasController()->setCanvasMode(KCanvasController::Centered); m_canvas->canvasController()->recenterPreferred(); }
SCAnimationDirector::SCAnimationDirector(KoPAView * view, KoPACanvas * canvas, const QList<KoPAPage*> &pages, KoPAPage* currentPage) : m_view(view) , m_canvas(canvas) , m_pages(pages) , m_pageEffectRunner(0) , m_stepIndex(0) , m_maxShapeDuration(0) , m_hasAnimation(false) , m_animationCache(0) { Q_ASSERT(!m_pages.empty()); m_animationCache = new SCAnimationCache(); if(!currentPage || !pages.contains(currentPage)) updateActivePage(m_pages[0]); else updateActivePage(currentPage); m_pageIndex = m_pages.indexOf(m_view->activePage()); // updatePageAnimation was called from updateZoom() [updateActivePage()] connect(&m_timeLine, SIGNAL(valueChanged(qreal)), this, SLOT(animate())); // this is needed as after a call to m_canvas->showFullScreen the canvas is not made fullscreen right away connect(m_canvas, SIGNAL(sizeChanged(const QSize &)), this, SLOT(updateZoom(const QSize &))); m_timeLine.setCurveShape(QTimeLine::LinearCurve); m_timeLine.setUpdateInterval(20); // set the animation strategy in the KoShapeManagers m_canvas->shapeManager()->setPaintingStrategy(new SCShapeManagerAnimationStrategy(m_canvas->shapeManager(), m_animationCache, new SCPageSelectStrategyActive(m_view->kopaCanvas()))); // m_canvas->masterShapeManager()->setPaintingStrategy(new SCShapeManagerAnimationStrategy(m_canvas->masterShapeManager(), m_animationCache, // new SCPageSelectStrategyActive(m_view->kopaCanvas()))); if (hasAnimation()) { startTimeLine(m_animations.at(m_stepIndex)->totalDuration()); } }
WebPageActivationData WebPages::page(int tabId, int parentId) { if (!m_webPageComponent) { qWarning() << "TabModel not initialized!"; return WebPageActivationData(0, false); } if (m_activePage && m_activePage->webPage && m_activePage->webPage->tabId() == tabId) { m_activePage->webPage->resumeView(); m_activePage->webPage->setVisible(true); return WebPageActivationData(m_activePage->webPage, false); } #ifdef DEBUG_LOGS qDebug() << "about to create a new tab or activate old:" << tabId; #endif WebPageEntry *pageEntry = m_activePages.value(tabId, 0); bool resurrect = pageEntry && !pageEntry->webPage; if (!pageEntry || resurrect) { QQmlContext *creationContext = m_webPageComponent->creationContext(); QQmlContext *context = new QQmlContext(creationContext ? creationContext : QQmlEngine::contextForObject(m_webContainer)); QObject *object = m_webPageComponent->beginCreate(context); if (object) { context->setParent(object); object->setParent(m_webContainer); DeclarativeWebPage *webPage = qobject_cast<DeclarativeWebPage *>(object); if (webPage) { webPage->setParentItem(m_webContainer); webPage->setParentID(parentId); webPage->setTabId(tabId); webPage->setContainer(m_webContainer); if (!pageEntry) { pageEntry = new WebPageEntry(webPage, 0); } else { pageEntry->webPage = webPage; } m_webPageComponent->completeCreate(); #ifdef DEBUG_LOGS qDebug() << "New view id:" << webPage->uniqueID() << "parentId:" << webPage->parentId() << "tab id:" << webPage->tabId(); #endif m_activePages.insert(tabId, pageEntry); ++m_count; } else { qmlInfo(m_webContainer) << "webPage component must be a WebPage component"; } } else { qmlInfo(m_webContainer) << "Creation of the web page failed. Error: " << m_webPageComponent->errorString(); delete object; object = 0; } } updateActivePage(pageEntry, resurrect); #ifdef DEBUG_LOGS dumpPages(); #endif return WebPageActivationData(pageEntry->webPage, true); }