Ejemplo n.º 1
0
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 );
        }
    }
}
Ejemplo n.º 2
0
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() );
}
Ejemplo n.º 3
0
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());
    }
}
Ejemplo n.º 4
0
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();
}
Ejemplo n.º 5
0
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());
    }
}
Ejemplo n.º 6
0
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);
}