From cf26c34e91e5aa67c658b77a18708dafdafb74a7 Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Thu, 18 Dec 2014 12:44:26 +0000 Subject: [PATCH] [Fix] Fixed Drag&Drop properly. --- src/pdf_file_widget.cpp | 40 +++++----------------------------------- src/pdf_file_widget.h | 3 --- src/pdf_jam.cpp | 8 ++++---- src/pdf_table_widget.cpp | 2 ++ 4 files changed, 11 insertions(+), 42 deletions(-) diff --git a/src/pdf_file_widget.cpp b/src/pdf_file_widget.cpp index dd93edd..443d21c 100644 --- a/src/pdf_file_widget.cpp +++ b/src/pdf_file_widget.cpp @@ -10,11 +10,11 @@ #define CHILD_AREA_WIDTH 150 #define CHILD_AREA_HEIGHT 150 -#define CHILD_AREA_SIDE_MARGIN 6 +#define CHILD_AREA_SIDE_MARGIN 20 PagesContainerWidget::PagesContainerWidget(QWidget* parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - /*setAcceptDrops(true);*/ + setAcceptDrops(true); mainLayout = new QHBoxLayout(); setLayout(mainLayout); @@ -39,40 +39,12 @@ void PagesContainerWidget::dragEnterEvent(QDragEnterEvent* event) { } void PagesContainerWidget::dropEvent(QDropEvent* event) { + QPoint pos = event->pos(); + qDebug() << "FILE DROP"; + qDebug() << (pos.x() / (CHILD_AREA_SIDE_MARGIN + CHILD_AREA_WIDTH)); event->acceptProposedAction(); } -void PagesContainerWidget::mousePressEvent(QMouseEvent* event) { - if(event->button() == Qt::LeftButton) { - int draggedChild = (findPageContainingClickEvent(event->pos())); - - QDrag* drag = new QDrag(this); - QMimeData* mimeData = new QMimeData; - - mimeData->setText(QString::number(draggedChild)); - drag->setMimeData(mimeData); - drag->setPixmap(QPixmap(":/img/copy.png")); - - Qt::DropAction dropAction = drag->exec(); - } -} - -int PagesContainerWidget::findPageContainingClickEvent(QPoint pos) { - for(int i = 0; i < getPagesCount(); i++) - if(pageWidgets[i]->geometry().contains(pos)) - return i; - - return getPagesCount()-1; -} - -int PagesContainerWidget::findPageWidgetInLayout(PDFPageWidget* pageWidget) { - for(int i = 0; i < getPagesCount(); i++) - if(mainLayout->itemAt(i)->widget() == pageWidget) - return i; - - return getPagesCount()-1; -} - PDFFileWidget::PDFFileWidget(QWidget* parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); @@ -141,8 +113,6 @@ void PDFFileWidget::setDocument(Poppler::Document* document, QString fileName) { tgen.render(pageWidget, pdfPage); pagesContainerWidget->addPageWidget(pageWidget); - /* Process event. */ - /*qApp->processEvents();*/ } tgen.start(); fileNameLabel->setText(fileName); diff --git a/src/pdf_file_widget.h b/src/pdf_file_widget.h index d333bf3..3b1f2f7 100644 --- a/src/pdf_file_widget.h +++ b/src/pdf_file_widget.h @@ -32,11 +32,8 @@ public: protected: void dragEnterEvent(QDragEnterEvent* event); void dropEvent(QDropEvent* event); - void mousePressEvent(QMouseEvent* event); private: - int findPageContainingClickEvent(QPoint pos); - int findPageWidgetInLayout(PDFPageWidget* pageWidgets); int getPagesCount() const; }; diff --git a/src/pdf_jam.cpp b/src/pdf_jam.cpp index ab3a31e..c272a53 100644 --- a/src/pdf_jam.cpp +++ b/src/pdf_jam.cpp @@ -12,8 +12,8 @@ PDFJam::PDFJam(void) { void PDFJam::makeFolder(QString path) { QString tmp = "mksir -p %1 && rm %2*"; int value = system(tmp.arg(path).arg(path).toStdString().c_str()); - if(value != 0) - qDebug() << "ERROR: Failed to make " << path; + /*if(value != 0) + qDebug() << "ERROR: Failed to make " << path;*/ } void PDFJam::pushCommand(QString cmd) { @@ -53,10 +53,10 @@ void PDFJam::run(void) { while(!isQueueEmpty()) { QString cmd = nextCommand(); int value = system(cmd.toStdString().c_str()); - if(value != 0) + /*if(value != 0) qDebug() << "ERROR: Failed to execute " << cmd; else - qDebug() << "SUCCESS: executed " << cmd; + qDebug() << "SUCCESS: executed " << cmd;*/ } /*system("echo 'tata' > /tmp/test.txt");*/ diff --git a/src/pdf_table_widget.cpp b/src/pdf_table_widget.cpp index 61f2af2..d24abb9 100644 --- a/src/pdf_table_widget.cpp +++ b/src/pdf_table_widget.cpp @@ -51,6 +51,8 @@ void PDFTableWidget::loadFile(QString fileName) { void PDFTableWidget::registerPage(PDFPageWidget* child) { /* Need new name? */ QString name = QString("/home/pdfpage").append(QString::number(pageChilds.size())); + qDebug() << "Registering name:"; + qDebug() << name; pageChilds[name] = child; child->registerName(name); }