mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	No point in having it defined in each main program's .cpp. Especially since the unit tests don't define them. Signed-off-by: Thiago Macieira <thiago@macieira.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
		
			
				
	
	
		
			58 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <QApplication>
 | 
						|
#include <QNetworkProxy>
 | 
						|
#include <QLibraryInfo>
 | 
						|
#include <QTextCodec>
 | 
						|
#include "helpers.h"
 | 
						|
 | 
						|
char *settings_suffix = NULL;
 | 
						|
QTranslator *qtTranslator, *ssrfTranslator;
 | 
						|
 | 
						|
void init_qt_late()
 | 
						|
{
 | 
						|
	QApplication *application = qApp;
 | 
						|
	// tell Qt to use system proxies
 | 
						|
	// note: on Linux, "system" == "environment variables"
 | 
						|
	QNetworkProxyFactory::setUseSystemConfiguration(true);
 | 
						|
 | 
						|
	// for Win32 and Qt5 we try to set the locale codec to UTF-8.
 | 
						|
	// this makes QFile::encodeName() work.
 | 
						|
#ifdef Q_OS_WIN
 | 
						|
	QTextCodec::setCodecForLocale(QTextCodec::codecForMib(106));
 | 
						|
#endif
 | 
						|
 | 
						|
	QCoreApplication::setOrganizationName("Subsurface");
 | 
						|
	QCoreApplication::setOrganizationDomain("subsurface.hohndel.org");
 | 
						|
	// enable user specific settings (based on command line argument)
 | 
						|
	if (settings_suffix) {
 | 
						|
		if (verbose)
 | 
						|
			qDebug() << "using custom config for" << QString("Subsurface-%1").arg(settings_suffix);
 | 
						|
		QCoreApplication::setApplicationName(QString("Subsurface-%1").arg(settings_suffix));
 | 
						|
	} else {
 | 
						|
		QCoreApplication::setApplicationName("Subsurface");
 | 
						|
	}
 | 
						|
	// find plugins installed in the application directory (without this SVGs don't work on Windows)
 | 
						|
	QCoreApplication::addLibraryPath(QCoreApplication::applicationDirPath());
 | 
						|
	QLocale loc;
 | 
						|
	QString uiLang = uiLanguage(&loc);
 | 
						|
	QLocale::setDefault(loc);
 | 
						|
 | 
						|
	// we don't have translations for English - if we don't check for this
 | 
						|
	// Qt will proceed to load the second language in preference order - not what we want
 | 
						|
	// on Linux this tends to be en-US, but on the Mac it's just en
 | 
						|
	if (!uiLang.startsWith("en") || uiLang.startsWith("en-GB")) {
 | 
						|
		qtTranslator = new QTranslator;
 | 
						|
		if (qtTranslator->load(loc, "qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath))) {
 | 
						|
			application->installTranslator(qtTranslator);
 | 
						|
		} else {
 | 
						|
			qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
 | 
						|
		}
 | 
						|
		ssrfTranslator = new QTranslator;
 | 
						|
		if (ssrfTranslator->load(loc, "subsurface", "_") ||
 | 
						|
		    ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) ||
 | 
						|
		    ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) {
 | 
						|
			application->installTranslator(ssrfTranslator);
 | 
						|
		} else {
 | 
						|
			qDebug() << "can't find Subsurface localization for locale" << uiLang;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |