From 528b955d16a773231a92006bdde0ec2498f92446 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Fri, 19 Dec 2014 15:37:49 +0000 Subject: [PATCH] [Add] Added Rotary buttons --- bin/hpdf.pro | 20 +++++++++++++++++++- bin/hpdf.qrc | 1 + img/delete.png | Bin 0 -> 6249 bytes img/rotate.png | Bin 0 -> 1793 bytes src/pdf_factory.cpp | 10 +++++----- src/pdf_page_widget.cpp | 27 +++++++++++++++++++-------- src/pdf_page_widget.h | 2 +- 7 files changed, 45 insertions(+), 15 deletions(-) create mode 100644 img/delete.png create mode 100644 img/rotate.png diff --git a/bin/hpdf.pro b/bin/hpdf.pro index d83005e..8f52170 100644 --- a/bin/hpdf.pro +++ b/bin/hpdf.pro @@ -27,5 +27,23 @@ SOURCES += \ RESOURCES += hpdf.qrc -CONFIG += console +#CONFIG += console + +macx { + CONFIG(release, debug|release) { + DESTDIR = ../bin/ + } +} + +win32 { + CONFIG(release, debug|release) { + DESTDIR = ../bin/ + } +} + +linux { + CONFIG(release, debug|release) { + DESTDIR = ../bin/ + } +} diff --git a/bin/hpdf.qrc b/bin/hpdf.qrc index e263e67..da6679d 100644 --- a/bin/hpdf.qrc +++ b/bin/hpdf.qrc @@ -12,5 +12,6 @@ ../img/collapse.png ../img/expand.png ../img/remove.png + ../img/rotate.png diff --git a/img/delete.png b/img/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..e02fa142e69f9bac2c5d2deb925d50b5ab9aa28c GIT binary patch literal 6249 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 T`tus|00000NkvXXu0mjfkSWZ} literal 0 HcmV?d00001 diff --git a/img/rotate.png b/img/rotate.png new file mode 100644 index 0000000000000000000000000000000000000000..c60550b8ff73a61e0352da97519bfcd4cd435566 GIT binary patch literal 1793 zcmV+c2mbhpP)lVpP*4s5C8oqoo!X9JwDz6}C~DA8UU%@BQa6`zuPIm-|bf=Ab4tN&w!O z+o=sQ1&{kt`VR;X2<6g$4^#J9DFb$oi#lfn+}d^WF)}!nd%~7-rLC6j?`)&T!piqI zvBxPnG5|Vx@3(@3g1)tWNj?sxg|m&j=G#br&W??xs;{uRgpGweqr`Jx7#MH?5)i)nKoTRjaNy%&_LrBuUHT*si4EIO0F*gDVL{kE z`qD?1KR`p*G1{#STB0lRM=##ih~bkJaJ7~LS59%*%Nxbsk7Im1SwUv96XGFiqFAt9 zk3_U7l?kRrkX7_AjIXs=K-WY z#Xh|siFS`-(Xw8W@A7eS|6RylSLlZ->42EUWX@UY_m?FpQ8aZ{X_et`9Lx0ZAM(gc z&rrI7aFJ`i8Gry`vkJuZuAbB-eA#u;%Ftw(_8l_g)BWFGmNuPBSIad3CPOH(;SaO! zmFLt53<*Fr>g#&X!R4tYjT9Yy4AWLs9n-!`YJAF=cUNSjP~EamllJ!xCMJ9t`M-ae zlKi0o+zv7_w44qTLhqA^elU&EVK8o!8qtS zl!O&b4vV8IZ^<%Az6R>rj%Wwt1833RVdT|A|M;ZzDdx(jYaMYk0CZ_vC``SZoDXW@ z&^m(U+f}!od25L_1X1?DtT^+6DGza?W-Hc#UTr|#HTHf=&zz?Gcx`dnHdZr46%1=U zbu)!?Cz7*#_C|jC=4MJBWn9))CRlq!iIJ6hZ+^Tuei{p7bE#@5pwV(ltDrzXGXXx) z?ELEyKG?y`_BzhuOzIH>(2OUF@yw~q3G|O)^=nUJkd*b8%AXJti8(Zc#7W771x%z` zGhU$?_tqJR2#n{WPwOZ?bW8xFN4L~c7g0H{O3s5jwf4CHD@Kl{p?XgJN5Qw6*#NA&UI=>(y;787TZ`3V50&ZcGuHT5>mU9{2BO!=ujZ0=~}oGa{V){l56yp{vP zfx>11@j_|_NoKRtaKRs)3yR`#+t$s6{!Xe-7O=CcRr6TwcJ8q~>aEyK>fRfqf%rKu zq-2vcNv3(hZg}@GvT%-NT;8ck(t)!%shO_M4%-*#A6Xx8gGiQ0WIRaHQR%P;*Av6_ zPN;e~-~!P%62qeba07_cjlAR^!mM}J+&EPJUmDdc5LWyDc$dd@9ufFb0I1~N8Pt+j jYuY->`?n0>w$uLrHU4QoDpSqh00000NkvXXu0mjf!i#f^ literal 0 HcmV?d00001 diff --git a/src/pdf_factory.cpp b/src/pdf_factory.cpp index 216e1a3..6f6af91 100644 --- a/src/pdf_factory.cpp +++ b/src/pdf_factory.cpp @@ -63,16 +63,16 @@ void PDFFactory::createActions(void) { openAction->setStatusTip(tr("Open a PDF")); connect(openAction, SIGNAL(triggered()), this, SLOT(openFile())); - exportAction = new QAction(tr("&Export"), this); + exportAction = new QAction(tr("&Export a single file"), this); exportAction->setIcon(QIcon(":/img/export.png")); exportAction->setShortcut(tr("Ctrl+S")); - exportAction->setStatusTip(tr("Export the selected frame to a new PDF")); + exportAction->setStatusTip(tr("Export the selected file to a new PDF")); /*connect(saveAction, SIGNAL(triggered()), this, SLOT(save()))*/ - exportAllAction = new QAction(tr("Combine all and export"), this); + exportAllAction = new QAction(tr("Combine all"), this); exportAllAction->setIcon(QIcon(":/img/exportall.png")); exportAllAction->setShortcut(tr("Shift+Ctrl+S")); - exportAllAction->setStatusTip(tr("Combine all and export as one PDF")); + exportAllAction->setStatusTip(tr("Export all to multiple PDF files")); /*connect(saveAsAction, SIGNAL(triggered()), this, SLOT(saveAs()))*/ cutAction = new QAction(tr("C&ut"), this); @@ -140,7 +140,7 @@ void PDFFactory::createStatusBar(void) { statusBar()->showMessage(tr("")); } -void PDFFactory::openFile() { +void PDFFactory::openFile(void) { QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Open PDF file"), ".", tr("PDF file (*.pdf)")); diff --git a/src/pdf_page_widget.cpp b/src/pdf_page_widget.cpp index 62e68c7..3c73db3 100644 --- a/src/pdf_page_widget.cpp +++ b/src/pdf_page_widget.cpp @@ -17,24 +17,33 @@ PDFPageWidget::PDFPageWidget(QWidget* parent) : this->setMouseTracking(true); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - QHBoxLayout* hbox = new QHBoxLayout(); + QHBoxLayout* topHBox = new QHBoxLayout(); + btnRotate = new QPushButton("", this); + btnRotate->setObjectName("rotate"); + btnRotate->setIcon(QPixmap::fromImage(QImage("img/rotate.png"))); + btnRotate->hide(); + topHBox->addWidget(btnRotate, 0, Qt::AlignLeft); + + QHBoxLayout* bottomHBox = new QHBoxLayout(); btnCut = new QPushButton("", this); btnCut->setObjectName("cut"); + btnCut->setIcon(QPixmap::fromImage(QImage("img/cut.png"))); + btnCut->hide(); + btnCopy = new QPushButton("", this); btnCopy->setObjectName("copy"); - btnCut->setIcon(QPixmap::fromImage(QImage("img/cut.png"))); btnCopy->setIcon(QPixmap::fromImage(QImage("img/copy.png"))); - btnCut->hide(); btnCopy->hide(); - hbox->addWidget(btnCut, 0, Qt::AlignLeft); - hbox->addWidget(btnCopy, 1, Qt::AlignRight); + bottomHBox->addWidget(btnCut, 0, Qt::AlignLeft); + bottomHBox->addWidget(btnCopy, 1, Qt::AlignRight); QVBoxLayout* vbox = new QVBoxLayout(); + vbox->addLayout(topHBox); vbox->addStretch(1); - vbox->addLayout(hbox); + vbox->addLayout(bottomHBox); vbox->setContentsMargins(0, 3, 0, 3); this->setLayout(vbox); } @@ -92,13 +101,15 @@ void PDFPageWidget::dropEvent(QDropEvent* event) { } void PDFPageWidget::leaveEvent(QEvent* event) { - btnCut->hide(); - btnCopy->hide(); + btnRotate->hide(); + btnCut->hide(); + btnCopy->hide(); this->setFrameStyle(QFrame::Plain); } void PDFPageWidget::enterEvent(QEvent* event) { + btnRotate->show(); btnCut->show(); btnCopy->show(); diff --git a/src/pdf_page_widget.h b/src/pdf_page_widget.h index 02b4195..b38b0fc 100644 --- a/src/pdf_page_widget.h +++ b/src/pdf_page_widget.h @@ -44,7 +44,7 @@ private: QImage image; Poppler::Page* pPage; QPixmap pixmap; - QPushButton* btnCut, *btnCopy; + QPushButton* btnRotate, *btnCut, *btnCopy; bool selected;