From 1ece30f562ac97f1128a1eae6adcc500a3fd56ae Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Thu, 18 Dec 2014 10:02:34 +0000 Subject: [PATCH] [Add] Select & Drag. --- src/pdf_page_widget.cpp | 18 +++++++++++++++++- src/pdf_page_widget.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/pdf_page_widget.cpp b/src/pdf_page_widget.cpp index 5e91218..9495e0f 100644 --- a/src/pdf_page_widget.cpp +++ b/src/pdf_page_widget.cpp @@ -9,6 +9,7 @@ PDFPageWidget::PDFPageWidget(QWidget* parent) : this->resize(150, 150); this->setMinimumSize(150, 150); this->setMinimumSize(150, 150); + this->setAutoFillBackground(true); this->setMouseTracking(true); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); @@ -51,7 +52,7 @@ void PDFPageWidget::setPopplerPage(Poppler::Page* pp) { void PDFPageWidget::setThumbnail(QImage pageImage) { image = pageImage; pixmap = QPixmap::fromImage(image); - pixmap = pixmap.scaled(size(), Qt::KeepAspectRatio); + pixmap = pixmap.scaled(size() - QSize(6, 6), Qt::KeepAspectRatio); update(); } @@ -60,20 +61,35 @@ void PDFPageWidget::mousePressEvent(QMouseEvent* event) { if(pPage != NULL) { emit pageClicked(event, image); emit previewUpdate(pPage); + + selected = !selected; + update(); } } void PDFPageWidget::leaveEvent(QEvent* event) { btn1->hide(); btn2->hide(); + + this->setFrameStyle(QFrame::Plain); } void PDFPageWidget::enterEvent(QEvent* event) { btn1->show(); btn2->show(); + + this->setFrameStyle(QFrame::StyledPanel | QFrame::Raised); } void PDFPageWidget::paintEvent(QPaintEvent* event) { + QPalette palette = this->palette(); + if(selected) + palette.setColor(backgroundRole(), palette.color(QPalette::Highlight)); + else + palette.setColor(backgroundRole(), palette.color(QPalette::AlternateBase)); + this->setPalette(palette); + + QFrame::paintEvent(event); QPainter painter(this); painter.drawPixmap(QRect((size().width() - pixmap.width()) / 2, (size().height() - pixmap.height()) / 2, diff --git a/src/pdf_page_widget.h b/src/pdf_page_widget.h index 527dfc8..8d82e87 100644 --- a/src/pdf_page_widget.h +++ b/src/pdf_page_widget.h @@ -36,6 +36,8 @@ private: QPixmap pixmap; QPushButton* btn1, *btn2; + bool selected = false; + signals: void pageClicked(QMouseEvent* event, QImage pageImage); void previewUpdate(Poppler::Page*);