[Change] Remove file before an mkdir.

This commit is contained in:
Rtch90 2014-12-18 12:31:20 +00:00
parent 671e75bf52
commit 68d4bb443f
7 changed files with 54 additions and 27 deletions

View File

@ -7,11 +7,11 @@
PDFJam::PDFJam(void) { PDFJam::PDFJam(void) {
} }
#if 0
/* Ensure the folder exists. */ /* Ensure the folder exists. */
void PDFJam::makeFolder(QString path) { void PDFJam::makeFolder(QString path) {
QString tmp = "mkdir -p %1"; QString tmp = "mksir -p %1 && rm %2*";
int value = system(tmp.arg(path).toStdString().c_str()); int value = system(tmp.arg(path).arg(path).toStdString().c_str());
if(value != 0) if(value != 0)
qDebug() << "ERROR: Failed to make " << path; qDebug() << "ERROR: Failed to make " << path;
} }
@ -61,11 +61,4 @@ void PDFJam::run(void) {
/*system("echo 'tata' > /tmp/test.txt");*/ /*system("echo 'tata' > /tmp/test.txt");*/
} }
#endif
void PDFJam::run(void) {
}

View File

@ -1,14 +1,28 @@
#pragma once #pragma once
#include <QThread>
#include <QMutex>
#include <QImage>
#include <poppler-qt5.h>
class PDFJam {/*: public QThread {*/ class PDFPageWidget;
/*Q_OBJECT*/ class QImage;
class PDFJam : public QThread {
Q_OBJECT
public: public:
PDFJam(void); PDFJam(void);
void pushCommand(QString);
void loadFile(QString fileName, int, int);
void makeFolder(QString);
protected: protected:
void run(void); void run(void);
private: private:
volatile bool stopped; QVector<QString> cmdQueue;
QString nextCommand(void);
bool isQueueEmpty(void);
QMutex mutex;
}; };

View File

@ -12,6 +12,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);
@ -79,7 +80,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();
} }
@ -88,20 +89,35 @@ void PDFPageWidget::mousePressEvent(QMouseEvent* event) {
if(pPage != NULL) { if(pPage != NULL) {
emit pageClicked(event, path); emit pageClicked(event, path);
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

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

View File

@ -12,21 +12,20 @@ void PDFPreviewWidget::setImage(QImage image) {
} }
void PDFPreviewWidget::regenImage(void) { void PDFPreviewWidget::regenImage(void) {
if(pPage != NULL) { double dpi;
double dpi; double dpi2;
double dpi2; QSize targetSize = this->size();
QSize targetSize = this->size(); QSizeF oriSize = pPage->pageSizeF();
QSizeF oriSize = pPage->pageSizeF(); double oriDpi = 72;
double oriDpi = 72; dpi = targetSize.height() / (float)oriSize.height()*72;
dpi = targetSize.height() / (float)oriSize.height()*72; dpi2 = targetSize.width() / (float)oriSize.width()*72;
dpi2 = targetSize.width() / (float)oriSize.width()*72; dpi = dpi<dpi2?dpi:dpi2;
dpi = dpi<dpi2?dpi:dpi2; previewImage = pPage->renderToImage(dpi, dpi);
previewImage = pPage->renderToImage(dpi, dpi);
}
} }
void PDFPreviewWidget::previewUpdate(Poppler::Page* pp) { void PDFPreviewWidget::previewUpdate(Poppler::Page* pp) {
pPage = pp; pPage = pp;
qDebug() << "Set new popler page" << pp;
regenImage(); regenImage();
update(); update();
} }
@ -36,7 +35,8 @@ void PDFPreviewWidget::pageClicked(QMouseEvent* mouseEvent, QImage image) {
} }
void PDFPreviewWidget::resizeEvent(QResizeEvent* event) { void PDFPreviewWidget::resizeEvent(QResizeEvent* event) {
regenImage(); if(pPage != NULL)
regenImage();
} }
void PDFPreviewWidget::paintEvent(QPaintEvent* event) { void PDFPreviewWidget::paintEvent(QPaintEvent* event) {

View File

@ -39,6 +39,7 @@ void PDFTableWidget::loadFile(QString fileName) {
PDFFileWidget* fileWidget = new PDFFileWidget(); PDFFileWidget* fileWidget = new PDFFileWidget();
fileWidget->setAncestor(this); fileWidget->setAncestor(this);
fileWidget->setDocument(doc, fileName); fileWidget->setDocument(doc, fileName);
pdfJam.loadFile(fileName, files.size()-1, doc->numPages());
fileWidgets.append(fileWidget); fileWidgets.append(fileWidget);

View File

@ -3,6 +3,7 @@
#include <QHash> #include <QHash>
#include <poppler-qt5.h> #include <poppler-qt5.h>
#include "pdf_jam.h"
#include "pdf_page_widget.h" #include "pdf_page_widget.h"
class QImage; class QImage;
@ -20,7 +21,7 @@ public:
void registerPage(PDFPageWidget* child); void registerPage(PDFPageWidget* child);
protected: protected:
PDFJam pdfJam;
private: private:
QVBoxLayout* outerLayout; QVBoxLayout* outerLayout;
QScrollArea* scrollArea; QScrollArea* scrollArea;