mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-06-05 21:59:17 +02:00
DocPage Organizer: Insert image
This commit is contained in:
@ -18,6 +18,7 @@
|
||||
#include "pageitemmodel.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
#include <QImageReader>
|
||||
|
||||
#include <iterator>
|
||||
|
||||
@ -114,6 +115,56 @@ int PageItemModel::addDocument(QString fileName, pdf::PDFDocument document)
|
||||
return newIndex;
|
||||
}
|
||||
|
||||
int PageItemModel::insertImage(QString fileName, const QModelIndex& index)
|
||||
{
|
||||
QFile file(fileName);
|
||||
|
||||
if (file.open(QFile::ReadOnly))
|
||||
{
|
||||
ImageItem item;
|
||||
item.imageData = file.readAll();
|
||||
|
||||
QImageReader reader(fileName);
|
||||
item.image = reader.read();
|
||||
|
||||
file.close();
|
||||
|
||||
if (!item.image.isNull())
|
||||
{
|
||||
int newIndex = 1;
|
||||
|
||||
if (!m_images.empty())
|
||||
{
|
||||
newIndex = (m_images.rbegin()->first) + 1;
|
||||
}
|
||||
|
||||
m_images[newIndex] = qMove(item);
|
||||
|
||||
// Insert image item
|
||||
PageGroupItem newItem;
|
||||
|
||||
newItem.groups.reserve(1);
|
||||
|
||||
PageGroupItem::GroupItem groupItem;
|
||||
groupItem.imageIndex = newIndex;
|
||||
groupItem.rotatedPageDimensionsMM = m_images[newIndex].image.size() * 0.1;
|
||||
groupItem.pageType = PT_Image;
|
||||
newItem.groups.push_back(qMove(groupItem));
|
||||
|
||||
updateItemCaptionAndTags(newItem);
|
||||
int insertRow = index.isValid() ? index.row() + 1 : int(m_pageGroupItems.size());
|
||||
|
||||
beginInsertRows(QModelIndex(), insertRow, insertRow);
|
||||
m_pageGroupItems.insert(std::next(m_pageGroupItems.begin(), insertRow), qMove(newItem));
|
||||
endInsertRows();
|
||||
|
||||
return newIndex;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
const PageGroupItem* PageItemModel::getItem(const QModelIndex& index) const
|
||||
{
|
||||
if (index.isValid())
|
||||
|
Reference in New Issue
Block a user