QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgsreadwritecontext.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsreadwritecontext.h
3
----------------------
4
begin : May 2017
5
copyright : (C) 2017 by Martin Dobias
6
email : wonder dot sk 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
#ifndef QGSREADWRITECONTEXT_H
19
#define QGSREADWRITECONTEXT_H
20
21
#include "
qgis.h
"
22
#include "
qgscoordinatetransformcontext.h
"
23
#include "
qgspathresolver.h
"
24
#include "
qgsprojecttranslator.h
"
25
26
#include <QString>
27
28
using namespace
Qt::StringLiterals;
29
30
class
QgsReadWriteContextCategoryPopper
;
31
37
class
CORE_EXPORT
QgsReadWriteContext
38
{
39
public
:
44
struct
ReadWriteMessage
45
{
47
ReadWriteMessage
(
const
QString &
message
= QString(),
Qgis::MessageLevel
level
=
Qgis::MessageLevel::Warning
,
const
QStringList &
categories
= QStringList() )
48
: mMessage(
message
)
49
, mLevel(
level
)
50
, mCategories(
categories
)
51
{}
52
54
QString
message
()
const
{
return
mMessage; }
55
57
Qgis::MessageLevel
level
()
const
{
return
mLevel; }
58
60
QStringList
categories
()
const
{
return
mCategories; }
61
62
// TODO c++20 - replace with = default
63
64
bool
operator==
(
const
QgsReadWriteContext::ReadWriteMessage
&other )
const
{
return
mMessage == other.mMessage && mLevel == other.mLevel && mCategories == other.mCategories; }
65
66
bool
operator!=
(
const
QgsReadWriteContext::ReadWriteMessage
&other )
const
{
return
!( *
this
== other ); }
67
68
#ifdef SIP_RUN
69
// clang-format off
70
SIP_PYOBJECT __repr__();
71
% MethodCode
72
QString str = u
"<QgsReadWriteContext.ReadWriteMessage: %1>"
_s.arg( sipCpp->message() );
73
sipRes = PyUnicode_FromString( str.toUtf8().constData() );
74
% End
75
// clang-format on
76
#endif
77
78
// clang-format off
79
private
:
80
// clang-format on
81
QString mMessage;
82
Qgis::MessageLevel
mLevel;
83
QStringList mCategories;
84
};
85
89
QgsReadWriteContext
();
90
91
~QgsReadWriteContext
();
92
94
const
QgsPathResolver
&pathResolver()
const
;
95
97
void
setPathResolver(
const
QgsPathResolver
&resolver );
98
103
void
pushMessage(
const
QString &message,
Qgis::MessageLevel
level =
Qgis::MessageLevel::Warning
)
const
;
104
116
[[maybe_unused]] [[nodiscard]]
QgsReadWriteContextCategoryPopper
enterCategory(
const
QString &category,
const
QString &details = QString() ) const
SIP_PYNAME
( _enterCategory );
117
118
123
QList<
QgsReadWriteContext
::ReadWriteMessage> takeMessages();
124
129
const
QgsProjectTranslator
*
projectTranslator
()
const
{
return
mProjectTranslator; }
130
137
void
setProjectTranslator(
QgsProjectTranslator
*projectTranslator );
138
146
QgsCoordinateTransformContext
transformContext()
const
;
147
155
void
setTransformContext(
const
QgsCoordinateTransformContext
&transformContext );
156
161
const
QString
currentLayerId
()
const
{
return
mCurrentLayerId; }
162
169
void
setCurrentLayerId
(
const
QString &layerId ) { mCurrentLayerId = layerId; }
170
171
private
:
173
void
leaveCategory()
const
;
174
175
QgsPathResolver
mPathResolver;
176
mutable
QList<ReadWriteMessage> mMessages;
177
mutable
QStringList mCategories = QStringList();
178
QgsProjectTranslator
*mProjectTranslator =
nullptr
;
179
friend
class
QgsReadWriteContextCategoryPopper
;
180
QgsCoordinateTransformContext
mCoordinateTransformContext =
QgsCoordinateTransformContext
();
181
QString mCurrentLayerId;
182
};
183
184
194
class
CORE_EXPORT
QgsReadWriteContextCategoryPopper
195
{
196
public
:
198
QgsReadWriteContextCategoryPopper
(
const
QgsReadWriteContext
&context )
199
: mContext( context )
200
{}
201
~QgsReadWriteContextCategoryPopper
() { mContext.leaveCategory(); }
202
203
private
:
204
#ifdef SIP_RUN
205
QgsReadWriteContextCategoryPopper
&operator=(
const
QgsReadWriteContextCategoryPopper
& );
206
#endif
207
208
const
QgsReadWriteContext
&mContext;
209
};
210
211
#endif
// QGSREADWRITECONTEXT_H
Qgis::MessageLevel
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition
qgis.h:160
Qgis::Warning
@ Warning
Warning message.
Definition
qgis.h:162
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition
qgscoordinatetransformcontext.h:61
QgsPathResolver
Resolves relative paths into absolute paths and vice versa.
Definition
qgspathresolver.h:35
QgsProjectTranslator
An interface for objects which can translate project strings.
Definition
qgsprojecttranslator.h:31
QgsReadWriteContextCategoryPopper
Allows entering a context category and takes care of leaving this category on deletion of the class.
Definition
qgsreadwritecontext.h:195
QgsReadWriteContextCategoryPopper::~QgsReadWriteContextCategoryPopper
~QgsReadWriteContextCategoryPopper()
Definition
qgsreadwritecontext.h:201
QgsReadWriteContextCategoryPopper::QgsReadWriteContextCategoryPopper
QgsReadWriteContextCategoryPopper(const QgsReadWriteContext &context)
Creates a popper.
Definition
qgsreadwritecontext.h:198
QgsReadWriteContext
A container for the context for various read/write operations on objects.
Definition
qgsreadwritecontext.h:38
QgsReadWriteContext::projectTranslator
const QgsProjectTranslator * projectTranslator() const
Returns the project translator.
Definition
qgsreadwritecontext.h:129
QgsReadWriteContext::setCurrentLayerId
void setCurrentLayerId(const QString &layerId)
Sets the current layer id.
Definition
qgsreadwritecontext.h:169
QgsReadWriteContext::QgsReadWriteContext
QgsReadWriteContext()
Constructor for QgsReadWriteContext.
Definition
qgsreadwritecontext.cpp:39
QgsReadWriteContext::currentLayerId
const QString currentLayerId() const
Returns the currently used layer id as string.
Definition
qgsreadwritecontext.h:161
QgsReadWriteContext::QgsReadWriteContextCategoryPopper
friend class QgsReadWriteContextCategoryPopper
Definition
qgsreadwritecontext.h:179
qgis.h
SIP_PYNAME
#define SIP_PYNAME(name)
Definition
qgis_sip.h:88
qgscoordinatetransformcontext.h
qgspathresolver.h
qgsprojecttranslator.h
QgsReadWriteContext::ReadWriteMessage
Struct for QgsReadWriteContext error or warning messages.
Definition
qgsreadwritecontext.h:45
QgsReadWriteContext::ReadWriteMessage::level
Qgis::MessageLevel level() const
Returns the message level.
Definition
qgsreadwritecontext.h:57
QgsReadWriteContext::ReadWriteMessage::ReadWriteMessage
ReadWriteMessage(const QString &message=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, const QStringList &categories=QStringList())
Construct a container for QgsReadWriteContext error or warning messages.
Definition
qgsreadwritecontext.h:47
QgsReadWriteContext::ReadWriteMessage::message
QString message() const
Returns the message string.
Definition
qgsreadwritecontext.h:54
QgsReadWriteContext::ReadWriteMessage::operator!=
bool operator!=(const QgsReadWriteContext::ReadWriteMessage &other) const
Definition
qgsreadwritecontext.h:66
QgsReadWriteContext::ReadWriteMessage::operator==
bool operator==(const QgsReadWriteContext::ReadWriteMessage &other) const
Definition
qgsreadwritecontext.h:64
QgsReadWriteContext::ReadWriteMessage::categories
QStringList categories() const
Returns the stack of categories of the message.
Definition
qgsreadwritecontext.h:60
Generated on
for QGIS API Documentation by
1.17.0