aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils
diff options
context:
space:
mode:
authorKen Moore <ken@ixsystems.com>2017-12-21 09:47:39 -0500
committerKen Moore <ken@ixsystems.com>2017-12-21 09:47:39 -0500
commit6fa4f14708a67c57d7b6753c4e933df2e6b2f583 (patch)
treee867e7fc3c61535b1c74d956556cc31c630a5ead /src-qt5/desktop-utils
parentTurn of some stdout messages within the Qt theme plugin. (diff)
parentMerge branch 'master' of https://github.com/trueos/lumina (diff)
downloadlumina-6fa4f14708a67c57d7b6753c4e933df2e6b2f583.tar.gz
lumina-6fa4f14708a67c57d7b6753c4e933df2e6b2f583.tar.bz2
lumina-6fa4f14708a67c57d7b6753c4e933df2e6b2f583.zip
Merge branch 'master' of github.com:trueos/lumina
Diffstat (limited to 'src-qt5/desktop-utils')
-rw-r--r--src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_cs.ts26
-rw-r--r--src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_da.ts26
-rw-r--r--src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_hu.ts70
-rw-r--r--src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_lt.ts4
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro9
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/mainUI.cpp186
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/mainUI.h55
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/mainUI.ui57
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/propDialog.cpp54
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/propDialog.h25
-rw-r--r--src-qt5/desktop-utils/lumina-pdf/propDialog.ui601
11 files changed, 896 insertions, 217 deletions
diff --git a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_cs.ts b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_cs.ts
index b434a529..d1e93554 100644
--- a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_cs.ts
+++ b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_cs.ts
@@ -368,67 +368,67 @@
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="608"/>
<source>Multimedia</source>
- <translation type="unfinished"></translation>
+ <translation>Multimédia</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="609"/>
<source>Development</source>
- <translation type="unfinished"></translation>
+ <translation>Vývoj</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="610"/>
<source>Education</source>
- <translation type="unfinished"></translation>
+ <translation>Výuka</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="611"/>
<source>Games</source>
- <translation type="unfinished"></translation>
+ <translation>Hry</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="612"/>
<source>Graphics</source>
- <translation type="unfinished"></translation>
+ <translation>Grafika</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="613"/>
<source>Network</source>
- <translation type="unfinished"></translation>
+ <translation>Sítě</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="614"/>
<source>Office</source>
- <translation type="unfinished"></translation>
+ <translation>Kancelář</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="615"/>
<source>Science</source>
- <translation type="unfinished"></translation>
+ <translation>Věda</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="616"/>
<source>Settings</source>
- <translation type="unfinished">Nastavení</translation>
+ <translation>Nastavení</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="617"/>
<source>System</source>
- <translation type="unfinished"></translation>
+ <translation>Systém</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="618"/>
<source>Utility</source>
- <translation type="unfinished"></translation>
+ <translation>Nástroje</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="619"/>
<source>Wine</source>
- <translation type="unfinished"></translation>
+ <translation>Wine</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="620"/>
<source>Unsorted</source>
- <translation type="unfinished"></translation>
+ <translation>Různé</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_da.ts b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_da.ts
index b2f87e32..f428d94e 100644
--- a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_da.ts
+++ b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_da.ts
@@ -368,67 +368,67 @@
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="608"/>
<source>Multimedia</source>
- <translation type="unfinished"></translation>
+ <translation>Multimedie</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="609"/>
<source>Development</source>
- <translation type="unfinished"></translation>
+ <translation>Udvikling</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="610"/>
<source>Education</source>
- <translation type="unfinished"></translation>
+ <translation>Læring</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="611"/>
<source>Games</source>
- <translation type="unfinished"></translation>
+ <translation>Spil</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="612"/>
<source>Graphics</source>
- <translation type="unfinished"></translation>
+ <translation>Grafik</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="613"/>
<source>Network</source>
- <translation type="unfinished"></translation>
+ <translation>Netværk</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="614"/>
<source>Office</source>
- <translation type="unfinished"></translation>
+ <translation>Kontor</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="615"/>
<source>Science</source>
- <translation type="unfinished"></translation>
+ <translation>Videnskab</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="616"/>
<source>Settings</source>
- <translation type="unfinished">Indstillinger</translation>
+ <translation>Indstillinger</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="617"/>
<source>System</source>
- <translation type="unfinished"></translation>
+ <translation>System</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="618"/>
<source>Utility</source>
- <translation type="unfinished"></translation>
+ <translation>Redskab</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="619"/>
<source>Wine</source>
- <translation type="unfinished"></translation>
+ <translation>Wine</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="620"/>
<source>Unsorted</source>
- <translation type="unfinished"></translation>
+ <translation>Usorteret</translation>
</message>
</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_hu.ts b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_hu.ts
index e9b03cec..1a2cf1aa 100644
--- a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_hu.ts
+++ b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_hu.ts
@@ -7,7 +7,7 @@
<location filename="../mainUI.ui" line="14"/>
<location filename="../mainUI.cpp" line="285"/>
<source>Media Player</source>
- <translation type="unfinished"></translation>
+ <translation>Média lejátszó</translation>
</message>
<message>
<location filename="../mainUI.ui" line="50"/>
@@ -362,72 +362,4 @@
<translation type="unfinished"></translation>
</message>
</context>
-<context>
- <name>XDGDesktopList</name>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="608"/>
- <source>Multimedia</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="609"/>
- <source>Development</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="610"/>
- <source>Education</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="611"/>
- <source>Games</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="612"/>
- <source>Graphics</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="613"/>
- <source>Network</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="614"/>
- <source>Office</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="615"/>
- <source>Science</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="616"/>
- <source>Settings</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="617"/>
- <source>System</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="618"/>
- <source>Utility</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="619"/>
- <source>Wine</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../../core/libLumina/LuminaXDG.cpp" line="620"/>
- <source>Unsorted</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
</TS>
diff --git a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_lt.ts b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_lt.ts
index 8064f28a..8b7d56ba 100644
--- a/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_lt.ts
+++ b/src-qt5/desktop-utils/lumina-mediaplayer/i18n/l-mediap_lt.ts
@@ -280,7 +280,7 @@
<message>
<location filename="../mainUI.cpp" line="105"/>
<source>Please install the `pianobar` utility to enable this functionality</source>
- <translation>Norėdami įjungti šį funkcionalumą, įdiekite &quot;pianobar&quot; paslaugų programą</translation>
+ <translation>Norėdami įjungti šį funkcionalumą, įdiekite "pianobar" paslaugų programą</translation>
</message>
<message>
<location filename="../mainUI.cpp" line="109"/>
@@ -368,7 +368,7 @@
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="608"/>
<source>Multimedia</source>
- <translation type="unfinished"></translation>
+ <translation>Multimedija</translation>
</message>
<message>
<location filename="../../../core/libLumina/LuminaXDG.cpp" line="609"/>
diff --git a/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro b/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro
index 894d21f2..3a031067 100644
--- a/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro
+++ b/src-qt5/desktop-utils/lumina-pdf/lumina-pdf.pro
@@ -18,13 +18,16 @@ include(../../core/libLumina/LuminaXDG.pri)
message("Qt Modules Needed: $${QT}")
SOURCES += main.cpp \
- mainUI.cpp
+ mainUI.cpp \
+ propDialog.cpp
HEADERS += mainUI.h \
CM_PrintPreviewWidget.h \
- PresentationLabel.h
+ PresentationLabel.h \
+ PropDialog.h
-FORMS += mainUI.ui
+FORMS += mainUI.ui \
+ propDialog.ui
LIBS += -lpoppler-qt5
diff --git a/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp b/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp
index ce2707c9..f0429b9d 100644
--- a/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp
+++ b/src-qt5/desktop-utils/lumina-pdf/mainUI.cpp
@@ -28,7 +28,6 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
this->setWindowIcon( LXDG::findIcon("application-pdf","unknown"));
presentationLabel = 0;
CurrentPage = 0;
- ccw = 0;
lastdir = QDir::homePath();
Printer = new QPrinter();
//Create the interface widgets
@@ -47,6 +46,7 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
//Now put the widgets into the UI
this->setCentralWidget(WIDGET);
WIDGET->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), this, SLOT(newFocus(QWidget*, QWidget*)));
connect(WIDGET, SIGNAL(customContextMenuRequested(const QPoint&)),this, SLOT(showContextMenu(const QPoint&)) );
connect(WIDGET, SIGNAL(paintRequested(QPrinter*)), this, SLOT(paintOnWidget(QPrinter*)) );
DOC = 0;
@@ -54,7 +54,7 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
PrintDLG = new QPrintDialog(this);
connect(PrintDLG, SIGNAL(accepted(QPrinter*)), this, SLOT(paintToPrinter(QPrinter*)) );
- connect(ui->menuStart_Presentation, SIGNAL(triggered(QAction*)), this, SLOT(slotStartPresentation(QAction*)) );
+ //connect(ui->menuStart_Presentation, SIGNAL(triggered(QAction*)), this, SLOT(slotStartPresentation(QAction*)) );
//Create the other interface widgets
progress = new QProgressBar(this);
@@ -88,11 +88,37 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
connect(ui->actionSingle_Page, SIGNAL(triggered()), WIDGET, SLOT(setSinglePageViewMode()) );
connect(ui->actionDual_Pages, SIGNAL(triggered()), WIDGET, SLOT(setFacingPagesViewMode()) );
connect(ui->actionAll_Pages, SIGNAL(triggered()), WIDGET, SLOT(setAllPagesViewMode()) );
- connect(ui->actionScroll_Mode, SIGNAL(toggled(bool)), this, SLOT(setScroll(bool)) );
+ //connect(ui->actionScroll_Mode, &QAction::triggered, this, [&] { this->setScroll(true); });
+ //connect(ui->actionSelect_Mode, &QAction::triggered, this, [&] { this->setScroll(false); });
connect(ui->actionZoom_In, &QAction::triggered, WIDGET, [&] { WIDGET->zoomIn(1.2); });
connect(ui->actionZoom_Out, &QAction::triggered, WIDGET, [&] { WIDGET->zoomOut(1.2); });
- connect(ui->actionRotate_Counterclockwise, &QAction::triggered, this, [&] { this->rotate(Printer, true); });
- connect(ui->actionRotate_Clockwise, &QAction::triggered, this, [&] { this->rotate(Printer, false); });
+ connect(ui->actionRotate_Counterclockwise, &QAction::triggered, this, [&] { this->rotate(true); });
+ connect(ui->actionRotate_Clockwise, &QAction::triggered, this, [&] { this->rotate(false); });
+ connect(ui->actionZoom_In_2, &QAction::triggered, WIDGET, [&] { WIDGET->zoomIn(1.2); });
+ connect(ui->actionZoom_Out_2, &QAction::triggered, WIDGET, [&] { WIDGET->zoomOut(1.2); });
+ connect(ui->actionFirst_Page, SIGNAL(triggered()), this, SLOT(firstPage()) );
+ connect(ui->actionPrevious_Page, SIGNAL(triggered()), this, SLOT(prevPage()) );
+ connect(ui->actionNext_Page, SIGNAL(triggered()), this, SLOT(nextPage()) );
+ connect(ui->actionLast_Page, SIGNAL(triggered()), this, SLOT(lastPage()) );
+ connect(ui->actionProperties, SIGNAL(triggered()), this, SLOT(showInformation()));
+
+ //int curP = WIDGET->currentPage()-1; //currentPage reports pages starting at 1
+ //int lastP = numPages-1;
+ ui->actionFirst_Page->setText(tr("First Page"));
+ ui->actionPrevious_Page->setText(tr("Previous Page"));
+ ui->actionNext_Page->setText(tr("Next Page"));
+ ui->actionLast_Page->setText(tr("Last Page"));
+ /*ui->actionFirst_Page->setEnabled(curP!=0);
+ ui->actionPrevious_Page->setEnabled(curP>0);
+ ui->actionNext_Page->setEnabled(curP<lastP);
+ ui->actionLast_Page->setEnabled(curP!=lastP);*/
+
+ ui->actionStart_Here->setText(tr("Start Presentation (current slide)"));
+ connect(ui->actionStart_Here, SIGNAL(triggered()), this, SLOT(startPresentationHere()) );
+ ui->actionStart_Begin->setText(tr("Start Presentation (at beginning)"));
+ connect(ui->actionStart_Begin, SIGNAL(triggered()), this, SLOT(startPresentationBeginning()) );
+ ui->actionStop_Presentation->setText(tr("Stop Presentation"));
+ connect(ui->actionStop_Presentation, SIGNAL(triggered()), this, SLOT(closePresentation()) );
//Setup all the icons
ui->actionPrint->setIcon( LXDG::findIcon("document-print",""));
@@ -104,14 +130,31 @@ MainUI::MainUI() : QMainWindow(), ui(new Ui::MainUI()){
ui->actionDual_Pages->setIcon(LXDG::findIcon("format-view-grid-small",""));
ui->actionAll_Pages->setIcon(LXDG::findIcon("format-view-grid-large",""));
ui->actionScroll_Mode->setIcon(LXDG::findIcon("cursor-pointer",""));
+ ui->actionSelect_Mode->setIcon(LXDG::findIcon("cursor-text",""));
ui->actionZoom_In->setIcon(LXDG::findIcon("zoom-in",""));
ui->actionZoom_Out->setIcon(LXDG::findIcon("zoom-out",""));
+ ui->actionZoom_In_2->setIcon(LXDG::findIcon("zoom-in",""));
+ ui->actionZoom_Out_2->setIcon(LXDG::findIcon("zoom-out",""));
ui->actionRotate_Counterclockwise->setIcon(LXDG::findIcon("object-rotate-left",""));
ui->actionRotate_Clockwise->setIcon(LXDG::findIcon("object-rotate-right",""));
+ ui->actionFirst_Page->setIcon(LXDG::findIcon("go-first",""));
+ ui->actionPrevious_Page->setIcon(LXDG::findIcon("go-previous",""));
+ ui->actionNext_Page->setIcon(LXDG::findIcon("go-next",""));
+ ui->actionLast_Page->setIcon(LXDG::findIcon("go-last",""));
+ ui->actionStart_Here->setIcon(LXDG::findIcon("media-playback-start-circled",""));
+ ui->actionStart_Begin->setIcon(LXDG::findIcon("presentation-play",""));
+ ui->actionStop_Presentation->setIcon(LXDG::findIcon("media-playback-stop-circled",""));
+ ui->actionBookmarks->setIcon(LXDG::findIcon("bookmark-new",""));
+ ui->actionFind->setIcon(LXDG::findIcon("edit-find",""));
+ ui->actionFind_Next->setIcon(LXDG::findIcon("edit-find-next",""));
+ ui->actionFind_Previous->setIcon(LXDG::findIcon("edit-find-prev",""));
+ ui->actionProperties->setIcon(LXDG::findIcon("dialog-information",""));
+ ui->actionSettings->setIcon(LXDG::findIcon("document-properties",""));
//Now set the default state of the menu's and actions
- ui->menuStart_Presentation->setEnabled(false);
ui->actionStop_Presentation->setEnabled(false);
+ ui->actionStart_Here->setEnabled(false);
+ ui->actionStart_Begin->setEnabled(false);
}
MainUI::~MainUI(){
@@ -256,7 +299,8 @@ void MainUI::startPresentation(bool atStart){
presentationLabel->showFullScreen();
ui->actionStop_Presentation->setEnabled(true);
- ui->menuStart_Presentation->setEnabled(false);
+ ui->actionStart_Here->setEnabled(false);
+ ui->actionStart_Begin->setEnabled(false);
updateClock();
clockAct->setVisible(true);
clockTimer->start();
@@ -296,7 +340,8 @@ void MainUI::endPresentation(){
if(presentationLabel==0 || !presentationLabel->isVisible()){ return; } //not in presentation mode
presentationLabel->hide(); //just hide this (no need to re-create the label for future presentations)
ui->actionStop_Presentation->setEnabled(false);
- ui->menuStart_Presentation->setEnabled(true);
+ ui->actionStart_Here->setEnabled(true);
+ ui->actionStart_Begin->setEnabled(true);
clockTimer->stop();
clockAct->setVisible(false);
this->releaseKeyboard();
@@ -311,8 +356,6 @@ void MainUI::startLoadingPages(QPrinter *printer){
progress->setValue(0);
progAct->setVisible(true);
QRectF pageSize = printer->pageRect(QPrinter::DevicePixel);
- printer->setPageSize(QPageSize(QSize(pageSize.width()*2, pageSize.height()*2)));
- qDebug() << "Starting size" << pageSize.size();
QSize DPI(printer->resolution(),printer->resolution());
/*qDebug() << "Screen Resolutions:";
QList<QScreen*> screens = QApplication::screens();
@@ -321,49 +364,46 @@ void MainUI::startLoadingPages(QPrinter *printer){
}*/
for(int i=0; i<numPages; i++){
//qDebug() << " - Kickoff page load:" << i;
- this->ccw = 0;
+ //this->ccw = 0;
QtConcurrent::run(this, &MainUI::loadPage, i, DOC, this, DPI, pageSize.size());
}
}
void MainUI::slotPageLoaded(int page){
+ Q_UNUSED(page);
//qDebug() << "Page Loaded:" << page;
int finished = loadingHash.keys().length();
if(finished == numPages){
progAct->setVisible(false);
QTimer::singleShot(0, WIDGET, SLOT(updatePreview()));
- qDebug() << "Updating";
+ //qDebug() << "Updating";
ui->actionStop_Presentation->setEnabled(false);
- ui->menuStart_Presentation->setEnabled(true);
+ ui->actionStart_Here->setEnabled(true);
+ ui->actionStart_Begin->setEnabled(true);
}else{
progress->setValue(finished);
}
}
-void MainUI::slotStartPresentation(QAction *act){
+/*void MainUI::slotStartPresentation(QAction *act){
startPresentation(act == ui->actionAt_Beginning);
-}
+}*/
void MainUI::paintOnWidget(QPrinter *PRINTER){
if(DOC==0){ return; }
- //this->show();
- qDebug() << "Painting";
- qDebug() << numPages << loadingHash.keys().length();
if(loadingHash.keys().length() != numPages){ startLoadingPages(PRINTER); return; }
+ //Increase the resolution of the page to match the image to prevent downscaling
+ PRINTER->setPageSize(QPageSize(PRINTER->pageRect().size()*2));
+ qDebug() << PRINTER->pageRect().size() << loadingHash[0].size();
QPainter painter(PRINTER);
- for(int i=0; i<numPages; i++){
- if(i != 0){ PRINTER->newPage(); } //this is the start of the next page (not needed for first)
- if(loadingHash.contains(i)){ painter.drawImage(0,0, loadingHash[i].scaled(PRINTER->pageRect().size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); qDebug() << PRINTER->pageRect().size();}
- else{ painter.drawImage(0,0, QImage()); }
- if(ccw != 0) {
- QTransform transform;
- transform.rotate((ccw-1) ? 270 : 90);
- painter.setTransform(transform);
- //painter.rotate((ccw-1) ? 270 : 90);
- }
- }
+ for(int i=0; i<numPages; i++){
+ if(i != 0){ PRINTER->newPage(); } //this is the start of the next page (not needed for first)
+ if(loadingHash.contains(i)){ painter.drawImage(0,0, loadingHash[i].scaled(PRINTER->pageRect().size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); }
+ else{ painter.drawImage(0,0, QImage()); }
+ }
WIDGET->setContextMenuPolicy(Qt::CustomContextMenu);
+ loadingHash.clear();
}
void MainUI::paintToPrinter(QPrinter *PRINTER){
@@ -403,7 +443,6 @@ void MainUI::paintToPrinter(QPrinter *PRINTER){
}
}
//qDebug() << "Final Page Range:" << pageCount;
- //return;
//Generate the sizing information for the printer
QSize sz(PRINTER->pageRect().width(), PRINTER->pageRect().height());
bool landscape = PRINTER->orientation()==QPrinter::Landscape;
@@ -443,32 +482,85 @@ void MainUI::setScroll(bool tog) {
}else{
QApplication::setOverrideCursor(Qt::IBeamCursor);
}
- //WIDGET->
}
-void MainUI::rotate(QPrinter *printer, bool ccw) {
- QRectF pageSize = printer->pageRect(QPrinter::DevicePixel);
- QSize dpi(printer->resolution(),printer->resolution());
- this->ccw = ccw+1;
- for(int i=0; i < numPages; i++)
- QtConcurrent::run(this, &MainUI::loadPage, i, DOC, this, dpi, pageSize.size());
+void MainUI::rotate(bool ccw) {
+ for(int i = 0; i < numPages; i++) {
+ QImage image = loadingHash[i];
+ //Setup a rotation matrix that rotates 90 degrees clockwise or counterclockwise
+ QMatrix matrix = (ccw) ? QMatrix(0, -1, 1, 0, 0, 0) : QMatrix(0, 1, -1, 0, 0, 0);
+ image = image.transformed(matrix, Qt::SmoothTransformation);
+ //Updates the image in the hash
+ loadingHash.insert(i, image);
+ }
+ //Rotates the page as well as the image
+ WIDGET->setOrientation((WIDGET->orientation() == QPrinter::Landscape) ?
+ QPrinter::Portrait : QPrinter::Landscape);
+ WIDGET->updatePreview();
}
void MainUI::updateContextMenu(){
contextMenu->clear();
- int curP = WIDGET->currentPage()-1; //currentPage reports pages starting at 1
- int lastP = numPages-1;
- contextMenu->addSection( QString(tr("Page %1 of %2")).arg(QString::number(curP+1), QString::number(lastP+1) ) );
- contextMenu->addAction(tr("Next Page"), this, SLOT(nextPage()))->setEnabled(curP<lastP);
- contextMenu->addAction(tr("Previous Page"), this, SLOT(prevPage()))->setEnabled( curP>0 );
+ contextMenu->addSection( QString(tr("Page %1 of %2")).arg(QString::number(WIDGET->currentPage()),
+ QString::number(numPages) ) );
+ contextMenu->addAction(ui->actionPrevious_Page);
+ contextMenu->addAction(ui->actionNext_Page);
contextMenu->addSeparator();
- contextMenu->addAction(tr("First Page"), this, SLOT(firstPage()))->setEnabled(curP!=0);
- contextMenu->addAction(tr("Last Page"), this, SLOT(lastPage()))->setEnabled(curP!=lastP);
+ contextMenu->addAction(ui->actionFirst_Page);
+ contextMenu->addAction(ui->actionLast_Page);
contextMenu->addSeparator();
if(presentationLabel==0 || !presentationLabel->isVisible()){
- contextMenu->addAction(tr("Start Presentation (current slide)"), this, SLOT(startPresentationHere()) );
- contextMenu->addAction(tr("Start Presentation (at beginning)"), this, SLOT(startPresentationBeginning()) );
+ contextMenu->addAction(ui->actionStart_Begin);
+ contextMenu->addAction(ui->actionStart_Here);
+ }else{
+ contextMenu->addAction(ui->actionStop_Presentation);
+ }
+}
+
+void MainUI::keyPressEvent(QKeyEvent *event){
+ //See if this is one of the special hotkeys and act appropriately
+ bool inPresentation = (presentationLabel!=0);
+ if( event->key()==Qt::Key_Escape || event->key()==Qt::Key_Backspace){
+ if(inPresentation){ endPresentation(); }
+ }else if(event->key()==Qt::Key_Right || event->key()==Qt::Key_Space ||
+ event->key()==Qt::Key_PageDown){
+ nextPage();
+ }else if(event->key()==Qt::Key_Left || event->key()==Qt::Key_PageUp){
+ prevPage();
+ }else if(event->key()==Qt::Key_Home){
+ firstPage();
+ }else if(event->key()==Qt::Key_End){
+ lastPage();
+ }else if(event->key()==Qt::Key_F11){
+ if(inPresentation){ endPresentation(); }
+ else{ startPresentationHere(); }
+ }else if(event->key() == Qt::Key_Up) {
+ //Scroll the widget up
+ }else if(event->key() == Qt::Key_Down) {
+ //Scroll the widget down
+ /*qDebug() << "Send Wheel Event";
+ QWheelEvent wEvent( WIDGET->mapFromGlobal(QCursor::pos()), QCursor::pos(),QPoint(0,0), QPoint(0,30), 0, Qt::Vertical, Qt::LeftButton, Qt::NoModifier);
+ QApplication::sendEvent(WIDGET, &wEvent);*/
}else{
- contextMenu->addAction(tr("Stop Presentation"), this, SLOT(closePresentation()) );
+ QMainWindow::keyPressEvent(event);
}
}
+
+void MainUI::wheelEvent(QWheelEvent *event) {
+ //Scroll the window according to the mouse wheel
+ QMainWindow::wheelEvent(event);
+}
+
+void MainUI::newFocus(QWidget *oldW, QWidget *newW) {
+ Q_UNUSED(oldW);
+ //qDebug() << "NEW: " << newW << "OLD: " << oldW;
+ if(newW and newW != this) {
+ newW->setFocusPolicy(Qt::NoFocus);
+ this->setFocus();
+ }
+}
+
+void MainUI::showInformation() {
+ PROPDIALOG = new PropDialog(DOC);
+ PROPDIALOG->show();
+}
diff --git a/src-qt5/desktop-utils/lumina-pdf/mainUI.h b/src-qt5/desktop-utils/lumina-pdf/mainUI.h
index 527bcb2a..18b3d231 100644
--- a/src-qt5/desktop-utils/lumina-pdf/mainUI.h
+++ b/src-qt5/desktop-utils/lumina-pdf/mainUI.h
@@ -21,6 +21,7 @@
#include <poppler/qt5/poppler-qt5.h>
#include "PresentationLabel.h"
+#include "propDialog.h"
namespace Ui{
class MainUI;
@@ -34,16 +35,13 @@ public:
void loadFile(QString path);
-
private:
Poppler::Document *DOC;
QPrintPreviewWidget *WIDGET;
Ui::MainUI *ui;
+ PropDialog *PROPDIALOG;
QPrinter* Printer;
QPrintDialog *PrintDLG;
-
- int ccw;
-
QString lastdir;
//Other Interface elements
@@ -72,7 +70,7 @@ private:
private slots:
void startLoadingPages(QPrinter *printer);
void slotPageLoaded(int);
- void slotStartPresentation(QAction *act);
+ //void slotStartPresentation(QAction *act);
//Simplification routines
void nextPage(){ ShowPage( WIDGET->currentPage() ); } //currentPage() starts at 1 rather than 0
@@ -82,8 +80,9 @@ private slots:
void startPresentationHere(){ startPresentation(false); }
void startPresentationBeginning(){ startPresentation(true); }
void closePresentation(){ endPresentation(); }
+ void showInformation();
-
+ void newFocus(QWidget*, QWidget*);
void paintOnWidget(QPrinter *PRINTER);
void paintToPrinter(QPrinter *PRINTER);
@@ -96,51 +95,13 @@ private slots:
void updateContextMenu();
void setScroll(bool);
- void rotate(QPrinter*, bool);
+ void rotate(bool);
signals:
void PageLoaded(int);
protected:
- void keyPressEvent(QKeyEvent *event){
- //See if this is one of the special hotkeys and act appropriately
- //qDebug() << "Got Key Press:";
- bool inPresentation = (presentationLabel!=0);
- if(!inPresentation){
- //Alternate functionality when **not** in presentation mode
- /*if(event->key()==Qt::Key_Down){
- qDebug() << "Send Wheel Event";
- QWheelEvent event( WIDGET->mapFromGlobal(QCursor::pos()), QCursor::pos(),QPoint(0,0), QPoint(0,30), 0, Qt::Vertical, Qt::LeftButton, Qt::NoModifier);
- QApplication::sendEvent(WIDGET, &event);
- //WIDGET->scrollDown();
- return;
- }else if(event->key()==Qt::Key_Up){
- return;
- }*/
- }
-
- if( event->key()==Qt::Key_Escape || event->key()==Qt::Key_Backspace){
- //qDebug() << " - Escape/Backspace";
- if(inPresentation){ endPresentation(); }
- }else if(event->key()==Qt::Key_Right || event->key()==Qt::Key_Down || event->key()==Qt::Key_Space || event->key()==Qt::Key_PageDown){
- //qDebug() << " - Right/Down/Spacebar" << inPresentation;
- nextPage();
- }else if(event->key()==Qt::Key_Left || event->key()==Qt::Key_Up || event->key()==Qt::Key_PageUp){
- //qDebug() << " - Left/Up";
- prevPage();
- }else if(event->key()==Qt::Key_Home){
- //qDebug() << " - Home";
- firstPage();
- }else if(event->key()==Qt::Key_End){
- //qDebug() << " - End";
- lastPage();
- }else if(event->key()==Qt::Key_F11){
- //qDebug() << " - F11";
- if(inPresentation){ endPresentation(); }
- else{ startPresentationHere(); }
- }else{
- QMainWindow::keyPressEvent(event);
- }
- }
+ void keyPressEvent(QKeyEvent*);
+ void wheelEvent(QWheelEvent*);
};
#endif
diff --git a/src-qt5/desktop-utils/lumina-pdf/mainUI.ui b/src-qt5/desktop-utils/lumina-pdf/mainUI.ui
index 20a79cf2..70d3167a 100644
--- a/src-qt5/desktop-utils/lumina-pdf/mainUI.ui
+++ b/src-qt5/desktop-utils/lumina-pdf/mainUI.ui
@@ -33,19 +33,14 @@
<addaction name="separator"/>
<addaction name="actionClose"/>
<addaction name="separator"/>
- <addaction name="actionPDF_Info"/>
+ <addaction name="actionProperties"/>
</widget>
<widget class="QMenu" name="menuPresentation">
<property name="title">
<string>&amp;Presentation</string>
</property>
- <widget class="QMenu" name="menuStart_Presentation">
- <property name="title">
- <string>Start Presentation</string>
- </property>
- <addaction name="actionAt_Beginning"/>
- </widget>
- <addaction name="menuStart_Presentation"/>
+ <addaction name="actionStart_Begin"/>
+ <addaction name="actionStart_Here"/>
<addaction name="actionStop_Presentation"/>
</widget>
<widget class="QMenu" name="menuSettings">
@@ -59,6 +54,7 @@
<addaction name="actionSettings"/>
<addaction name="separator"/>
<addaction name="actionScroll_Mode"/>
+ <addaction name="actionSelect_Mode"/>
</widget>
<widget class="QMenu" name="menuView">
<property name="title">
@@ -105,6 +101,9 @@
<addaction name="actionSingle_Page"/>
<addaction name="actionDual_Pages"/>
<addaction name="actionAll_Pages"/>
+ <addaction name="separator"/>
+ <addaction name="actionZoom_In_2"/>
+ <addaction name="actionZoom_Out_2"/>
</widget>
<action name="actionOpen_PDF">
<property name="text">
@@ -170,9 +169,9 @@
<string>All Pages</string>
</property>
</action>
- <action name="actionAt_Beginning">
+ <action name="actionStart_Begin">
<property name="text">
- <string>At Beginning</string>
+ <string>Start Presentation (at beginning)</string>
</property>
</action>
<action name="actionStop_Presentation">
@@ -230,9 +229,9 @@
<string>Last Page</string>
</property>
</action>
- <action name="actionPDF_Info">
+ <action name="actionProperties">
<property name="text">
- <string>PDF Info</string>
+ <string>Properties</string>
</property>
</action>
<action name="actionBookmarks">
@@ -250,29 +249,41 @@
<string>Rotate Clockwise</string>
</property>
</action>
- <action name="actionSelect_Mode">
+ <action name="actionScroll_Mode">
<property name="checkable">
- <bool>true</bool>
+ <bool>false</bool>
</property>
<property name="checked">
+ <bool>false</bool>
+ </property>
+ <property name="enabled">
<bool>true</bool>
</property>
<property name="text">
- <string>Select Mode</string>
+ <string>Scroll Mode</string>
</property>
</action>
- <action name="actionScroll_Mode">
- <property name="checkable">
- <bool>true</bool>
+ <action name="actionZoom_Out_2">
+ <property name="text">
+ <string/>
</property>
- <property name="checked">
- <bool>false</bool>
+ </action>
+ <action name="actionZoom_In_2">
+ <property name="text">
+ <string/>
</property>
- <property name="enabled">
- <bool>true</bool>
+ </action>
+ <action name="actionStart_Here">
+ <property name="text">
+ <string>Start Presentation (current slide)</string>
+ </property>
+ </action>
+ <action name="actionSelect_Mode">
+ <property name="checkable">
+ <bool>false</bool>
</property>
<property name="text">
- <string>Scroll Mode</string>
+ <string>Select Mode</string>
</property>
</action>
</widget>
diff --git a/src-qt5/desktop-utils/lumina-pdf/propDialog.cpp b/src-qt5/desktop-utils/lumina-pdf/propDialog.cpp
new file mode 100644
index 00000000..6dbdee69
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-pdf/propDialog.cpp
@@ -0,0 +1,54 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+
+#include "propDialog.h"
+#include "ui_propDialog.h"
+
+#include <LuminaXDG.h>
+
+PropDialog::PropDialog(Poppler::Document *DOC) : QDialog(), ui(new Ui::PropDialog()){
+ this->setWindowTitle(tr("PDF Information"));
+ this->setWindowIcon( LXDG::findIcon("dialog-information","unknown"));
+ int verMa, verMi;
+ QString version;
+ QSize size = DOC->page(0)->pageSize();
+
+ //Grab the version
+ DOC->getPdfVersion(&verMa, &verMi);
+ version = QString::number(verMa)+"."+QString::number(verMi);
+
+ ui->setupUi(this);
+
+ //Setup translations
+ ui->titleL->setText(tr("Title:"));
+ ui->subjectL->setText(tr("Subject:"));
+ ui->authorL->setText(tr("Author:"));
+ ui->creatorL->setText(tr("Creator:"));
+ ui->producerL->setText(tr("Producer:"));
+ ui->keywordsL->setText(tr("Keywords:"));
+ ui->createdL->setText(tr("Created:"));
+ ui->modifiedL->setText(tr("Modified:"));
+ ui->versionL->setText(tr("PDF Version:"));
+ ui->sizeL->setText(tr("Page Size:"));
+ ui->numberL->setText(tr("Number of Pages:"));
+ ui->saveButton->setText(tr("Save"));
+ ui->closeButton->setText(tr("Close"));
+
+ //Fill the text boxes with information from the document
+ ui->titleE->setText(DOC->title());
+ ui->subjectE->setText(DOC->subject());
+ ui->authorE->setText(DOC->author());
+ ui->creatorE->setText(DOC->creator());
+ ui->producerE->setText(DOC->producer());
+ ui->keywordE->setText(DOC->keywords());
+ ui->createdEntry->setText(DOC->creationDate().toString(Qt::TextDate));
+ ui->modifiedEntry->setText(DOC->modificationDate().toString(Qt::TextDate));
+ ui->versionL->setText(ui->versionL->text()+version);
+ ui->sizeL->setText(ui->sizeL->text()+QString::number(size.height())+
+ ", "+QString::number(size.width()));
+ ui->numberL->setText(ui->numberL->text()+QString::number(DOC->numPages()));
+}
diff --git a/src-qt5/desktop-utils/lumina-pdf/propDialog.h b/src-qt5/desktop-utils/lumina-pdf/propDialog.h
new file mode 100644
index 00000000..be67ebd3
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-pdf/propDialog.h
@@ -0,0 +1,25 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#ifndef _LUMINA_PDF_VIEWER_PROP_DIALOG_H
+#define _LUMINA_PDF_VIEWER_PROP_DIALOG_H
+
+#include <QDialog>
+#include <poppler/qt5/poppler-qt5.h>
+
+namespace Ui{
+ class PropDialog;
+};
+
+class PropDialog : public QDialog {
+ Q_OBJECT
+ public:
+ PropDialog(Poppler::Document*);
+
+ private:
+ Ui::PropDialog *ui;
+};
+#endif
diff --git a/src-qt5/desktop-utils/lumina-pdf/propDialog.ui b/src-qt5/desktop-utils/lumina-pdf/propDialog.ui
new file mode 100644
index 00000000..ad995473
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-pdf/propDialog.ui
@@ -0,0 +1,601 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PropDialog</class>
+ <widget class="QDialog" name="PropDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>PDF Information</string>
+ </property>
+ <widget class="QTextEdit" name="titleE">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>30</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QLabel" name="titleL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>30</y>
+ <width>71</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Title:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="subjectL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>50</y>
+ <width>71</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Subject:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="authorL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>70</y>
+ <width>71</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Author:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="creatorL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>90</y>
+ <width>71</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Creator:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="createdL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>150</y>
+ <width>81</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Created: </string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="producerL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>110</y>
+ <width>71</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Producer:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="keywordsL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>130</y>
+ <width>71</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Keywords:</string>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="subjectE">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>50</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="creatorE">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>90</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="authorE">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>70</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="keywordE">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>130</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="autoFillBackground">
+ <bool>false</bool>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="producerE">
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>110</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>false</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QLabel" name="versionL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>200</y>
+ <width>311</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>PDF Version:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="sizeL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>220</y>
+ <width>301</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Page Size:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="numberL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>240</y>
+ <width>321</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Number of Pages:</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="modifiedL">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>170</y>
+ <width>81</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Modified: </string>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="createdEntry">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>150</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="autoFillBackground">
+ <bool>false</bool>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QTextEdit" name="modifiedEntry">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>100</x>
+ <y>170</y>
+ <width>291</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>256</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>512</width>
+ <height>16</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="autoFillBackground">
+ <bool>false</bool>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="horizontalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="sizeAdjustPolicy">
+ <enum>QAbstractScrollArea::AdjustToContents</enum>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="acceptRichText">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="saveButton">
+ <property name="geometry">
+ <rect>
+ <x>230</x>
+ <y>270</y>
+ <width>80</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Save</string>
+ </property>
+ </widget>
+ <widget class="QPushButton" name="closeButton">
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>270</y>
+ <width>80</width>
+ <height>23</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>Close</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ <property name="flat">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
bgstack15