Skip to content
Permalink
Browse files

do not write logs before QgsApplication instace

because otherwise it creates a QgsProject without a QgsApplication
and translation won't work anymore because it cannot connect the signal to the slot

this fixes #20561
  • Loading branch information
signedav committed Dec 4, 2018
1 parent dcba255 commit f3943f5877174778a0242640dc20478655bfe79a
Showing with 11 additions and 4 deletions.
  1. +9 −2 src/app/main.cpp
  2. +2 −2 src/core/qgsproject.cpp
@@ -430,6 +430,9 @@ APP_EXPORT
#endif
int main( int argc, char *argv[] )
{
//log messages written before creating QgsApplicatoin
QStringList preApplicationLogMessages;

#ifdef Q_OS_MACX
// Increase file resource limits (i.e., number of allowed open files)
// (from code provided by Larry Biehl, Purdue University, USA, from 'MultiSpec' project)
@@ -866,11 +869,11 @@ int main( int argc, char *argv[] )
{
if ( !QgsSettings::setGlobalSettingsPath( globalsettingsfile ) )
{
QgsMessageLog::logMessage( QObject::tr( "Invalid globalsettingsfile path: %1" ).arg( globalsettingsfile ), QStringLiteral( "QGIS" ) );
preApplicationLogMessages << QObject::tr( "Invalid globalsettingsfile path: %1" ).arg( globalsettingsfile ), QStringLiteral( "QGIS" );
}
else
{
QgsMessageLog::logMessage( QObject::tr( "Successfully loaded globalsettingsfile path: %1" ).arg( globalsettingsfile ), QStringLiteral( "QGIS" ) );
preApplicationLogMessages << QObject::tr( "Successfully loaded globalsettingsfile path: %1" ).arg( globalsettingsfile ), QStringLiteral( "QGIS" );
}
}

@@ -970,6 +973,10 @@ int main( int argc, char *argv[] )

QgsApplication myApp( argc, argv, myUseGuiFlag );

//write the log messages written before creating QgsApplicatoin
for ( QString const &preApplicationLogMessage : preApplicationLogMessages )
QgsMessageLog::logMessage( preApplicationLogMessage );

// Settings migration is only supported on the default profile for now.
if ( profileName == QLatin1String( "default" ) )
{
@@ -384,8 +384,8 @@ QgsProject::QgsProject( QObject *parent )
connect( mLayerStore.get(), &QgsMapLayerStore::allLayersRemoved, this, &QgsProject::removeAll );
connect( mLayerStore.get(), &QgsMapLayerStore::layersAdded, this, &QgsProject::layersAdded );
connect( mLayerStore.get(), &QgsMapLayerStore::layerWasAdded, this, &QgsProject::layerWasAdded );
if ( QgsApplication::instance() )
connect( QgsApplication::instance(), &QgsApplication::requestForTranslatableObjects, this, &QgsProject::registerTranslatableObjects );
Q_ASSERT( QgsApplication::instance() );
connect( QgsApplication::instance(), &QgsApplication::requestForTranslatableObjects, this, &QgsProject::registerTranslatableObjects );
connect( mLayerStore.get(), static_cast<void ( QgsMapLayerStore::* )( const QList<QgsMapLayer *> & )>( &QgsMapLayerStore::layersWillBeRemoved ),
[ = ]( const QList<QgsMapLayer *> &layers )
{

0 comments on commit f3943f5

Please sign in to comment.
You can’t perform that action at this time.