const gchar *msg;
const gchar *action;
gint timeout;
+ signal_user_data_t *ud;
} countdown_t;
static gboolean
+quit_cb(countdown_t *cd)
+{
+ gchar *str;
+
+ cd->timeout--;
+ if (cd->timeout == 0)
+ {
+ ghb_hb_cleanup(FALSE);
+ prune_logs(cd->ud);
+
+ gtk_widget_destroy (GTK_WIDGET(cd->dlg));
+ gtk_main_quit();
+ return FALSE;
+ }
+ str = g_strdup_printf("%s\n\n%s in %d seconds ...",
+ cd->msg, cd->action, cd->timeout);
+ gtk_message_dialog_set_markup(cd->dlg, str);
+ g_free(str);
+ return TRUE;
+}
+
+static gboolean
shutdown_cb(countdown_t *cd)
{
gchar *str;
cd->timeout--;
if (cd->timeout == 0)
{
+ ghb_hb_cleanup(FALSE);
+ prune_logs(cd->ud);
+
ghb_shutdown_gsm();
gtk_main_quit();
return FALSE;
const gchar *action,
const gchar *cancel,
GSourceFunc action_func,
+ signal_user_data_t *ud,
gint timeout)
{
GtkWidget *dialog;
cd.msg = message;
cd.action = action;
cd.timeout = timeout;
+ cd.ud = ud;
// Toss up a warning dialog
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
ghb_countdown_dialog(GTK_MESSAGE_WARNING,
"Your encode is complete.",
"Shutting down the computer",
- "Cancel", (GSourceFunc)shutdown_cb, 60);
+ "Cancel", (GSourceFunc)shutdown_cb, ud, 60);
}
}
if (ghb_settings_combo_int(ud->settings, "WhenComplete") == 2)
ghb_countdown_dialog(GTK_MESSAGE_WARNING,
"Your encode is complete.",
"Putting computer to sleep",
- "Cancel", (GSourceFunc)suspend_cb, 60);
+ "Cancel", (GSourceFunc)suspend_cb, ud, 60);
}
}
+ if (ghb_settings_combo_int(ud->settings, "WhenComplete") == 4)
+ {
+ ghb_countdown_dialog(GTK_MESSAGE_WARNING,
+ "Your encode is complete.",
+ "Quiting Handbrake",
+ "Cancel", (GSourceFunc)quit_cb, ud, 60);
+ }
}
{
{"Do Nothing", "nothing", 0, "0"},
{"Show Notification", "notify", 1, "1"},
+ {"Quit Handbrake", "quit", 4, "4"},
{"Put Computer To Sleep", "sleep", 2, "2"},
{"Shutdown Computer", "shutdown", 3, "3"},
};