diff options
Diffstat (limited to 'freefilesync/ffs_desktop_notifications.patch')
-rw-r--r-- | freefilesync/ffs_desktop_notifications.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/freefilesync/ffs_desktop_notifications.patch b/freefilesync/ffs_desktop_notifications.patch new file mode 100644 index 0000000..5610fd1 --- /dev/null +++ b/freefilesync/ffs_desktop_notifications.patch @@ -0,0 +1,53 @@ +diff -aur 11.9-1/FreeFileSync/Source/Makefile 11.9-2/FreeFileSync/Source/Makefile +--- 11.9-1/FreeFileSync/Source/Makefile 2021-05-06 16:24:53.987902373 -0400 ++++ 11.9-2/FreeFileSync/Source/Makefile 2021-05-06 17:09:31.512474440 -0400 +@@ -21,6 +22,13 @@ + #treat as system headers so that warnings are hidden: + cxxFlags += -isystem/usr/include/gtk-3.0 + ++with_notifications ?= NO ++ifeq ($(with_notifications),YES) ++# package libglibmm-2.4-dev or glibmm24-devel ++cxxFlags += `pkg-config --cflags giomm-2.4` -Dwith_notifications ++linkFlags += `pkg-config --libs giomm-2.4` ++endif ++ + #support for SELinux (optional) + SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES) + ifeq ($(SELINUX_EXISTING),YES) +diff -aur 11.9-1/FreeFileSync/Source/ui/progress_indicator.cpp 11.9-2/FreeFileSync/Source/ui/progress_indicator.cpp +--- 11.9-1/FreeFileSync/Source/ui/progress_indicator.cpp 2021-05-06 15:20:34.286831934 -0400 ++++ 11.9-2/FreeFileSync/Source/ui/progress_indicator.cpp 2021-05-06 17:11:45.486004158 -0400 +@@ -32,6 +32,9 @@ + #include "../perf_check.h" + #include "../icon_buffer.h" + ++#ifdef with_notifications ++#include<giomm-2.4/giomm.h> ++#endif + + using namespace zen; + using namespace fff; +@@ -1359,6 +1362,22 @@ + pnl_.m_staticTextPhase->SetLabel(getSyncResultLabel(syncResult)); + //pnl_.m_bitmapStatus->SetToolTip(); -> redundant + ++#ifdef with_notifications ++ // Desktop notification for Linux ++ char title[] = "FreeFileSync"; ++ // from https://stackoverflow.com/a/12097772 ++ std::wstring ssR {getSyncResultLabel(syncResult)}; ++ std::string body; ++ std::transform(ssR.begin(), ssR.end(), std::back_inserter(body), [] (wchar_t c){ return (char)c;}); ++ char icon[] = "freefilesync"; ++ auto Application = Gio::Application::create("org.zenju.freefilesync", Gio::APPLICATION_FLAGS_NONE); ++ Application->register_application(); ++ auto Notification = Gio::Notification::create(title); ++ Notification->set_body(body); ++ auto Icon = Gio::ThemedIcon::create(icon); ++ Notification->set_icon (Icon); ++ Application->send_notification(Notification); ++#endif + //show status on Windows 7 taskbar + if (taskbar_.get()) + switch (syncResult) |