Fixes for Windows

1. On Windows, the lmdb file is immediately allocated at full size. So we have to limit the size.

2. Windows need an organization name for QSettings to work. So an organization name is added for Windows target.
This commit is contained in:
shunf4 2021-10-06 19:15:45 +08:00
parent 8b3752ef47
commit 7db269acb5
2 changed files with 19 additions and 2 deletions

View File

@ -58,7 +58,15 @@ void Core::Archive::open(const QString& account)
} }
mdb_env_set_maxdbs(environment, 5); mdb_env_set_maxdbs(environment, 5);
mdb_env_set_mapsize(environment, 512UL * 1024UL * 1024UL); mdb_env_set_mapsize(environment,
#ifdef Q_OS_WIN
// On Windows, the file is immediately allocated.
// So we have to limit the size.
80UL * 1024UL * 1024UL
#else
512UL * 1024UL * 1024UL
#endif
);
mdb_env_open(environment, path.toStdString().c_str(), 0, 0664); mdb_env_open(environment, path.toStdString().c_str(), 0, 0664);
MDB_txn *txn; MDB_txn *txn;

View File

@ -42,7 +42,16 @@ int main(int argc, char *argv[])
QApplication app(argc, argv); QApplication app(argc, argv);
SignalCatcher sc(&app); SignalCatcher sc(&app);
#ifdef Q_OS_WIN
// Windows need an organization name for QSettings to work
// https://doc.qt.io/qt-5/qsettings.html#basic-usage
{
const QString& orgName = QApplication::organizationName();
if (orgName.isNull() || orgName.isEmpty()) {
QApplication::setOrganizationName("squawk");
}
}
#endif
QApplication::setApplicationName("squawk"); QApplication::setApplicationName("squawk");
QApplication::setApplicationDisplayName("Squawk"); QApplication::setApplicationDisplayName("Squawk");
QApplication::setApplicationVersion("0.1.5"); QApplication::setApplicationVersion("0.1.5");