aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/experimental/lumina-pdf/mainUI.h
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/experimental/lumina-pdf/mainUI.h')
-rw-r--r--src-qt5/experimental/lumina-pdf/mainUI.h57
1 files changed, 56 insertions, 1 deletions
diff --git a/src-qt5/experimental/lumina-pdf/mainUI.h b/src-qt5/experimental/lumina-pdf/mainUI.h
index 1bd1699b..fa1d5a55 100644
--- a/src-qt5/experimental/lumina-pdf/mainUI.h
+++ b/src-qt5/experimental/lumina-pdf/mainUI.h
@@ -12,6 +12,9 @@
#include <QPrinter>
#include <QMainWindow>
#include <QProgressBar>
+#include <QLabel>
+#include <QKeyEvent>
+#include <QDebug>
#include <poppler-qt5.h>
@@ -41,12 +44,64 @@ private:
QProgressBar *progress;
QAction *progAct; //action associated with the progressbar
-
+ //PDF Page Loading cache variables
+ QHash<int, QImage> loadingHash;
+ int numPages;
+
+ void loadPage(int num, Poppler::Document *doc, MainUI *obj, QSize dpi, QSizeF page);
+
+ //Functions/variables for the presentation mode
+ QLabel *presentationLabel;
+ QScreen *getScreen(bool current, bool &cancelled);
+ int CurrentPage;
+ void startPresentation(bool atStart);
+ void ShowPage(int page);
+ void endPresentation();
+
private slots:
+ void startLoadingPages(QPrinter *printer);
+ void slotPageLoaded(int);
+ void slotStartPresentation(QAction *act);
+
void paintOnWidget(QPrinter *PRINTER);
//Button Slots
void OpenNewFile();
+signals:
+ void PageLoaded(int);
+
+protected:
+ void keyPressEvent(QKeyEvent *event){
+ //See if this is one of the special hotkeys and act appropriately
+ // NOTE: Some of this is duplicated with the QShortcut definitions (for non-presentation mode)
+ // This routine does not always work for the main window viewer due to differing widget focus policies
+ if(presentationLabel!=0 && presentationLabel->isVisible()){
+ //qDebug() << "Got Key Press:";
+ if( event->key()==Qt::Key_Escape || event->key()==Qt::Key_Backspace){
+ //qDebug() << " - Escape/Backspace";
+ endPresentation();
+ }else if(event->key()==Qt::Key_Right || event->key()==Qt::Key_Down || event->key()==Qt::Key_Space){
+ //qDebug() << " - Right/Down/Spacebar";
+ ShowPage( CurrentPage+1 );
+ }else if(event->key()==Qt::Key_Left || event->key()==Qt::Key_Up){
+ //qDebug() << " - Left/Up";
+ ShowPage( CurrentPage-1 );
+ }else if(event->key()==Qt::Key_Home){
+ //qDebug() << " - Home";
+ ShowPage(0); //go to the first page
+ }else if(event->key()==Qt::Key_End){
+ //qDebug() << " - End";
+ ShowPage( numPages-1 ); //go to the last page
+ }else if(event->key()==Qt::Key_F11){
+ //qDebug() << " - F11";
+ endPresentation();
+ }else{
+ QMainWindow::keyPressEvent(event);
+ }
+ }else{
+ QMainWindow::keyPressEvent(event);
+ }
+ }
};
#endif
bgstack15