[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);
|
||||
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*)));
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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*);
|
||||
};
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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. */
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user