~adamreichold/qpdfview/trunk

« back to all changes in this revision

Viewing changes to sources/fitzmodel.cpp

  • Committer: Adam Reichold
  • Date: 2014-03-29 10:20:32 UTC
  • Revision ID: adam.reichold@t-online.com-20140329102032-6z5yl9a2fkwm62rd
Make proper use of application and anonymous namespaces and fix a few header guards.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 
36
36
}
37
37
 
38
 
Model::FitzPage::FitzPage(const FitzDocument* parent, fz_page* page) :
 
38
namespace
 
39
{
 
40
 
 
41
void loadOutline(fz_outline* outline, QStandardItem* parent)
 
42
{
 
43
    QStandardItem* item = new QStandardItem(QString::fromUtf8(outline->title));
 
44
    item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
 
45
 
 
46
    if(outline->dest.kind != FZ_LINK_NONE)
 
47
    {
 
48
        const int page = outline->dest.ld.gotor.page + 1;
 
49
 
 
50
        item->setData(page, Qt::UserRole + 1);
 
51
 
 
52
        QStandardItem* pageItem = item->clone();
 
53
        pageItem->setText(QString::number(page));
 
54
        pageItem->setTextAlignment(Qt::AlignRight);
 
55
 
 
56
        parent->appendRow(QList< QStandardItem* >() << item << pageItem);
 
57
    }
 
58
    else
 
59
    {
 
60
        parent->appendRow(item);
 
61
    }
 
62
 
 
63
    if(outline->next != 0)
 
64
    {
 
65
        loadOutline(outline->next, parent);
 
66
    }
 
67
 
 
68
    if(outline->down != 0)
 
69
    {
 
70
        loadOutline(outline->down, item);
 
71
    }
 
72
}
 
73
 
 
74
} // anonymous
 
75
 
 
76
namespace qpdfview
 
