103    static char **qtgui_ArgvToC( PyObject *argvlist, 
int &argc )
 
  107      argc = PyList_GET_SIZE( argvlist );
 
  111      if ( ( argv = ( 
char ** )sipMalloc( 2 * ( argc + 1 ) * 
sizeof( 
char * ) ) ) == NULL )
 
  115      for ( 
int a = 0; a < argc; ++a )
 
  119        if ( ( arg = PyBytes_AsString( PyList_GET_ITEM( argvlist, a ) ) ) == NULL ||
 
  120             ( argv[a] = ( 
char * )sipMalloc( strlen( arg ) + 1 ) ) == NULL )
 
  123        strcpy( argv[a], arg );
 
  124        argv[a + argc + 1] = argv[a];
 
  127      argv[argc + argc + 1] = argv[argc] = NULL;
 
  134    static void qtgui_UpdatePyArgv( PyObject *argvlist, 
int argc, 
char **argv )
 
  136      for ( 
int a = 0, na = 0; a < argc; ++a )
 
  139        if ( argv[na] == argv[a + argc + 1] )
 
  142          PyList_SetSlice( argvlist, na, na + 1, NULL );
 
  180    QgsApplication( 
int &argc, 
char **argv, 
bool GUIenabled, 
const QString &profileFolder = QString(), 
const QString &platformName = 
"external" );
 
  191    QgsApplication( SIP_PYLIST argv, 
bool GUIenabled, QString profileFolder = QString(), QString platformName = 
"external" ) / PostHook = __pyQtQAppHook__ / [( 
int &argc, 
char **argv, 
bool GUIenabled, 
const QString &profileFolder = QString(), 
const QString &platformName = 
"desktop" )];
 
  199    if ( ( argv = qtgui_ArgvToC( a0, argc ) ) == NULL )
 
  204      static int nargc = argc;
 
  206      sipCpp = 
new sipQgsApplication( nargc, argv, a1, *a2, *a3 );
 
  209      qtgui_UpdatePyArgv( a0, argc, argv );
 
  229    static void init( QString profileFolder = QString() ) 
SIP_SKIP;
 
  232    bool event( QEvent *event ) override;
 
  235    bool notify( QObject *receiver, QEvent *event ) override;
 
  238    static 
void setFileOpenEventReceiver( QObject *receiver );
 
  250    static 
void setThemeName( const QString &themeName );
 
  256    static QString resolvePkgPath();
 
  265    static QString themeName();
 
  274    static 
void setUITheme( const QString &themeName );
 
  282    static QHash<QString, QString> uiThemes();
 
  285    static QString authorsFilePath();
 
  292    static QString contributorsFilePath();
 
  299    static QString developersMapFilePath();
 
  302    static QString sponsorsFilePath();
 
  305    static QString donorsFilePath();
 
  308    static QString serverResourcesPath();
 
  313    static QString translatorsFilePath();
 
  318    static QString licenceFilePath();
 
  321    static QString i18nPath();
 
  326    static QString metadataPath();
 
  329    static QString qgisMasterDatabaseFilePath();
 
  332    static QString qgisSettingsDirPath();
 
  335    static QString qgisUserDatabaseFilePath();
 
  341    Q_DECL_DEPRECATED static QString qgisAuthDatabaseFilePath() 
SIP_DEPRECATED;
 
  350    static QString qgisAuthDatabaseUri();
 
  353    static QString splashPath();
 
  356    static QString iconsPath();
 
  359    static QString srsDatabaseFilePath();
 
  366    static 
