2
* Copyright (C) 2013 Canonical, Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3, as published
6
* by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but
9
* WITHOUT ANY WARRANTY; without even the implied warranties of
10
* MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11
* PURPOSE. See the GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License along
14
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Author: Anthony Granger <grangeranthony@gmail.com>
17
* Stefano Verzegnassi <stefano92.100@gmail.com>
23
#include <QAbstractListModel>
24
#include <poppler/qt5/poppler-qt5.h>
27
typedef QList<Poppler::Page*> PdfPagesList;
29
class PdfModel : public QAbstractListModel
32
Q_DISABLE_COPY(PdfModel)
36
WidthRole = Qt::UserRole + 1,
40
explicit PdfModel(QAbstractListModel *parent = 0);
43
QHash<int, QByteArray> roleNames() const;
45
int rowCount(const QModelIndex & parent = QModelIndex()) const;
46
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
48
Q_PROPERTY(QString path READ getPath WRITE setPath NOTIFY pathChanged)
49
void setPath(QString &pathName);
50
QString getPath() const { return path; }
54
Q_INVOKABLE QDateTime getDocumentDate(QString data);
55
Q_INVOKABLE QString getDocumentInfo(QString data);
58
int loadDocument(QString &pathNAme);
62
Poppler::Document *document;
63
QList<PdfPage> m_pages;
66
void populate(PdfPagesList pagesList);
69
void pathChanged(const QString& newPath);
70
void error(const QString& errorMessage);
74
//QML_DECLARE_TYPE(PdfModel)