]> Nutra Git (v1) - gamesguru/feather.git/commitdiff
utils: use tray for desktop notification
authortobtoht <tob@featherwallet.org>
Wed, 29 Mar 2023 08:46:53 +0000 (10:46 +0200)
committertobtoht <tob@featherwallet.org>
Wed, 29 Mar 2023 08:46:53 +0000 (10:46 +0200)
src/MainWindow.cpp
src/WindowManager.cpp
src/WindowManager.h
src/utils/Utils.cpp
src/utils/Utils.h

index 4ae10ce6e6922a000383624ed35ef235e71a2a2b..b2e5f2c794e71e06b5569a732709359bc80d2775 100644 (file)
@@ -432,7 +432,7 @@ void MainWindow::initWalletContext() {
     connect(m_wallet, &Wallet::unconfirmedMoneyReceived, this, [this](const QString &txId, uint64_t amount){
        if (m_wallet->isSynchronized()) {
            auto notify = QString("%1 XMR (pending)").arg(WalletManager::displayAmount(amount, false));
-           Utils::desktopNotify("Payment received", notify, 5000);
+           m_windowManager->notify("Payment received", notify, 5000);
        }
     });
 
index e777df5cb271ab3c6fc976da53cd5dc392db6f3c..153a8e231f02fb0cb11e6a34355d6074ad681b41 100644 (file)
@@ -579,6 +579,18 @@ void WindowManager::buildTrayMenu() {
     menu->addAction("Exit Feather", this, &WindowManager::close);
 }
 
+void WindowManager::notify(const QString &title, const QString &message, int duration) {
+    if (!m_tray || !QSystemTrayIcon::supportsMessages()) {
+        return;
+    }
+
+    if (config()->get(Config::hideNotifications).toBool()) {
+        return;
+    }
+
+    m_tray->showMessage(title, message, icons()->icon("appicons/64x64.png"), duration);
+}
+
 // ######################## NETWORKING ########################
 
 void WindowManager::onInitialNetworkConfigured() {
index 89c0a22102968945c97b06d0f0962ddb2477fd23..7cb3d661bb42044004df7e18c3d9cbe367eab2ff 100644 (file)
@@ -30,6 +30,8 @@ public:
 
     void showSettings(Nodes *nodes, QWidget *parent, bool showProxyTab = false);
 
+    void notify(const QString &title, const QString &message, int duration);
+
     EventFilter *eventFilter;
 
 signals:
index 137b6c0366d72f36f205f92d3c39a264b8850232..1e8f6df14c8f7bf3697583105f873e55cb1634fc 100644 (file)
@@ -465,7 +465,7 @@ QString blockExplorerLink(const QString &blockExplorer, NetworkType::Type nettyp
             return QString("https://testnet.xmrchain.net/tx/%1").arg(txid);
     }
 
-    return QString("");
+    return {};
 }
 
 void externalLinkWarning(QWidget *parent, const QString &url){
@@ -493,33 +493,6 @@ void externalLinkWarning(QWidget *parent, const QString &url){
     }
 }
 
-void desktopNotify(const QString &title, const QString &message, int duration) {
-    if (config()->get(Config::hideNotifications).toBool()) {
-        return;
-    }
-
-    QStringList notify_send = QStringList() << title << message << "-t" << QString::number(duration);
-    QStringList kdialog = QStringList() << title << message;
-    QStringList macos = QStringList() << "-e" << QString(R"(display notification "%1" with title "%2")").arg(message).arg(title);
-#if defined(Q_OS_LINUX)
-    QProcess process;
-    if (fileExists("/usr/bin/kdialog"))
-        process.start("/usr/bin/kdialog", kdialog);
-    else if (fileExists("/usr/bin/notify-send"))
-        process.start("/usr/bin/notify-send", notify_send);
-    process.waitForFinished(-1);
-    QString stdout = process.readAllStandardOutput();
-    QString stderr = process.readAllStandardError();
-#elif defined(Q_OS_MACOS)
-    QProcess process;
-    // @TODO: need to escape special chars with "\"
-    process.start("osascript", macos);
-    process.waitForFinished(-1);
-    QString stdout = process.readAllStandardOutput();
-    QString stderr = process.readAllStandardError();
-#endif
-}
-
 QString displayAddress(const QString& address, int sections, const QString& sep) {
     QStringList list;
     if (sections < 1) sections = 1;
@@ -557,23 +530,23 @@ void applicationLogHandler(QtMsgType type, const QMessageLogContext &context, co
 
     switch (type) {
         case QtDebugMsg:
-            line = QString("[%1 D] %2(:%3) %4\n").arg(date).arg(fn).arg(context.line).arg(msg);
+            line = QString("[%1 D] %2(:%3) %4\n").arg(date, fn, QString::number(context.line), msg);
             fprintf(stderr, "%s", line.toLatin1().data());
             break;
         case QtInfoMsg:
-            line = QString("[%1 I] %2\n").arg(date).arg(msg);
+            line = QString("[%1 I] %2\n").arg(datemsg);
             fprintf(stdout, "%s", line.toLatin1().data());
             break;
         case QtWarningMsg:
-            line = QString("[%1 W] %2(:%3) %4\n").arg(date).arg(fn).arg(context.line).arg(msg);
+            line = QString("[%1 W] %2(:%3) %4\n").arg(date, fn, QString::number(context.line), msg);
             fprintf(stdout, "%s", line.toLatin1().data());
             break;
         case QtCriticalMsg:
-            line = QString("[%1 C] %2(:%3) %4\n").arg(date).arg(fn).arg(context.line).arg(msg);
+            line = QString("[%1 C] %2(:%3) %4\n").arg(date, fn, QString::number(context.line), msg);
             fprintf(stderr, "%s", line.toLatin1().data());
             break;
         case QtFatalMsg:
-            line = QString("[%1 F] %2(:%3) %4\n").arg(date).arg(fn).arg(context.line).arg(msg);
+            line = QString("[%1 F] %2(:%3) %4\n").arg(date, fn, QString::number(context.line), msg);
             fprintf(stderr, "%s", line.toLatin1().data());
             break;
     }
index bd4e77fdeed65ace5293e18b1ddf0769db52093d..24590ac5f2941bc3a04844d26d8f653cc865875b 100644 (file)
@@ -59,8 +59,6 @@ namespace Utils
     QString blockExplorerLink(const QString &blockExplorer, NetworkType::Type nettype, const QString &txid);
     void externalLinkWarning(QWidget *parent, const QString &url);
 
-    void desktopNotify(const QString &title, const QString &message, int duration);
-
     QString displayAddress(const QString& address, int sections = 3, const QString & sep = " ");
     QTextCharFormat addressTextFormat(const SubaddressIndex &index, quint64 amount);