QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
raster
qgsrasterfilewritertask.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsrasterfilewritertask.cpp
3
---------------------------
4
begin : Apr 2017
5
copyright : (C) 2017 by Nyall Dawson
6
email : nyall dot dawson at gmail dot com
7
***************************************************************************/
8
9
/***************************************************************************
10
* *
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
15
* *
16
***************************************************************************/
17
18
#include "
qgsrasterfilewritertask.h
"
19
20
#include "
qgsrasterdataprovider.h
"
21
#include "
qgsrasterinterface.h
"
22
#include "
qgsrasterpipe.h
"
23
24
#include "moc_qgsrasterfilewritertask.cpp"
25
26
// Deprecated!
27
QgsRasterFileWriterTask::QgsRasterFileWriterTask
(
const
QgsRasterFileWriter
&writer,
QgsRasterPipe
*pipe,
int
columns,
int
rows,
const
QgsRectangle
&outputExtent,
const
QgsCoordinateReferenceSystem
&crs )
28
:
QgsRasterFileWriterTask
( writer, pipe, columns, rows, outputExtent, crs, ( pipe && pipe->provider() ) ? pipe->provider()->transformContext() :
QgsCoordinateTransformContext
() )
29
{}
30
31
QgsRasterFileWriterTask::QgsRasterFileWriterTask
(
32
const
QgsRasterFileWriter
&writer,
QgsRasterPipe
*pipe,
int
columns,
int
rows,
const
QgsRectangle
&outputExtent,
const
QgsCoordinateReferenceSystem
&crs,
const
QgsCoordinateTransformContext
&transformContext
33
)
34
:
QgsTask
( tr(
"Saving %1"
).arg( writer.outputUrl() ),
QgsTask
::
CanCancel
)
35
, mWriter( writer )
36
, mRows( rows )
37
, mColumns( columns )
38
, mExtent( outputExtent )
39
, mCrs( crs )
40
, mPipe( pipe )
41
, mFeedback( new
QgsRasterBlockFeedback
() )
42
, mTransformContext( transformContext )
43
{
44
QgsRenderContext
renderContext;
45
renderContext.
setRendererUsage
(
Qgis::RendererUsage::Export
);
46
mFeedback->setRenderContext( renderContext );
47
}
48
49
QgsRasterFileWriterTask::~QgsRasterFileWriterTask
() =
default
;
50
51
void
QgsRasterFileWriterTask::cancel
()
52
{
53
mFeedback->cancel();
54
QgsTask::cancel
();
55
}
56
57
bool
QgsRasterFileWriterTask::run
()
58
{
59
if
( !mPipe )
60
return
false
;
61
62
connect( mFeedback.get(), &
QgsRasterBlockFeedback::progressChanged
,
this
, &
QgsRasterFileWriterTask::setProgress
);
63
64
mError = mWriter.writeRaster( mPipe.get(), mColumns, mRows, mExtent, mCrs, mTransformContext, mFeedback.get() );
65
66
return
mError ==
Qgis::RasterFileWriterResult::Success
;
67
}
68
69
void
QgsRasterFileWriterTask::finished
(
bool
result )
70
{
71
if
( result )
72
emit
writeComplete
( mWriter.outputUrl() );
73
else
74
{
75
emit
errorOccurred
(
static_cast<
int
>
( mError ) );
76
QString errorMsg;
77
if
( !mFeedback->errors().isEmpty() )
78
errorMsg = mFeedback->errors().front();
79
emit
errorOccurred
(
static_cast<
int
>
( mError ), errorMsg );
80
}
81
}
Qgis::RasterFileWriterResult::Success
@ Success
Successful export.
Definition
qgis.h:1813
Qgis::RendererUsage::Export
@ Export
Renderer used for printing or exporting to a file.
Definition
qgis.h:3685
QgsCoordinateReferenceSystem
Represents a coordinate reference system (CRS).
Definition
qgscoordinatereferencesystem.h:216
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition
qgscoordinatetransformcontext.h:61
QgsFeedback::progressChanged
void progressChanged(double progress)
Emitted when the feedback object reports a progress change.
QgsRasterBlockFeedback
Feedback object tailored for raster block reading.
Definition
qgsrasterinterface.h:45
QgsRasterFileWriterTask::~QgsRasterFileWriterTask
~QgsRasterFileWriterTask() override
QgsRasterFileWriterTask::writeComplete
void writeComplete(const QString &outputUrl)
Emitted when writing the layer is successfully completed.
QgsRasterFileWriterTask::cancel
void cancel() override
Notifies the task that it should terminate.
Definition
qgsrasterfilewritertask.cpp:51
QgsRasterFileWriterTask::QgsRasterFileWriterTask
Q_DECL_DEPRECATED QgsRasterFileWriterTask(const QgsRasterFileWriter &writer, QgsRasterPipe *pipe, int columns, int rows, const QgsRectangle &outputExtent, const QgsCoordinateReferenceSystem &crs)
Constructor for QgsRasterFileWriterTask.
Definition
qgsrasterfilewritertask.cpp:27
QgsRasterFileWriterTask::errorOccurred
void errorOccurred(int error)
Emitted when an error occurs which prevented the file being written (or if the task is canceled).
QgsRasterFileWriterTask::finished
void finished(bool result) override
If the task is managed by a QgsTaskManager, this will be called after the task has finished (whether ...
Definition
qgsrasterfilewritertask.cpp:69
QgsRasterFileWriterTask::run
bool run() override
Performs the task's operation.
Definition
qgsrasterfilewritertask.cpp:57
QgsRasterFileWriter
The raster file writer which allows you to save a raster to a new file.
Definition
qgsrasterfilewriter.h:44
QgsRasterPipe
Contains a pipeline of raster interfaces for sequential raster processing.
Definition
qgsrasterpipe.h:50
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
QgsRenderContext
Contains information about the context of a rendering operation.
Definition
qgsrendercontext.h:63
QgsRenderContext::setRendererUsage
void setRendererUsage(Qgis::RendererUsage usage)
Sets the renderer usage.
Definition
qgsrendercontext.h:1168
QgsTask::cancel
virtual void cancel()
Notifies the task that it should terminate.
Definition
qgstaskmanager.cpp:98
QgsTask::QgsTask
QgsTask(const QString &description=QString(), QgsTask::Flags flags=AllFlags)
Constructor for QgsTask.
Definition
qgstaskmanager.cpp:36
QgsTask::CanCancel
@ CanCancel
Task can be canceled.
Definition
qgstaskmanager.h:73
QgsTask::setProgress
void setProgress(double progress)
Sets the task's current progress.
Definition
qgstaskmanager.cpp:239
qgsrasterdataprovider.h
qgsrasterfilewritertask.h
qgsrasterinterface.h
qgsrasterpipe.h
Generated on
for QGIS API Documentation by
1.17.0