void CatalogueDialog::okButtonClicked() { bool close = false; QPushButton *button = qobject_cast<QPushButton *>( sender() ); if( !button ) close = false; else { if( button->objectName() == "showCloseButton" ) close = true; } QTreeWidgetItem *item = treeWidget->currentItem(); if( !item ) return; int count = item->childCount(); if( count == 0 ) { QString str = item->text(0); emit pageRequested(str); if( close ) accept(); } }
void PDFViewerWindow::changePageNumberDialog() { bool ok; /* While PDF counts zero-based, users probably think that the first * page is called "1". */ uint displayMinNumber = minimumPageNumber+1; uint displayMaxNumber = maximumPageNumber+1; uint displayCurNumber = currentPageNumber+1; int targetPageNumber = QInputDialog::getInt(this, /* Window Caption */ tr("Select page"), /* Input field caption */ QString(tr("Jump to page number (%1-%2):")).arg(displayMinNumber).arg(displayMaxNumber), /* Starting number. */ displayCurNumber, /* minimum value */ displayMinNumber, /* maximum value */ displayMaxNumber, /* Step */ 1, /* Did the user accept? */ &ok); targetPageNumber-=1; // Convert back to zero-based numbering scheme if ( ok ) { emit pageRequested(targetPageNumber); } }
DSPDFViewer::DSPDFViewer(const RuntimeConfiguration& r): runtimeConfiguration(r), pdfDocument(Poppler::Document::load(r.filePathQString())) , renderFactory(r.filePathQString()), m_pagenumber(0), audienceWindow(0, r.useFullPage()? PagePart::FullPage : PagePart::LeftHalf , false, r), secondaryWindow(1, r.useFullPage()? PagePart::FullPage : PagePart::RightHalf, true, r, r.useSecondScreen() ) { qDebug() << "Starting constructor" ; if ( ! r.useSecondScreen() ) { secondaryWindow.hide(); } audienceWindow.showLoadingScreen(0); secondaryWindow.showLoadingScreen(0); if ( ! pdfDocument || pdfDocument->isLocked() ) { /// FIXME: Error message throw std::runtime_error("I was not able to open the PDF document. Sorry."); } setHighQuality(true); qDebug() << "Connecting audience window"; audienceWindow.setPageNumberLimits(0, numberOfPages()-1); connect( &renderFactory, SIGNAL(pageRendered(QSharedPointer<RenderedPage>)), &audienceWindow, SLOT(renderedPageIncoming(QSharedPointer<RenderedPage>))); connect( &renderFactory, SIGNAL(thumbnailRendered(QSharedPointer<RenderedPage>)), &audienceWindow, SLOT(renderedThumbnailIncoming(QSharedPointer<RenderedPage>))); connect( &audienceWindow, SIGNAL(nextPageRequested()), this, SLOT(goForward())); connect( &audienceWindow, SIGNAL(previousPageRequested()), this, SLOT(goBackward())); connect( &audienceWindow, SIGNAL(pageRequested(uint)), this, SLOT(gotoPage(uint))); connect( &audienceWindow, SIGNAL(quitRequested()), this, SLOT(exit())); connect( &audienceWindow, SIGNAL(rerenderRequested()), this, SLOT(renderPage())); connect( &audienceWindow, SIGNAL(restartRequested()), this, SLOT(goToStartAndResetClocks())); connect( &audienceWindow, SIGNAL(screenSwapRequested()), this, SLOT(swapScreens()) ); if ( r.useSecondScreen() ) { qDebug() << "Connecting secondary window"; secondaryWindow.setPageNumberLimits(0, numberOfPages()-1); connect( &renderFactory, SIGNAL(pageRendered(QSharedPointer<RenderedPage>)), &secondaryWindow, SLOT(renderedPageIncoming(QSharedPointer<RenderedPage>))); connect( &renderFactory, SIGNAL(thumbnailRendered(QSharedPointer<RenderedPage>)), &secondaryWindow, SLOT(renderedThumbnailIncoming(QSharedPointer<RenderedPage>))); connect( &secondaryWindow, SIGNAL(nextPageRequested()), this, SLOT(goForward())); connect( &secondaryWindow, SIGNAL(previousPageRequested()), this, SLOT(goBackward())); connect( &secondaryWindow, SIGNAL(pageRequested(uint)), this, SLOT(gotoPage(uint))); connect( &secondaryWindow, SIGNAL(quitRequested()), this, SLOT(exit())); connect( &secondaryWindow, SIGNAL(rerenderRequested()), this, SLOT(renderPage())); connect( &secondaryWindow, SIGNAL(restartRequested()), this, SLOT(goToStartAndResetClocks())); connect( &secondaryWindow, SIGNAL(screenSwapRequested()), this, SLOT(swapScreens()) ); connect( this, SIGNAL(presentationClockUpdate(QTime)), &secondaryWindow, SLOT(updatePresentationClock(QTime))); connect( this, SIGNAL(slideClockUpdate(QTime)), &secondaryWindow, SLOT(updateSlideClock(QTime))); connect( this, SIGNAL(wallClockUpdate(QTime)), &secondaryWindow, SLOT(updateWallClock(QTime))); } renderPage(); clockDisplayTimer.setInterval(TIMER_UPDATE_INTERVAL); clockDisplayTimer.start(); connect( &clockDisplayTimer, SIGNAL(timeout()), this, SLOT(sendAllClockSignals())); sendAllClockSignals(); }