diff options
Diffstat (limited to 'SQLiteStudio3/sqlitestudio')
| -rw-r--r-- | SQLiteStudio3/sqlitestudio/main.cpp | 37 | ||||
| -rw-r--r-- | SQLiteStudio3/sqlitestudio/package.xml | 17 | ||||
| -rw-r--r-- | SQLiteStudio3/sqlitestudio/sqlitestudio.pro | 2 | ||||
| -rw-r--r-- | SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts | 10 |
4 files changed, 40 insertions, 26 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();
diff --git a/SQLiteStudio3/sqlitestudio/package.xml b/SQLiteStudio3/sqlitestudio/package.xml deleted file mode 100644 index 1ac4203..0000000 --- a/SQLiteStudio3/sqlitestudio/package.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0"?>
-<Package>
- <DisplayName>SQLiteStudio</DisplayName>
- <Description>SQLiteStudio core application</Description>
- <Version>%VERSION%</Version>
- <ReleaseDate>%DATE%</ReleaseDate>
- <Name>pl.com.salsoft.sqlitestudio</Name>
- <Dependencies>io.qt</Dependencies>
- <Licenses>
- </Licenses>
- <Default>true</Default>
- <ForcedInstallation>true</ForcedInstallation>
- <Script>installscript.qs</Script>
- <UserInterfaces>
- <UserInterface>register_file_types.ui</UserInterface>
- </UserInterfaces>
-</Package>
\ No newline at end of file diff --git a/SQLiteStudio3/sqlitestudio/sqlitestudio.pro b/SQLiteStudio3/sqlitestudio/sqlitestudio.pro index 96d9f0d..bdb2876 100644 --- a/SQLiteStudio3/sqlitestudio/sqlitestudio.pro +++ b/SQLiteStudio3/sqlitestudio/sqlitestudio.pro @@ -20,7 +20,7 @@ linux { } TEMPLATE = app -CONFIG += c++11 +CONFIG += c++17 QMAKE_CXXFLAGS += -pedantic DEFINES += QAPPLICATION_CLASS=QApplication diff --git a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts index b84ae66..14e3971 100644 --- a/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts +++ b/SQLiteStudio3/sqlitestudio/translations/sqlitestudio_zh_CN.ts @@ -11,17 +11,17 @@ <message> <location filename="../main.cpp" line="53"/> <source>Enables debug messages in console (accessible with F12).</source> - <translation type="unfinished"></translation> + <translation type="unfinished">在控制台中启用调试信息(可通过 F12 访问)。</translation> </message> <message> <location filename="../main.cpp" line="54"/> <source>Redirects debug messages into standard output (forces debug mode).</source> - <translation type="unfinished"></translation> + <translation type="unfinished">重定向调试信息到标准输出中(强制调试模式)。</translation> </message> <message> <location filename="../main.cpp" line="55"/> <source>Redirects debug messages into given file (forces debug mode).</source> - <translation type="unfinished"></translation> + <translation type="unfinished">重定向调试信息到指定文件(强制调试模式)。</translation> </message> <message> <location filename="../main.cpp" line="55"/> @@ -61,12 +61,12 @@ <message> <location filename="../main.cpp" line="61"/> <source>Points to the master configuration file. Read manual at wiki page for more details.</source> - <translation type="unfinished"></translation> + <translation type="unfinished">指向主配置文件。 阅读 Wiki 页面上的手册以获取更多详细信息。</translation> </message> <message> <location filename="../main.cpp" line="61"/> <source>SQLiteStudio settings file</source> - <translation type="unfinished"></translation> + <translation type="unfinished">SQLiteStudio 配置文件</translation> </message> <message> <location filename="../main.cpp" line="72"/> |
