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;
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 ApplicationMembers *mApplicationMembers =
nullptr;
1224 static ApplicationMembers *sApplicationMembers;
1228 static ApplicationMembers *members();
1230 static void invalidateCaches();
1236 void installTranslators()
SIP_SKIP;
1238 friend class TestQgsApplication;