| 17 | QString PDFViewer::_translatorLanguage; |
| 18 | |
| 19 | PDFViewer::PDFViewer(const QString & pdf_doc, QWidget *parent, Qt::WindowFlags flags) : |
| 20 | QMainWindow(parent, flags) |
| 21 | { |
| 22 | QtPDF::PDFDocumentWidget *docWidget = new QtPDF::PDFDocumentWidget(this); |
| 23 | connect(this, SIGNAL(switchInterfaceLocale(QLocale)), docWidget, SLOT(switchInterfaceLocale(QLocale))); |
| 24 | |
| 25 | if (!pdf_doc.isEmpty()) |
| 26 | docWidget->load(pdf_doc); |
| 27 | docWidget->goFirst(); |
| 28 | |
| 29 | _counter = new PageCounter(this->statusBar()); |
| 30 | _zoomWdgt = new ZoomTracker(this); |
| 31 | _search = new SearchLineEdit(this); |
| 32 | _toolBar = new QToolBar(this); |
| 33 | |
| 34 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("document-open")), tr("Open..."), this, SLOT(open())); |
| 35 | _toolBar->addSeparator(); |
| 36 | |
| 37 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("zoom-in")), tr("Zoom In"), docWidget, SLOT(zoomIn())); |
| 38 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("zoom-out")), tr("Zoom Out"), docWidget, SLOT(zoomOut())); |
| 39 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("zoom-fit-width")), tr("Fit to Width"), docWidget, SLOT(zoomFitWidth())); |
| 40 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("zoom-fit-best")), tr("Fit to Window"), docWidget, SLOT(zoomFitWindow())); |
| 41 | |
| 42 | _toolBar->addSeparator(); |
| 43 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("view-pages-single")), tr("Single Page Mode"), docWidget, SLOT(setSinglePageMode())); |
| 44 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("view-pages-continuous")), tr("One Column Continuous Page Mode"), docWidget, SLOT(setOneColContPageMode())); |
| 45 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("view-pages-facing-continuous")), tr("Two Columns Continuous Page Mode"), docWidget, SLOT(setTwoColContPageMode())); |
| 46 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("view-presentation")), tr("Presentation Mode"), docWidget, SLOT(setPresentationMode())); |
| 47 | // TODO: fullscreen mode for presentations |
| 48 | |
| 49 | _toolBar->addSeparator(); |
| 50 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("tool-magnifier")), tr("Magnify"), docWidget, SLOT(setMouseModeMagnifyingGlass())); |
| 51 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("tool-pan")), tr("Pan"), docWidget, SLOT(setMouseModeMove())); |
| 52 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("tool-zoom-select")), tr("Marquee Zoom"), docWidget, SLOT(setMouseModeMarqueeZoom())); |
| 53 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("tool-measure")), tr("Measure"), docWidget, SLOT(setMouseModeMeasure())); |
| 54 | _toolBar->addAction(QIcon::fromTheme(QStringLiteral("tool-select-text")), tr("Select"), docWidget, SLOT(setMouseModeSelect())); |
| 55 | |
| 56 | _counter->setLastPage(docWidget->lastPage()); |
| 57 | connect(docWidget, SIGNAL(changedPage(int)), _counter, SLOT(setCurrentPage(int))); |
| 58 | connect(docWidget, SIGNAL(changedZoom(qreal)), _zoomWdgt, SLOT(setZoom(qreal))); |
| 59 | connect(docWidget, SIGNAL(requestOpenUrl(const QUrl)), this, SLOT(openUrl(const QUrl))); |
| 60 | connect(docWidget, SIGNAL(requestOpenPdf(QString, QtPDF::PDFDestination, bool)), this, SLOT(openPdf(QString, QtPDF::PDFDestination, bool))); |
| 61 | connect(docWidget, SIGNAL(contextClick(const int, const QPointF)), this, SLOT(syncFromPdf(const int, const QPointF))); |
| 62 | connect(docWidget, SIGNAL(searchProgressChanged(int, int)), this, SLOT(searchProgressChanged(int, int))); |
| 63 | connect(docWidget, SIGNAL(changedDocument(const QWeakPointer<QtPDF::Backend::Document>)), this, SLOT(documentChanged(const QWeakPointer<QtPDF::Backend::Document>))); |
| 64 | |
| 65 | _toolBar->addSeparator(); |
| 66 | #ifdef DEBUG |
| 67 | // TODO: Make this more general or remove it altogether |
| 68 | _toolBar->addAction(QString::fromUtf8("en"), this, SLOT(setEnglishLocale())); |
| 69 | _toolBar->addAction(QString::fromUtf8("de"), this, SLOT(setGermanLocale())); |
| 70 | _toolBar->addSeparator(); |
| 71 | #endif |
| 72 | _toolBar->addWidget(_search); |
| 73 | connect(_search, SIGNAL(searchRequested(QString)), docWidget, SLOT(search(QString))); |
| 74 | connect(_search, SIGNAL(gotoNextResult()), docWidget, SLOT(nextSearchResult())); |
| 75 | connect(_search, SIGNAL(gotoPreviousResult()), docWidget, SLOT(previousSearchResult())); |
| 76 | connect(_search, SIGNAL(searchCleared()), docWidget, SLOT(clearSearchResults())); |
nothing calls this directly
no test coverage detected