37
37
#include "imageutils.h"
38
38
#include "savejob.h"
43
43
struct DocumentLoadedImplPrivate {
49
48
DocumentLoadedImpl::DocumentLoadedImpl(Document* document, const QByteArray& rawData, bool quietInit)
50
49
: AbstractDocumentImpl(document)
51
, d(new DocumentLoadedImplPrivate) {
52
if (document->keepRawData()) {
53
d->mRawData = rawData;
55
d->mQuietInit = quietInit;
59
DocumentLoadedImpl::~DocumentLoadedImpl() {
64
void DocumentLoadedImpl::init() {
66
emit imageRectUpdated(document()->image().rect());
72
bool DocumentLoadedImpl::isEditable() const {
77
Document::LoadingState DocumentLoadedImpl::loadingState() const {
78
return Document::Loaded;
82
bool DocumentLoadedImpl::saveInternal(QIODevice* device, const QByteArray& format) {
83
QImageWriter writer(device, format);
84
bool ok = writer.write(document()->image());
86
setDocumentFormat(format);
88
setDocumentErrorString(writer.errorString());
94
DocumentJob* DocumentLoadedImpl::save(const KUrl& url, const QByteArray& format) {
95
return new SaveJob(this, url, format);
99
AbstractDocumentEditor* DocumentLoadedImpl::editor() {
104
void DocumentLoadedImpl::setImage(const QImage& image) {
105
setDocumentImage(image);
106
imageRectUpdated(image.rect());
110
void DocumentLoadedImpl::applyTransformation(Orientation orientation) {
111
QImage image = document()->image();
112
QMatrix matrix = ImageUtils::transformMatrix(orientation);
113
image = image.transformed(matrix);
114
setDocumentImage(image);
115
imageRectUpdated(image.rect());
119
QByteArray DocumentLoadedImpl::rawData() const {
50
, d(new DocumentLoadedImplPrivate)
52
if (document->keepRawData()) {
53
d->mRawData = rawData;
55
d->mQuietInit = quietInit;
58
DocumentLoadedImpl::~DocumentLoadedImpl()
63
void DocumentLoadedImpl::init()
66
emit imageRectUpdated(document()->image().rect());
71
bool DocumentLoadedImpl::isEditable() const
76
Document::LoadingState DocumentLoadedImpl::loadingState() const
78
return Document::Loaded;
81
bool DocumentLoadedImpl::saveInternal(QIODevice* device, const QByteArray& format)
83
QImageWriter writer(device, format);
84
bool ok = writer.write(document()->image());
86
setDocumentFormat(format);
88
setDocumentErrorString(writer.errorString());
93
DocumentJob* DocumentLoadedImpl::save(const KUrl& url, const QByteArray& format)
95
return new SaveJob(this, url, format);
98
AbstractDocumentEditor* DocumentLoadedImpl::editor()
103
void DocumentLoadedImpl::setImage(const QImage& image)
105
setDocumentImage(image);
106
imageRectUpdated(image.rect());
109
void DocumentLoadedImpl::applyTransformation(Orientation orientation)
111
QImage image = document()->image();
112
QMatrix matrix = ImageUtils::transformMatrix(orientation);
113
image = image.transformed(matrix);
114
setDocumentImage(image);
115
imageRectUpdated(image.rect());
118
QByteArray DocumentLoadedImpl::rawData() const