void setSvgPaths( const QStringList &svgPaths );
 
  369    static QStringList svgPaths();
 
  374    static QStringList layoutTemplatePaths();
 
  377    static QMap<QString, QString> systemEnvVars();
 
  380    static QString prefixPath();
 
  383    static QString pluginPath();
 
  386    static QString pkgDataPath();
 
  389    static QString activeThemePath();
 
  392    static QString defaultThemePath();
 
  398    static QString iconPath( const QString &iconFile );
 
  407    static QIcon getThemeIcon( const QString &name, const QColor &fillColor = QColor(), const QColor &strokeColor = QColor() );
 
  430    static QCursor getThemeCursor( Cursor cursor );
 
  440    static QPixmap getThemePixmap( 
const QString &name, 
const QColor &foreColor = QColor(), 
const QColor &backColor = QColor(), 
int size = 16 );
 
  443    static QString userStylePath();
 
  450    static QRegularExpression shortNameRegularExpression();
 
  456    static QString userLoginName();
 
  462    static QString userFullName();
 
  468    static QString osName();
 
  477    static int systemMemorySizeMb();
 
  483    static QString platform();
 
  497    static QString applicationFullName();
 
  502    static QString locale();
 
  510    static void setLocale( 
const QLocale &locale );
 
  513    static QString userThemesFolder();
 
  516    static QString defaultStylePath();
 
  519    static QString defaultThemesFolder();
 
  522    static QString libraryPath();
 
  525    static QString libexecPath();
 
  533    static QString qmlImportPath();
 
  536    static void setPrefixPath( 
const QString &prefixPath, 
bool useDefaultPaths = 
false );
 
  539    static void setPluginPath( 
const QString &pluginPath );
 
  542    static void setPkgDataPath( 
const QString &pkgDataPath );
 
  545    static void setDefaultSvgPaths( 
const QStringList &pathList );
 
  548    static void setAuthDatabaseDirPath( 
const QString &authDbDirPath );
 
  551    static void initQgis();
 
  554    static bool createDatabase( QString *errorMessage = 
nullptr );
 
  557    static bool createThemeFolder();
 
  560    static void exitQgis();
 
  563    static QString appIconPath();
 
  573    static endian_t endian();
 
  599    static QString showSettings();
 
  608    static void registerOgrDrivers();
 
  611    static QString absolutePathToRelativePath( 
const QString &apath, 
const QString &targetPath );
 
  613    static QString relativePathToAbsolutePath( 
const QString &rpath, 
const QString &targetPath );
 
  617#if defined(_MSC_VER) && !defined(USING_NMAKE) && !defined(USING_NINJA) 
  618    static QString cfgIntDir() 
SIP_SKIP;
 
  621    static QString buildSourcePath();
 
  623    static QString buildOutputPath();
 
  630    static void skipGdalDriver( 
const QString &driver );
 
  637    static void restoreGdalDriver( 
const QString &driver );
 
  643    static QStringList skippedGdalDrivers();
 
  651    static void applyGdalSkippedDrivers();
 
  657    static void registerGdalDriversFromSettings();
 
  665    static QStringList deferredSkippedGdalDrivers();
 
  673    static void setSkippedGdalDrivers( 
const QStringList &skippedGdalDrivers,
 
  674                                       const QStringList &deferredSkippedGdalDrivers );
 
  679    static int maxThreads();
 
  685    static void setMaxThreads( 
int maxThreads );
 
  907    static QgsAnnotationRegistry *annotationRegistry() 
SIP_SKIP;
 
 1006    static QString nullRepresentation();
 
 1018    static 
void setNullRepresentation( const QString &nullRepresentation );
 
 1026    static QVariantMap customVariables();
 
 1034    static 
void setCustomVariables( const QVariantMap &customVariables );
 
 1040    static 
void setCustomVariable( const QString &name, const QVariant &value );
 
 1051    static 
int scaleIconSize( 
int standardSize, 
bool applyDevicePixelRatio = false );
 
 1061    int maxConcurrentConnectionsPerPool() const;
 
 1068    static 
void setTranslation( const QString &translation );
 
 1075    QString translation() const;
 
 1103    bool x11EventFilter( XEvent *event );
 
 1143    static void copyPath( 
const QString &src, 
const QString &dst );
 
 1144    static QObject *
