diff options
Diffstat (limited to 'SQLiteStudio3/sqlitestudio/main.cpp')
| -rw-r--r-- | SQLiteStudio3/sqlitestudio/main.cpp | 37 |
1 files changed, 34 insertions, 3 deletions
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 <QDebug>
#include <QMessageBox>
#include <QProcess>
+#include <QFileDialog>
+#include <QSettings>
#ifdef Q_OS_WIN
# include <windef.h>
# include <windows.h>
@@ -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<QString, QString> langs = getAvailableLanguages();
|
