Warning, file /office/calligra/qtquick/CQTextDocumentModel.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * This file is part of the KDE project 0003 * 0004 * SPDX-FileCopyrightText: 2013 Shantanu Tushar <shantanu@kde.org> 0005 * SPDX-FileCopyrightText: 2013 Sujith Haridasan <sujith.h@gmail.com> 0006 * 0007 * SPDX-License-Identifier: LGPL-2.0-or-later 0008 * 0009 */ 0010 0011 #include "CQTextDocumentModel.h" 0012 0013 #include "CQImageProvider.h" 0014 0015 #include <KWPage.h> 0016 #include <KWDocument.h> 0017 0018 CQTextDocumentModel::CQTextDocumentModel(QObject* parent, KWDocument* document, KoShapeManager *shapemanager) 0019 : QAbstractListModel(parent), kw_document(document), kw_shapemanager(shapemanager), m_thumbnailSize(QSize(512, 512)) 0020 { 0021 } 0022 0023 int CQTextDocumentModel::rowCount(const QModelIndex& parent) const 0024 { 0025 if(parent.isValid()) { 0026 return 0; 0027 } 0028 return kw_document->pageManager()->pageCount(); 0029 } 0030 0031 QVariant CQTextDocumentModel::data(const QModelIndex& index, int role) const 0032 { 0033 0034 if (!kw_document || !index.isValid()) { 0035 return QVariant(); 0036 } 0037 0038 if (CQImageProvider::s_imageProvider) { 0039 if (role == Qt::DecorationRole) { 0040 const QString id = kw_document->caption() + "textData" + QString::number(index.row()); 0041 if (!CQImageProvider::s_imageProvider->containsId(id)) { 0042 KWPage pagePreview = kw_document->pageManager()->page(index.row()+1); 0043 QImage image = pagePreview.thumbnail(m_thumbnailSize, kw_shapemanager); 0044 if (image.isNull() == true) { 0045 return QVariant(); 0046 } 0047 CQImageProvider::s_imageProvider->addImage(id, image); 0048 } 0049 return QString("image://%1/%2").arg(CQImageProvider::identificationString).arg(id); 0050 } 0051 } 0052 return QVariant(); 0053 } 0054 0055 QSize CQTextDocumentModel::thumbnailSize() const 0056 { 0057 return m_thumbnailSize; 0058 } 0059 0060 void CQTextDocumentModel::setThumbnailSize(const QSize& newSize) 0061 { 0062 m_thumbnailSize = newSize; 0063 if (newSize.height() == 0) { 0064 m_thumbnailSize = QSize(512, 512); 0065 } 0066 if (CQImageProvider::s_imageProvider) { 0067 CQImageProvider::s_imageProvider->clearCache(); 0068 dataChanged(index(0), index(kw_document->pageCount() - 1)); 0069 } 0070 emit thumbnailSizeChanged(); 0071 }