aboutsummaryrefslogtreecommitdiff
path: root/src/qt/utils.cpp
diff options
context:
space:
mode:
authorAlexander Blair <snipa@jagtech.io>2020-12-03 12:23:01 -0800
committerAlexander Blair <snipa@jagtech.io>2020-12-03 12:23:02 -0800
commit2eeeadfd10011a771bf73ffe7c678c3532c0ca0d (patch)
tree5848000c18f6758845b8c85c11a80249240beacc /src/qt/utils.cpp
parent301b20d19ca2ff5702093c502c6048fc4a25c97e (diff)
parentea1fee2f5f842a293458a66638c15ff79e1d101d (diff)
downloadmonzero-gui-2eeeadfd10011a771bf73ffe7c678c3532c0ca0d.tar.gz
monzero-gui-2eeeadfd10011a771bf73ffe7c678c3532c0ca0d.tar.xz
monzero-gui-2eeeadfd10011a771bf73ffe7c678c3532c0ca0d.zip
Merge pull request #3251
ea1fee2f main: Linux - ask to create desktop entry on the first start (xiphon)
Diffstat (limited to 'src/qt/utils.cpp')
-rw-r--r--src/qt/utils.cpp48
1 files changed, 31 insertions, 17 deletions
diff --git a/src/qt/utils.cpp b/src/qt/utils.cpp
index 5d329f97..b7d649f4 100644
--- a/src/qt/utils.cpp
+++ b/src/qt/utils.cpp
@@ -27,7 +27,8 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <QtCore>
-#include <QApplication>
+#include <QCoreApplication>
+#include <QMessageBox>
#include <QtGlobal>
#include "TailsOS.h"
@@ -88,7 +89,18 @@ QString getAccountName(){
}
#ifdef Q_OS_LINUX
-QString xdgMime(QApplication &app){
+bool askInstallDesktopEntry()
+{
+ QMessageBox msgBox(
+ QMessageBox::Question,
+ QObject::tr("Monero GUI"),
+ QObject::tr("Would you like to register Monero GUI Desktop entry?"),
+ QMessageBox::Yes | QMessageBox::No);
+ msgBox.setDefaultButton(QMessageBox::Yes);
+ return msgBox.exec() == QMessageBox::Yes;
+}
+
+QString xdgMime(){
return QString(
"[Desktop Entry]\n"
"Name=Monero GUI\n"
@@ -105,32 +117,34 @@ QString xdgMime(QApplication &app){
"StartupNotify=true\n"
"X-GNOME-Bugzilla-Bugzilla=GNOME\n"
"X-GNOME-UsesNotifications=true\n"
- ).arg(app.applicationFilePath());
+ ).arg(QCoreApplication::applicationFilePath());
}
-void registerXdgMime(QApplication &app){
+void registerXdgMime(){
// Register desktop entry
// - MacOS handled via Info.plist
// - Windows handled in the installer by rbrunner7
// - Linux written to `QStandardPaths::ApplicationsLocation`
// - Tails written to persistent dotfiles
- QString mime = xdgMime(app);
+ QString mime = xdgMime();
QString appPath = QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation);
QString filePath = QString("%1/monero-gui.desktop").arg(appPath);
- if (TailsOS::detect() && TailsOS::detectDotPersistence() && TailsOS::usePersistence) {
- TailsOS::persistXdgMime(filePath, mime);
- return;
+ if (TailsOS::detect())
+ {
+ if (TailsOS::detectDotPersistence() && TailsOS::usePersistence)
+ {
+ TailsOS::persistXdgMime(filePath, mime);
+ }
+ }
+ else
+ {
+ if (askInstallDesktopEntry())
+ {
+ QDir().mkpath(QFileInfo(filePath).path());
+ fileWrite(filePath, mime);
+ }
}
-
- QFileInfo file(filePath);
- QDir().mkpath(file.path()); // ensure directory exists
-
-#ifdef QT_DEBUG
- qDebug() << "Writing xdg mime: " << filePath;
-#endif
-
- fileWrite(filePath, mime);
}
#endif