[gnome-packagekit/gnome-2-32] Nuke the '7 messages from the package manager' functionality
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-packagekit/gnome-2-32] Nuke the '7 messages from the package manager' functionality
- Date: Sun, 8 Aug 2010 15:35:28 +0000 (UTC)
commit 6ffa650e9d1795e7aeb589d523ee0ceb7a6c3f59
Author: Richard Hughes <richard hughsie com>
Date: Wed Jul 28 12:09:09 2010 +0200
Nuke the '7 messages from the package manager' functionality
src/gpk-watch.c | 212 ++++---------------------------------------------------
1 files changed, 13 insertions(+), 199 deletions(-)
---
diff --git a/src/gpk-watch.c b/src/gpk-watch.c
index 9ecc42a..1e22a2e 100644
--- a/src/gpk-watch.c
+++ b/src/gpk-watch.c
@@ -64,16 +64,15 @@ struct GpkWatchPrivate
{
PkControl *control;
GtkStatusIcon *status_icon;
- GPtrArray *cached_messages;
GPtrArray *restart_package_names;
- NotifyNotification *notification_cached_messages;
+ NotifyNotification *notification_message;
GpkInhibit *inhibit;
GpkModalDialog *dialog;
PkTask *task;
PkTransactionList *tlist;
PkRestartEnum restart;
GConfClient *gconf_client;
- guint set_proxy_timeout;
+ guint set_proxy_id;
gchar *error_details;
gboolean hide_warning;
EggConsoleKit *console;
@@ -82,19 +81,6 @@ struct GpkWatchPrivate
gchar *transaction_id;
};
-typedef struct {
- PkMessageEnum type;
- gchar *tid;
- gchar *details;
-} GpkWatchCachedMessage;
-
-enum {
- GPK_WATCH_COLUMN_TEXT,
- GPK_WATCH_COLUMN_TID,
- GPK_WATCH_COLUMN_DETAILS,
- GPK_WATCH_COLUMN_LAST
-};
-
G_DEFINE_TYPE (GpkWatch, gpk_watch, G_TYPE_OBJECT)
/**
@@ -110,19 +96,6 @@ gpk_watch_class_init (GpkWatchClass *klass)
}
/**
- * gpk_watch_cached_message_free:
- **/
-static void
-gpk_watch_cached_message_free (GpkWatchCachedMessage *cached_message)
-{
- if (cached_message == NULL)
- return;
- g_free (cached_message->tid);
- g_free (cached_message->details);
- g_free (cached_message);
-}
-
-/**
* gpk_watch_get_restart_required_tooltip:
**/
static gchar *
@@ -187,7 +160,6 @@ gpk_watch_refresh_tooltip (GpkWatch *watch)
guint i;
guint idx = 0;
PkProgress *progress;
- guint len;
GString *string;
PkStatusEnum status;
PkRoleEnum role;
@@ -207,16 +179,6 @@ gpk_watch_refresh_tooltip (GpkWatch *watch)
g_string_append (string, text);
g_free (text);
- /* do we have any cached messages to show? */
- len = watch->priv->cached_messages->len;
- if (len > 0) {
- if (string->len > 0)
- g_string_append_c (string, '\n');
- g_string_append_printf (string, ngettext ("%i message from the package manager",
- "%i messages from the package manager", len), len);
- goto out;
- }
-
egg_debug ("nothing to show");
goto out;
}
@@ -305,7 +267,6 @@ gpk_watch_refresh_icon (GpkWatch *watch)
const gchar *icon_name = NULL;
PkBitfield status;
gint value = -1;
- guint len;
g_return_val_if_fail (GPK_IS_WATCH (watch), FALSE);
@@ -362,14 +323,6 @@ gpk_watch_refresh_icon (GpkWatch *watch)
icon_name = gpk_restart_enum_to_icon_name (watch->priv->restart);
goto out;
}
-
- /* do we have any cached messages to show? */
- len = watch->priv->cached_messages->len;
- if (len > 0) {
- icon_name = "pk-setup";
- goto out;
- }
-
out:
/* no icon, hide */
if (icon_name == NULL) {
@@ -522,121 +475,6 @@ gpk_watch_popup_menu_cb (GtkStatusIcon *status_icon, guint button, guint32 times
}
/**
- * gpk_watch_menu_show_messages_cb:
- **/
-static void
-gpk_watch_menu_show_messages_cb (GtkMenuItem *item, gpointer data)
-{
- GpkWatch *watch = GPK_WATCH (data);
- GtkBuilder *builder;
- GtkWidget *main_window;
- GtkWidget *widget;
- GtkListStore *list_store;
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
- GtkTreeIter iter;
- GtkTreeModel *model;
- guint i;
- GpkWatchCachedMessage *cached_message;
- guint retval;
- GError *error = NULL;
-
- /* get UI */
- builder = gtk_builder_new ();
- retval = gtk_builder_add_from_file (builder, GPK_DATA "/gpk-repo.ui", &error);
- if (retval == 0) {
- egg_warning ("failed to load ui: %s", error->message);
- g_error_free (error);
- goto out_build;
- }
-
- main_window = GTK_WIDGET (gtk_builder_get_object (builder, "dialog_repo"));
- gtk_window_set_icon_name (GTK_WINDOW (main_window), GPK_ICON_SOFTWARE_LOG);
- gtk_window_set_title (GTK_WINDOW (main_window), _("Package Manager Messages"));
-
- /* set a size, if the screen allows */
- gpk_window_set_size_request (GTK_WINDOW(main_window), 500, 200);
-
- /* Get the main window quit */
- g_signal_connect_swapped (main_window, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
-
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_close"));
- g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_help"));
- gtk_widget_hide (widget);
-
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "checkbutton_detail"));
- gtk_widget_hide (widget);
-
- /* create list stores */
- list_store = gtk_list_store_new (GPK_WATCH_COLUMN_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-
- /* create repo tree view */
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "treeview_repo"));
- gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (list_store));
-
- /* column for text */
- renderer = gtk_cell_renderer_text_new ();
- g_object_set (renderer, "yalign", 0.0, NULL);
- g_object_set (renderer, "wrap-mode", PANGO_WRAP_WORD, NULL);
- g_object_set (renderer, "wrap-width", 400, NULL);
-
- /* TRANSLATORS: column for the message type */
- column = gtk_tree_view_column_new_with_attributes (_("Message"), renderer,
- "markup", GPK_WATCH_COLUMN_TEXT, NULL);
- gtk_tree_view_column_set_sort_column_id (column, GPK_WATCH_COLUMN_TEXT);
- gtk_tree_view_append_column (GTK_TREE_VIEW(widget), column);
-
- /* column for details */
- renderer = gtk_cell_renderer_text_new ();
- g_object_set (renderer, "yalign", 0.0, NULL);
- g_object_set (renderer, "wrap-mode", PANGO_WRAP_WORD, NULL);
- g_object_set (renderer, "wrap-width", 400, NULL);
-
- /* TRANSLATORS: column for the message description */
- column = gtk_tree_view_column_new_with_attributes (_("Details"), renderer,
- "markup", GPK_WATCH_COLUMN_DETAILS, NULL);
- gtk_tree_view_column_set_sort_column_id (column, GPK_WATCH_COLUMN_TEXT);
- gtk_tree_view_append_column (GTK_TREE_VIEW(widget), column);
-
- gtk_tree_view_columns_autosize (GTK_TREE_VIEW(widget));
-
- /* add items to treeview */
- model = gtk_tree_view_get_model (GTK_TREE_VIEW(widget));
- for (i=0; i<watch->priv->cached_messages->len; i++) {
- cached_message = g_ptr_array_index (watch->priv->cached_messages, i);
- gtk_list_store_append (GTK_LIST_STORE(model), &iter);
- gtk_list_store_set (list_store, &iter,
- GPK_WATCH_COLUMN_TEXT, gpk_message_enum_to_localised_text (cached_message->type),
- GPK_WATCH_COLUMN_TID, cached_message->tid,
- GPK_WATCH_COLUMN_DETAILS, cached_message->details,
- -1);
- }
-
- /* show window */
- gtk_widget_show (main_window);
-
- /* focus back to the close button */
- widget = GTK_WIDGET (gtk_builder_get_object (builder, "button_close"));
- gtk_widget_grab_focus (widget);
-
- /* wait */
- gtk_main ();
-
- gtk_widget_hide (main_window);
-
- g_ptr_array_set_size (watch->priv->cached_messages, 0);
-
- g_object_unref (list_store);
-out_build:
- g_object_unref (builder);
-
- /* refresh UI */
- gpk_watch_refresh_icon (watch);
- gpk_watch_refresh_tooltip (watch);
-}
-
-/**
* gpk_watch_set_status:
**/
static gboolean
@@ -912,7 +750,6 @@ gpk_watch_activate_status_cb (GtkStatusIcon *status_icon, GpkWatch *watch)
GtkMenu *menu = (GtkMenu*) gtk_menu_new ();
GtkWidget *widget;
GtkWidget *image;
- guint len;
gboolean show_hide = FALSE;
gboolean can_restart = FALSE;
@@ -923,19 +760,6 @@ gpk_watch_activate_status_cb (GtkStatusIcon *status_icon, GpkWatch *watch)
/* add jobs as drop down */
gpk_watch_populate_menu_with_jobs (watch, menu);
- /* any messages to show? */
- len = watch->priv->cached_messages->len;
- if (len > 0) {
- /* TRANSLATORS: messages from the transaction */
- widget = gtk_image_menu_item_new_with_mnemonic (_("_Show messages"));
- image = gtk_image_new_from_icon_name ("edit-paste", GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (widget), image);
- g_signal_connect (G_OBJECT (widget), "activate",
- G_CALLBACK (gpk_watch_menu_show_messages_cb), watch);
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget);
- show_hide = TRUE;
- }
-
/* log out session */
if (watch->priv->restart == PK_RESTART_ENUM_SESSION ||
watch->priv->restart == PK_RESTART_ENUM_SECURITY_SESSION) {
@@ -1110,7 +934,7 @@ gpk_watch_set_proxy_cb (GObject *object, GAsyncResult *res, GpkWatch *watch)
gboolean ret;
/* we can run again */
- watch->priv->set_proxy_timeout = 0;
+ watch->priv->set_proxy_id = 0;
/* get the result */
ret = pk_control_set_proxy_finish (control, res, &error);
@@ -1150,11 +974,11 @@ gpk_watch_set_proxies_ratelimit (GpkWatch *watch)
static gboolean
gpk_watch_set_proxies (GpkWatch *watch)
{
- if (watch->priv->set_proxy_timeout != 0) {
+ if (watch->priv->set_proxy_id != 0) {
egg_debug ("already scheduled");
return FALSE;
}
- watch->priv->set_proxy_timeout = g_timeout_add (GPK_WATCH_SET_PROXY_RATE_LIMIT,
+ watch->priv->set_proxy_id = g_timeout_add (GPK_WATCH_SET_PROXY_RATE_LIMIT,
(GSourceFunc) gpk_watch_set_proxies_ratelimit, watch);
return TRUE;
}
@@ -1287,7 +1111,6 @@ gpk_watch_process_messages_cb (PkMessage *item, GpkWatch *watch)
GError *error = NULL;
gboolean value;
NotifyNotification *notification;
- GpkWatchCachedMessage *cached_message;
PkMessageEnum type;
gchar *details;
@@ -1312,16 +1135,9 @@ gpk_watch_process_messages_cb (PkMessage *item, GpkWatch *watch)
goto out;
}
- /* add to list */
- cached_message = g_new0 (GpkWatchCachedMessage, 1);
- cached_message->type = type;
- cached_message->tid = NULL;
- cached_message->details = g_strdup (details);
- g_ptr_array_add (watch->priv->cached_messages, cached_message);
-
/* close existing */
- if (watch->priv->notification_cached_messages != NULL) {
- ret = notify_notification_close (watch->priv->notification_cached_messages, &error);
+ if (watch->priv->notification_message != NULL) {
+ ret = notify_notification_close (watch->priv->notification_message, &error);
if (!ret) {
egg_warning ("error: %s", error->message);
g_error_free (error);
@@ -1337,7 +1153,7 @@ gpk_watch_process_messages_cb (PkMessage *item, GpkWatch *watch)
}
/* do the bubble */
- notification = notify_notification_new_with_status_icon (_("New package manager message"), NULL, "emblem-important", watch->priv->status_icon);
+ notification = notify_notification_new_with_status_icon (gpk_message_enum_to_localised_text (type), details, "emblem-important", watch->priv->status_icon);
notify_notification_set_timeout (notification, NOTIFY_EXPIRES_NEVER);
notify_notification_set_urgency (notification, NOTIFY_URGENCY_LOW);
ret = notify_notification_show (notification, &error);
@@ -1345,7 +1161,7 @@ gpk_watch_process_messages_cb (PkMessage *item, GpkWatch *watch)
egg_warning ("error: %s", error->message);
g_error_free (error);
}
- watch->priv->notification_cached_messages = notification;
+ watch->priv->notification_message = notification;
out:
g_free (details);
}
@@ -1746,7 +1562,7 @@ gpk_watch_init (GpkWatch *watch)
{
watch->priv = GPK_WATCH_GET_PRIVATE (watch);
watch->priv->error_details = NULL;
- watch->priv->notification_cached_messages = NULL;
+ watch->priv->notification_message = NULL;
watch->priv->transaction_id = NULL;
watch->priv->restart = PK_RESTART_ENUM_NONE;
watch->priv->hide_warning = FALSE;
@@ -1756,8 +1572,7 @@ gpk_watch_init (GpkWatch *watch)
watch->priv->gconf_client = gconf_client_get_default ();
watch->priv->status_icon = gtk_status_icon_new ();
- watch->priv->set_proxy_timeout = 0;
- watch->priv->cached_messages = g_ptr_array_new_with_free_func ((GDestroyNotify) gpk_watch_cached_message_free);
+ watch->priv->set_proxy_id = 0;
watch->priv->restart_package_names = g_ptr_array_new_with_free_func (g_free);
watch->priv->task = PK_TASK(gpk_task_new ());
g_object_set (watch->priv->task,
@@ -1825,8 +1640,8 @@ gpk_watch_finalize (GObject *object)
g_return_if_fail (watch->priv != NULL);
/* we might we waiting for a proxy update */
- if (watch->priv->set_proxy_timeout != 0)
- g_source_remove (watch->priv->set_proxy_timeout);
+ if (watch->priv->set_proxy_id != 0)
+ g_source_remove (watch->priv->set_proxy_id);
g_free (watch->priv->error_details);
g_free (watch->priv->transaction_id);
@@ -1840,7 +1655,6 @@ gpk_watch_finalize (GObject *object)
g_object_unref (watch->priv->status_icon);
g_object_unref (watch->priv->tlist);
g_ptr_array_unref (watch->priv->array_progress);
- g_ptr_array_unref (watch->priv->cached_messages);
g_ptr_array_unref (watch->priv->restart_package_names);
G_OBJECT_CLASS (gpk_watch_parent_class)->finalize (object);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]