33
33
#include "document/documentjob.h"
34
34
#include "document/abstractdocumenteditor.h"
38
class CropJob : public ThreadedDocumentJob {
39
class CropJob : public ThreadedDocumentJob
40
CropJob(const QRect& rect)
42
CropJob(const QRect& rect)
44
virtual void threadedStart() {
45
if (!checkDocumentEditor()) {
48
const QImage src = document()->image();
49
const QImage dst = src.copy(mRect);
50
document()->editor()->setImage(dst);
46
virtual void threadedStart()
48
if (!checkDocumentEditor()) {
51
const QImage src = document()->image();
52
const QImage dst = src.copy(mRect);
53
document()->editor()->setImage(dst);
59
61
struct CropImageOperationPrivate {
61
QImage mOriginalImage;
63
QImage mOriginalImage;
65
66
CropImageOperation::CropImageOperation(const QRect& rect)
66
: d(new CropImageOperationPrivate) {
68
setText(i18n("Crop"));
72
CropImageOperation::~CropImageOperation() {
77
void CropImageOperation::redo() {
78
d->mOriginalImage = document()->image();
79
redoAsDocumentJob(new CropJob(d->mRect));
83
void CropImageOperation::undo() {
84
if (!document()->editor()) {
85
kWarning() << "!document->editor()";
88
document()->editor()->setImage(d->mOriginalImage);
67
: d(new CropImageOperationPrivate)
70
setText(i18n("Crop"));
73
CropImageOperation::~CropImageOperation()
78
void CropImageOperation::redo()
80
d->mOriginalImage = document()->image();
81
redoAsDocumentJob(new CropJob(d->mRect));
84
void CropImageOperation::undo()
86
if (!document()->editor()) {
87
kWarning() << "!document->editor()";
90
document()->editor()->setImage(d->mOriginalImage);