[Change] Optimized a bunch of stuff, especially rendering.

This commit is contained in:
Rtch90 2014-12-18 16:36:25 +00:00
parent 59410e6233
commit 8161e5ec15
6 changed files with 35 additions and 9 deletions

View File

@ -48,8 +48,6 @@ void PDFFactory::createWidgets(void) {
splitter->setStretchFactor(1, 0.5);
layout->addWidget(splitter);
connect(pdfTableView, SIGNAL(pageClicked(QMouseEvent*,QImage)), pdfPreview,
SLOT(pageClicked(QMouseEvent*,QImage)));
connect(pdfTableView, SIGNAL(previewUpdate(Poppler::Page*)), pdfPreview,
SLOT(previewUpdate(Poppler::Page*)));

View File

@ -24,7 +24,7 @@ int PagesContainerWidget::getPagesCount() 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) {
@ -54,7 +54,7 @@ PDFFileWidget::PDFFileWidget(QWidget* parent) :QFrame(parent) {
collapseButton->resize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
collapseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
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);
fileNameLabel = new QLabel();
@ -65,14 +65,16 @@ PDFFileWidget::PDFFileWidget(QWidget* parent) :QFrame(parent) {
removeButton->resize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
removeButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
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);
pagesContainerWidget = new PagesContainerWidget();
scrollArea = new QScrollArea();
scrollArea->setWidget(pagesContainerWidget);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
topLayout->addWidget(scrollArea, 1, 0, 1, 3);
topLayout->setContentsMargins(6, 10, 6, 10);
setLayout(topLayout);
setCollapsed(false);
@ -128,10 +130,14 @@ void PDFFileWidget::setCollapsed(bool state) {
}
}
void PDFFileWidget::collapsedButtonClick(void) {
void PDFFileWidget::collapsedButtonClicked(void) {
setCollapsed(!collapsed);
}
void PDFFileWidget::removeButtonClicked(void) {
emit fileRemoveButtonClicked(this);
}
void PDFFileWidget::setDocument(Poppler::Document* document, QString fileName) {
document->setRenderHint(Poppler::Document::TextAntialiasing);
Poppler::Document* doc = Poppler::Document::load(fileName);

View File

@ -61,7 +61,8 @@ protected:
void paintEvent(QPaintEvent* event);
private slots:
void collapsedButtonClick();
void removeButtonClicked(void);
void collapsedButtonClicked(void);
void updateThumbnail(QImage, PDFPageWidget*);
private:
@ -78,6 +79,7 @@ private:
bool selected;
signals:
void fileRemoveButtonClicked(PDFFileWidget*);
void fileClicked(PDFFileWidget*, QMouseEvent*);
};

View File

@ -35,8 +35,7 @@ void PDFPreviewWidget::pageClicked(QMouseEvent* mouseEvent, QImage image) {
}
void PDFPreviewWidget::resizeEvent(QResizeEvent* event) {
if(pPage != NULL)
regenImage();
if(pPage != NULL) regenImage();
}
void PDFPreviewWidget::paintEvent(QPaintEvent* event) {

View File

@ -19,6 +19,7 @@ PDFTableWidget::PDFTableWidget(QWidget* parent) : QFrame(parent) {
scrollArea->setFrameStyle(QFrame::Plain);
containerLayout = new QVBoxLayout();
containerLayout->setSpacing(10);
containerWidget = new QWidget();
containerWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
QWidget* spacer = new QWidget();
@ -47,6 +48,8 @@ void PDFTableWidget::loadFile(QString fileName) {
fileNames.append(fileName);
containerLayout->insertWidget(containerLayout->count()-1, fileWidget);
connect(fileWidget, SIGNAL(fileRemoveButtonClicked(PDFFileWidget*)), this,
SLOT(fileRemoveButtonClicked(PDFFileWidget*)));
}
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) {
if(event->button() == Qt::LeftButton) {
/* Handle selection. */

View File

@ -41,6 +41,7 @@ signals:
void previewUpdate(Poppler::Page*);
private slots:
void fileRemoveButtonClicked(PDFFileWidget*);
void pageClicked(PDFPageWidget*, QMouseEvent*, QString);
void pageDropped(PDFPageWidget*, QDropEvent*, QString, QString);