1 /***************************************************************************
2                qgsprojoperation.h
3                ------------------------
4     begin                : May 2021
5     copyright            : (C) 2021 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 #ifndef QGSPROJOPERATION_H
18 #define QGSPROJOPERATION_H
19 
20 #include "qgis_core.h"
21 #include "qgis_sip.h"
22 #include <QString>
23 
24 /**
25  * \ingroup core
26  * \brief Contains information about a PROJ operation.
27  *
28  * \since QGIS 3.20
29  */
30 class CORE_EXPORT QgsProjOperation
31 {
32   public:
33 
34     /**
35      * Returns TRUE if the body is a valid object, or FALSE if it is a null/invalid
36      * object.
37      */
isValid()38     bool isValid() const { return mValid; }
39 
40     /**
41      * ID of operation.
42      */
id()43     QString id() const { return mId; }
44 
45     /**
46      * Description.
47      */
description()48     QString description() const { return mDescription; }
49 
50     /**
51      * Additional details.
52      */
details()53     QString details() const { return mDetails; }
54 
55 #ifdef SIP_RUN
56     SIP_PYOBJECT __repr__();
57     % MethodCode
58     QString str;
59     if ( !sipCpp->isValid() )
60     {
61       str = QStringLiteral( "<QgsProjOperation: invalid>" );
62     }
63     else
64     {
65       str = QStringLiteral( "<QgsProjOperation: %1>" ).arg( sipCpp->id() );
66     }
67     sipRes = PyUnicode_FromString( str.toUtf8().constData() );
68     % End
69 #endif
70 
71   private:
72 
73     bool mValid = false;
74     QString mId;
75     QString mDescription;
76     QString mDetails;
77 
78     friend class QgsCoordinateReferenceSystemRegistry;
79     friend class QgsCoordinateReferenceSystem;
80 };
81 
82 #endif // QGSCELESTIALBODY_H
83