[Change] Optimized a bunch of stuff, especially rendering.
This commit is contained in:
parent
59410e6233
commit
8161e5ec15
@ -48,8 +48,6 @@ void PDFFactory::createWidgets(void) {
|
|||||||
splitter->setStretchFactor(1, 0.5);
|
splitter->setStretchFactor(1, 0.5);
|
||||||
layout->addWidget(splitter);
|
layout->addWidget(splitter);
|
||||||
|
|
||||||
connect(pdfTableView, SIGNAL(pageClicked(QMouseEvent*,QImage)), pdfPreview,
|
|
||||||
SLOT(pageClicked(QMouseEvent*,QImage)));
|
|
||||||
connect(pdfTableView, SIGNAL(previewUpdate(Poppler::Page*)), pdfPreview,
|
connect(pdfTableView, SIGNAL(previewUpdate(Poppler::Page*)), pdfPreview,
|
||||||
SLOT(previewUpdate(Poppler::Page*)));
|
SLOT(previewUpdate(Poppler::Page*)));
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ int PagesContainerWidget::getPagesCount() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QSize PagesContainerWidget::sizeHint() const {
|
QSize PagesContainerWidget::sizeHint() const {
|
||||||
return QSize((CHILD_AREA_SIDE_MARGIN + CHILD_AREA_WIDTH)*getPagesCount(), CHILD_AREA_HEIGHT + 22);
|
return QSize((CHILD_AREA_SIDE_MARGIN + CHILD_AREA_WIDTH)*getPagesCount(), CHILD_AREA_HEIGHT + 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PagesContainerWidget::addPageWidget(PDFPageWidget* pageWidget) {
|
void PagesContainerWidget::addPageWidget(PDFPageWidget* pageWidget) {
|
||||||
@ -54,7 +54,7 @@ PDFFileWidget::PDFFileWidget(QWidget* parent) :QFrame(parent) {
|
|||||||
collapseButton->resize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
|
collapseButton->resize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
|
||||||
collapseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
collapseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
collapseButton->setIcon(QIcon(":/img/collapse.png"));
|
collapseButton->setIcon(QIcon(":/img/collapse.png"));
|
||||||
connect(collapseButton, SIGNAL(released()), this, SLOT(collapsedButtonClick()));
|
connect(collapseButton, SIGNAL(released()), this, SLOT(collapsedButtonClicked()));
|
||||||
topLayout->addWidget(collapseButton, 0, 0);
|
topLayout->addWidget(collapseButton, 0, 0);
|
||||||
|
|
||||||
fileNameLabel = new QLabel();
|
fileNameLabel = new QLabel();
|
||||||
@ -65,14 +65,16 @@ PDFFileWidget::PDFFileWidget(QWidget* parent) :QFrame(parent) {
|
|||||||
removeButton->resize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
|
removeButton->resize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
|
||||||
removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
removeButton->setIcon(QIcon(":img/remove.png"));
|
removeButton->setIcon(QIcon(":img/remove.png"));
|
||||||
/*connect(collapseButton, SIGNAL(released()), this, SLOT(collapsedButtonClick()));*/
|
connect(collapseButton, SIGNAL(released()), this, SLOT(collapsedButtonClicked()));
|
||||||
topLayout->addWidget(removeButton, 0, 2);
|
topLayout->addWidget(removeButton, 0, 2);
|
||||||
|
|
||||||
pagesContainerWidget = new PagesContainerWidget();
|
pagesContainerWidget = new PagesContainerWidget();
|
||||||
scrollArea = new QScrollArea();
|
scrollArea = new QScrollArea();
|
||||||
scrollArea->setWidget(pagesContainerWidget);
|
scrollArea->setWidget(pagesContainerWidget);
|
||||||
|
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||||
topLayout->addWidget(scrollArea, 1, 0, 1, 3);
|
topLayout->addWidget(scrollArea, 1, 0, 1, 3);
|
||||||
|
|
||||||
|
topLayout->setContentsMargins(6, 10, 6, 10);
|
||||||
setLayout(topLayout);
|
setLayout(topLayout);
|
||||||
|
|
||||||
setCollapsed(false);
|
setCollapsed(false);
|
||||||
@ -128,10 +130,14 @@ void PDFFileWidget::setCollapsed(bool state) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PDFFileWidget::collapsedButtonClick(void) {
|
void PDFFileWidget::collapsedButtonClicked(void) {
|
||||||
setCollapsed(!collapsed);
|
setCollapsed(!collapsed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PDFFileWidget::removeButtonClicked(void) {
|
||||||
|
emit fileRemoveButtonClicked(this);
|
||||||
|
}
|
||||||
|
|
||||||
void PDFFileWidget::setDocument(Poppler::Document* document, QString fileName) {
|
void PDFFileWidget::setDocument(Poppler::Document* document, QString fileName) {
|
||||||
document->setRenderHint(Poppler::Document::TextAntialiasing);
|
document->setRenderHint(Poppler::Document::TextAntialiasing);
|
||||||
Poppler::Document* doc = Poppler::Document::load(fileName);
|
Poppler::Document* doc = Poppler::Document::load(fileName);
|
||||||
|
@ -61,7 +61,8 @@ protected:
|
|||||||
void paintEvent(QPaintEvent* event);
|
void paintEvent(QPaintEvent* event);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void collapsedButtonClick();
|
void removeButtonClicked(void);
|
||||||
|
void collapsedButtonClicked(void);
|
||||||
void updateThumbnail(QImage, PDFPageWidget*);
|
void updateThumbnail(QImage, PDFPageWidget*);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -78,6 +79,7 @@ private:
|
|||||||
bool selected;
|
bool selected;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
void fileRemoveButtonClicked(PDFFileWidget*);
|
||||||
void fileClicked(PDFFileWidget*, QMouseEvent*);
|
void fileClicked(PDFFileWidget*, QMouseEvent*);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,8 +35,7 @@ void PDFPreviewWidget::pageClicked(QMouseEvent* mouseEvent, QImage image) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PDFPreviewWidget::resizeEvent(QResizeEvent* event) {
|
void PDFPreviewWidget::resizeEvent(QResizeEvent* event) {
|
||||||
if(pPage != NULL)
|
if(pPage != NULL) regenImage();
|
||||||
regenImage();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PDFPreviewWidget::paintEvent(QPaintEvent* event) {
|
void PDFPreviewWidget::paintEvent(QPaintEvent* event) {
|
||||||
|
@ -19,6 +19,7 @@ PDFTableWidget::PDFTableWidget(QWidget* parent) : QFrame(parent) {
|
|||||||
scrollArea->setFrameStyle(QFrame::Plain);
|
scrollArea->setFrameStyle(QFrame::Plain);
|
||||||
|
|
||||||
containerLayout = new QVBoxLayout();
|
containerLayout = new QVBoxLayout();
|
||||||
|
containerLayout->setSpacing(10);
|
||||||
containerWidget = new QWidget();
|
containerWidget = new QWidget();
|
||||||
containerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
containerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
QWidget* spacer = new QWidget();
|
QWidget* spacer = new QWidget();
|
||||||
@ -47,6 +48,8 @@ void PDFTableWidget::loadFile(QString fileName) {
|
|||||||
fileNames.append(fileName);
|
fileNames.append(fileName);
|
||||||
|
|
||||||
containerLayout->insertWidget(containerLayout->count()-1, fileWidget);
|
containerLayout->insertWidget(containerLayout->count()-1, fileWidget);
|
||||||
|
connect(fileWidget, SIGNAL(fileRemoveButtonClicked(PDFFileWidget*)), this,
|
||||||
|
SLOT(fileRemoveButtonClicked(PDFFileWidget*)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PDFTableWidget::registerPage(PDFPageWidget* child) {
|
void PDFTableWidget::registerPage(PDFPageWidget* child) {
|
||||||
@ -83,6 +86,23 @@ void PDFTableWidget::fileClicked(PDFFileWidget* sender, QMouseEvent* event) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PDFTableWidget::fileRemoveButtonClicked(PDFFileWidget* sender) {
|
||||||
|
selectedFiles.remove(selectedFiles.indexOf(sender));
|
||||||
|
|
||||||
|
QVector<int> pagesToRemove;
|
||||||
|
for(int i = 0; i < selectedPages.size(); i++) {
|
||||||
|
if(selectedPages.at(i)->getFather() == sender) {
|
||||||
|
pagesToRemove.append(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < pagesToRemove.size(); i++) {
|
||||||
|
selectedPages.remove(pagesToRemove.at(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Handle remove file here. */
|
||||||
|
}
|
||||||
|
|
||||||
void PDFTableWidget::pageClicked(PDFPageWidget* sender, QMouseEvent* event, QString path) {
|
void PDFTableWidget::pageClicked(PDFPageWidget* sender, QMouseEvent* event, QString path) {
|
||||||
if(event->button() == Qt::LeftButton) {
|
if(event->button() == Qt::LeftButton) {
|
||||||
/* Handle selection. */
|
/* Handle selection. */
|
||||||
|
@ -41,6 +41,7 @@ signals:
|
|||||||
void previewUpdate(Poppler::Page*);
|
void previewUpdate(Poppler::Page*);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void fileRemoveButtonClicked(PDFFileWidget*);
|
||||||
void pageClicked(PDFPageWidget*, QMouseEvent*, QString);
|
void pageClicked(PDFPageWidget*, QMouseEvent*, QString);
|
||||||
void pageDropped(PDFPageWidget*, QDropEvent*, QString, QString);
|
void pageDropped(PDFPageWidget*, QDropEvent*, QString, QString);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user