aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-pdf
diff options
context:
space:
mode:
authorZackaryWelch <welch.zackary@gmail.com>2018-03-21 16:47:38 -0400
committerZackaryWelch <welch.zackary@gmail.com>2018-03-21 16:47:38 -0400
commit8239f07ed001e1da3cf36e859303ddd5f62cb507 (patch)
treeeaaf318d270b93f5d4e276c29842d03c4f67a8df /src-qt5/desktop-utils/lumina-pdf
parentAdded a bookmarks menu, enabled on the MuPDF side. (diff)
downloadlumina-8239f07ed001e1da3cf36e859303ddd5f62cb507.tar.gz
lumina-8239f07ed001e1da3cf36e859303ddd5f62cb507.tar.bz2
lumina-8239f07ed001e1da3cf36e859303ddd5f62cb507.zip
Improved Bookmarks layout and made MuPDF the default backend
Diffstat (limited to 'src-qt5/desktop-utils/lumina-pdf')
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.cpp4
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.ui58
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/PrintWidget.cpp2
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/Renderer-mupdf.cpp2
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/Renderer-poppler.cpp3
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro11
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/mainUI.cpp29
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/mainUI.ui48
8 files changed, 80 insertions, 77 deletions
diff --git a/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.cpp b/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.cpp
index 0a8dd695..39d4e314 100644
--- a/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.cpp
+++ b/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.cpp
@@ -11,12 +11,9 @@
BookmarkMenu::BookmarkMenu(Renderer *Backend, QWidget *parent) : QWidget(parent), ui(new Ui::BookmarkMenu()), BACKEND(Backend){
ui->setupUi(this);
- ui->closeButton->setIcon( LXDG::findIcon("dialog-close") );
connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(close()));
connect(ui->bookmarks, &QTreeWidget::itemClicked, this, [=](QTreeWidgetItem *item) {
Backend->handleLink(item->data(1, Qt::UserRole).toString()); });
-
- ui->bookmarks->setHeaderLabel("Title");
}
void BookmarkMenu::loadBookmarks() {
@@ -41,7 +38,6 @@ void BookmarkMenu::loadBookmarks() {
}else{
item = new QTreeWidgetItem(parent);
}
-
item->setText(0, bm->title);
item->setData(1, Qt::UserRole, bm->link);
if(!bm->link.isEmpty())
diff --git a/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.ui b/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.ui
index de19be66..e9706913 100644
--- a/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.ui
+++ b/src-qt5/desktop-utils/lumina-pdf/BookmarkMenu.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>109</width>
- <height>507</height>
+ <width>156</width>
+ <height>583</height>
</rect>
</property>
<property name="windowTitle">
@@ -15,27 +15,49 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QPushButton" name="closeButton">
- <property name="text">
- <string/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Bookmarks</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QToolButton" name="closeButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Bookmarks</string>
+ </property>
+ <property name="icon">
+ <iconset theme="dialog-close"/>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Bookmarks</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
<item>
<widget class="QTreeWidget" name="bookmarks">
+ <property name="columnCount">
+ <number>1</number>
+ </property>
<column>
<property name="text">
- <string notr="true">1</string>
+ <string notr="true">Location</string>
</property>
</column>
</widget>
diff --git a/src-qt5/desktop-utils/lumina-pdf/PrintWidget.cpp b/src-qt5/desktop-utils/lumina-pdf/PrintWidget.cpp
index 63d25be4..65a71a74 100644
--- a/src-qt5/desktop-utils/lumina-pdf/PrintWidget.cpp
+++ b/src-qt5/desktop-utils/lumina-pdf/PrintWidget.cpp
@@ -162,7 +162,6 @@ void PrintWidget::highlightText(TextData *text) {
//Private functions
void PrintWidget::generatePreview() {
- qDebug() << "Generating Preview";
populateScene(); // i.e. setPreviewPrintedPictures() e.l.
layoutPages();
curPage = qBound(1, curPage, pages.count());
@@ -211,7 +210,6 @@ void PrintWidget::populateScene()
}
qDeleteAll(pages);
pages.clear();
- qDebug() << "populateScene";
int numPages = BACKEND->numPages();
if(BACKEND->hashSize() < numPages){ return; } //nothing to show yet
diff --git a/src-qt5/desktop-utils/lumina-pdf/Renderer-mupdf.cpp b/src-qt5/desktop-utils/lumina-pdf/Renderer-mupdf.cpp
index 7846e9c1..2349fff3 100644
--- a/src-qt5/desktop-utils/lumina-pdf/Renderer-mupdf.cpp
+++ b/src-qt5/desktop-utils/lumina-pdf/Renderer-mupdf.cpp
@@ -209,7 +209,7 @@ void Renderer::renderPage(int pagenum, QSize DPI, int degrees){
fz_pixmap *pixmap;
fz_display_list *list;
- double pageDPI = 150.0;
+ double pageDPI = 96.0;
double sf = DPI.width() / pageDPI;
fz_scale(&matrix, sf, sf);
fz_pre_rotate(&matrix, degrees);
diff --git a/src-qt5/desktop-utils/lumina-pdf/Renderer-poppler.cpp b/src-qt5/desktop-utils/lumina-pdf/Renderer-poppler.cpp
index 28045539..7f2baa5e 100644
--- a/src-qt5/desktop-utils/lumina-pdf/Renderer-poppler.cpp
+++ b/src-qt5/desktop-utils/lumina-pdf/Renderer-poppler.cpp
@@ -89,7 +89,7 @@ void Renderer::renderPage(int pagenum, QSize DPI, int degrees){
default:
rotation = Poppler::Page::Rotation::Rotate0;
}
- img = PAGE->renderToImage(DPI.width(),DPI.height(), -1, -1, -1, -1, rotation);
+ img = PAGE->renderToImage(DPI.width(), DPI.height(), -1, -1, -1, -1, rotation);
loadingHash.insert(pagenum, img);
delete PAGE;
}
@@ -127,6 +127,7 @@ void Renderer::clearHash() {
loadingHash.clear();
}
+//Highlighting found text, bookmarks, and page properties disabled for Poppler
bool Renderer::supportsExtraFeatures() { return false; }
void Renderer::traverseOutline(void *, int) { }
diff --git a/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro b/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro
index 17a76c3a..6ca51b79 100644
--- a/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro
+++ b/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro
@@ -36,15 +36,14 @@ FORMS += mainUI.ui \
PropDialog.ui \
BookmarkMenu.ui
-isEmpty(USE_MUPDF){
- message("Using Poppler-Qt5 Backend")
- LIBS += -lpoppler-qt5
- SOURCES += Renderer-poppler.cpp
-}else{
+isEmpty(USE_POPPLER){
message("Using MuPDF Backend")
LIBS += -lmupdf -lmupdfthird
SOURCES += Renderer-mupdf.cpp
-
+}else{
+ message("Using Poppler-Qt5 Backend")
+ LIBS += -lpoppler-qt5
+ SOURCES += Renderer-poppler.cpp
}
TRANSLATIONS = i18n/l-pdf_af.ts \
diff --git a/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp b/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp
index 011f8660..b25f61fb 100644
--- a/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp
+++ b/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp
@@ -32,11 +32,11 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
PROPDIALOG = new PropDialog(BACKEND);
BOOKMARKS = new BookmarkMenu(BACKEND, this->centralWidget());
BOOKMARKS->setContextMenuPolicy(Qt::CustomContextMenu);
- BOOKMARKS->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ //BOOKMARKS->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
//Create the interface widgets
WIDGET = new PrintWidget(BACKEND, this->centralWidget());
WIDGET->setContextMenuPolicy(Qt::CustomContextMenu);
- WIDGET->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ //WIDGET->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
loadingQueue.clear();
clockTimer = new QTimer(this);
clockTimer->setInterval(1000); //1-second updates to clock
@@ -57,6 +57,11 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
ui->label_replaceme->setVisible(false);
this->centralWidget()->layout()->replaceWidget(ui->label_replaceme2, BOOKMARKS);
ui->label_replaceme2->setVisible(false);
+ QSizePolicy policy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ policy.setHorizontalStretch(1);
+ BOOKMARKS->setSizePolicy(policy);
+ policy.setHorizontalStretch(4);
+ WIDGET->setSizePolicy(policy);
connect(WIDGET, SIGNAL(customContextMenuRequested(const QPoint&)),this, SLOT(showContextMenu(const QPoint&)) );
connect(WIDGET, SIGNAL(currentPageChanged()), this, SLOT(updatePageNumber()) );
connect(BACKEND, SIGNAL(PageLoaded(int)), this, SLOT(slotPageLoaded(int)) );
@@ -208,21 +213,12 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
//TESTING features/functionality
bool TESTING = BACKEND->supportsExtraFeatures();
- ui->actionSettings->setEnabled(TESTING);
- ui->actionSettings->setVisible(TESTING);
ui->actionBookmarks->setEnabled(TESTING);
ui->actionBookmarks->setVisible(TESTING);
- ui->actionScroll_Mode->setEnabled(TESTING);
- ui->actionScroll_Mode->setVisible(TESTING);
- ui->actionSelect_Mode->setEnabled(TESTING);
- ui->actionSelect_Mode->setVisible(TESTING);
ui->actionProperties->setEnabled(TESTING);
ui->actionProperties->setVisible(TESTING);
- ui->menuSettings->setEnabled(TESTING);
- ui->menuSettings->setVisible(TESTING);
- if(!TESTING){
- ui->menubar->removeAction(ui->menuSettings->menuAction() );
- }
+ ui->actionClearHighlights->setEnabled(TESTING);
+ ui->actionClearHighlights->setVisible(TESTING);
ui->actionSettings->setEnabled(false);
ui->actionSettings->setVisible(false);
@@ -385,19 +381,21 @@ void MainUI::startLoadingPages(int degrees){
// Using Qt to scale the image (adjust page value) smooths out the image quite a bit without a lot of performance loss (but cannot scale up without pixelization)
// The best approach seams to be to increase the DPI a bit, but match that with the same scaling on the page size (smoothing)
- QSize DPI(300,300); //print-quality (some printers even go to 600 DPI nowdays)
+ QSize DPI(150,150); //print-quality (some printers even go to 600 DPI nowdays)
/*qDebug() << "Screen Resolutions:";
QList<QScreen*> screens = QApplication::screens();
for(int i=0; i<screens.length(); i++){
qDebug() << screens[i]->name() << screens[i]->logicalDotsPerInchX() << screens[i]->logicalDotsPerInchY();
}*/
+
for(int i=0; i<BACKEND->numPages(); i++){
//qDebug() << " - Kickoff page load:" << i;
if(BACKEND->loadMultiThread()) {
QtConcurrent::run(BACKEND, &Renderer::renderPage, i, DPI, degrees);
}else{
BACKEND->renderPage(i, DPI, degrees);
+ if(i % 50 == 0){ QCoreApplication::processEvents(); }
}
}
//qDebug() << "Finish page loading kickoff";
@@ -634,7 +632,8 @@ void MainUI::find(QString text, bool forward) {
//qDebug() << "Jump to page: " << currentText.page;
- WIDGET->highlightText(currentText);
+ if(BACKEND->supportsExtraFeatures())
+ WIDGET->highlightText(currentText);
}else{
ui->resultsLabel->setText("No results found");
}
diff --git a/src-qt5/desktop-utils/lumina-pdf/mainUI.ui b/src-qt5/desktop-utils/lumina-pdf/mainUI.ui
index 92921057..09a5862d 100644
--- a/src-qt5/desktop-utils/lumina-pdf/mainUI.ui
+++ b/src-qt5/desktop-utils/lumina-pdf/mainUI.ui
@@ -14,27 +14,28 @@
<string notr="true"/>
</property>
<widget class="QWidget" name="centralwidget">
- <layout class="QGridLayout" name="gridLayout_2">
- <property name="leftMargin">
- <number>4</number>
- </property>
- <property name="topMargin">
- <number>4</number>
- </property>
- <property name="rightMargin">
- <number>4</number>
- </property>
- <property name="bottomMargin">
- <number>4</number>
- </property>
- <property name="spacing">
- <number>4</number>
- </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_replaceme2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Bookmarks Area</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
<item row="0" column="1">
<widget class="QLabel" name="label_replaceme">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
- <horstretch>0</horstretch>
+ <horstretch>3</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
@@ -126,19 +127,6 @@
</layout>
</widget>
</item>
- <item row="0" column="0">
- <widget class="QLabel" name="label_replaceme2">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Bookmarks Area</string>
- </property>
- </widget>
- </item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
bgstack15