[Add] Testing pdf page to QImage conversion.
[Change] Integrated tableview and files.
@ -9,13 +9,15 @@ LIBS += -L/usr/lib -lpoppler-qt5
|
||||
HEADERS += \
|
||||
../src/pdf_factory.h \
|
||||
../src/pdf_file.h \
|
||||
../src/pdf_page_widget.h
|
||||
../src/pdf_page_widget.h \
|
||||
../src/table_view.h
|
||||
|
||||
SOURCES += \
|
||||
../src/main.cpp \
|
||||
../src/pdf_factory.cpp \
|
||||
../src/pdf_file.cpp \
|
||||
../src/pdf_page_widget.cpp
|
||||
../src/pdf_page_widget.cpp \
|
||||
../src/table_view.cpp
|
||||
|
||||
RESOURCES += hpdf.qrc
|
||||
|
||||
|
23
bin/hpdf.qrc
@ -1,12 +1,13 @@
|
||||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource>
|
||||
<file>../img/cut.png</file>
|
||||
<file>../img/myeditor.png</file>
|
||||
<file>../img/open.png</file>
|
||||
<file>../img/paste.png</file>
|
||||
<file>../img/save.png</file>
|
||||
<file>../img/copy.png</file>
|
||||
<file>../img/new.png</file>
|
||||
<file>../img/saveas.png</file>
|
||||
</qresource>
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>../img/cut.png</file>
|
||||
<file>../img/open.png</file>
|
||||
<file>../img/paste.png</file>
|
||||
<file>../img/copy.png</file>
|
||||
<file>../img/new.png</file>
|
||||
<file>../img/export.png</file>
|
||||
<file>../img/exportall.png</file>
|
||||
<file>../img/pdffactory.png</file>
|
||||
<file>../img/about.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
BIN
img/copy.png
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.0 KiB |
BIN
img/cut.png
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
img/img.jpg
Normal file
After Width: | Height: | Size: 470 KiB |
BIN
img/myeditor.png
Before Width: | Height: | Size: 4.6 KiB |
BIN
img/new.png
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
img/open.png
Before Width: | Height: | Size: 963 B After Width: | Height: | Size: 2.7 KiB |
BIN
img/paste.png
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
img/save.png
Before Width: | Height: | Size: 1014 B |
BIN
img/saveas.png
Before Width: | Height: | Size: 1.1 KiB |
@ -2,6 +2,7 @@
|
||||
#include <QtGlobal>
|
||||
#include "pdf_factory.h"
|
||||
#include "pdf_file.h"
|
||||
#include "table_view.h"
|
||||
#include "pdf_page_widget.h"
|
||||
|
||||
PDFFactory::PDFFactory(void) {
|
||||
@ -32,13 +33,19 @@ void PDFFactory::createWidgets(void) {
|
||||
layout->addWidget(ribbon);
|
||||
|
||||
/* Create main area (table). */
|
||||
pdfTableView = new QWidget();
|
||||
pdfTableView->setLayout(new QVBoxLayout());
|
||||
pdfTableView = new TableView();
|
||||
/*pdfTableView->setLayout(new QVBoxLayout());*/
|
||||
/*pdfTableView->setMinimumSize(1000, 1000);*/
|
||||
pdfTableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
scrollArea = new QScrollArea();
|
||||
scrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
layout->addWidget(scrollArea);
|
||||
|
||||
pdfSplitter = new QSplitter();
|
||||
/* TODO: change pdfPreview widget. */
|
||||
pdfPreview = new QWidget();
|
||||
pdfPreview->setMinimumWidth(100);
|
||||
pdfSplitter->setOrientation(Qt::Horizontal);
|
||||
pdfSplitter->addWidget(pdfTableView);
|
||||
pdfSplitter->addWidget(pdfPreview);
|
||||
layout->addWidget(pdfSplitter);
|
||||
|
||||
/*PDFFile* pdfFile = new PDFFile("/home/docs/loa.pdf");
|
||||
PDFPageWidget* pdfPage = new PDFPageWidget();
|
||||
@ -58,13 +65,13 @@ void PDFFactory::createActions(void) {
|
||||
connect(openAction, SIGNAL(triggered()), this, SLOT(open()));
|
||||
|
||||
exportAction = new QAction(tr("&Export"), this);
|
||||
exportAction->setIcon(QIcon(":/img/save.png"));
|
||||
exportAction->setIcon(QIcon(":/img/export.png"));
|
||||
exportAction->setShortcut(tr("Ctrl+S"));
|
||||
exportAction->setStatusTip(tr("Export the selected frame to a new PDF"));
|
||||
/*connect(saveAction, SIGNAL(triggered()), this, SLOT(save()))*/
|
||||
|
||||
exportAllAction = new QAction(tr("Combine all and export"), this);
|
||||
exportAllAction->setIcon(QIcon(":/img/saveas.png"));
|
||||
exportAllAction->setIcon(QIcon(":/img/exportall.png"));
|
||||
exportAllAction->setShortcut(tr("Shift+Ctrl+S"));
|
||||
exportAllAction->setStatusTip(tr("Combine all and export as one PDF"));
|
||||
/*connect(saveAsAction, SIGNAL(triggered()), this, SLOT(saveAs()))*/
|
||||
|
@ -1,10 +1,12 @@
|
||||
#pragma once
|
||||
#include <QMainWindow>
|
||||
#include "table_view.h"
|
||||
|
||||
class QAction;
|
||||
class QWidget;
|
||||
class QTabWidget;
|
||||
class QScrollArea;
|
||||
class QSplitter;
|
||||
|
||||
class PDFFactory : public QMainWindow {
|
||||
Q_OBJECT
|
||||
@ -36,9 +38,11 @@ private:
|
||||
|
||||
QWidget* centralWidget;
|
||||
|
||||
QTabWidget* ribbon;
|
||||
QScrollArea* scrollArea;
|
||||
QWidget* pdfTableView;
|
||||
QTabWidget* ribbon;
|
||||
QScrollArea* scrollArea;
|
||||
TableView* pdfTableView;
|
||||
QSplitter* pdfSplitter;
|
||||
QWidget* pdfPreview;
|
||||
|
||||
QToolBar* fileToolBar;
|
||||
QToolBar* editToolBar;
|
||||
|
@ -4,7 +4,52 @@
|
||||
PDFPageWidget::PDFPageWidget(QWidget* parent) :
|
||||
QWidget(parent) {
|
||||
|
||||
this->resize(500, 600);
|
||||
/* Resize widget. */
|
||||
this->resize(500, 500);
|
||||
this->setMinimumHeight(500);
|
||||
|
||||
this->setMouseTracking(true);
|
||||
this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
|
||||
/* Initialize buttons. */
|
||||
/*button = new QPushButton();
|
||||
QPushButton* btn = new QPusBbutton();
|
||||
QGridLayout* lo = new QGridLayout();
|
||||
btn->setFixedSize(100, 100);
|
||||
qDebug() << btn->geometry();
|
||||
*lo->addWidget(btn);*/
|
||||
|
||||
QVBoxLayout* vbox = new QVBoxLayout(this);
|
||||
QHBoxLayout* hbox = new QHBoxLayout();
|
||||
|
||||
btn1 = new QPushButton("", this);
|
||||
btn1->setObjectName("new");
|
||||
btn2 = new QPushButton("", this);
|
||||
btn2->setObjectName("open");
|
||||
|
||||
QPixmap pm, pm2;
|
||||
pm.load("../img/new.png");
|
||||
pm2.load("../img/open.png");
|
||||
|
||||
btn1->setIcon(pm);
|
||||
btn2->setIcon(pm2);
|
||||
btn1->hide();
|
||||
btn2->hide();
|
||||
|
||||
hbox->addWidget(btn1, 1, Qt::AlignRight);
|
||||
hbox->addWidget(btn2, 0, Qt::AlignLeft);
|
||||
|
||||
vbox->addStretch(1);
|
||||
vbox->addLayout(hbox);
|
||||
|
||||
this->setLayout(vbox);
|
||||
|
||||
this->setPageImage(new QImage("../img/img.jpg"));
|
||||
}
|
||||
|
||||
void PDFPageWidget::setButton(QPushButton* btn) {
|
||||
button = btn;
|
||||
update();
|
||||
}
|
||||
|
||||
void PDFPageWidget::setPageImage(QImage* pageImage) {
|
||||
@ -13,8 +58,18 @@ void PDFPageWidget::setPageImage(QImage* pageImage) {
|
||||
update();
|
||||
}
|
||||
|
||||
void PDFPageWidget::paintEvent(QPaintEvent* event) {
|
||||
QPainter painter(this);
|
||||
painter.drawPixmap(QRect(0, 0, pixmap.width(), pixmap.height()), pixmap);
|
||||
void PDFPageWidget::leaveEvent(QEvent* event) {
|
||||
btn1->hide();
|
||||
btn2->hide();
|
||||
}
|
||||
|
||||
void PDFPageWidget::enterEvent(QEvent* event) {
|
||||
btn1->show();
|
||||
btn2->show();
|
||||
}
|
||||
|
||||
void PDFPageWidget::paintEvent(QPaintEvent* event) {
|
||||
QPainter painter(this);
|
||||
painter.drawPixmap(QRect(0, 0, width(), height()), pixmap);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QVector>
|
||||
|
||||
class QImage;
|
||||
class QPixmap;
|
||||
@ -10,12 +12,19 @@ class PDFPageWidget : public QWidget {
|
||||
public:
|
||||
PDFPageWidget(QWidget* parent = 0);
|
||||
void setPageImage(QImage* pageImage);
|
||||
void setButton(QPushButton* btn);
|
||||
/*void setButtonImage(QImage* pageImage);*/
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent* event);
|
||||
void enterEvent(QEvent* event);
|
||||
void leaveEvent(QEvent* event);
|
||||
|
||||
private:
|
||||
/*QVector<QPushButton> buttons;*/
|
||||
QPushButton* button;
|
||||
QImage* image;
|
||||
QPixmap pixmap;
|
||||
QPushButton* btn1, *btn2;
|
||||
};
|
||||
|
||||
|
46
src/table_view.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
#include <QtWidgets>
|
||||
#include <QWidget>
|
||||
#include <assert.h>
|
||||
#include "table_view.h"
|
||||
#include "pdf_page_widget.h"
|
||||
|
||||
PDFPageWidget* test[10];
|
||||
|
||||
TableView::TableView(QWidget* parent) : QWidget(parent) {
|
||||
outerLayout = new QVBoxLayout();
|
||||
scrollArea = new QScrollArea();
|
||||
frame = new QFrame(scrollArea);
|
||||
layout = new QVBoxLayout();
|
||||
|
||||
setLayout(outerLayout);
|
||||
outerLayout->addWidget(scrollArea);
|
||||
scrollArea->setWidget(frame);
|
||||
frame->setLayout(layout);
|
||||
frame->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
||||
int i = 0;
|
||||
|
||||
/* TODO: Page widget is placed for testing only.
|
||||
* To remove pagewidget and add filewidgets later,
|
||||
* use QVector<PDFFile> files to store files.
|
||||
*/
|
||||
for(i = 0; i < 10; i++) {
|
||||
test[i] = new PDFPageWidget();
|
||||
test[i]->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
||||
|
||||
layout->addWidget(test[i]);
|
||||
}
|
||||
/* End TODO. */
|
||||
frame->adjustSize();
|
||||
}
|
||||
|
||||
void TableView::paintEvent(QPaintEvent* event) {
|
||||
frame->adjustSize();
|
||||
int newWidth = width();
|
||||
|
||||
for(int i = 0; i < 10; i++) {
|
||||
test[i]->resize(newWidth, test[i]->height());
|
||||
}
|
||||
|
||||
frame->resize(newWidth, frame->height());
|
||||
}
|
||||
|
31
src/table_view.h
Normal file
@ -0,0 +1,31 @@
|
||||
#pragma once
|
||||
#include <QWidget>
|
||||
#include <QSplitter>
|
||||
#include <QVBoxLayout>
|
||||
#include <QScrollArea>
|
||||
#include <QPushButton>
|
||||
#include <QFrame>
|
||||
#include "pdf_page_widget.h"
|
||||
#include "pdf_file.h"
|
||||
|
||||
class QPushButton;
|
||||
class QWidget;
|
||||
class QScrollArea;
|
||||
|
||||
class TableView : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
TableView(QWidget* parent = 0);
|
||||
QVector<PDFFile> files;
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
QScrollArea* scrollArea;
|
||||
QVBoxLayout* layout;
|
||||
QFrame* frame;
|
||||
QVBoxLayout* outerLayout;
|
||||
|
||||
void paintEvent(QPaintEvent* event);
|
||||
};
|
||||
|