[Add] Select & Drag.

This commit is contained in:
Rtch90 2014-12-18 10:02:34 +00:00
parent c5dd6943ef
commit 1ece30f562
2 changed files with 19 additions and 1 deletions

View File

@ -9,6 +9,7 @@ PDFPageWidget::PDFPageWidget(QWidget* parent) :
this->resize(150, 150); this->resize(150, 150);
this->setMinimumSize(150, 150); this->setMinimumSize(150, 150);
this->setMinimumSize(150, 150); this->setMinimumSize(150, 150);
this->setAutoFillBackground(true);
this->setMouseTracking(true); this->setMouseTracking(true);
this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
@ -51,7 +52,7 @@ void PDFPageWidget::setPopplerPage(Poppler::Page* pp) {
void PDFPageWidget::setThumbnail(QImage pageImage) { void PDFPageWidget::setThumbnail(QImage pageImage) {
image = pageImage; image = pageImage;
pixmap = QPixmap::fromImage(image); pixmap = QPixmap::fromImage(image);
pixmap = pixmap.scaled(size(), Qt::KeepAspectRatio); pixmap = pixmap.scaled(size() - QSize(6, 6), Qt::KeepAspectRatio);
update(); update();
} }
@ -60,20 +61,35 @@ void PDFPageWidget::mousePressEvent(QMouseEvent* event) {
if(pPage != NULL) { if(pPage != NULL) {
emit pageClicked(event, image); emit pageClicked(event, image);
emit previewUpdate(pPage); emit previewUpdate(pPage);
selected = !selected;
update();
} }
} }
void PDFPageWidget::leaveEvent(QEvent* event) { void PDFPageWidget::leaveEvent(QEvent* event) {
btn1->hide(); btn1->hide();
btn2->hide(); btn2->hide();
this->setFrameStyle(QFrame::Plain);
} }
void PDFPageWidget::enterEvent(QEvent* event) { void PDFPageWidget::enterEvent(QEvent* event) {
btn1->show(); btn1->show();
btn2->show(); btn2->show();
this->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
} }
void PDFPageWidget::paintEvent(QPaintEvent* event) { 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); QPainter painter(this);
painter.drawPixmap(QRect((size().width() - pixmap.width()) / 2, painter.drawPixmap(QRect((size().width() - pixmap.width()) / 2,
(size().height() - pixmap.height()) / 2, (size().height() - pixmap.height()) / 2,

View File

@ -36,6 +36,8 @@ private:
QPixmap pixmap; QPixmap pixmap;
QPushButton* btn1, *btn2; QPushButton* btn1, *btn2;
bool selected = false;
signals: signals:
void pageClicked(QMouseEvent* event, QImage pageImage); void pageClicked(QMouseEvent* event, QImage pageImage);
void previewUpdate(Poppler::Page*); void previewUpdate(Poppler::Page*);