diff --git a/src/pdf_factory.cpp b/src/pdf_factory.cpp index 15ff75b..216e1a3 100644 --- a/src/pdf_factory.cpp +++ b/src/pdf_factory.cpp @@ -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*))); diff --git a/src/pdf_file_widget.cpp b/src/pdf_file_widget.cpp index a09cda7..ae2c437 100644 --- a/src/pdf_file_widget.cpp +++ b/src/pdf_file_widget.cpp @@ -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); diff --git a/src/pdf_file_widget.h b/src/pdf_file_widget.h index 0c19ac8..6ca5edb 100644 --- a/src/pdf_file_widget.h +++ b/src/pdf_file_widget.h @@ -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*); }; diff --git a/src/pdf_preview_widget.cpp b/src/pdf_preview_widget.cpp index b75fd32..9988653 100644 --- a/src/pdf_preview_widget.cpp +++ b/src/pdf_preview_widget.cpp @@ -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) { diff --git a/src/pdf_table_widget.cpp b/src/pdf_table_widget.cpp index 207f530..a0f820b 100644 --- a/src/pdf_table_widget.cpp +++ b/src/pdf_table_widget.cpp @@ -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 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. */ diff --git a/src/pdf_table_widget.h b/src/pdf_table_widget.h index 9c10eaa..df16b43 100644 --- a/src/pdf_table_widget.h +++ b/src/pdf_table_widget.h @@ -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);