[Change] Large refactor, this build isn't usable.
This commit is contained in:
		
							parent
							
								
									ec660fc3ec
								
							
						
					
					
						commit
						12623fc962
					
				@ -33,27 +33,23 @@ void PDFFactory::createWidgets(void) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* Create main area (table). */
 | 
					  /* Create main area (table). */
 | 
				
			||||||
  pdfTableView = new TableView();
 | 
					  pdfTableView = new TableView();
 | 
				
			||||||
  /*pdfTableView->setLayout(new QVBoxLayout());*/
 | 
					 | 
				
			||||||
  /*pdfTableView->setMinimumSize(1000, 1000);*/
 | 
					 | 
				
			||||||
  pdfTableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 | 
					  pdfTableView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  pdfSplitter = new QSplitter();
 | 
					  splitter = new QSplitter();
 | 
				
			||||||
  /* TODO: change pdfPreview widget. */
 | 
					  /* TODO: change pdfPreview widget. */
 | 
				
			||||||
  pdfPreview = new QWidget();
 | 
					  pdfPreview = new QWidget();
 | 
				
			||||||
  pdfPreview->setMinimumWidth(100);
 | 
					  pdfPreview->setMinimumWidth(100);
 | 
				
			||||||
  pdfSplitter->setOrientation(Qt::Horizontal);
 | 
					  splitter->setOrientation(Qt::Horizontal);
 | 
				
			||||||
  pdfSplitter->addWidget(pdfTableView);
 | 
					  splitter->addWidget(pdfTableView);
 | 
				
			||||||
  pdfSplitter->addWidget(pdfPreview);
 | 
					  splitter->addWidget(pdfPreview);
 | 
				
			||||||
  layout->addWidget(pdfSplitter);
 | 
					  QList<int> splitterWidgetSizes;
 | 
				
			||||||
 | 
					  splitterWidgetSizes << 700 << 300;
 | 
				
			||||||
  /*PDFFile* pdfFile = new PDFFile("/home/docs/loa.pdf");
 | 
					  splitter->setSizes(splitterWidgetSizes);
 | 
				
			||||||
  PDFPageWidget* pdfPage = new PDFPageWidget();
 | 
					  layout->addWidget(splitter);
 | 
				
			||||||
  pdfPage->setPageImage(pdfFile->getPageImage(0));
 | 
					 | 
				
			||||||
  pdfTableView->layout()->addWidget(pdfPage);*/
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setWindowIcon(QIcon(":/img/hpdf.png"));
 | 
					  setWindowIcon(QIcon(":/img/hpdf.png"));
 | 
				
			||||||
  setWindowTitle(tr("HPDF"));
 | 
					  setWindowTitle(tr("HPDF"));
 | 
				
			||||||
  setGeometry(0, 0, 550, 650);
 | 
					  setGeometry(0, 0, 1000, 650);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PDFFactory::createActions(void) {
 | 
					void PDFFactory::createActions(void) {
 | 
				
			||||||
 | 
				
			|||||||
@ -7,6 +7,7 @@ class QWidget;
 | 
				
			|||||||
class QTabWidget;
 | 
					class QTabWidget;
 | 
				
			||||||
class QScrollArea;
 | 
					class QScrollArea;
 | 
				
			||||||
class QSplitter;
 | 
					class QSplitter;
 | 
				
			||||||
 | 
					class QToolBar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PDFFactory : public QMainWindow {
 | 
					class PDFFactory : public QMainWindow {
 | 
				
			||||||
  Q_OBJECT
 | 
					  Q_OBJECT
 | 
				
			||||||
@ -41,7 +42,7 @@ private:
 | 
				
			|||||||
  QTabWidget*   ribbon;
 | 
					  QTabWidget*   ribbon;
 | 
				
			||||||
  QScrollArea*  scrollArea;
 | 
					  QScrollArea*  scrollArea;
 | 
				
			||||||
  TableView*    pdfTableView;
 | 
					  TableView*    pdfTableView;
 | 
				
			||||||
  QSplitter*    pdfSplitter;
 | 
					  QSplitter*    splitter;
 | 
				
			||||||
  QWidget*      pdfPreview;
 | 
					  QWidget*      pdfPreview;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QToolBar* fileToolBar;
 | 
					  QToolBar* fileToolBar;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,13 +1,5 @@
 | 
				
			|||||||
#include <QDebug>
 | 
					#include <QtWidgets>
 | 
				
			||||||
#include <QSizePolicy>
 | 
					#include <QtGlobal>
 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <QPixmap>
 | 
					 | 
				
			||||||
#include <QSize>
 | 
					 | 
				
			||||||
#include <QDrag>
 | 
					 | 
				
			||||||
#include <QDragEnterEvent>
 | 
					 | 
				
			||||||
#include <QMouseEvent>
 | 
					 | 
				
			||||||
#include <QDropEvent>
 | 
					 | 
				
			||||||
#include <QMimeData>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "pdf_file_widget.h"
 | 
					#include "pdf_file_widget.h"
 | 
				
			||||||
#include "pdf_page_widget.h"
 | 
					#include "pdf_page_widget.h"
 | 
				
			||||||
@ -26,35 +18,22 @@ FileWidget::FileWidget(QWidget* parent) {
 | 
				
			|||||||
  setLayout(mainLayout);
 | 
					  setLayout(mainLayout);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int FileWidget::getChildCount() const {
 | 
					int FileWidget::getPagesCount() const {
 | 
				
			||||||
  return child.size();
 | 
					  return pageWidgets.size();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QSize FileWidget::sizeHint() const {
 | 
					QSize FileWidget::sizeHint() const {
 | 
				
			||||||
  qDebug() << size();
 | 
					  return QSize(CHILD_AREA_WIDTH*getPagesCount(), CHILD_AREA_HEIGHT + 20);
 | 
				
			||||||
  return QSize(CHILD_AREA_WIDTH*getChildCount(), CHILD_AREA_HEIGHT + 20);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void FileWidget::addChild(QString name) {
 | 
					void FileWidget::addPageWidget(QImage* image) {
 | 
				
			||||||
  PDFPageWidget* newchild;
 | 
					  PDFPageWidget* newPageWidget;
 | 
				
			||||||
  newchild = new PDFPageWidget();
 | 
					  newPageWidget = new PDFPageWidget();
 | 
				
			||||||
  newchild->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
 | 
					  newPageWidget->setThumbnail(image);
 | 
				
			||||||
  newchild->resize(CHILD_AREA_WIDTH, CHILD_AREA_HEIGHT);
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  child.push_back(newchild);
 | 
					  pageWidgets.push_back(newPageWidget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  mainLayout->addWidget(newchild);
 | 
					  mainLayout->addWidget(newPageWidget);
 | 
				
			||||||
  adjustSize();
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void FileWidget::addChild(QImage* image) {
 | 
					 | 
				
			||||||
  PDFPageWidget* newchild;
 | 
					 | 
				
			||||||
  newchild = new PDFPageWidget();
 | 
					 | 
				
			||||||
  newchild->setThumbnail(image);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  child.push_back(newchild);
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  mainLayout->addWidget(newchild);
 | 
					 | 
				
			||||||
  adjustSize();
 | 
					  adjustSize();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -65,23 +44,17 @@ void FileWidget::dragEnterEvent(QDragEnterEvent* event) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void FileWidget::dropEvent(QDropEvent* event) {
 | 
					void FileWidget::dropEvent(QDropEvent* event) {
 | 
				
			||||||
  int from  = event->mimeData()->text().toInt();
 | 
					  int from  = event->mimeData()->text().toInt();
 | 
				
			||||||
  int to    = findChildPositionInLayout(child[findClickEventChild(event->pos())]);
 | 
					  int to    = findPageWidgetInLayout(pageWidgets[findPageContainingClickEvent(event->pos())]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  qDebug() << "Moving " + QString::number(from) + " " + QString::number(to);
 | 
					  mainLayout->removeWidget(pageWidgets[from]);
 | 
				
			||||||
 | 
					  mainLayout->insertWidget(to, pageWidgets[from]);
 | 
				
			||||||
  for(int i = 0; i < child.size(); i++) {
 | 
					 | 
				
			||||||
    qDebug() << child[i]->size();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  mainLayout->removeWidget(child[from]);
 | 
					 | 
				
			||||||
  mainLayout->insertWidget(to, child[from]);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  event->acceptProposedAction();
 | 
					  event->acceptProposedAction();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void FileWidget::mousePressEvent(QMouseEvent* event) {
 | 
					void FileWidget::mousePressEvent(QMouseEvent* event) {
 | 
				
			||||||
  if(event->button() == Qt::LeftButton) {
 | 
					  if(event->button() == Qt::LeftButton) {
 | 
				
			||||||
    int draggedChild = (findClickEventChild(event->pos()));
 | 
					    int draggedChild = (findPageContainingClickEvent(event->pos()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QDrag* drag = new QDrag(this);
 | 
					    QDrag* drag = new QDrag(this);
 | 
				
			||||||
    QMimeData* mimeData = new QMimeData;
 | 
					    QMimeData* mimeData = new QMimeData;
 | 
				
			||||||
@ -94,33 +67,35 @@ void FileWidget::mousePressEvent(QMouseEvent* event) {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int FileWidget::findClickEventChild(QPoint pos) {
 | 
					int FileWidget::findPageContainingClickEvent(QPoint pos) {
 | 
				
			||||||
  for(int i = 0; i < getChildCount(); i++)
 | 
					  for(int i = 0; i < getPagesCount(); i++)
 | 
				
			||||||
    if(child[i]->geometry().contains(pos))
 | 
					    if(pageWidgets[i]->geometry().contains(pos))
 | 
				
			||||||
      return i;
 | 
					      return i;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  return getChildCount()-1;
 | 
					  return getPagesCount()-1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int FileWidget::findChildPositionInLayout(PDFPageWidget* child) {
 | 
					int FileWidget::findPageWidgetInLayout(PDFPageWidget* pageWidget) {
 | 
				
			||||||
  for(int i = 0; i < getChildCount(); i++)
 | 
					  for(int i = 0; i < getPagesCount(); i++)
 | 
				
			||||||
    if(mainLayout->itemAt(i)->widget() == child)
 | 
					    if(mainLayout->itemAt(i)->widget() == pageWidget)
 | 
				
			||||||
      return i;
 | 
					      return i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return getChildCount()-1;
 | 
					  return getPagesCount()-1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PDFFileWidget::PDFFileWidget(QWidget* parent) {
 | 
					PDFFileWidget::PDFFileWidget(QWidget* parent) {
 | 
				
			||||||
  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
 | 
					  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  topLayout   = new QGridLayout();
 | 
					  topLayout     = new QGridLayout();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  scrollArea  = new QScrollArea();
 | 
					  scrollArea    = new QScrollArea();
 | 
				
			||||||
  mainChild   = new FileWidget();
 | 
					  fileWidget    = new FileWidget();
 | 
				
			||||||
 | 
					  scrollArea->setWidget(fileWidget);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  widgetName  = new QLabel();
 | 
					  fileNameLabel = new QLabel();
 | 
				
			||||||
  widgetName->setText(tr("File 1"));
 | 
					  fileNameLabel->setText(tr("File 1"));
 | 
				
			||||||
  topLayout->addWidget(widgetName, 0, 1);
 | 
					
 | 
				
			||||||
 | 
					  topLayout->addWidget(fileNameLabel, 0, 1);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  collapseButton = new QPushButton(tr("X"));
 | 
					  collapseButton = new QPushButton(tr("X"));
 | 
				
			||||||
  collapseButton->setMinimumSize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
 | 
					  collapseButton->setMinimumSize(QSize(COLLAPSE_BUTTON_WIDTH, COLLAPSE_BUTTON_HEIGHT));
 | 
				
			||||||
@ -129,8 +104,6 @@ PDFFileWidget::PDFFileWidget(QWidget* parent) {
 | 
				
			|||||||
  topLayout->addWidget(collapseButton, 0, 0);
 | 
					  topLayout->addWidget(collapseButton, 0, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  topLayout->addWidget(scrollArea, 1, 0, 1, 5);
 | 
					  topLayout->addWidget(scrollArea, 1, 0, 1, 5);
 | 
				
			||||||
  scrollArea->setWidget(mainChild);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  setLayout(topLayout);
 | 
					  setLayout(topLayout);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setCollapsed(false);
 | 
					  setCollapsed(false);
 | 
				
			||||||
@ -153,7 +126,7 @@ void PDFFileWidget::setCollapsed(bool state) {
 | 
				
			|||||||
    scrollArea->hide();
 | 
					    scrollArea->hide();
 | 
				
			||||||
  } else {
 | 
					  } else {
 | 
				
			||||||
    collapsed = false;
 | 
					    collapsed = false;
 | 
				
			||||||
    setFixedHeight(collapseButton->height() + mainChild->height() + 50);
 | 
					    setFixedHeight(collapseButton->height() + fileWidget->height() + 50);
 | 
				
			||||||
    scrollArea->show();
 | 
					    scrollArea->show();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -167,14 +140,14 @@ void PDFFileWidget::collapsedButtonClick(void) {
 | 
				
			|||||||
    setCollapsed(true);
 | 
					    setCollapsed(true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void PDFFileWidget::setDocument(Poppler::Document* document, QString filename) {
 | 
					void PDFFileWidget::setDocument(Poppler::Document* document, QString fileName) {
 | 
				
			||||||
  int numPages = document->numPages();
 | 
					  int numPages = document->numPages();
 | 
				
			||||||
  for(int i; i < numPages; i++) {
 | 
					  for(int i; i < numPages; i++) {
 | 
				
			||||||
    Poppler::Page* pdfPage = document->page(i);
 | 
					    Poppler::Page* pdfPage = document->page(i);
 | 
				
			||||||
    QImage* image = new QImage();
 | 
					    QImage* image = new QImage();
 | 
				
			||||||
    *image = pdfPage->renderToImage();
 | 
					    *image = pdfPage->renderToImage(144, 144);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mainChild->addChild(image);
 | 
					    fileWidget->addPageWidget(image);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,38 +1,43 @@
 | 
				
			|||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
#include <QWidget>
 | 
					#include <QWidget>
 | 
				
			||||||
#include <QScrollArea>
 | 
					 | 
				
			||||||
#include <QHBoxLayout>
 | 
					 | 
				
			||||||
#include <QLabel>
 | 
					 | 
				
			||||||
#include <QPushButton>
 | 
					 | 
				
			||||||
#include <QGridLayout>
 | 
					 | 
				
			||||||
#include <QImage>
 | 
					 | 
				
			||||||
#include <QString>
 | 
					 | 
				
			||||||
#include <QPoint>
 | 
					 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
#include <poppler-qt5.h>
 | 
					#include <poppler-qt5.h>
 | 
				
			||||||
#include "pdf_page_widget.h"
 | 
					#include "pdf_page_widget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class QImage;
 | 
				
			||||||
 | 
					class QHBoxLayout;
 | 
				
			||||||
 | 
					class QGridLayout;
 | 
				
			||||||
 | 
					class QScrollArea;
 | 
				
			||||||
 | 
					class QPushButton;
 | 
				
			||||||
 | 
					class QLabel;
 | 
				
			||||||
 | 
					class QString;
 | 
				
			||||||
 | 
					class QSize;
 | 
				
			||||||
 | 
					class QPoint;
 | 
				
			||||||
 | 
					class QDragEnterEvent;
 | 
				
			||||||
 | 
					class QDropEvent;
 | 
				
			||||||
 | 
					class QMouseEvent;
 | 
				
			||||||
 | 
					class PDFPageWidget;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FileWidget : public QWidget {
 | 
					class FileWidget : public QWidget {
 | 
				
			||||||
  Q_OBJECT
 | 
					  Q_OBJECT
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  FileWidget(QWidget* parent = 0);
 | 
					  FileWidget(QWidget* parent = 0);
 | 
				
			||||||
  QSize sizeHint() const;
 | 
					  QSize sizeHint() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void addChild(QString name);
 | 
					  void addPageWidget(QImage* image);
 | 
				
			||||||
  void addChild(QImage* image);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
  void dragEnterEvent(QDragEnterEvent* event);
 | 
					  void dragEnterEvent(QDragEnterEvent* event);
 | 
				
			||||||
  void dropEvent(QDropEvent* event);
 | 
					  void dropEvent(QDropEvent* event);
 | 
				
			||||||
  void mousePressEvent(QMouseEvent* event);
 | 
					  void mousePressEvent(QMouseEvent* event);
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  std::vector<PDFPageWidget*> child;
 | 
					  std::vector<PDFPageWidget*> pageWidgets;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QHBoxLayout* mainLayout;
 | 
					  QHBoxLayout* mainLayout;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  int  findClickEventChild(QPoint pos);
 | 
					  int findPageContainingClickEvent(QPoint pos);
 | 
				
			||||||
  int  findChildPositionInLayout(PDFPageWidget* child);
 | 
					  int findPageWidgetInLayout(PDFPageWidget* pageWidgets);
 | 
				
			||||||
  int  getChildCount() const;
 | 
					  int getPagesCount() const;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PDFFileWidget : public QWidget {
 | 
					class PDFFileWidget : public QWidget {
 | 
				
			||||||
@ -44,7 +49,7 @@ public:
 | 
				
			|||||||
  /*QSize sizeHint() const;*/
 | 
					  /*QSize sizeHint() const;*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void setAncestor(QWidget* ancestor) { this->ancestor = ancestor; }
 | 
					  void setAncestor(QWidget* ancestor) { this->ancestor = ancestor; }
 | 
				
			||||||
  void setDocument(Poppler::Document* document, QString filename);
 | 
					  void setDocument(Poppler::Document* document, QString fileName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool isCollapsed(void) { return collapsed; }
 | 
					  bool isCollapsed(void) { return collapsed; }
 | 
				
			||||||
  void setCollapsed(bool collapsed);
 | 
					  void setCollapsed(bool collapsed);
 | 
				
			||||||
@ -58,11 +63,10 @@ private slots:
 | 
				
			|||||||
private:
 | 
					private:
 | 
				
			||||||
  QGridLayout* topLayout;
 | 
					  QGridLayout* topLayout;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QLabel*       widgetName;
 | 
					  QLabel*       fileNameLabel;
 | 
				
			||||||
  QPushButton*  collapseButton;
 | 
					  QPushButton*  collapseButton;
 | 
				
			||||||
  QScrollArea*  scrollArea;
 | 
					  QScrollArea*  scrollArea;
 | 
				
			||||||
  
 | 
					  FileWidget*   fileWidget;
 | 
				
			||||||
  FileWidget*   mainChild;
 | 
					 | 
				
			||||||
  QWidget*      ancestor;
 | 
					  QWidget*      ancestor;
 | 
				
			||||||
  bool          collapsed;
 | 
					  bool          collapsed;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
 | 
					#include <QtGlobal>
 | 
				
			||||||
#include <QtWidgets>
 | 
					#include <QtWidgets>
 | 
				
			||||||
#include <QSize>
 | 
					 | 
				
			||||||
#include "pdf_page_widget.h"
 | 
					#include "pdf_page_widget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PDFPageWidget::PDFPageWidget(QWidget* parent) :
 | 
					PDFPageWidget::PDFPageWidget(QWidget* parent) :
 | 
				
			||||||
@ -7,20 +7,12 @@ PDFPageWidget::PDFPageWidget(QWidget* parent) :
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /* Resize widget. */
 | 
					  /* Resize widget. */
 | 
				
			||||||
  this->resize(150, 150);
 | 
					  this->resize(150, 150);
 | 
				
			||||||
  this->setMinimumHeight(150);
 | 
					  this->setMinimumSize(150, 150);
 | 
				
			||||||
  this->setMinimumWidth(150);
 | 
					  this->setMinimumSize(150, 150);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  this->setMouseTracking(true);
 | 
					  this->setMouseTracking(true);
 | 
				
			||||||
  this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
 | 
					  this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* Initialize buttons. */
 | 
					 | 
				
			||||||
  /*button = new QPushButton();
 | 
					 | 
				
			||||||
  QPushButton* btn = new QPusBbutton();
 | 
					 | 
				
			||||||
  QGridLayout* lo = new QGridLayout();
 | 
					 | 
				
			||||||
  btn->setFixedSize(100, 100);
 | 
					 | 
				
			||||||
  qDebug() << btn->geometry();
 | 
					 | 
				
			||||||
  *lo->addWidget(btn);*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  QVBoxLayout* vbox = new QVBoxLayout(this);
 | 
					  QVBoxLayout* vbox = new QVBoxLayout(this);
 | 
				
			||||||
  QHBoxLayout* hbox = new QHBoxLayout();
 | 
					  QHBoxLayout* hbox = new QHBoxLayout();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -57,6 +49,8 @@ void PDFPageWidget::setButton(QPushButton* btn) {
 | 
				
			|||||||
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);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  update();
 | 
					  update();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -72,10 +66,12 @@ void PDFPageWidget::enterEvent(QEvent* event) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void PDFPageWidget::paintEvent(QPaintEvent* event) {
 | 
					void PDFPageWidget::paintEvent(QPaintEvent* event) {
 | 
				
			||||||
  QPainter painter(this);
 | 
					  QPainter painter(this);
 | 
				
			||||||
  painter.drawPixmap(QRect(0, 0, width(), height()), pixmap);
 | 
					  painter.drawPixmap(QRect((size().width() - pixmap.width()) / 2,
 | 
				
			||||||
 | 
					                     (size().height() - pixmap.height()) / 2,
 | 
				
			||||||
 | 
					                     pixmap.width(), pixmap.height()), pixmap);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QSize PDFPageWidget::sizeHint() const {
 | 
					QSize PDFPageWidget::sizeHint() const {
 | 
				
			||||||
  return QSize(150, 150);
 | 
					  return size();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,12 @@
 | 
				
			|||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
#include <QWidget>
 | 
					#include <QWidget>
 | 
				
			||||||
#include <QPushButton>
 | 
					 | 
				
			||||||
#include <QVector>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class QPushButton;
 | 
				
			||||||
class QImage;
 | 
					class QImage;
 | 
				
			||||||
class QPixmap;
 | 
					class QPixmap;
 | 
				
			||||||
class QPaintEvent;
 | 
					class QPaintEvent;
 | 
				
			||||||
 | 
					class QSize;
 | 
				
			||||||
 | 
					class QEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class PDFPageWidget : public QWidget {
 | 
					class PDFPageWidget : public QWidget {
 | 
				
			||||||
  Q_OBJECT
 | 
					  Q_OBJECT
 | 
				
			||||||
 | 
				
			|||||||
@ -1,32 +1,32 @@
 | 
				
			|||||||
#include <QtWidgets>
 | 
					#include <QtWidgets>
 | 
				
			||||||
#include <QWidget>
 | 
					 | 
				
			||||||
#include <assert.h>
 | 
					 | 
				
			||||||
#include "table_view.h"
 | 
					#include "table_view.h"
 | 
				
			||||||
#include "pdf_page_widget.h"
 | 
					#include "pdf_page_widget.h"
 | 
				
			||||||
#include "pdf_file_widget.h"
 | 
					#include "pdf_file_widget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PDFFileWidget*  test[10];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TableView::TableView(QWidget* parent) : QWidget(parent) {
 | 
					TableView::TableView(QWidget* parent) : QWidget(parent) {
 | 
				
			||||||
  outerLayout = new QVBoxLayout();
 | 
					 | 
				
			||||||
  scrollArea  = new QScrollArea();
 | 
					 | 
				
			||||||
  frame       = new QFrame(scrollArea);
 | 
					 | 
				
			||||||
  layout      = new QVBoxLayout();
 | 
					  layout      = new QVBoxLayout();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setLayout(outerLayout);
 | 
					  frame->setLayout(layout);
 | 
				
			||||||
  outerLayout->addWidget(scrollArea);
 | 
					  frame = new QFrame();
 | 
				
			||||||
  scrollArea->setWidget(frame);
 | 
					 | 
				
			||||||
  frame->setLayout(layout);
 | 
					  frame->setLayout(layout);
 | 
				
			||||||
  frame->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
 | 
					  frame->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
 | 
				
			||||||
  frame->adjustSize();
 | 
					  frame->adjustSize();
 | 
				
			||||||
  loadFile("/home/allanis/docs/loa.pdf");
 | 
					  
 | 
				
			||||||
 | 
					  scrollArea = new QScrollArea();
 | 
				
			||||||
 | 
					  scrollArea->setWidget(frame);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outerLayout = new QVBoxLayout();
 | 
				
			||||||
 | 
					  setLayout(outerLayout);
 | 
				
			||||||
 | 
					  outerLayout->addWidget(scrollArea);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  loadFile("/home/allanis/docs/loa.pdf");
 | 
					  loadFile("/home/allanis/docs/loa.pdf");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TableView::loadFile(QString fileName) {
 | 
					void TableView::loadFile(QString fileName) {
 | 
				
			||||||
  filenames.append(fileName);
 | 
					  fileNames.append(fileName);
 | 
				
			||||||
  Poppler::Document* doc = Poppler::Document::load(fileName);
 | 
					  Poppler::Document* doc = Poppler::Document::load(fileName);
 | 
				
			||||||
  files.append(doc);
 | 
					  files.append(doc);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  PDFFileWidget* pfw = new PDFFileWidget();
 | 
					  PDFFileWidget* pfw = new PDFFileWidget();
 | 
				
			||||||
  pfw->setAncestor(this);
 | 
					  pfw->setAncestor(this);
 | 
				
			||||||
  pfw->setDocument(doc, fileName);
 | 
					  pfw->setDocument(doc, fileName);
 | 
				
			||||||
 | 
				
			|||||||
@ -1,17 +1,18 @@
 | 
				
			|||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
#include <QWidget>
 | 
					#include <QWidget>
 | 
				
			||||||
#include <QSplitter>
 | 
					 | 
				
			||||||
#include <QVBoxLayout>
 | 
					 | 
				
			||||||
#include <QScrollArea>
 | 
					 | 
				
			||||||
#include <QPushButton>
 | 
					 | 
				
			||||||
#include <QFrame>
 | 
					 | 
				
			||||||
#include <poppler-qt5.h>
 | 
					#include <poppler-qt5.h>
 | 
				
			||||||
#include "pdf_page_widget.h"
 | 
					#include "pdf_page_widget.h"
 | 
				
			||||||
#include "pdf_file_widget.h"
 | 
					#include "pdf_file_widget.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class QPushButton;
 | 
					class QPushButton;
 | 
				
			||||||
class QWidget;
 | 
					 | 
				
			||||||
class QScrollArea;
 | 
					class QScrollArea;
 | 
				
			||||||
 | 
					class QVBoxLayout;
 | 
				
			||||||
 | 
					class QSplitter;
 | 
				
			||||||
 | 
					class QFrame;
 | 
				
			||||||
 | 
					class QPaintEvent;
 | 
				
			||||||
 | 
					class QString;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class PDFFileWidget;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class TableView : public QWidget {
 | 
					class TableView : public QWidget {
 | 
				
			||||||
  Q_OBJECT
 | 
					  Q_OBJECT
 | 
				
			||||||
@ -30,7 +31,7 @@ private:
 | 
				
			|||||||
  void loadFile(QString fileName);
 | 
					  void loadFile(QString fileName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  QVector<Poppler::Document*> files;
 | 
					  QVector<Poppler::Document*> files;
 | 
				
			||||||
  QVector<QString>            filenames;
 | 
					  QVector<QString>            fileNames;
 | 
				
			||||||
  QVector<PDFFileWidget*>     fileWidgets;
 | 
					  QVector<PDFFileWidget*>     fileWidgets;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user