aboutsummaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2019-07-16 11:35:16 -0500
committerluigi1111 <luigi1111w@gmail.com>2019-07-16 11:35:16 -0500
commitbeb94783c6536e58f4dd9505cd5c7430d8ca278c (patch)
treee59e9bf4eaff9296b9c10a9d9a7207b565a2ae1c /main.cpp
parentcfec9dde968cb89f8fe5293958b82181348111ea (diff)
parent0b6132897101c4cd1618c79049d5685c5e9874fa (diff)
downloadmonzero-gui-beb94783c6536e58f4dd9505cd5c7430d8ca278c.tar.gz
monzero-gui-beb94783c6536e58f4dd9505cd5c7430d8ca278c.tar.xz
monzero-gui-beb94783c6536e58f4dd9505cd5c7430d8ca278c.zip
Merge pull request #2258
0b61328 Detect tails, support data persistence (xmrdsc)
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp41
1 files changed, 30 insertions, 11 deletions
diff --git a/main.cpp b/main.cpp
index a41b3c75..939b78f2 100644
--- a/main.cpp
+++ b/main.cpp
@@ -64,7 +64,7 @@
#include "MainApp.h"
#include "qt/ipc.h"
#include "qt/utils.h"
-#include "qt/mime.h"
+#include "src/qt/TailsOS.h"
#include "src/qt/KeysFiles.h"
#include "src/qt/MoneroSettings.h"
#include "qt/prices.h"
@@ -83,6 +83,7 @@ bool isAndroid = false;
bool isWindows = false;
bool isMac = false;
bool isLinux = false;
+bool isTails = false;
bool isDesktop = false;
bool isOpenGL = true;
@@ -102,6 +103,7 @@ int main(int argc, char *argv[])
bool isWindows = true;
#elif defined(Q_OS_LINUX)
bool isLinux = true;
+ bool isTails = TailsOS::detect();
#elif defined(Q_OS_MAC)
bool isMac = true;
#endif
@@ -123,25 +125,40 @@ int main(int argc, char *argv[])
// qDebug() << "High DPI auto scaling - enabled";
//#endif
+ MainApp app(argc, argv);
+
+ app.setApplicationName("monero-core");
+ app.setOrganizationDomain("getmonero.org");
+ app.setOrganizationName("monero-project");
+
+ // Ask to enable Tails OS persistence mode, it affects:
+ // - Log file location
+ // - QML Settings file location (monero-core.conf)
+ // - Default wallets path
+ // Target directory is: ~/Persistent/Monero
+ if (isTails) {
+ if (!TailsOS::detectDataPersistence())
+ TailsOS::showDataPersistenceDisabledWarning();
+ else
+ TailsOS::askPersistence();
+ }
+
QString moneroAccountsDir;
#if defined(Q_OS_WIN) || defined(Q_OS_IOS)
QStringList moneroAccountsRootDir = QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation);
#else
QStringList moneroAccountsRootDir = QStandardPaths::standardLocations(QStandardPaths::HomeLocation);
#endif
- if (!moneroAccountsRootDir.empty()) {
+
+ if(isTails && TailsOS::usePersistence){
+ moneroAccountsDir = QDir::homePath() + "/Persistent/Monero/wallets";
+ } else if (!moneroAccountsRootDir.empty()) {
moneroAccountsDir = moneroAccountsRootDir.at(0) + "/Monero/wallets";
} else {
qCritical() << "Error: accounts root directory could not be set";
return 1;
}
- MainApp app(argc, argv);
-
- app.setApplicationName("monero-core");
- app.setOrganizationDomain("getmonero.org");
- app.setOrganizationName("monero-project");
-
#if defined(Q_OS_LINUX)
if (isDesktop) app.setWindowIcon(QIcon(":/images/appicon.ico"));
#endif
@@ -174,9 +191,8 @@ int main(int argc, char *argv[])
}
qWarning().noquote() << "app startd" << "(log: " + logPath + ")";
-#ifdef Q_OS_LINUX
+ // Desktop entry
registerXdgMime(app);
-#endif
IPC *ipc = new IPC(&app);
QStringList posArgs = parser.positionalArguments();
@@ -317,6 +333,8 @@ int main(int argc, char *argv[])
engine.rootContext()->setContextProperty("walletLogPath", logPath);
+ engine.rootContext()->setContextProperty("tailsUsePersistence", TailsOS::usePersistence);
+
// Exclude daemon manager from IOS
#ifndef Q_OS_IOS
const QStringList arguments = (QStringList) QCoreApplication::arguments().at(0);
@@ -330,7 +348,7 @@ int main(int argc, char *argv[])
engine.rootContext()->setContextProperty("isIOS", isIOS);
engine.rootContext()->setContextProperty("isAndroid", isAndroid);
engine.rootContext()->setContextProperty("isOpenGL", isOpenGL);
- engine.rootContext()->setContextProperty("isLinux", isLinux);
+ engine.rootContext()->setContextProperty("isTails", isTails);
engine.rootContext()->setContextProperty("screenWidth", geo.width());
engine.rootContext()->setContextProperty("screenHeight", geo.height());
@@ -354,6 +372,7 @@ int main(int argc, char *argv[])
accountName = "My monero Account";
engine.rootContext()->setContextProperty("defaultAccountName", accountName);
+ engine.rootContext()->setContextProperty("homePath", QDir::homePath());
engine.rootContext()->setContextProperty("applicationDirectory", QApplication::applicationDirPath());
engine.rootContext()->setContextProperty("idealThreadCount", QThread::idealThreadCount());