ABISYM( mFileOpenEventReceiver );
 
 1146    static bool ABISYM( mInitialized );
 
 1149    static bool ABISYM( mRunningFromBuildDir );
 
 1153    static int ABISYM( sMaxThreads );
 
 1155    QMap<QString, QIcon> mIconCache;
 
 1156    QMap<Cursor, QCursor> mCursorCache;
 
 1158    std::unique_ptr<QTranslator> mQgisTranslator;
 
 1159    std::unique_ptr<QTranslator> mQtTranslator;
 
 1160    std::unique_ptr<QTranslator> mQtBaseTranslator;
 
 1162    std::unique_ptr<QgsDataItemProviderRegistry> mDataItemProviderRegistry;
 
 1165    struct ApplicationMembers
 
 1167      std::unique_ptr<QgsSettingsRegistryCore > mSettingsRegistryCore;
 
 1168      std::unique_ptr<QgsCoordinateReferenceSystemRegistry > mCrsRegistry;
 
 1169      std::unique_ptr<Qgs3DRendererRegistry > m3DRendererRegistry;
 
 1170      std::unique_ptr<Qgs3DSymbolRegistry > m3DSymbolRegistry;
 
 1171      std::unique_ptr<QgsActionScopeRegistry > mActionScopeRegistry;
 
 1172      std::unique_ptr<QgsAnnotationRegistry > mAnnotationRegistry;
 
 1173      std::unique_ptr<QgsColorSchemeRegistry > mColorSchemeRegistry;
 
 1174      std::unique_ptr<QgsLocalizedDataPathRegistry > mLocalizedDataPathRegistry;
 
 1175      std::unique_ptr<QgsNumericFormatRegistry > mNumericFormatRegistry;
 
 1176      std::unique_ptr<QgsFieldFormatterRegistry > mFieldFormatterRegistry;
 
 1177      std::unique_ptr<QgsGpsConnectionRegistry > mGpsConnectionRegistry;
 
 1178      std::unique_ptr<QgsBabelFormatRegistry > mGpsBabelFormatRegistry;
 
 1179      std::unique_ptr<QgsNetworkContentFetcherRegistry > mNetworkContentFetcherRegistry;
 
 1180      std::unique_ptr<QgsScaleBarRendererRegistry > mScaleBarRendererRegistry;
 
 1181      std::unique_ptr<QgsLabelingEngineRuleRegistry > mLabelingEngineRuleRegistry;
 
 1182      std::unique_ptr<QgsValidityCheckRegistry > mValidityCheckRegistry;
 
 1183      std::unique_ptr<QgsMessageLog > mMessageLog;
 
 1184      std::unique_ptr<QgsPaintEffectRegistry > mPaintEffectRegistry;
 
 1185      std::unique_ptr<QgsPluginLayerRegistry > mPluginLayerRegistry;
 
 1186      std::unique_ptr<QgsClassificationMethodRegistry > mClassificationMethodRegistry;
 
 1187      std::unique_ptr<QgsProcessingRegistry > mProcessingRegistry;
 
 1188      std::unique_ptr<QgsConnectionRegistry > mConnectionRegistry;
 
 1189      std::unique_ptr<QgsProjectStorageRegistry > mProjectStorageRegistry;
 
 1190      std::unique_ptr<QgsLayerMetadataProviderRegistry > mLayerMetadataProviderRegistry;
 
 1191      std::unique_ptr<QgsExternalStorageRegistry > mExternalStorageRegistry;
 
 1192      std::unique_ptr<QgsProfileSourceRegistry > mProfileSourceRegistry;
 
 1193      std::unique_ptr<QgsPageSizeRegistry > mPageSizeRegistry;
 
 1194      std::unique_ptr<QgsRasterRendererRegistry > mRasterRendererRegistry;
 
 1195      std::unique_ptr<QgsRendererRegistry > mRendererRegistry;
 
 1196      std::unique_ptr<QgsPointCloudRendererRegistry > mPointCloudRendererRegistry;
 
 1197      std::unique_ptr<QgsTiledSceneRendererRegistry > mTiledSceneRendererRegistry;
 
 1198      std::unique_ptr<QgsSvgCache > mSvgCache;
 
 1199      std::unique_ptr<QgsImageCache > mImageCache;
 
 1200      std::unique_ptr<QgsSourceCache > mSourceCache;
 
 1201      std::unique_ptr<QgsSymbolLayerRegistry > mSymbolLayerRegistry;
 
 1202      std::unique_ptr<QgsCalloutRegistry > mCalloutRegistry;
 
 1203      std::unique_ptr<QgsTaskManager > mTaskManager;
 
 1204      std::unique_ptr<QgsLayoutItemRegistry > mLayoutItemRegistry;
 
 1205      std::unique_ptr<QgsAnnotationItemRegistry > mAnnotationItemRegistry;
 
 1206      std::unique_ptr<QgsSensorRegistry > mSensorRegistry;
 
 1207      std::unique_ptr<QgsBookmarkManager > mBookmarkManager;
 
 1208      std::unique_ptr<QgsTileDownloadManager > mTileDownloadManager;
 
 1209      std::unique_ptr<QgsStyleModel > mStyleModel;
 
 1210      std::unique_ptr<QgsRecentStyleHandler > mRecentStyleHandler;
 
 1211      std::unique_ptr<QgsDatabaseQueryLog > mQueryLogger;
 
 1212      std::unique_ptr<QgsFontManager > mFontManager;
 
 1213      QString mNullRepresentation;
 
 1214      QStringList mSvgPathCache;
 
 1215      bool mSvgPathCacheValid = 
false;
 
 1217      ApplicationMembers();
 
 1218      ~ApplicationMembers();
 
 1222    std::unique_ptr<ApplicationMembers> mApplicationMembers;
 
 1224    static ApplicationMembers *sApplicationMembers;
 
 1228    static ApplicationMembers *members();
 
 1230    static void invalidateCaches();
 
 1236    void installTranslators() 
SIP_SKIP;
 
 1238    friend class TestQgsApplication;