From 27255eb6f41b0a07194c177585da8d1aeda8705f Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Wed, 17 Dec 2014 13:03:13 +0000 Subject: [PATCH] [Add] PDF Preview widget. [Add] Window icon. --- bin/hpdf.pro | 7 +++++-- img/hpdf.png | Bin 3981 -> 2449 bytes src/pdf_factory.cpp | 9 ++++++--- src/pdf_factory.h | 12 ++++++------ src/pdf_file_widget.cpp | 26 ++++++++++++++------------ src/pdf_file_widget.h | 9 ++++++--- src/pdf_page_widget.cpp | 4 ++++ src/pdf_page_widget.h | 5 +++++ src/pdf_preview_widget.cpp | 26 ++++++++++++++++++++++++++ src/pdf_preview_widget.h | 23 +++++++++++++++++++++++ src/pdf_table_widget.cpp | 2 ++ src/pdf_table_widget.h | 6 +++++- 12 files changed, 102 insertions(+), 27 deletions(-) create mode 100644 src/pdf_preview_widget.cpp create mode 100644 src/pdf_preview_widget.h diff --git a/bin/hpdf.pro b/bin/hpdf.pro index 33fd368..fc6c862 100644 --- a/bin/hpdf.pro +++ b/bin/hpdf.pro @@ -10,13 +10,16 @@ HEADERS += \ ../src/pdf_factory.h \ ../src/pdf_page_widget.h \ ../src/pdf_table_widget.h \ - ../src/pdf_file_widget.h + ../src/pdf_file_widget.h \ + ../src/pdf_preview_widget.h + SOURCES += \ ../src/main.cpp \ ../src/pdf_factory.cpp \ ../src/pdf_page_widget.cpp \ ../src/pdf_table_widget.cpp \ - ../src/pdf_file_widget.cpp + ../src/pdf_file_widget.cpp \ + ../src/pdf_preview_widget.cpp RESOURCES += hpdf.qrc diff --git a/img/hpdf.png b/img/hpdf.png index bdf001aa3ead2ba2b1ccf9eac694de3b8b07723c..cd777b80c38a3de01c0b390184a0ce79ff205aaf 100644 GIT binary patch literal 2449 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 diff --git a/src/pdf_factory.cpp b/src/pdf_factory.cpp index d71eb6d..21078d9 100644 --- a/src/pdf_factory.cpp +++ b/src/pdf_factory.cpp @@ -2,6 +2,7 @@ #include #include "pdf_factory.h" #include "pdf_table_widget.h" +#include "pdf_preview_widget.h" #include "pdf_page_widget.h" PDFFactory::PDFFactory(void) { @@ -34,10 +35,9 @@ void PDFFactory::createWidgets(void) { /* Create main area (table). */ pdfTableView = new PDFTableWidget(); - splitter = new QSplitter(); - /* TODO: change pdfPreview widget. */ - pdfPreview = new QWidget(); + pdfPreview = new PDFPreviewWidget(); pdfPreview->setMinimumWidth(100); + splitter = new QSplitter(); splitter->setOrientation(Qt::Horizontal); splitter->addWidget(pdfTableView); splitter->addWidget(pdfPreview); @@ -48,6 +48,9 @@ void PDFFactory::createWidgets(void) { splitter->setStretchFactor(1, 0.5); layout->addWidget(splitter); + connect(pdfTableView, SIGNAL(pageClicked(QMouseEvent*,QImage)), pdfPreview, + SLOT(pageClicked(QMouseEvent*,QImage))); + setWindowIcon(QIcon(":/img/hpdf.png")); setWindowTitle(tr("HPDF")); setGeometry(0, 0, 1300, 650); diff --git a/src/pdf_factory.h b/src/pdf_factory.h index cc079fc..6ed4549 100644 --- a/src/pdf_factory.h +++ b/src/pdf_factory.h @@ -1,6 +1,5 @@ #pragma once #include -#include "pdf_table_widget.h" class QAction; class QWidget; @@ -8,6 +7,8 @@ class QTabWidget; class QScrollArea; class QSplitter; class QToolBar; +class PDFTableWidget; +class PDFPreviewWidget; class PDFFactory : public QMainWindow { Q_OBJECT @@ -39,11 +40,10 @@ private: QWidget* centralWidget; - QTabWidget* ribbon; - QScrollArea* scrollArea; - PDFTableWidget* pdfTableView; - QSplitter* splitter; - QWidget* pdfPreview; + QTabWidget* ribbon; + QSplitter* splitter; + PDFTableWidget* pdfTableView; + PDFPreviewWidget* pdfPreview; QToolBar* fileToolBar; QToolBar* editToolBar; diff --git a/src/pdf_file_widget.cpp b/src/pdf_file_widget.cpp index 4bee5c8..b15c9e1 100644 --- a/src/pdf_file_widget.cpp +++ b/src/pdf_file_widget.cpp @@ -10,7 +10,7 @@ #define CHILD_AREA_WIDTH 150 #define CHILD_AREA_HEIGHT 150 -FilesContainerWidget::FilesContainerWidget(QWidget* parent) { +PagesContainerWidget::PagesContainerWidget(QWidget* parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); setAcceptDrops(true); mainLayout = new QHBoxLayout(); @@ -18,26 +18,26 @@ FilesContainerWidget::FilesContainerWidget(QWidget* parent) { setLayout(mainLayout); } -int FilesContainerWidget::getPagesCount() const { +int PagesContainerWidget::getPagesCount() const { return pageWidgets.size(); } -QSize FilesContainerWidget::sizeHint() const { +QSize PagesContainerWidget::sizeHint() const { return QSize(CHILD_AREA_WIDTH*getPagesCount(), CHILD_AREA_HEIGHT + 20); } -void FilesContainerWidget::addPageWidget(PDFPageWidget* pageWidget) { +void PagesContainerWidget::addPageWidget(PDFPageWidget* pageWidget) { pageWidgets.append(pageWidget); mainLayout->addWidget(pageWidget); adjustSize(); } -void FilesContainerWidget::dragEnterEvent(QDragEnterEvent* event) { +void PagesContainerWidget::dragEnterEvent(QDragEnterEvent* event) { if(event->mimeData()->hasFormat("text/plain")) event->acceptProposedAction(); } -void FilesContainerWidget::dropEvent(QDropEvent* event) { +void PagesContainerWidget::dropEvent(QDropEvent* event) { int from = event->mimeData()->text().toInt(); int to = findPageWidgetInLayout(pageWidgets[findPageContainingClickEvent(event->pos())]); @@ -47,7 +47,7 @@ void FilesContainerWidget::dropEvent(QDropEvent* event) { event->acceptProposedAction(); } -void FilesContainerWidget::mousePressEvent(QMouseEvent* event) { +void PagesContainerWidget::mousePressEvent(QMouseEvent* event) { if(event->button() == Qt::LeftButton) { int draggedChild = (findPageContainingClickEvent(event->pos())); @@ -62,7 +62,7 @@ void FilesContainerWidget::mousePressEvent(QMouseEvent* event) { } } -int FilesContainerWidget::findPageContainingClickEvent(QPoint pos) { +int PagesContainerWidget::findPageContainingClickEvent(QPoint pos) { for(int i = 0; i < getPagesCount(); i++) if(pageWidgets[i]->geometry().contains(pos)) return i; @@ -70,7 +70,7 @@ int FilesContainerWidget::findPageContainingClickEvent(QPoint pos) { return getPagesCount()-1; } -int FilesContainerWidget::findPageWidgetInLayout(PDFPageWidget* pageWidget) { +int PagesContainerWidget::findPageWidgetInLayout(PDFPageWidget* pageWidget) { for(int i = 0; i < getPagesCount(); i++) if(mainLayout->itemAt(i)->widget() == pageWidget) return i; @@ -93,9 +93,9 @@ PDFFileWidget::PDFFileWidget(QWidget* parent) { fileNameLabel = new QLabel(); topLayout->addWidget(fileNameLabel, 0, 1); - filesContainerWidget = new FilesContainerWidget(); + pagesContainerWidget = new PagesContainerWidget(); scrollArea = new QScrollArea(); - scrollArea->setWidget(filesContainerWidget); + scrollArea->setWidget(pagesContainerWidget); topLayout->addWidget(scrollArea, 1, 0, 1, 5); setLayout(topLayout); @@ -127,8 +127,10 @@ void PDFFileWidget::setDocument(Poppler::Document* document, QString fileName) { PDFPageWidget* pageWidget = new PDFPageWidget(); pageWidget->setThumbnail(pageImage); + connect(pageWidget, SIGNAL(pageClicked(QMouseEvent*,QImage)), this, + SIGNAL(pageClicked(QMouseEvent*,QImage))); - filesContainerWidget->addPageWidget(pageWidget); + pagesContainerWidget->addPageWidget(pageWidget); } fileNameLabel->setText(fileName); } diff --git a/src/pdf_file_widget.h b/src/pdf_file_widget.h index 4faeba2..300fe19 100644 --- a/src/pdf_file_widget.h +++ b/src/pdf_file_widget.h @@ -17,10 +17,10 @@ class QDropEvent; class QMouseEvent; class PDFPageWidget; -class FilesContainerWidget : public QWidget { +class PagesContainerWidget : public QWidget { Q_OBJECT public: - FilesContainerWidget(QWidget* parent = 0); + PagesContainerWidget(QWidget* parent = 0); QSize sizeHint() const; void addPageWidget(PDFPageWidget* image); @@ -62,9 +62,12 @@ private: QLabel* fileNameLabel; QPushButton* collapseButton; - FilesContainerWidget* filesContainerWidget; + PagesContainerWidget* pagesContainerWidget; QScrollArea* scrollArea; QWidget* ancestor; bool collapsed; + +signals: + void pageClicked(QMouseEvent*, QImage); }; diff --git a/src/pdf_page_widget.cpp b/src/pdf_page_widget.cpp index c05c957..2518c5c 100644 --- a/src/pdf_page_widget.cpp +++ b/src/pdf_page_widget.cpp @@ -52,6 +52,10 @@ void PDFPageWidget::setThumbnail(QImage pageImage) { update(); } +void PDFPageWidget::mousePressEvent(QMouseEvent* event) { + emit pageClicked(event, image); +} + void PDFPageWidget::leaveEvent(QEvent* event) { btn1->hide(); btn2->hide(); diff --git a/src/pdf_page_widget.h b/src/pdf_page_widget.h index 06ab870..5667bc7 100644 --- a/src/pdf_page_widget.h +++ b/src/pdf_page_widget.h @@ -7,6 +7,7 @@ class QImage; class QPixmap; class QPaintEvent; class QEvent; +class QMouseEvent; class QSize; class PDFPageWidget : public QFrame { @@ -22,6 +23,7 @@ protected: void paintEvent(QPaintEvent* event); void enterEvent(QEvent* event); void leaveEvent(QEvent* event); + void mousePressEvent(QMouseEvent* event); private: /*QVector buttons;*/ @@ -29,5 +31,8 @@ private: QImage image; QPixmap pixmap; QPushButton* btn1, *btn2; + +signals: + void pageClicked(QMouseEvent* event, QImage pageImage); }; diff --git a/src/pdf_preview_widget.cpp b/src/pdf_preview_widget.cpp new file mode 100644 index 0000000..19ab864 --- /dev/null +++ b/src/pdf_preview_widget.cpp @@ -0,0 +1,26 @@ +#include +#include "pdf_preview_widget.h" + +PDFPreviewWidget::PDFPreviewWidget(QWidget* parent) : QWidget(parent) { + +} + +void PDFPreviewWidget::setImage(QImage image) { + previewImage = image; + update(); +} + +void PDFPreviewWidget::pageClicked(QMouseEvent* mouseEvent, QImage image) { + setImage(image); +} + +void PDFPreviewWidget::paintEvent(QPaintEvent* event) { + QPainter painter(this); + + QPixmap pixmap = QPixmap::fromImage(previewImage); + pixmap = pixmap.scaled(size(), Qt::KeepAspectRatio); + painter.drawPixmap(QRect((size().width() - pixmap.width()) / 2, + (size().height() - pixmap.height()) / 2, + pixmap.width(), pixmap.height()), pixmap); +} + diff --git a/src/pdf_preview_widget.h b/src/pdf_preview_widget.h new file mode 100644 index 0000000..f3512eb --- /dev/null +++ b/src/pdf_preview_widget.h @@ -0,0 +1,23 @@ +#pragma once +#include + +class QImage; +class QPaintEvent; +class QMouseEvent; + +class PDFPreviewWidget : public QWidget { + Q_OBJECT +public: + explicit PDFPreviewWidget(QWidget* parent = 0); + void setImage(QImage image); + +public slots: + void pageClicked(QMouseEvent* mouseEvent, QImage image); + +protected: + void paintEvent(QPaintEvent* event); + +private: + QImage previewImage; +}; + diff --git a/src/pdf_table_widget.cpp b/src/pdf_table_widget.cpp index 1a4a7cf..a6a687d 100644 --- a/src/pdf_table_widget.cpp +++ b/src/pdf_table_widget.cpp @@ -39,6 +39,8 @@ void PDFTableWidget::loadFile(QString fileName) { PDFFileWidget* fileWidget = new PDFFileWidget(); fileWidget->setAncestor(this); fileWidget->setDocument(doc, fileName); + connect(fileWidget, SIGNAL(pageClicked(QMouseEvent*,QImage)), this, + SIGNAL(pageClicked(QMouseEvent*,QImage))); fileWidgets.append(fileWidget); diff --git a/src/pdf_table_widget.h b/src/pdf_table_widget.h index 4a864a8..741a270 100644 --- a/src/pdf_table_widget.h +++ b/src/pdf_table_widget.h @@ -2,10 +2,11 @@ #include #include +class QImage; class QVBoxLayout; class QString; class QScrollArea; - +class QMouseEvent; class PDFFileWidget; class PDFTableWidget : public QFrame { @@ -26,5 +27,8 @@ private: QVector files; QVector fileNames; QVector fileWidgets; + +signals: + void pageClicked(QMouseEvent*, QImage); };