summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2009-04-01 17:45:59 +0000
committerjstebbins <[email protected]>2009-04-01 17:45:59 +0000
commite67805f2d918127bc9f8cac24177eb226bb92d78 (patch)
treef20b82c2e307bf78c9e339e3d49196cd7708213a
parent687930925f509a27928887d34546d7bea87b99a3 (diff)
LinGui: Show notification when handbrake queue is complete
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2289 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--doc/texi/Building.linux.texi7
-rw-r--r--gtk/configure.ac2
-rw-r--r--gtk/src/callbacks.c23
-rw-r--r--gtk/src/main.c5
-rw-r--r--gtk/src/makedeps.c1
5 files changed, 33 insertions, 5 deletions
diff --git a/doc/texi/Building.linux.texi b/doc/texi/Building.linux.texi
index aac1c266d..8a3f8da4a 100644
--- a/doc/texi/Building.linux.texi
+++ b/doc/texi/Building.linux.texi
@@ -46,6 +46,7 @@ Ubuntu 8.10 packages:
@item libhal-dev (gui)
@item libhal-storage-dev (gui)
@item libgtkhtml3.14-dev (gui)
+@item libnotify-dev (gui)
@item libgstreamer0.10-dev (gui)
@item libgstreamer-plugins-base0.10-dev (gui)
@end itemize
@@ -55,7 +56,8 @@ To install these packages:
sudo apt-get install subversion yasm build-essential \
autoconf intltool libtool zlib1g-dev libbz2-dev libglib2.0-dev \
libdbus-glib-1-dev libgtk2.0-dev libhal-dev libhal-storage-dev \
-libgtkhtml3.14-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
+libgtkhtml3.14-dev libnotify-dev libgstreamer0.10-dev \
+libgstreamer-plugins-base0.10-dev
@end example
Fedora 10 package groups:
@@ -79,6 +81,7 @@ Additional Fedora 10 packages:
@item dbus-glib-devel (gui)
@item hal-devel (gui)
@item gtkhtml3-devel (gui)
+@item libnotify-devel (gui)
@item gstreamer-devel (gui)
@item gstreamer-plugins-base-devel (gui)
@end itemize
@@ -86,7 +89,7 @@ Additional Fedora 10 packages:
To install these packages:
@example
sudo yum install yasm zlib-devel bzip2-devel \
-dbus-glib-devel hal-devel gtkhtml3-devel \
+dbus-glib-devel hal-devel gtkhtml3-devel libnotify-devel\
gstreamer-devel gstreamer-plugins-base-devel
@end example
diff --git a/gtk/configure.ac b/gtk/configure.ac
index 6cf33ec49..c7e0ad695 100644
--- a/gtk/configure.ac
+++ b/gtk/configure.ac
@@ -70,7 +70,7 @@ PKG_CHECK_MODULES(GHBTOOLS, [glib-2.0 gobject-2.0 gdk-pixbuf-2.0])
AC_SUBST(GHBTOOLS_CFLAGS)
AC_SUBST(GHBTOOLS_LIBS)
-PKG_CHECK_MODULES(GHB, [gtk+-2.0 >= 2.8 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 hal hal-storage libgtkhtml-3.14])
+PKG_CHECK_MODULES(GHB, [gtk+-2.0 >= 2.8 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 hal hal-storage libgtkhtml-3.14 libnotify ])
AC_SUBST(GHB_CFLAGS)
AC_SUBST(GHB_LIBS)
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c
index 9e8bc23bb..456a863f7 100644
--- a/gtk/src/callbacks.c
+++ b/gtk/src/callbacks.c
@@ -29,6 +29,7 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <gio/gio.h>
+#include <libnotify/notify.h>
#include "hb.h"
#include "callbacks.h"
@@ -48,6 +49,7 @@
static void update_chapter_list(signal_user_data_t *ud);
static GList* dvd_device_list();
static void prune_logs(signal_user_data_t *ud);
+void ghb_notify_done(signal_user_data_t *ud);
// This is a dependency map used for greying widgets
// that are dependent on the state of another widget.
@@ -1560,6 +1562,7 @@ ghb_start_next_job(signal_user_data_t *ud, gboolean find_first)
}
// Nothing pending
ghb_uninhibit_gpm();
+ ghb_notify_done(ud);
return NULL;
}
// Find the next pending item after the current running item
@@ -1599,6 +1602,7 @@ ghb_start_next_job(signal_user_data_t *ud, gboolean find_first)
}
// Nothing found
ghb_uninhibit_gpm();
+ ghb_notify_done(ud);
return NULL;
}
@@ -3147,3 +3151,22 @@ check_stable_update(signal_user_data_t *ud)
return NULL;
}
+static void
+notify_closed_cb(NotifyNotification *notification, signal_user_data_t *ud)
+{
+ g_object_unref(G_OBJECT(notification));
+}
+
+void
+ghb_notify_done(signal_user_data_t *ud)
+{
+ NotifyNotification *notification;
+
+ notification = notify_notification_new(
+ "Encode Complete",
+ "Put down that cocktail, Your HandBrake queue is done!",
+ "hb-icon",
+ NULL);
+ g_signal_connect(notification, "closed", (GCallback)notify_closed_cb, ud);
+ notify_notification_show(notification, NULL);
+}
diff --git a/gtk/src/main.c b/gtk/src/main.c
index 7a0e66f63..559d9799e 100644
--- a/gtk/src/main.c
+++ b/gtk/src/main.c
@@ -36,6 +36,7 @@
#include <gst/gst.h>
#include <glib/gstdio.h>
#include <gio/gio.h>
+#include <libnotify/notify.h>
#include "hb.h"
#include "renderer_button.h"
#include "hb-backend.h"
@@ -80,7 +81,7 @@
GtkBuilder*
create_builder_or_die(const gchar * name)
{
- guint res;
+ guint res = 0;
GValue *gval;
const gchar *ghb_ui;
@@ -521,6 +522,7 @@ main (int argc, char *argv[])
gtk_set_locale ();
gtk_init (&argc, &argv);
+ notify_init("HandBrake");
ghb_register_transforms();
ghb_resource_init();
ghb_load_icons();
@@ -636,6 +638,7 @@ main (int argc, char *argv[])
ghb_value_free(ud->settings);
g_io_channel_unref(ud->activity_log);
ghb_settings_close();
+ notify_uninit();
g_free(ud);
return 0;
}
diff --git a/gtk/src/makedeps.c b/gtk/src/makedeps.c
index 98b8aeede..c11e7b353 100644
--- a/gtk/src/makedeps.c
+++ b/gtk/src/makedeps.c
@@ -25,7 +25,6 @@ static dependency_t dep_map[] =
{"title", "picture_tab", "none", TRUE, FALSE},
{"title", "chapters_label", "none", TRUE, FALSE},
{"title", "chapters_tab", "none", TRUE, FALSE},
- {"title", "title", "none", TRUE, FALSE},
{"title", "start_chapter", "none", TRUE, FALSE},
{"title", "end_chapter", "none", TRUE, FALSE},
{"vquality_type_bitrate", "VideoAvgBitrate", "TRUE", FALSE, FALSE},