77
{
 
78
 
 
79
model::FitzPage::FitzPage(const FitzDocument* parent, fz_page* page) :
39
80
    m_parent(parent),
40
81
    m_page(page)
41
82
{
42
83
}
43
84
 
44
 
Model::FitzPage::~FitzPage()
 
85
model::FitzPage::~FitzPage()
45
86
{
46
87
    fz_free_page(m_parent->m_document, m_page);
47
88
}
48
89
 
49
 
QSizeF Model::FitzPage::size() const
 
90
QSizeF model::FitzPage::size() const
50
91
{
51
92
    QMutexLocker mutexLocker(&m_parent->m_mutex);
52
93
 
56
97
    return QSize(qCeil(qAbs(rect.x1 - rect.x0)), qCeil(qAbs(rect.y1 - rect.y0)));
57
98
}
58
99
 
59
 
QImage Model::FitzPage::render(qreal horizontalResolution, qreal verticalResolution, Rotation rotation, const QRect& boundingRect) const
 
100
QImage model::FitzPage::render(qreal horizontalResolution, qreal verticalResolution, Rotation rotation, const QRect& boundingRect) const
60
101
{
61
102
    QMutexLocker mutexLocker(&m_parent->m_mutex);
62
103
 
120
161
    return image;
121
162
}
122
163
 
123
 
QList< Model::Link* > Model::FitzPage::links() const
 
164
QList< model::Link* > model::FitzPage::links() const
124
165
{
125
166
    QMutexLocker mutexLocker(&m_parent->m_mutex);
126
167
 
170
211
    return links;
171
212
}
172
213
 
173
 
Model::FitzDocument::FitzDocument(fz_context* context, fz_document* document) :
 
214
model::FitzDocument::FitzDocument(fz_context* context, fz_document* document) :
174
215
    m_mutex(),
175
216
    m_context(context),
176
217
    m_document(document),
178
219
{
179
220
}
180
221
 
181
 
Model::FitzDocument::~FitzDocument()
 
222
model::FitzDocument::~FitzDocument()
182
223
{
183
224
    fz_close_document(m_document);
184
225
    fz_free_context(m_context);
185
226
}
186
227
 
187
 
int Model::FitzDocument::numberOfPages() const
 
228
int model::FitzDocument::numberOfPages() const
188
229
{
189
230
    QMutexLocker mutexLocker(&m_mutex);
190
231
 
191
232
    return fz_count_pages(m_document);
192
233
}
193
234
 
194
 
Model::Page* Model::FitzDocument::page(int index) const
 
235
model::Page* model::FitzDocument::page(int index) const
195
236
{
196
237
    QMutexLocker mutexLocker(&m_mutex);
197
238
 
200
241
    return page != 0 ? new FitzPage(this, page) : 0;
201
242
}
202
243
 
203
 
bool Model::FitzDocument::canBePrintedUsingCUPS() const
 
244
bool model::FitzDocument::canBePrintedUsingCUPS() const
204
245
{
205
246
    QMutexLocker mutexLocker(&m_mutex);
206
247
 
207
248
    return pdf_specifics(m_document) != 0;
208
249
}
209
250
 
210
 
void Model::FitzDocument::setPaperColor(const QColor& paperColor)
 
251
void model::FitzDocument::setPaperColor(const QColor& paperColor)
211
252
{
212
253
    m_paperColor = paperColor;
213
254
}
214
255
 
215
 
static void loadOutline(fz_outline* outline, QStandardItem* parent)
216
 
{
217
 
    QStandardItem* item = new QStandardItem(QString::fromUtf8(outline->title));
218
 
    item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
219
 
 
220
 
    if(outline->dest.kind != FZ_LINK_NONE)
221
 
    {
222
 
        const int page = outline->dest.ld.gotor.page + 1;
223
 
 
224
 
        item->setData(page, Qt::UserRole + 1);
225
 
 
226
 
        QStandardItem* pageItem = item->clone();
227
 
        pageItem->setText(QString::number(page));
228
 
        pageItem->setTextAlignment(Qt::AlignRight);
229
 
 
230
 
        parent->appendRow(QList< QStandardItem* >() << item << pageItem);
231
 
    }
232
 
    else
233
 
    {
234
 
        parent->appendRow(item);
235
 
    }
236
 
 
237
 
    if(outline->next != 0)
238
 
    {
239
 
        loadOutline(outline->next, parent);
240
 
    }
241
 
 
242
 
    if(outline->down != 0)
243
 
    {
244
 
        loadOutline(outline->down, item);
245
 
    }
246
 
}
247
 
 
248
 
void Model::FitzDocument::loadOutline(QStandardItemModel* outlineModel) const
 
256
void model::FitzDocument::loadOutline(QStandardItemModel* outlineModel) const
249
257
{
250
258
    Document::loadOutline(outlineModel);
251
259
 
277
285
    fz_free_context(m_context);
278
286
}
279
287
 
280
 
Model::Document* FitzPlugin::loadDocument(const QString& filePath) const
 
288
model::Document* FitzPlugin::loadDocument(const QString& filePath) const
281
289
{
282
290
    fz_context* context = fz_clone_context(m_context);
283
291
    fz_document* document = fz_open_document(context, QFile::encodeName(filePath));
289
297
        return 0;
290
298
    }
291
299
 
292
 
    return new Model::FitzDocument(context, document);
 
300
    return new model::FitzDocument(context, document);
293
301
}
294
302
 
295
303
void FitzPlugin::lock(void* user, int lock)
302
310
    reinterpret_cast< FitzPlugin* >(user)->m_mutex[lock].unlock();
303
311
}
304
312
 
 
313
} // qpdfview
 
314
 
305
315
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
306
316
 
307
 
Q_EXPORT_PLUGIN2(qpdfview_fitz, FitzPlugin)
 
317
Q_EXPORT_PLUGIN2(qpdfview_fitz, qpdfview::FitzPlugin)
308
318
 
309
319
#endif // QT_VERSION