From 1fdc150116cad39aae5c5da407c3312b47a59e3a Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Fri, 17 Dec 2021 07:06:30 -0500 Subject: New upstream version 3.3.3+dfsg1. --- SQLiteStudio3/sqlitestudio/main.cpp | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) (limited to 'SQLiteStudio3/sqlitestudio/main.cpp') diff --git a/SQLiteStudio3/sqlitestudio/main.cpp b/SQLiteStudio3/sqlitestudio/main.cpp index 443006b..ae16132 100644 --- a/SQLiteStudio3/sqlitestudio/main.cpp +++ b/SQLiteStudio3/sqlitestudio/main.cpp @@ -36,6 +36,8 @@ #include #include #include +#include +#include #ifdef Q_OS_WIN # include # include @@ -94,14 +96,37 @@ QString uiHandleCmdLineArgs(bool applyOptions = true) if (args.size() > 0) return args[0]; - return QString::null; + return QString(); +} + +void initHighDpi() +{ + if (qgetenv("QT_ENABLE_HIGHDPI_SCALING").isEmpty() && qgetenv("QT_AUTO_SCREEN_SCALE_FACTOR").isEmpty()) + { + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + } + +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) && defined(Q_OS_WIN) + if (qgetenv("QT_SCALE_FACTOR_ROUNDING_POLICY").isEmpty()) + QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); +#endif } int main(int argc, char *argv[]) { + initHighDpi(); + QCoreApplication::setApplicationName("SQLiteStudio"); + QCoreApplication::setOrganizationName("SalSoft"); + QCoreApplication::setApplicationVersion(SQLITESTUDIO->getVersionString()); + SingleApplication a(argc, argv, true, SingleApplication::ExcludeAppPath|SingleApplication::ExcludeAppVersion); - if (a.isSecondary()) { + QSettings sett; + QVariant allowMultipleSessionsValue = sett.value(MainWindow::ALLOW_MULTIPLE_SESSIONS_SETTING); + bool allowMultipleSessions = allowMultipleSessionsValue.isValid() && allowMultipleSessionsValue.toBool(); + + if (!allowMultipleSessions && a.isSecondary()) { #ifdef Q_OS_WIN AllowSetForegroundWindow(DWORD( a.primaryPid())); #endif @@ -112,12 +137,18 @@ int main(int argc, char *argv[]) qInstallMessageHandler(uiMessageHandler); + Config::setAskUserForConfigDirFunc([]() -> QString + { + return QFileDialog::getExistingDirectory(nullptr, QObject::tr("Select configuration directory"), QString(), QFileDialog::ShowDirsOnly); + }); + QString dbToOpen = uiHandleCmdLineArgs(); DbTreeItem::initMeta(); SqlQueryModelColumn::initMeta(); SqlQueryModel::staticInit(); + SQLITESTUDIO->setInitialTranslationFiles({"coreSQLiteStudio", "guiSQLiteStudio", "sqlitestudio"}); SQLITESTUDIO->init(a.arguments(), true); IconManager::getInstance()->init(); @@ -148,7 +179,7 @@ int main(int argc, char *argv[]) IconManager::getInstance()->rescanResources(); - if (!LanguageDialog::didAskForDefaultLanguage()) + if (!LanguageDialog::didAskForDefaultLanguage() && !SQLITESTUDIO->getConfig()->isInMemory()) { LanguageDialog::askedForDefaultLanguage(); QMap langs = getAvailableLanguages(); -- cgit v1.2.3