gnome-packagekit r224 - trunk/src
- From: rhughes svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-packagekit r224 - trunk/src
- Date: Wed, 11 Jun 2008 15:30:24 +0000 (UTC)
Author: rhughes
Date: Wed Jun 11 15:30:23 2008
New Revision: 224
URL: http://svn.gnome.org/viewvc/gnome-packagekit?rev=224&view=rev
Log:
from git
Modified:
trunk/src/Makefile.am
trunk/src/gpk-application.c
trunk/src/gpk-check-update.c
trunk/src/gpk-client-run.c
trunk/src/gpk-client.c
trunk/src/gpk-client.h
trunk/src/gpk-repo.c
trunk/src/gpk-update-viewer.c
trunk/src/gpk-watch.c
Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Wed Jun 11 15:30:23 2008
@@ -168,6 +168,8 @@
gpk-application.h \
gpk-application-state.c \
gpk-application-state.h \
+ gpk-cell-renderer-uri.c \
+ gpk-cell-renderer-uri.h \
$(shared_SOURCES) \
$(NULL)
@@ -188,8 +190,6 @@
gpk_update_viewer_SOURCES = \
gpk-update-viewer.c \
- gpk-statusbar.c \
- gpk-statusbar.h \
gpk-cell-renderer-uri.c \
gpk-cell-renderer-uri.h \
$(shared_SOURCES) \
@@ -201,8 +201,6 @@
gpk_repo_SOURCES = \
gpk-repo.c \
- gpk-statusbar.c \
- gpk-statusbar.h \
$(shared_SOURCES) \
$(NULL)
Modified: trunk/src/gpk-application.c
==============================================================================
--- trunk/src/gpk-application.c (original)
+++ trunk/src/gpk-application.c Wed Jun 11 15:30:23 2008
@@ -53,6 +53,7 @@
#include "gpk-animated-icon.h"
#include "gpk-client-run.h"
#include "gpk-client-chooser.h"
+#include "gpk-cell-renderer-uri.h"
static void gpk_application_class_init (GpkApplicationClass *klass);
static void gpk_application_init (GpkApplication *application);
@@ -88,6 +89,7 @@
GConfClient *gconf_client;
GtkListStore *packages_store;
GtkListStore *groups_store;
+ GtkListStore *details_store;
PkControl *control;
PkClient *client_search;
PkClient *client_action;
@@ -135,6 +137,13 @@
GROUPS_COLUMN_LAST
};
+enum {
+ DETAIL_COLUMN_TITLE,
+ DETAIL_COLUMN_TEXT,
+ DETAIL_COLUMN_URI,
+ DETAIL_COLUMN_LAST
+};
+
static guint signals [LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE (GpkApplication, gpk_application, G_TYPE_OBJECT)
@@ -263,6 +272,189 @@
}
/**
+ * gpk_application_allow_install:
+ **/
+static void
+gpk_application_allow_install (GpkApplication *application, gboolean allow)
+{
+ GtkWidget *widget;
+ widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_install");
+ gtk_widget_set_sensitive (widget, allow);
+}
+
+/**
+ * gpk_application_allow_remove:
+ **/
+static void
+gpk_application_allow_remove (GpkApplication *application, gboolean allow)
+{
+ GtkWidget *widget;
+ widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_remove");
+ gtk_widget_set_sensitive (widget, allow);
+}
+
+/**
+ * gpk_application_packages_checkbox_invert:
+ **/
+static void
+gpk_application_packages_checkbox_invert (GpkApplication *application)
+{
+ GtkTreeView *treeview;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkTreeSelection *selection;
+ GtkWidget *widget;
+ const gchar *icon;
+ gboolean checkbox;
+ GpkPackageState state;
+ gboolean ret;
+
+ /* get the selection and add */
+ widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_packages");
+ treeview = GTK_TREE_VIEW (widget);
+ selection = gtk_tree_view_get_selection (treeview);
+ ret = gtk_tree_selection_get_selected (selection, &model, &iter);
+ if (!ret) {
+ pk_warning ("no selection");
+ return;
+ }
+
+ gtk_tree_model_get (model, &iter, PACKAGES_COLUMN_STATE, &state, -1);
+
+ /* do something with the value */
+ gpk_application_state_invert (&state);
+
+ /* get the new icon */
+ icon = gpk_application_state_get_icon (state);
+ checkbox = gpk_application_state_get_checkbox (state);
+
+ /* set new value */
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter,
+ PACKAGES_COLUMN_STATE, state,
+ PACKAGES_COLUMN_CHECKBOX, checkbox,
+ PACKAGES_COLUMN_IMAGE, icon,
+ -1);
+}
+
+/**
+ * gpk_application_get_checkbox_enable:
+ **/
+static gboolean
+gpk_application_get_checkbox_enable (GpkApplication *application, GpkPackageState state)
+{
+ gboolean enable_installed = TRUE;
+ gboolean enable_available = TRUE;
+
+ if (application->priv->action == PK_ACTION_INSTALL) {
+ enable_installed = FALSE;
+ } else if (application->priv->action == PK_ACTION_REMOVE) {
+ enable_available = FALSE;
+ }
+
+ if (gpk_application_state_installed (state)) {
+ return enable_installed;
+ }
+ return enable_available;
+}
+
+/**
+ * gpk_application_set_buttons_apply_clear:
+ **/
+static void
+gpk_application_set_buttons_apply_clear (GpkApplication *application)
+{
+ GtkWidget *widget;
+ GtkTreeView *treeview;
+ gboolean valid;
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ GpkPackageState state;
+ gboolean enabled;
+
+ g_return_if_fail (PK_IS_APPLICATION (application));
+
+ /* okay to apply? */
+ if (application->priv->package_list->len == 0) {
+ widget = glade_xml_get_widget (application->priv->glade_xml, "button_apply");
+ gtk_widget_set_sensitive (widget, FALSE);
+ widget = glade_xml_get_widget (application->priv->glade_xml, "button_clear");
+ gtk_widget_set_sensitive (widget, FALSE);
+ application->priv->action = PK_ACTION_NONE;
+ } else {
+ widget = glade_xml_get_widget (application->priv->glade_xml, "button_apply");
+ gtk_widget_set_sensitive (widget, TRUE);
+ widget = glade_xml_get_widget (application->priv->glade_xml, "button_clear");
+ gtk_widget_set_sensitive (widget, TRUE);
+ }
+
+ /* correct the enabled state */
+ widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_packages");
+ treeview = GTK_TREE_VIEW (widget);
+ model = gtk_tree_view_get_model (treeview);
+ valid = gtk_tree_model_get_iter_first (model, &iter);
+
+ /* for all current items, reset the state if in the list */
+ while (valid) {
+ gtk_tree_model_get (model, &iter, PACKAGES_COLUMN_STATE, &state, -1);
+ enabled = gpk_application_get_checkbox_enable (application, state);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, PACKAGES_COLUMN_CHECKBOX_ENABLE, enabled, -1);
+ valid = gtk_tree_model_iter_next (model, &iter);
+ }
+}
+
+/**
+ * gpk_application_install:
+ **/
+static gboolean
+gpk_application_install (GpkApplication *application)
+{
+ gboolean ret;
+ guint index;
+
+ g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
+
+ /* shouldn't be possible */
+ if (application->priv->package == NULL) {
+ pk_warning ("no package");
+ return FALSE;
+ }
+
+ /* changed mind, or wrong mode */
+ if (application->priv->action == PK_ACTION_REMOVE) {
+ ret = pk_ptr_array_remove_string (application->priv->package_list, application->priv->package);
+ if (ret) {
+ pk_debug ("removed %s from package list", application->priv->package);
+
+ /* correct buttons */
+ gpk_application_allow_install (application, FALSE);
+ gpk_application_allow_remove (application, TRUE);
+ gpk_application_packages_checkbox_invert (application);
+ gpk_application_set_buttons_apply_clear (application);
+ return TRUE;
+ }
+ pk_warning ("wrong mode and not in list");
+ return FALSE;
+ }
+
+ /* already added */
+ index = pk_ptr_array_find_string (application->priv->package_list, application->priv->package);
+ if (index != -1) {
+ pk_warning ("already added");
+ return FALSE;
+ }
+
+ application->priv->action = PK_ACTION_INSTALL;
+ g_ptr_array_add (application->priv->package_list, g_strdup (application->priv->package));
+
+ /* correct buttons */
+ gpk_application_allow_install (application, FALSE);
+ gpk_application_allow_remove (application, TRUE);
+ gpk_application_packages_checkbox_invert (application);
+ gpk_application_set_buttons_apply_clear (application);
+ return TRUE;
+}
+
+/**
* gpk_application_menu_homepage_cb:
**/
static void
@@ -336,8 +528,57 @@
g_strfreev (files);
}
-static void gpk_application_button_install_cb (GtkWidget *widget_button, GpkApplication *application);
-static void gpk_application_button_remove_cb (GtkWidget *widget_button, GpkApplication *application);
+/**
+ * gpk_application_remove:
+ **/
+static gboolean
+gpk_application_remove (GpkApplication *application)
+{
+ gboolean ret;
+ guint index;
+
+ g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
+
+ /* shouldn't be possible */
+ if (application->priv->package == NULL) {
+ pk_warning ("no package");
+ return FALSE;
+ }
+
+ /* changed mind, or wrong mode */
+ if (application->priv->action == PK_ACTION_INSTALL) {
+ ret = pk_ptr_array_remove_string (application->priv->package_list, application->priv->package);
+ if (ret) {
+ pk_debug ("removed %s from package list", application->priv->package);
+
+ /* correct buttons */
+ gpk_application_allow_install (application, TRUE);
+ gpk_application_allow_remove (application, FALSE);
+ gpk_application_packages_checkbox_invert (application);
+ gpk_application_set_buttons_apply_clear (application);
+ return TRUE;
+ }
+ pk_warning ("wrong mode and not in list");
+ return FALSE;
+ }
+
+ /* already added */
+ index = pk_ptr_array_find_string (application->priv->package_list, application->priv->package);
+ if (index != -1) {
+ pk_warning ("already added");
+ return FALSE;
+ }
+
+ application->priv->action = PK_ACTION_REMOVE;
+ g_ptr_array_add (application->priv->package_list, g_strdup (application->priv->package));
+
+ /* correct buttons */
+ gpk_application_allow_install (application, TRUE);
+ gpk_application_allow_remove (application, FALSE);
+ gpk_application_packages_checkbox_invert (application);
+ gpk_application_set_buttons_apply_clear (application);
+ return TRUE;
+}
/**
* gpk_application_menu_install_cb:
@@ -345,7 +586,7 @@
static void
gpk_application_menu_install_cb (GtkAction *action, GpkApplication *application)
{
- gpk_application_button_install_cb (NULL, application);
+ gpk_application_install (application);
}
/**
@@ -354,7 +595,7 @@
static void
gpk_application_menu_remove_cb (GtkAction *action, GpkApplication *application)
{
- gpk_application_button_remove_cb (NULL, application);
+ gpk_application_remove (application);
}
/**
@@ -518,11 +759,41 @@
}
/**
+ * gpk_application_add_detail_item:
+ **/
+static void
+gpk_application_add_detail_item (GpkApplication *application, const gchar *title, const gchar *text, const gchar *uri)
+{
+ gchar *markup;
+ GtkWidget *tree_view;
+ GtkTreeIter iter;
+ GtkTreeSelection *selection;
+
+ /* format */
+ markup = g_strdup_printf ("<b>%s:</b>", title);
+
+ pk_debug ("%s %s %s", markup, text, uri);
+ gtk_list_store_append (application->priv->details_store, &iter);
+ gtk_list_store_set (application->priv->details_store, &iter,
+ DETAIL_COLUMN_TITLE, markup,
+ DETAIL_COLUMN_TEXT, text,
+ DETAIL_COLUMN_URI, uri,
+ -1);
+
+ g_free (markup);
+
+ tree_view = glade_xml_get_widget (application->priv->glade_xml, "treeview_detail");
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_NONE);
+ gtk_tree_view_columns_autosize (GTK_TREE_VIEW (tree_view));
+}
+
+/**
* gpk_application_details_cb:
**/
static void
gpk_application_details_cb (PkClient *client, const gchar *package_id,
- const gchar *license, PkGroupEnum group,
+ const gchar *license, PkGroupEnum group_enum,
const gchar *detail, const gchar *url,
guint64 size, GpkApplication *application)
{
@@ -532,6 +803,7 @@
PkPackageId *ident;
const gchar *repo_name;
const gchar *icon;
+ const gchar *group;
gboolean valid;
gboolean installed;
PkInfoEnum info;
@@ -545,10 +817,6 @@
}
installed = pk_strequal (ident->data, "installed");
- pk_debug ("details = %s:%i:%s:%s", package_id, group, detail, url);
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_show (widget);
-
/* get the icon */
icon = pk_extra_get_icon_name (application->priv->extra, ident->name);
@@ -564,25 +832,39 @@
gtk_image_set_from_icon_name (GTK_IMAGE (widget), icon, GTK_ICON_SIZE_DIALOG);
gtk_widget_show (widget);
+ gtk_list_store_clear (application->priv->details_store);
+
/* homepage */
widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_homepage");
if (pk_strzero (url) == FALSE) {
gtk_widget_set_sensitive (widget, TRUE);
- g_free (application->priv->url);
- /* save the url for the button */
- application->priv->url = g_strdup (url);
/* set the tooltip to where we are going */
text = g_strdup_printf (_("Visit %s"), url);
gtk_widget_set_tooltip_text (widget, text);
g_free (text);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- gtk_widget_set_sensitive (widget, TRUE);
+ gpk_application_add_detail_item (application, _("Project"), _("Hompage"), url);
+
+ /* save the url for the button */
+ g_free (application->priv->url);
+ application->priv->url = g_strdup (url);
+
} else {
gtk_widget_set_sensitive (widget, FALSE);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- gtk_widget_set_sensitive (widget, FALSE);
+ }
+
+ /* group */
+ if (TRUE || group_enum != PK_GROUP_ENUM_UNKNOWN) {
+ group = gpk_group_enum_to_localised_text (group_enum);
+ gpk_application_add_detail_item (application, _("Group"), group, NULL);
+ }
+
+ /* group */
+ if (!pk_strzero (license)) {
+ /* This should be a licence enum value - bad API, bad.
+ * license = pk_license_enum_to_text (license_enum); */
+ gpk_application_add_detail_item (application, _("License"), license, NULL);
}
/* set the description */
@@ -591,114 +873,27 @@
gpk_application_set_text_buffer (widget, text);
g_free (text);
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
-
/* if non-zero, set the size */
if (size > 0) {
/* set the size */
- widget = glade_xml_get_widget (application->priv->glade_xml, "label_filesize");
value = gpk_size_to_si_size_text (size);
if (installed) {
- text = g_strdup_printf (_("Installed size: %s"), value);
+ gpk_application_add_detail_item (application, _("Installed size"), value, NULL);
} else {
- text = g_strdup_printf (_("Download size: %s"), value);
+ gpk_application_add_detail_item (application, _("Download size"), value, NULL);
}
- gtk_label_set_label (GTK_LABEL (widget), text);
- g_free (text);
g_free (value);
-
- gtk_widget_show (widget);
-
- /* and the containter */
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_show (widget);
- } else {
- widget = glade_xml_get_widget (application->priv->glade_xml, "label_filesize");
- gtk_widget_hide (widget);
}
/* set the repo text, or hide if installed */
- if (installed) {
- widget = glade_xml_get_widget (application->priv->glade_xml, "label_source");
- gtk_widget_hide (widget);
- } else {
- widget = glade_xml_get_widget (application->priv->glade_xml, "label_source");
- gtk_widget_show (widget);
-
+ if (!installed) {
/* see if we can get the full name of the repo from the repo_id */
repo_name = gpk_application_get_full_repo_name (application, ident->data);
- text = g_strdup_printf (_("Source: %s"), repo_name);
- gtk_label_set_label (GTK_LABEL (widget), text);
- g_free (text);
-
- /* and the containter */
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_show (widget);
+ gpk_application_add_detail_item (application, _("Source"), repo_name, NULL);
}
pk_package_id_free (ident);
}
-static gint
-pk_ptr_array_find_string (GPtrArray *array, const gchar *string)
-{
- gint i;
- gchar *item;
-
- g_return_val_if_fail (array != NULL, FALSE);
- g_return_val_if_fail (string != NULL, FALSE);
-
- for (i=0; i<array->len; i++) {
- item = (gchar *) g_ptr_array_index (array, i);
- if (pk_strequal (string, item)) {
- return i;
- }
- }
- return -1;
-}
-
-static gboolean
-pk_ptr_array_remove_string (GPtrArray *array, const gchar *string)
-{
- guint i;
- gchar *item;
- gboolean ret = FALSE;
-
- g_return_val_if_fail (array != NULL, FALSE);
- g_return_val_if_fail (string != NULL, FALSE);
-
- for (i=0; i<array->len; i++) {
- item = (gchar *) g_ptr_array_index (array, i);
- if (pk_strequal (string, item)) {
- g_free (item);
- g_ptr_array_remove_index (array, i);
- ret = TRUE;
- }
- }
- return ret;
-}
-
-/**
- * gpk_application_get_checkbox_enable:
- **/
-static gboolean
-gpk_application_get_checkbox_enable (GpkApplication *application, GpkPackageState state)
-{
- gboolean enable_installed = TRUE;
- gboolean enable_available = TRUE;
-
- if (application->priv->action == PK_ACTION_INSTALL) {
- enable_installed = FALSE;
- } else if (application->priv->action == PK_ACTION_REMOVE) {
- enable_available = FALSE;
- }
-
- if (gpk_application_state_installed (state)) {
- return enable_installed;
- }
- return enable_available;
-}
-
/**
* gpk_application_package_cb:
**/
@@ -809,7 +1004,6 @@
static gboolean
gpk_application_refresh_search_results (GpkApplication *application)
{
- GtkWidget *widget;
gboolean ret;
GError *error = NULL;
PkRoleEnum role;
@@ -830,10 +1024,7 @@
}
/* hide details */
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- gtk_widget_set_sensitive (widget, FALSE);
+ gtk_list_store_clear (application->priv->details_store);
return TRUE;
}
@@ -974,10 +1165,7 @@
application->priv->has_package = FALSE;
/* hide details */
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- gtk_widget_set_sensitive (widget, FALSE);
+ gtk_list_store_clear (application->priv->details_store);
/* switch around buttons */
gpk_application_set_find_cancel_buttons (application, FALSE);
@@ -1001,375 +1189,157 @@
g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
g_return_val_if_fail (application->priv->group != NULL, FALSE);
- /* cancel this, we don't care about old results that are pending */
- ret = pk_client_reset (application->priv->client_search, &error);
- if (!ret) {
- pk_warning ("failed to reset client: %s", error->message);
- g_error_free (error);
- return FALSE;
- }
-
- /* unsorted */
- gpk_application_treeview_set_sorted (application, FALSE);
-
- /* refresh the search as the items may have changed */
- gtk_list_store_clear (application->priv->packages_store);
-
- if (application->priv->search_mode == PK_MODE_GROUP) {
- ret = pk_client_search_group (application->priv->client_search,
- application->priv->filters_current,
- application->priv->group, &error);
- } else {
- ret = pk_client_get_packages (application->priv->client_search,
- application->priv->filters_current, &error);
- }
-
- if (ret) {
- /* switch around buttons */
- gpk_application_set_find_cancel_buttons (application, FALSE);
- } else {
- widget = glade_xml_get_widget (application->priv->glade_xml, "window_manager");
- gpk_error_dialog_modal (GTK_WINDOW (widget), _("The group could not be queried"),
- _("Running the transaction failed"), error->message);
- g_error_free (error);
- }
- return ret;
-}
-
-/**
- * gpk_application_perform_search:
- **/
-static gboolean
-gpk_application_perform_search (GpkApplication *application)
-{
- gboolean ret = FALSE;
-
- if (application->priv->search_mode == PK_MODE_NAME_DETAILS_FILE) {
- ret = gpk_application_perform_search_name_details_file (application);
- } else if (application->priv->search_mode == PK_MODE_GROUP ||
- application->priv->search_mode == PK_MODE_ALL_PACKAGES) {
- ret = gpk_application_perform_search_others (application);
- } else {
- pk_debug ("doing nothing");
- }
- return ret;
-}
-
-/**
- * gpk_application_find_cb:
- **/
-static void
-gpk_application_find_cb (GtkWidget *button_widget, GpkApplication *application)
-{
- g_return_if_fail (PK_IS_APPLICATION (application));
-
- application->priv->search_mode = PK_MODE_NAME_DETAILS_FILE;
- gpk_application_perform_search (application);
-}
-
-/**
- * gpk_application_quit:
- * @event: The event type, unused.
- **/
-static gboolean
-gpk_application_quit (GpkApplication *application)
-{
- gboolean ret;
- GError *error = NULL;
-
- g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
-
- /* we might have visual stuff running, close them down */
- ret = pk_client_cancel (application->priv->client_search, &error);
- if (!ret) {
- pk_warning ("failed to cancel client: %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- ret = pk_client_cancel (application->priv->client_details, &error);
- if (!ret) {
- pk_warning ("failed to cancel client: %s", error->message);
- g_error_free (error);
- error = NULL;
- }
- ret = pk_client_cancel (application->priv->client_files, &error);
- if (!ret) {
- pk_warning ("failed to cancel client: %s", error->message);
- g_error_free (error);
- error = NULL;
- }
-
- pk_debug ("emitting action-close");
- g_signal_emit (application, signals [ACTION_CLOSE], 0);
- return TRUE;
-}
-
-/**
- * gpk_application_delete_event_cb:
- * @event: The event type, unused.
- **/
-static gboolean
-gpk_application_delete_event_cb (GtkWidget *widget,
- GdkEvent *event,
- GpkApplication *application)
-{
- g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
-
- gpk_application_quit (application);
- return FALSE;
-}
-
-/**
- * gpk_application_text_changed_cb:
- **/
-static gboolean
-gpk_application_text_changed_cb (GtkEntry *entry, GdkEventKey *event, GpkApplication *application)
-{
- gboolean valid;
- GtkWidget *widget;
- const gchar *package;
- GtkTreeSelection *selection;
-
- g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
-
- widget = glade_xml_get_widget (application->priv->glade_xml, "entry_text");
- package = gtk_entry_get_text (GTK_ENTRY (widget));
-
- /* clear group selection if we have the tab */
- if (pk_enums_contain (application->priv->roles, PK_ROLE_ENUM_SEARCH_GROUP)) {
- widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_groups");
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
- gtk_tree_selection_unselect_all (selection);
- }
-
- /* check for invalid chars */
- valid = pk_strvalidate (package);
-
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_find");
- if (valid == FALSE || pk_strzero (package)) {
- gtk_widget_set_sensitive (widget, FALSE);
- } else {
- gtk_widget_set_sensitive (widget, TRUE);
- }
- return FALSE;
-}
-
-/**
- * gpk_application_set_buttons_apply_clear:
- **/
-static void
-gpk_application_set_buttons_apply_clear (GpkApplication *application)
-{
- GtkWidget *widget;
- GtkTreeView *treeview;
- gboolean valid;
- GtkTreeIter iter;
- GtkTreeModel *model;
- GpkPackageState state;
- gboolean enabled;
-
- g_return_if_fail (PK_IS_APPLICATION (application));
-
- /* okay to apply? */
- if (application->priv->package_list->len == 0) {
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_apply");
- gtk_widget_set_sensitive (widget, FALSE);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_clear");
- gtk_widget_set_sensitive (widget, FALSE);
- application->priv->action = PK_ACTION_NONE;
- } else {
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_apply");
- gtk_widget_set_sensitive (widget, TRUE);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_clear");
- gtk_widget_set_sensitive (widget, TRUE);
- }
-
- /* correct the enabled state */
- widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_packages");
- treeview = GTK_TREE_VIEW (widget);
- model = gtk_tree_view_get_model (treeview);
- valid = gtk_tree_model_get_iter_first (model, &iter);
-
- /* for all current items, reset the state if in the list */
- while (valid) {
- gtk_tree_model_get (model, &iter, PACKAGES_COLUMN_STATE, &state, -1);
- enabled = gpk_application_get_checkbox_enable (application, state);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, PACKAGES_COLUMN_CHECKBOX_ENABLE, enabled, -1);
- valid = gtk_tree_model_iter_next (model, &iter);
- }
-}
-
-/**
- * gpk_application_packages_checkbox_invert:
- **/
-static void
-gpk_application_packages_checkbox_invert (GpkApplication *application)
-{
- GtkTreeView *treeview;
- GtkTreeModel *model;
- GtkTreeIter iter;
- GtkTreeSelection *selection;
- GtkWidget *widget;
- const gchar *icon;
- gboolean checkbox;
- GpkPackageState state;
- gboolean ret;
-
- /* get the selection and add */
- widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_packages");
- treeview = GTK_TREE_VIEW (widget);
- selection = gtk_tree_view_get_selection (treeview);
- ret = gtk_tree_selection_get_selected (selection, &model, &iter);
+ /* cancel this, we don't care about old results that are pending */
+ ret = pk_client_reset (application->priv->client_search, &error);
if (!ret) {
- pk_warning ("no selection");
- return;
+ pk_warning ("failed to reset client: %s", error->message);
+ g_error_free (error);
+ return FALSE;
}
- gtk_tree_model_get (model, &iter, PACKAGES_COLUMN_STATE, &state, -1);
+ /* unsorted */
+ gpk_application_treeview_set_sorted (application, FALSE);
- /* do something with the value */
- gpk_application_state_invert (&state);
+ /* refresh the search as the items may have changed */
+ gtk_list_store_clear (application->priv->packages_store);
- /* get the new icon */
- icon = gpk_application_state_get_icon (state);
- checkbox = gpk_application_state_get_checkbox (state);
+ if (application->priv->search_mode == PK_MODE_GROUP) {
+ ret = pk_client_search_group (application->priv->client_search,
+ application->priv->filters_current,
+ application->priv->group, &error);
+ } else {
+ ret = pk_client_get_packages (application->priv->client_search,
+ application->priv->filters_current, &error);
+ }
- /* set new value */
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- PACKAGES_COLUMN_STATE, state,
- PACKAGES_COLUMN_CHECKBOX, checkbox,
- PACKAGES_COLUMN_IMAGE, icon,
- -1);
+ if (ret) {
+ /* switch around buttons */
+ gpk_application_set_find_cancel_buttons (application, FALSE);
+ } else {
+ widget = glade_xml_get_widget (application->priv->glade_xml, "window_manager");
+ gpk_error_dialog_modal (GTK_WINDOW (widget), _("The group could not be queried"),
+ _("Running the transaction failed"), error->message);
+ g_error_free (error);
+ }
+ return ret;
}
/**
- * gpk_application_allow_install:
+ * gpk_application_perform_search:
**/
-static void
-gpk_application_allow_install (GpkApplication *application, gboolean allow)
+static gboolean
+gpk_application_perform_search (GpkApplication *application)
{
- GtkWidget *widget;
+ gboolean ret = FALSE;
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_install");
- gtk_widget_set_sensitive (widget, allow);
- widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_install");
- gtk_widget_set_sensitive (widget, allow);
+ if (application->priv->search_mode == PK_MODE_NAME_DETAILS_FILE) {
+ ret = gpk_application_perform_search_name_details_file (application);
+ } else if (application->priv->search_mode == PK_MODE_GROUP ||
+ application->priv->search_mode == PK_MODE_ALL_PACKAGES) {
+ ret = gpk_application_perform_search_others (application);
+ } else {
+ pk_debug ("doing nothing");
+ }
+ return ret;
}
/**
- * gpk_application_allow_remove:
+ * gpk_application_find_cb:
**/
static void
-gpk_application_allow_remove (GpkApplication *application, gboolean allow)
+gpk_application_find_cb (GtkWidget *button_widget, GpkApplication *application)
{
- GtkWidget *widget;
+ g_return_if_fail (PK_IS_APPLICATION (application));
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_remove");
- gtk_widget_set_sensitive (widget, allow);
- widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_remove");
- gtk_widget_set_sensitive (widget, allow);
+ application->priv->search_mode = PK_MODE_NAME_DETAILS_FILE;
+ gpk_application_perform_search (application);
}
/**
- * gpk_application_button_remove_cb:
+ * gpk_application_quit:
+ * @event: The event type, unused.
**/
-static void
-gpk_application_button_remove_cb (GtkWidget *widget_button, GpkApplication *application)
+static gboolean
+gpk_application_quit (GpkApplication *application)
{
gboolean ret;
- guint index;
+ GError *error = NULL;
- g_return_if_fail (PK_IS_APPLICATION (application));
+ g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
- /* shouldn't be possible */
- if (application->priv->package == NULL) {
- pk_warning ("no package");
- return;
+ /* we might have visual stuff running, close them down */
+ ret = pk_client_cancel (application->priv->client_search, &error);
+ if (!ret) {
+ pk_warning ("failed to cancel client: %s", error->message);
+ g_error_free (error);
+ error = NULL;
}
-
- /* changed mind, or wrong mode */
- if (application->priv->action == PK_ACTION_INSTALL) {
- ret = pk_ptr_array_remove_string (application->priv->package_list, application->priv->package);
- if (ret) {
- pk_debug ("removed %s from package list", application->priv->package);
-
- /* correct buttons */
- gpk_application_allow_install (application, TRUE);
- gpk_application_allow_remove (application, FALSE);
- gpk_application_packages_checkbox_invert (application);
- gpk_application_set_buttons_apply_clear (application);
- return;
- }
- pk_warning ("wrong mode and not in list");
- return;
+ ret = pk_client_cancel (application->priv->client_details, &error);
+ if (!ret) {
+ pk_warning ("failed to cancel client: %s", error->message);
+ g_error_free (error);
+ error = NULL;
}
-
- /* already added */
- index = pk_ptr_array_find_string (application->priv->package_list, application->priv->package);
- if (index != -1) {
- pk_warning ("already added");
- return;
+ ret = pk_client_cancel (application->priv->client_files, &error);
+ if (!ret) {
+ pk_warning ("failed to cancel client: %s", error->message);
+ g_error_free (error);
+ error = NULL;
}
- application->priv->action = PK_ACTION_REMOVE;
- g_ptr_array_add (application->priv->package_list, g_strdup (application->priv->package));
-
- /* correct buttons */
- gpk_application_allow_install (application, TRUE);
- gpk_application_allow_remove (application, FALSE);
- gpk_application_packages_checkbox_invert (application);
- gpk_application_set_buttons_apply_clear (application);
+ pk_debug ("emitting action-close");
+ g_signal_emit (application, signals [ACTION_CLOSE], 0);
+ return TRUE;
}
/**
- * gpk_application_button_install_cb:
+ * gpk_application_delete_event_cb:
+ * @event: The event type, unused.
**/
-static void
-gpk_application_button_install_cb (GtkWidget *widget_button, GpkApplication *application)
+static gboolean
+gpk_application_delete_event_cb (GtkWidget *widget,
+ GdkEvent *event,
+ GpkApplication *application)
{
- gboolean ret;
- guint index;
+ g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
- g_return_if_fail (PK_IS_APPLICATION (application));
+ gpk_application_quit (application);
+ return FALSE;
+}
- /* shouldn't be possible */
- if (application->priv->package == NULL) {
- pk_warning ("no package");
- return;
- }
+/**
+ * gpk_application_text_changed_cb:
+ **/
+static gboolean
+gpk_application_text_changed_cb (GtkEntry *entry, GdkEventKey *event, GpkApplication *application)
+{
+ gboolean valid;
+ GtkWidget *widget;
+ const gchar *package;
+ GtkTreeSelection *selection;
- /* changed mind, or wrong mode */
- if (application->priv->action == PK_ACTION_REMOVE) {
- ret = pk_ptr_array_remove_string (application->priv->package_list, application->priv->package);
- if (ret) {
- pk_debug ("removed %s from package list", application->priv->package);
+ g_return_val_if_fail (PK_IS_APPLICATION (application), FALSE);
- /* correct buttons */
- gpk_application_allow_install (application, FALSE);
- gpk_application_allow_remove (application, TRUE);
- gpk_application_packages_checkbox_invert (application);
- gpk_application_set_buttons_apply_clear (application);
- return;
- }
- pk_warning ("wrong mode and not in list");
- return;
- }
+ widget = glade_xml_get_widget (application->priv->glade_xml, "entry_text");
+ package = gtk_entry_get_text (GTK_ENTRY (widget));
- /* already added */
- index = pk_ptr_array_find_string (application->priv->package_list, application->priv->package);
- if (index != -1) {
- pk_warning ("already added");
- return;
+ /* clear group selection if we have the tab */
+ if (pk_enums_contain (application->priv->roles, PK_ROLE_ENUM_SEARCH_GROUP)) {
+ widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_groups");
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
+ gtk_tree_selection_unselect_all (selection);
}
- application->priv->action = PK_ACTION_INSTALL;
- g_ptr_array_add (application->priv->package_list, g_strdup (application->priv->package));
+ /* check for invalid chars */
+ valid = pk_strvalidate (package);
- /* correct buttons */
- gpk_application_allow_install (application, FALSE);
- gpk_application_allow_remove (application, TRUE);
- gpk_application_packages_checkbox_invert (application);
- gpk_application_set_buttons_apply_clear (application);
+ widget = glade_xml_get_widget (application->priv->glade_xml, "button_find");
+ if (valid == FALSE || pk_strzero (package)) {
+ gtk_widget_set_sensitive (widget, FALSE);
+ } else {
+ gtk_widget_set_sensitive (widget, TRUE);
+ }
+ return FALSE;
}
/**
@@ -1406,9 +1376,9 @@
gtk_tree_selection_select_iter (selection, &iter);
if (gpk_application_state_get_checkbox (state)) {
- gpk_application_button_remove_cb (NULL, application);
+ gpk_application_remove (application);
} else {
- gpk_application_button_install_cb (NULL, application);
+ gpk_application_install (application);
}
gtk_tree_path_free (path);
}
@@ -1470,16 +1440,6 @@
}
/**
- * gpk_application_button_homepage_cb:
- **/
-static void
-gpk_application_button_homepage_cb (GtkWidget *widget_button, GpkApplication *application)
-{
- g_return_if_fail (PK_IS_APPLICATION (application));
- gpk_gnome_open (application->priv->url);
-}
-
-/**
* gpk_application_button_apply_cb:
**/
static void
@@ -1595,10 +1555,7 @@
g_return_if_fail (PK_IS_APPLICATION (application));
/* hide the details */
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- gtk_widget_set_sensitive (widget, FALSE);
+ gtk_list_store_clear (application->priv->details_store);
/* clear the search text if we clicked the group list */
widget = glade_xml_get_widget (application->priv->glade_xml, "entry_text");
@@ -1652,8 +1609,7 @@
gpk_application_allow_remove (application, FALSE);
widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_selection");
gtk_widget_hide (widget);
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
+ gtk_list_store_clear (application->priv->details_store);
return;
}
@@ -1685,10 +1641,7 @@
gpk_application_set_text_buffer (widget, NULL);
/* hide stuff until we have data */
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- gtk_widget_set_sensitive (widget, FALSE);
+ gtk_list_store_clear (application->priv->details_store);
/* only show run menuitem for installed programs */
ret = gpk_application_state_installed (state);
@@ -2413,9 +2366,9 @@
PACKAGES_COLUMN_STATE, &state,
PACKAGES_COLUMN_ID, &application->priv->package, -1);
if (gpk_application_state_get_checkbox (state)) {
- gpk_application_button_remove_cb (NULL, application);
+ gpk_application_remove (application);
} else {
- gpk_application_button_install_cb (NULL, application);
+ gpk_application_install (application);
}
}
@@ -2452,6 +2405,45 @@
}
/**
+ * gpk_application_treeview_renderer_clicked:
+ **/
+static void
+gpk_application_treeview_renderer_clicked (GtkCellRendererToggle *cell, gchar *uri, GpkApplication *application)
+{
+ pk_debug ("clicked %s", uri);
+ gpk_gnome_open (uri);
+}
+
+/**
+ * gpk_application_treeview_add_columns_description:
+ **/
+static void
+gpk_application_treeview_add_columns_description (GpkApplication *application)
+{
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+ GtkTreeView *treeview;
+
+ treeview = GTK_TREE_VIEW (glade_xml_get_widget (application->priv->glade_xml, "treeview_detail"));
+
+ /* title */
+ column = gtk_tree_view_column_new ();
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ gtk_tree_view_column_add_attribute (column, renderer, "markup", DETAIL_COLUMN_TITLE);
+ gtk_tree_view_append_column (treeview, column);
+
+ /* column for uris */
+ renderer = gpk_cell_renderer_uri_new ();
+ g_signal_connect (renderer, "clicked", G_CALLBACK (gpk_application_treeview_renderer_clicked), application);
+ column = gtk_tree_view_column_new_with_attributes (_("Text"), renderer,
+ "text", DETAIL_COLUMN_TEXT,
+ "uri", DETAIL_COLUMN_URI, NULL);
+ gtk_tree_view_append_column (treeview, column);
+ gtk_tree_view_columns_autosize (treeview);
+}
+
+/**
* gpk_application_init:
**/
static void
@@ -2577,33 +2569,12 @@
g_signal_connect (main_window, "delete_event",
G_CALLBACK (gpk_application_delete_event_cb), application);
- /* install */
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_install");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_application_button_install_cb), application);
- gtk_widget_set_tooltip_text (widget, _("Add current selection"));
- gtk_widget_set_sensitive (widget, FALSE);
-
- /* remove */
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_remove");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_application_button_remove_cb), application);
- gtk_widget_set_tooltip_text (widget, _("Remove current selection"));
- gtk_widget_set_sensitive (widget, FALSE);
-
/* clear */
widget = glade_xml_get_widget (application->priv->glade_xml, "button_clear");
g_signal_connect (widget, "clicked",
G_CALLBACK (gpk_application_button_clear_cb), application);
gtk_widget_set_tooltip_text (widget, _("Clear current selection"));
- /* homepage */
- widget = glade_xml_get_widget (application->priv->glade_xml, "button_homepage");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_application_button_homepage_cb), application);
- gtk_widget_set_tooltip_text (widget, _("Visit project homepage"));
- gtk_widget_set_sensitive (widget, FALSE);
-
/* install */
widget = glade_xml_get_widget (application->priv->glade_xml, "button_apply");
g_signal_connect (widget, "clicked",
@@ -2658,8 +2629,6 @@
gtk_widget_hide (widget);
widget = glade_xml_get_widget (application->priv->glade_xml, "image_icon");
gtk_widget_hide (widget);
- widget = glade_xml_get_widget (application->priv->glade_xml, "vbox_detail_extra");
- gtk_widget_hide (widget);
/* installed filter */
widget = glade_xml_get_widget (application->priv->glade_xml, "menuitem_installed_yes");
@@ -2900,6 +2869,21 @@
G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING);
+ application->priv->details_store = gtk_list_store_new (DETAIL_COLUMN_LAST,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING);
+
+ /* use a list store for the extra data */
+ widget = glade_xml_get_widget (application->priv->glade_xml, "treeview_detail");
+ gtk_tree_view_set_model (GTK_TREE_VIEW (widget), GTK_TREE_MODEL (application->priv->details_store));
+
+ /* add columns to the tree view */
+ gpk_application_treeview_add_columns_description (application);
+
+ /* make bigger than 1x1 */
+ gpk_application_add_detail_item (application, "foo", "bar", NULL);
+ gtk_list_store_clear (application->priv->details_store);
/* unsorted */
gpk_application_treeview_set_sorted (application, FALSE);
@@ -2984,6 +2968,7 @@
g_object_unref (application->priv->glade_xml);
g_object_unref (application->priv->packages_store);
+ g_object_unref (application->priv->details_store);
g_object_unref (application->priv->control);
g_object_unref (application->priv->client_search);
g_object_unref (application->priv->client_action);
Modified: trunk/src/gpk-check-update.c
==============================================================================
--- trunk/src/gpk-check-update.c (original)
+++ trunk/src/gpk-check-update.c Wed Jun 11 15:30:23 2008
@@ -321,8 +321,7 @@
{
GpkCheckUpdate *cupdate = GPK_CHECK_UPDATE (data);
g_return_if_fail (GPK_IS_CHECK_UPDATE (cupdate));
- gpk_client_show_finished (cupdate->priv->gclient, TRUE);
- gpk_client_show_progress (cupdate->priv->gclient, TRUE);
+ gpk_client_set_interaction (cupdate->priv->gclient, GPK_CLIENT_INTERACT_ALWAYS);
gpk_check_update_update_system (cupdate);
}
@@ -403,8 +402,7 @@
/* just update the important updates */
package_ids = pk_package_ids_from_array (cupdate->priv->important_updates_array);
- gpk_client_show_finished (cupdate->priv->gclient, FALSE);
- gpk_client_show_progress (cupdate->priv->gclient, FALSE);
+ gpk_client_set_interaction (cupdate->priv->gclient, GPK_CLIENT_INTERACT_NEVER);
ret = gpk_client_update_packages (cupdate->priv->gclient, package_ids, &error);
if (!ret) {
pk_warning ("Individual updates failed: %s", error->message);
@@ -670,8 +668,7 @@
}
/* get updates */
- gpk_client_show_finished (cupdate->priv->gclient, FALSE);
- gpk_client_show_progress (cupdate->priv->gclient, FALSE);
+ gpk_client_set_interaction (cupdate->priv->gclient, GPK_CLIENT_INTERACT_NEVER);
cupdate->priv->get_updates_in_progress = TRUE;
list = gpk_client_get_updates (cupdate->priv->gclient, &error);
cupdate->priv->get_updates_in_progress = FALSE;
@@ -763,8 +760,7 @@
/* convert */
package_ids = pk_package_ids_from_array (security_array);
- gpk_client_show_finished (cupdate->priv->gclient, FALSE);
- gpk_client_show_progress (cupdate->priv->gclient, FALSE);
+ gpk_client_set_interaction (cupdate->priv->gclient, GPK_CLIENT_INTERACT_NEVER);
ret = gpk_client_update_packages (cupdate->priv->gclient, package_ids, &error);
if (!ret) {
pk_warning ("Individual updates failed: %s", error->message);
@@ -777,8 +773,7 @@
/* just do everything */
if (update == PK_UPDATE_ENUM_ALL) {
pk_debug ("we should do the update automatically!");
- gpk_client_show_finished (cupdate->priv->gclient, FALSE);
- gpk_client_show_progress (cupdate->priv->gclient, FALSE);
+ gpk_client_set_interaction (cupdate->priv->gclient, GPK_CLIENT_INTERACT_NEVER);
g_idle_add ((GSourceFunc) gpk_check_update_update_system, cupdate);
goto out;
}
@@ -874,8 +869,7 @@
cupdate->priv->cache_okay = TRUE;
/* use the gnome helper to refresh the cache */
- gpk_client_show_finished (cupdate->priv->gclient, FALSE);
- gpk_client_show_progress (cupdate->priv->gclient, FALSE);
+ gpk_client_set_interaction (cupdate->priv->gclient, GPK_CLIENT_INTERACT_NEVER);
ret = gpk_client_refresh_cache (cupdate->priv->gclient, NULL);
if (!ret) {
/* we failed to get the cache */
@@ -941,8 +935,6 @@
/* install stuff using the gnome helpers */
cupdate->priv->gclient = gpk_client_new ();
- gpk_client_show_finished (cupdate->priv->gclient, TRUE);
- gpk_client_show_progress (cupdate->priv->gclient, TRUE);
cupdate->priv->pconnection = pk_connection_new ();
g_signal_connect (cupdate->priv->pconnection, "connection-changed",
Modified: trunk/src/gpk-client-run.c
==============================================================================
--- trunk/src/gpk-client-run.c (original)
+++ trunk/src/gpk-client-run.c Wed Jun 11 15:30:23 2008
@@ -236,8 +236,10 @@
length = g_strv_length (package_ids);
gclient = gpk_client_new ();
+ /* only show if we need to download a cache */
+ gpk_client_set_interaction (gclient, GPK_CLIENT_INTERACT_SOMETIMES);
gpk_client_show_finished (gclient, FALSE);
- gpk_client_show_progress (gclient, FALSE);
+
for (i=0; i<length; i++) {
package_id = package_ids[i];
pk_debug ("package_id=%s", package_id);
Modified: trunk/src/gpk-client.c
==============================================================================
--- trunk/src/gpk-client.c (original)
+++ trunk/src/gpk-client.c Wed Jun 11 15:30:23 2008
@@ -86,6 +86,7 @@
gboolean show_finished;
gboolean show_progress;
gboolean show_progress_files;
+ GpkClientInteract interact;
gboolean gtk_main_waiting;
gchar **files_array;
PkExitEnum exit;
@@ -272,6 +273,8 @@
/**
* gpk_client_show_finished:
+ *
+ * You probably don't need to use this function, use gpk_client_set_interaction() instead
**/
void
gpk_client_show_finished (GpkClient *gclient, gboolean enabled)
@@ -281,13 +284,20 @@
}
/**
- * gpk_client_show_progress:
+ * gpk_client_set_interaction:
**/
void
-gpk_client_show_progress (GpkClient *gclient, gboolean enabled)
+gpk_client_set_interaction (GpkClient *gclient, GpkClientInteract interact)
{
g_return_if_fail (GPK_IS_CLIENT (gclient));
- gclient->priv->show_progress = enabled;
+ gclient->priv->interact = interact;
+ /* only start showing if we always show */
+ gclient->priv->show_progress = (interact == GPK_CLIENT_INTERACT_ALWAYS);
+
+ /* normally, if we don't want to show progress then we don't want finished */
+ if (gclient->priv->show_progress) {
+ gclient->priv->show_finished = FALSE;
+ }
}
/**
@@ -468,13 +478,6 @@
gtk_widget_hide (widget);
}
- /* make insensitive */
- widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_cancel");
- gtk_widget_set_sensitive (widget, FALSE);
-
- /* set to 100% */
- widget = glade_xml_get_widget (gclient->priv->glade_xml, "progressbar_percent");
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (widget), 1.0f);
out:
/* only quit if there is not another transaction scheduled to be finished */
if (!gclient->priv->using_secondary_client) {
@@ -549,15 +552,17 @@
g_return_if_fail (GPK_IS_CLIENT (gclient));
/* do we force progress? */
- if (status == PK_STATUS_ENUM_DOWNLOAD_REPOSITORY ||
- status == PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST ||
- status == PK_STATUS_ENUM_DOWNLOAD_FILELIST ||
- status == PK_STATUS_ENUM_DOWNLOAD_CHANGELOG ||
- status == PK_STATUS_ENUM_DOWNLOAD_GROUP ||
- status == PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO ||
- status == PK_STATUS_ENUM_REFRESH_CACHE) {
- gpk_client_show_progress (gclient, TRUE);
- gpk_client_set_page (gclient, GPK_CLIENT_PAGE_PROGRESS);
+ if (gclient->priv->interact == GPK_CLIENT_INTERACT_SOMETIMES) {
+ if (status == PK_STATUS_ENUM_DOWNLOAD_REPOSITORY ||
+ status == PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST ||
+ status == PK_STATUS_ENUM_DOWNLOAD_FILELIST ||
+ status == PK_STATUS_ENUM_DOWNLOAD_CHANGELOG ||
+ status == PK_STATUS_ENUM_DOWNLOAD_GROUP ||
+ status == PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO ||
+ status == PK_STATUS_ENUM_REFRESH_CACHE) {
+ gclient->priv->show_progress = TRUE;
+ gpk_client_set_page (gclient, GPK_CLIENT_PAGE_PROGRESS);
+ }
}
/* set icon */
@@ -571,9 +576,27 @@
gtk_label_set_markup (GTK_LABEL (widget), text);
g_free (text);
+ /* spin */
if (status == PK_STATUS_ENUM_WAIT) {
gpk_client_make_progressbar_pulse (gclient);
}
+
+ /* do visual stuff when finished */
+ if (status == PK_STATUS_ENUM_FINISHED) {
+ /* make insensitive */
+ widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_cancel");
+ gtk_widget_set_sensitive (widget, FALSE);
+
+ /* stop spinning */
+ if (gclient->priv->pulse_timer_id != 0) {
+ g_source_remove (gclient->priv->pulse_timer_id);
+ gclient->priv->pulse_timer_id = 0;
+ }
+
+ /* set to 100% */
+ widget = glade_xml_get_widget (gclient->priv->glade_xml, "progressbar_percent");
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (widget), 1.0f);
+ }
}
/**
@@ -2214,6 +2237,7 @@
gclient->priv->using_secondary_client = FALSE;
gclient->priv->gtk_main_waiting = FALSE;
gclient->priv->exit = PK_EXIT_ENUM_FAILED;
+ gclient->priv->interact = GPK_CLIENT_INTERACT_NEVER;
gclient->priv->show_finished = TRUE;
gclient->priv->show_progress = TRUE;
gclient->priv->show_progress_files = TRUE;
Modified: trunk/src/gpk-client.h
==============================================================================
--- trunk/src/gpk-client.h (original)
+++ trunk/src/gpk-client.h Wed Jun 11 15:30:23 2008
@@ -48,6 +48,17 @@
GPK_CLIENT_ERROR_FAILED
} GpkClientError;
+/**
+ * GpkClientInteract:
+ */
+typedef enum
+{
+ GPK_CLIENT_INTERACT_ALWAYS,
+ GPK_CLIENT_INTERACT_SOMETIMES,
+ GPK_CLIENT_INTERACT_NEVER,
+ GPK_CLIENT_INTERACT_UNKNOWN
+} GpkClientInteract;
+
typedef struct _GpkClientPrivate GpkClientPrivate;
typedef struct _GpkClient GpkClient;
typedef struct _GpkClientClass GpkClientClass;
@@ -97,8 +108,8 @@
GError **error);
void gpk_client_show_finished (GpkClient *gclient,
gboolean enabled);
-void gpk_client_show_progress (GpkClient *gclient,
- gboolean enabled);
+void gpk_client_set_interaction (GpkClient *gclient,
+ GpkClientInteract interact);
PkPackageList *gpk_client_get_updates (GpkClient *gclient,
GError **error);
gchar **gpk_client_get_file_list (GpkClient *gclient,
Modified: trunk/src/gpk-repo.c
==============================================================================
--- trunk/src/gpk-repo.c (original)
+++ trunk/src/gpk-repo.c Wed Jun 11 15:30:23 2008
@@ -36,6 +36,7 @@
#include <libunique.h>
#include <pk-debug.h>
+#include <pk-common.h>
#include <pk-client.h>
#include <pk-control.h>
#include <pk-connection.h>
@@ -43,14 +44,12 @@
#include <gpk-gnome.h>
#include <gpk-common.h>
#include <gpk-error.h>
-
-#include "gpk-statusbar.h"
+#include "gpk-animated-icon.h"
static GladeXML *glade_xml = NULL;
static GtkListStore *list_store = NULL;
static PkClient *client = NULL;
static PkRoleEnum roles;
-static GpkStatusbar *statusbar;
static GConfClient *gconf_client;
static gboolean show_details;
@@ -205,7 +204,27 @@
static void
gpk_repo_status_changed_cb (PkClient *client, PkStatusEnum status, gpointer data)
{
- gpk_statusbar_set_status (statusbar, status);
+ const gchar *text;
+ GtkWidget *widget;
+
+ widget = glade_xml_get_widget (glade_xml, "viewport_animation_preview");
+ if (status == PK_STATUS_ENUM_FINISHED) {
+ gtk_widget_hide (widget);
+ widget = glade_xml_get_widget (glade_xml, "image_animation");
+ gpk_animated_icon_enable_animation (GPK_ANIMATED_ICON (widget), FALSE);
+ return;
+ }
+
+ /* set the text and show */
+ gtk_widget_show (widget);
+ widget = glade_xml_get_widget (glade_xml, "label_animation");
+ text = gpk_status_enum_to_localised_text (status);
+ gtk_label_set_label (GTK_LABEL (widget), text);
+
+ /* set icon */
+ widget = glade_xml_get_widget (glade_xml, "image_animation");
+ gpk_set_animated_icon_from_status (GPK_ANIMATED_ICON (widget), status, GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_widget_show (widget);
}
/**
@@ -284,6 +303,21 @@
}
/**
+ * gpk_repo_create_custom_widget:
+ **/
+static GtkWidget *
+gpk_repo_create_custom_widget (GladeXML *xml, gchar *func_name, gchar *name,
+ gchar *string1, gchar *string2,
+ gint int1, gint int2, gpointer user_data)
+{
+ if (pk_strequal (name, "image_animation")) {
+ return gpk_animated_icon_new ();
+ }
+ pk_warning ("name unknown='%s'", name);
+ return NULL;
+}
+
+/**
* main:
**/
int
@@ -357,6 +391,9 @@
G_CALLBACK (gpk_repo_repo_list_changed_cb), NULL);
roles = pk_control_get_actions (control);
+ /* use custom widgets */
+ glade_set_custom_handler (gpk_repo_create_custom_widget, NULL);
+
glade_xml = glade_xml_new (PK_DATA "/gpk-repo.glade", NULL, NULL);
main_window = glade_xml_get_widget (glade_xml, "window_repo");
gtk_window_set_icon_name (GTK_WINDOW (main_window), "pk-package-sources");
@@ -395,11 +432,6 @@
pk_treeview_add_columns (GTK_TREE_VIEW (widget));
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
- /* use the in-statusbar for progress */
- statusbar = gpk_statusbar_new ();
- widget = glade_xml_get_widget (glade_xml, "statusbar_status");
- gpk_statusbar_set_widget (statusbar, widget);
-
/* show window */
gtk_widget_show (main_window);
@@ -427,7 +459,6 @@
g_object_unref (gconf_client);
g_object_unref (client);
g_object_unref (control);
- g_object_unref (statusbar);
unique_out:
g_object_unref (libunique);
Modified: trunk/src/gpk-update-viewer.c
==============================================================================
--- trunk/src/gpk-update-viewer.c (original)
+++ trunk/src/gpk-update-viewer.c Wed Jun 11 15:30:23 2008
@@ -49,7 +49,6 @@
#include <gpk-gnome.h>
#include <gpk-error.h>
-#include "gpk-statusbar.h"
#include "gpk-consolekit.h"
#include "gpk-cell-renderer-uri.h"
#include "gpk-animated-icon.h"
@@ -73,9 +72,9 @@
static PolKitGnomeAction *restart_action = NULL;
/* for the preview throbber */
-static void pk_update_viewer_add_preview_item (const gchar *icon, const gchar *message, gboolean clear);
-static void pk_update_viewer_description_animation_stop (void);
-static void pk_update_viewer_get_new_update_list (void);
+static void gpk_update_viewer_add_preview_item (const gchar *icon, const gchar *message, gboolean clear);
+static void gpk_update_viewer_description_animation_stop (void);
+static void gpk_update_viewer_get_new_update_list (void);
enum {
PREVIEW_COLUMN_ICON,
@@ -88,7 +87,6 @@
DESC_COLUMN_TITLE,
DESC_COLUMN_TEXT,
DESC_COLUMN_URI,
- DESC_COLUMN_PROGRESS,
DESC_COLUMN_LAST
};
@@ -125,10 +123,10 @@
}
/**
- * pk_update_viewer_set_page:
+ * gpk_update_viewer_set_page:
**/
static void
-pk_update_viewer_set_page (PkPageEnum page)
+gpk_update_viewer_set_page (PkPageEnum page)
{
GtkWidget *widget;
GList *list, *l;
@@ -163,10 +161,10 @@
}
/**
- * pk_update_viewer_update_system_cb:
+ * gpk_update_viewer_update_system_cb:
**/
static void
-pk_update_viewer_update_system_cb (PolKitGnomeAction *action, gpointer data)
+gpk_update_viewer_update_system_cb (PolKitGnomeAction *action, gpointer data)
{
GtkWidget *widget;
gboolean ret;
@@ -176,24 +174,24 @@
widget = glade_xml_get_widget (glade_xml, "button_overview2");
gtk_widget_hide (widget);
- pk_update_viewer_set_page (PAGE_LAST);
- gpk_client_show_progress (gclient, TRUE);
+ gpk_update_viewer_set_page (PAGE_LAST);
+ gpk_client_set_interaction (gclient, GPK_CLIENT_INTERACT_ALWAYS);
ret = gpk_client_update_system (gclient, NULL);
/* did we succeed updating the system */
if (!ret) {
/* show the preview page */
- pk_update_viewer_set_page (PAGE_PREVIEW);
+ gpk_update_viewer_set_page (PAGE_PREVIEW);
} else {
- pk_update_viewer_set_page (PAGE_CONFIRM);
+ gpk_update_viewer_set_page (PAGE_CONFIRM);
}
}
/**
- * pk_update_viewer_apply_cb:
+ * gpk_update_viewer_apply_cb:
**/
static void
-pk_update_viewer_apply_cb (PolKitGnomeAction *action, gpointer data)
+gpk_update_viewer_apply_cb (PolKitGnomeAction *action, gpointer data)
{
GtkWidget *widget;
GtkTreeModel *model;
@@ -254,18 +252,18 @@
}
/* set correct view */
- pk_update_viewer_set_page (PAGE_LAST);
+ gpk_update_viewer_set_page (PAGE_LAST);
package_ids = pk_package_ids_from_array (array);
- gpk_client_show_progress (gclient, TRUE);
+ gpk_client_set_interaction (gclient, GPK_CLIENT_INTERACT_ALWAYS);
ret = gpk_client_update_packages (gclient, package_ids, NULL);
g_strfreev (package_ids);
/* did we succeed updating the system */
if (!ret) {
/* show the preview page */
- pk_update_viewer_set_page (PAGE_PREVIEW);
+ gpk_update_viewer_set_page (PAGE_PREVIEW);
} else {
- pk_update_viewer_set_page (PAGE_CONFIRM);
+ gpk_update_viewer_set_page (PAGE_CONFIRM);
}
/* get rid of the array, and free the contents */
@@ -273,10 +271,10 @@
}
/**
- * pk_update_viewer_preview_animation_start:
+ * gpk_update_viewer_preview_animation_start:
**/
static void
-pk_update_viewer_preview_animation_start (const gchar *text)
+gpk_update_viewer_preview_animation_start (const gchar *text)
{
GtkWidget *widget;
gchar *text_bold;
@@ -300,10 +298,10 @@
}
/**
- * pk_update_viewer_preview_animation_stop:
+ * gpk_update_viewer_preview_animation_stop:
**/
static void
-pk_update_viewer_preview_animation_stop (void)
+gpk_update_viewer_preview_animation_stop (void)
{
GtkWidget *widget;
@@ -321,10 +319,10 @@
}
/**
- * pk_update_viewer_description_animation_start:
+ * gpk_update_viewer_description_animation_start:
**/
static void
-pk_update_viewer_description_animation_start (void)
+gpk_update_viewer_description_animation_start (void)
{
GtkWidget *widget;
gchar *text_bold;
@@ -348,10 +346,10 @@
}
/**
- * pk_update_viewer_description_animation_stop:
+ * gpk_update_viewer_description_animation_stop:
**/
static void
-pk_update_viewer_description_animation_stop (void)
+gpk_update_viewer_description_animation_stop (void)
{
GtkWidget *widget;
@@ -369,16 +367,16 @@
}
/**
- * pk_update_viewer_refresh_cb:
+ * gpk_update_viewer_refresh_cb:
**/
static void
-pk_update_viewer_refresh_cb (PolKitGnomeAction *action, gpointer data)
+gpk_update_viewer_refresh_cb (PolKitGnomeAction *action, gpointer data)
{
gboolean ret;
GError *error = NULL;
/* refresh the cache */
- gpk_client_show_progress (gclient, TRUE);
+ gpk_client_set_interaction (gclient, GPK_CLIENT_INTERACT_ALWAYS);
polkit_gnome_action_set_sensitive (refresh_action, FALSE);
ret = gpk_client_refresh_cache (gclient, &error);
polkit_gnome_action_set_sensitive (refresh_action, TRUE);
@@ -387,14 +385,14 @@
g_error_free (error);
}
/* get new list */
- pk_update_viewer_get_new_update_list ();
+ gpk_update_viewer_get_new_update_list ();
}
/**
- * pk_update_viewer_history_cb:
+ * gpk_update_viewer_history_cb:
**/
static void
-pk_update_viewer_history_cb (GtkWidget *widget_button, gpointer data)
+gpk_update_viewer_history_cb (GtkWidget *widget_button, gpointer data)
{
GError *error = NULL;
GtkWidget *widget;
@@ -409,10 +407,10 @@
}
/**
- * pk_update_viewer_button_close_and_cancel_cb:
+ * gpk_update_viewer_button_close_and_cancel_cb:
**/
static void
-pk_update_viewer_button_close_and_cancel_cb (GtkWidget *widget, gpointer data)
+gpk_update_viewer_button_close_and_cancel_cb (GtkWidget *widget, gpointer data)
{
gboolean ret;
GError *error = NULL;
@@ -428,10 +426,10 @@
}
/**
- * pk_update_viewer_review_cb:
+ * gpk_update_viewer_review_cb:
**/
static void
-pk_update_viewer_review_cb (GtkWidget *widget, gpointer data)
+gpk_update_viewer_review_cb (GtkWidget *widget, gpointer data)
{
GtkWidget *treeview;
GtkTreeSelection *selection;
@@ -452,22 +450,22 @@
gtk_widget_set_size_request (GTK_WIDGET (widget), 500, 200);
/* set correct view */
- pk_update_viewer_set_page (PAGE_DETAILS);
+ gpk_update_viewer_set_page (PAGE_DETAILS);
}
/**
- * pk_update_viewer_populate_preview:
+ * gpk_update_viewer_populate_preview:
**/
static void
-pk_update_viewer_populate_preview (PkPackageList *list)
+gpk_update_viewer_populate_preview (PkPackageList *list)
{
GtkWidget *widget;
guint length;
length = pk_package_list_get_size (list);
if (length == 0) {
- pk_update_viewer_add_preview_item ("dialog-information", _("There are no updates available!"), TRUE);
+ gpk_update_viewer_add_preview_item ("dialog-information", _("There are no updates available!"), TRUE);
widget = glade_xml_get_widget (glade_xml, "button_close3");
gtk_widget_grab_default (widget);
} else {
@@ -507,37 +505,37 @@
if (num_security > 0) {
icon = gpk_info_enum_to_icon_name (PK_INFO_ENUM_SECURITY);
text = gpk_update_enum_to_localised_text (PK_INFO_ENUM_SECURITY, num_security);
- pk_update_viewer_add_preview_item (icon, text, FALSE);
+ gpk_update_viewer_add_preview_item (icon, text, FALSE);
g_free (text);
}
if (num_important > 0) {
icon = gpk_info_enum_to_icon_name (PK_INFO_ENUM_IMPORTANT);
text = gpk_update_enum_to_localised_text (PK_INFO_ENUM_IMPORTANT, num_important);
- pk_update_viewer_add_preview_item (icon, text, FALSE);
+ gpk_update_viewer_add_preview_item (icon, text, FALSE);
g_free (text);
}
if (num_bugfix > 0) {
icon = gpk_info_enum_to_icon_name (PK_INFO_ENUM_BUGFIX);
text = gpk_update_enum_to_localised_text (PK_INFO_ENUM_BUGFIX, num_bugfix);
- pk_update_viewer_add_preview_item (icon, text, FALSE);
+ gpk_update_viewer_add_preview_item (icon, text, FALSE);
g_free (text);
}
if (num_enhancement > 0) {
icon = gpk_info_enum_to_icon_name (PK_INFO_ENUM_ENHANCEMENT);
text = gpk_update_enum_to_localised_text (PK_INFO_ENUM_ENHANCEMENT, num_enhancement);
- pk_update_viewer_add_preview_item (icon, text, FALSE);
+ gpk_update_viewer_add_preview_item (icon, text, FALSE);
g_free (text);
}
if (num_low > 0) {
icon = gpk_info_enum_to_icon_name (PK_INFO_ENUM_LOW);
text = gpk_update_enum_to_localised_text (PK_INFO_ENUM_LOW, num_low);
- pk_update_viewer_add_preview_item (icon, text, FALSE);
+ gpk_update_viewer_add_preview_item (icon, text, FALSE);
g_free (text);
}
if (num_normal > 0) {
icon = gpk_info_enum_to_icon_name (PK_INFO_ENUM_NORMAL);
text = gpk_update_enum_to_localised_text (PK_INFO_ENUM_NORMAL, num_normal);
- pk_update_viewer_add_preview_item (icon, text, FALSE);
+ gpk_update_viewer_add_preview_item (icon, text, FALSE);
g_free (text);
}
@@ -550,10 +548,10 @@
}
/**
- * pk_update_viewer_get_new_update_list:
+ * gpk_update_viewer_get_new_update_list:
**/
static void
-pk_update_viewer_get_new_update_list (void)
+gpk_update_viewer_get_new_update_list (void)
{
GError *error = NULL;
PkPackageList *list;
@@ -568,7 +566,7 @@
/* clear existing list */
gtk_list_store_clear (list_store_details);
- gpk_client_show_progress (gclient, FALSE);
+ gpk_client_set_interaction (gclient, GPK_CLIENT_INTERACT_NEVER);
list = gpk_client_get_updates (gclient, &error);
if (list == NULL) {
pk_warning ("failed: %s", error->message);
@@ -610,29 +608,29 @@
widget = glade_xml_get_widget (glade_xml, "button_review");
gtk_widget_set_sensitive (widget, are_updates_available);
- pk_update_viewer_populate_preview (list);
+ gpk_update_viewer_populate_preview (list);
out:
g_object_unref (list);
}
/**
- * pk_update_viewer_overview_cb:
+ * gpk_update_viewer_overview_cb:
**/
static void
-pk_update_viewer_overview_cb (GtkWidget *widget, gpointer data)
+gpk_update_viewer_overview_cb (GtkWidget *widget, gpointer data)
{
/* set correct view */
- pk_update_viewer_set_page (PAGE_PREVIEW);
+ gpk_update_viewer_set_page (PAGE_PREVIEW);
/* get the new update list */
- pk_update_viewer_get_new_update_list ();
+ gpk_update_viewer_get_new_update_list ();
}
/**
- * pk_update_viewer_package_cb:
+ * gpk_update_viewer_package_cb:
**/
static void
-pk_update_viewer_package_cb (PkClient *client, PkInfoEnum info, const gchar *package_id,
+gpk_update_viewer_package_cb (PkClient *client, PkInfoEnum info, const gchar *package_id,
const gchar *summary, gpointer data)
{
PkRoleEnum role;
@@ -643,10 +641,10 @@
}
/**
- * pk_update_viewer_add_description_item:
+ * gpk_update_viewer_add_description_item:
**/
static void
-pk_update_viewer_add_description_item (const gchar *title, const gchar *text, const gchar *uri)
+gpk_update_viewer_add_description_item (const gchar *title, const gchar *text, const gchar *uri)
{
gchar *markup;
GtkWidget *tree_view;
@@ -673,10 +671,10 @@
}
/**
- * pk_update_viewer_add_description_link_item:
+ * gpk_update_viewer_add_description_link_item:
**/
static void
-pk_update_viewer_add_description_link_item (const gchar *title, const gchar *url_string)
+gpk_update_viewer_add_description_link_item (const gchar *title, const gchar *url_string)
{
const gchar *text;
const gchar *uri;
@@ -702,10 +700,10 @@
}
/* no suffix needed */
if (length == 2) {
- pk_update_viewer_add_description_item (title, text, uri);
+ gpk_update_viewer_add_description_item (title, text, uri);
} else {
title_num = g_strdup_printf ("%s (%i)", title, (i/2) + 1);
- pk_update_viewer_add_description_item (title_num, text, uri);
+ gpk_update_viewer_add_description_item (title_num, text, uri);
g_free (title_num);
}
}
@@ -713,12 +711,12 @@
}
/**
- * pk_update_viewer_get_pretty_from_composite:
+ * gpk_update_viewer_get_pretty_from_composite:
*
* NOTE: Split using ^, because \t was already taken.
**/
static gchar *
-pk_update_viewer_get_pretty_from_composite (const gchar *package_ids_delimit)
+gpk_update_viewer_get_pretty_from_composite (const gchar *package_ids_delimit)
{
guint i;
guint length;
@@ -751,10 +749,10 @@
/**
- * pk_update_viewer_update_detail_cb:
+ * gpk_update_viewer_update_detail_cb:
**/
static void
-pk_update_viewer_update_detail_cb (PkClient *client, const gchar *package_id,
+gpk_update_viewer_update_detail_cb (PkClient *client, const gchar *package_id,
const gchar *updates, const gchar *obsoletes,
const gchar *vendor_url, const gchar *bugzilla_url,
const gchar *cve_url, PkRestartEnum restart,
@@ -770,7 +768,7 @@
PkInfoEnum info;
/* clear existing list */
- pk_update_viewer_description_animation_stop ();
+ gpk_update_viewer_description_animation_stop ();
gtk_list_store_clear (list_store_description);
/* initially we are hidden */
@@ -789,32 +787,32 @@
info_text = gpk_info_enum_to_localised_text (info);
/* translators: this is the update type, e.g. security */
- pk_update_viewer_add_description_item (_("Type"), info_text, NULL);
+ gpk_update_viewer_add_description_item (_("Type"), info_text, NULL);
package_pretty = gpk_package_id_name_version (package_id);
/* translators: this is the package version */
- pk_update_viewer_add_description_item (_("New version"), package_pretty, NULL);
+ gpk_update_viewer_add_description_item (_("New version"), package_pretty, NULL);
g_free (package_pretty);
/* split and add */
- package_pretty = pk_update_viewer_get_pretty_from_composite (updates);
+ package_pretty = gpk_update_viewer_get_pretty_from_composite (updates);
if (package_pretty != NULL) {
/* translators: this is a list of packages that are updated */
- pk_update_viewer_add_description_item (_("Updates"), package_pretty, NULL);
+ gpk_update_viewer_add_description_item (_("Updates"), package_pretty, NULL);
}
g_free (package_pretty);
/* split and add */
- package_pretty = pk_update_viewer_get_pretty_from_composite (obsoletes);
+ package_pretty = gpk_update_viewer_get_pretty_from_composite (obsoletes);
if (package_pretty != NULL) {
/* translators: this is a list of packages that are obsoleted */
- pk_update_viewer_add_description_item (_("Obsoletes"), package_pretty, NULL);
+ gpk_update_viewer_add_description_item (_("Obsoletes"), package_pretty, NULL);
}
g_free (package_pretty);
ident = pk_package_id_new_from_string (package_id);
/* translators: this is the repository the package has come from */
- pk_update_viewer_add_description_item (_("Repository"), ident->data, NULL);
+ gpk_update_viewer_add_description_item (_("Repository"), ident->data, NULL);
pk_package_id_free (ident);
if (!pk_strzero (update_text)) {
@@ -823,7 +821,7 @@
first = pk_strreplace (update_text, "\n- ", "\nâ ");
second = pk_strreplace (first, "\n* ", "\nâ ");
/* translators: this is the package description */
- pk_update_viewer_add_description_item (_("Description"), second, NULL);
+ gpk_update_viewer_add_description_item (_("Description"), second, NULL);
g_free (first);
g_free (second);
}
@@ -831,33 +829,31 @@
/* add all the links */
if (!pk_strzero (vendor_url)) {
/* translators: this is a list of vendor URLs */
- pk_update_viewer_add_description_link_item (_("Vendor"), vendor_url);
+ gpk_update_viewer_add_description_link_item (_("Vendor"), vendor_url);
}
if (!pk_strzero (bugzilla_url)) {
/* translators: this is a list of bugzilla URLs */
- pk_update_viewer_add_description_link_item (_("Bugzilla"), bugzilla_url);
+ gpk_update_viewer_add_description_link_item (_("Bugzilla"), bugzilla_url);
}
if (!pk_strzero (cve_url)) {
/* translators: this is a list of CVE (security) URLs */
- pk_update_viewer_add_description_link_item (_("CVE"), cve_url);
+ gpk_update_viewer_add_description_link_item (_("CVE"), cve_url);
}
/* reboot */
if (restart == PK_RESTART_ENUM_SESSION ||
restart == PK_RESTART_ENUM_SYSTEM) {
- widget = glade_xml_get_widget (glade_xml, "hbox_reboot");
- gtk_widget_show (widget);
- } else {
- widget = glade_xml_get_widget (glade_xml, "hbox_reboot");
- gtk_widget_hide (widget);
+ info_text = gpk_restart_enum_to_localised_text (restart);
+ /* translators: this is a notice a restart might be required */
+ gpk_update_viewer_add_description_item (_("Notice"), info_text, NULL);
}
}
/**
- * pk_update_viewer_status_changed_cb:
+ * gpk_update_viewer_status_changed_cb:
**/
static void
-pk_update_viewer_status_changed_cb (PkClient *client, PkStatusEnum status, gpointer data)
+gpk_update_viewer_status_changed_cb (PkClient *client, PkStatusEnum status, gpointer data)
{
GtkWidget *widget;
@@ -869,10 +865,10 @@
}
/**
- * pk_update_viewer_treeview_update_toggled:
+ * gpk_update_viewer_treeview_update_toggled:
**/
static void
-pk_update_viewer_treeview_update_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
+gpk_update_viewer_treeview_update_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
{
GtkTreeModel *model = (GtkTreeModel *) data;
GtkTreeIter iter;
@@ -899,10 +895,10 @@
}
/**
- * pk_update_viewer_treeview_add_columns:
+ * gpk_update_viewer_treeview_add_columns:
**/
static void
-pk_update_viewer_treeview_add_columns (GtkTreeView *treeview)
+gpk_update_viewer_treeview_add_columns (GtkTreeView *treeview)
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
@@ -924,31 +920,26 @@
}
/**
- * pk_update_viewer_treeview_renderer_clicked:
+ * gpk_update_viewer_treeview_renderer_clicked:
**/
static void
-pk_update_viewer_treeview_renderer_clicked (GtkCellRendererToggle *cell, gchar *uri, gpointer data)
+gpk_update_viewer_treeview_renderer_clicked (GtkCellRendererToggle *cell, gchar *uri, gpointer data)
{
pk_debug ("clicked %s", uri);
gpk_gnome_open (uri);
}
/**
- * pk_update_viewer_treeview_add_columns_description:
+ * gpk_update_viewer_treeview_add_columns_description:
**/
static void
-pk_update_viewer_treeview_add_columns_description (GtkTreeView *treeview)
+gpk_update_viewer_treeview_add_columns_description (GtkTreeView *treeview)
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
- /* image */
+ /* title */
column = gtk_tree_view_column_new ();
- renderer = gtk_cell_renderer_pixbuf_new ();
- g_object_set (renderer, "visible", FALSE, NULL);
- gtk_tree_view_column_pack_start (column, renderer, FALSE);
- gtk_tree_view_column_add_attribute (column, renderer, "pixbuf", DESC_COLUMN_PROGRESS);
-
renderer = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, renderer, FALSE);
gtk_tree_view_column_add_attribute (column, renderer, "markup", DESC_COLUMN_TITLE);
@@ -956,7 +947,7 @@
/* column for uris */
renderer = gpk_cell_renderer_uri_new ();
- g_signal_connect (renderer, "clicked", G_CALLBACK (pk_update_viewer_treeview_renderer_clicked), NULL);
+ g_signal_connect (renderer, "clicked", G_CALLBACK (gpk_update_viewer_treeview_renderer_clicked), NULL);
column = gtk_tree_view_column_new_with_attributes (_("Text"), renderer,
"text", DESC_COLUMN_TEXT,
"uri", DESC_COLUMN_URI, NULL);
@@ -964,10 +955,10 @@
}
/**
- * pk_update_viewer_treeview_add_columns_update:
+ * gpk_update_viewer_treeview_add_columns_update:
**/
static void
-pk_update_viewer_treeview_add_columns_update (GtkTreeView *treeview)
+gpk_update_viewer_treeview_add_columns_update (GtkTreeView *treeview)
{
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
@@ -976,7 +967,7 @@
/* column for select toggle */
renderer = gtk_cell_renderer_toggle_new ();
model = gtk_tree_view_get_model (treeview);
- g_signal_connect (renderer, "toggled", G_CALLBACK (pk_update_viewer_treeview_update_toggled), model);
+ g_signal_connect (renderer, "toggled", G_CALLBACK (gpk_update_viewer_treeview_update_toggled), model);
column = gtk_tree_view_column_new_with_attributes ("Update", renderer, "active", PACKAGES_COLUMN_SELECT, NULL);
/* set this column to a fixed sizing (of 50 pixels) */
@@ -985,7 +976,7 @@
gtk_tree_view_append_column (treeview, column);
/* usual suspects */
- pk_update_viewer_treeview_add_columns (treeview);
+ gpk_update_viewer_treeview_add_columns (treeview);
}
/**
@@ -1019,10 +1010,7 @@
g_free (package_id);
/* clear and display animation until new details come in */
- pk_update_viewer_description_animation_start ();
-
- widget = glade_xml_get_widget (glade_xml, "hbox_reboot");
- gtk_widget_hide (widget);
+ gpk_update_viewer_description_animation_start ();
pk_debug ("selected row is: %s", cached_package_id);
@@ -1046,10 +1034,10 @@
}
/**
- * pk_update_viewer_add_preview_item:
+ * gpk_update_viewer_add_preview_item:
**/
static void
-pk_update_viewer_add_preview_item (const gchar *icon, const gchar *message, gboolean clear)
+gpk_update_viewer_add_preview_item (const gchar *icon, const gchar *message, gboolean clear)
{
GtkWidget *tree_view;
GtkTreeSelection *selection;
@@ -1136,18 +1124,18 @@
}
static void
-pk_update_viewer_restart_cb (GtkWidget *widget, gpointer data)
+gpk_update_viewer_restart_cb (GtkWidget *widget, gpointer data)
{
gpk_restart_system ();
}
-static void pk_update_viewer_populate_preview (PkPackageList *list);
+static void gpk_update_viewer_populate_preview (PkPackageList *list);
/**
- * pk_update_viewer_check_blocked_packages:
+ * gpk_update_viewer_check_blocked_packages:
**/
static void
-pk_update_viewer_check_blocked_packages (PkPackageList *list)
+gpk_update_viewer_check_blocked_packages (PkPackageList *list)
{
guint i;
guint length;
@@ -1204,10 +1192,10 @@
}
/**
- * pk_update_viewer_finished_cb:
+ * gpk_update_viewer_finished_cb:
**/
static void
-pk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime, gpointer data)
+gpk_update_viewer_finished_cb (PkClient *client, PkExitEnum exit, guint runtime, gpointer data)
{
GtkWidget *widget;
PkRoleEnum role;
@@ -1223,14 +1211,14 @@
}
/* stop the throbber */
- pk_update_viewer_preview_animation_stop ();
+ gpk_update_viewer_preview_animation_stop ();
/* check if we need to display infomation about blocked packages */
if (role == PK_ROLE_ENUM_UPDATE_SYSTEM ||
role == PK_ROLE_ENUM_UPDATE_PACKAGES) {
//TODO: this has to be moved to GpkClient
list = pk_client_get_package_list (client);
- pk_update_viewer_check_blocked_packages (list);
+ gpk_update_viewer_check_blocked_packages (list);
g_object_unref (list);
}
@@ -1257,27 +1245,27 @@
gtk_widget_grab_default (widget);
/* set correct view */
- pk_update_viewer_set_page (PAGE_CONFIRM);
+ gpk_update_viewer_set_page (PAGE_CONFIRM);
}
}
-// pk_update_viewer_populate_preview (list);
+// gpk_update_viewer_populate_preview (list);
}
static void
pk_button_more_installs_cb (GtkWidget *button, gpointer data)
{
/* set correct view */
- pk_update_viewer_set_page (PAGE_DETAILS);
+ gpk_update_viewer_set_page (PAGE_DETAILS);
- pk_update_viewer_get_new_update_list ();
+ gpk_update_viewer_get_new_update_list ();
}
/**
- * pk_update_viewer_progress_changed_cb:
+ * gpk_update_viewer_progress_changed_cb:
**/
static void
-pk_update_viewer_progress_changed_cb (PkClient *client, guint percentage, guint subpercentage,
+gpk_update_viewer_progress_changed_cb (PkClient *client, guint percentage, guint subpercentage,
guint elapsed, guint remaining, gpointer data)
{
GtkWidget *widget;
@@ -1289,10 +1277,10 @@
}
/**
- * pk_update_viewer_preview_set_animation:
+ * gpk_update_viewer_preview_set_animation:
**/
static void
-pk_update_viewer_preview_set_animation (const gchar *text)
+gpk_update_viewer_preview_set_animation (const gchar *text)
{
GtkWidget *widget;
@@ -1303,30 +1291,30 @@
gtk_widget_set_sensitive (widget, FALSE);
/* start the spinning preview */
- pk_update_viewer_preview_animation_start (text);
+ gpk_update_viewer_preview_animation_start (text);
}
/**
- * pk_update_viewer_task_list_changed_cb:
+ * gpk_update_viewer_task_list_changed_cb:
**/
static void
-pk_update_viewer_task_list_changed_cb (PkTaskList *tlist, gpointer data)
+gpk_update_viewer_task_list_changed_cb (PkTaskList *tlist, gpointer data)
{
GtkWidget *widget;
/* hide buttons if we are updating */
if (pk_task_list_contains_role (tlist, PK_ROLE_ENUM_UPDATE_SYSTEM) ||
pk_task_list_contains_role (tlist, PK_ROLE_ENUM_UPDATE_PACKAGES)) {
- pk_update_viewer_preview_set_animation (_("A system update is already in progress"));
+ gpk_update_viewer_preview_set_animation (_("A system update is already in progress"));
} else if (pk_task_list_contains_role (tlist, PK_ROLE_ENUM_GET_UPDATES)) {
- pk_update_viewer_preview_set_animation (_("Getting updates"));
+ gpk_update_viewer_preview_set_animation (_("Getting updates"));
} else if (pk_task_list_contains_role (tlist, PK_ROLE_ENUM_REFRESH_CACHE)) {
- pk_update_viewer_preview_set_animation (_("Refreshing package cache"));
+ gpk_update_viewer_preview_set_animation (_("Refreshing package cache"));
} else {
- pk_update_viewer_preview_animation_stop ();
+ gpk_update_viewer_preview_animation_stop ();
/* show apply, review and refresh */
polkit_gnome_action_set_sensitive (update_system_action, are_updates_available);
@@ -1337,10 +1325,10 @@
}
/**
- * pk_update_viewer_error_code_cb:
+ * gpk_update_viewer_error_code_cb:
**/
static void
-pk_update_viewer_error_code_cb (PkClient *client, PkErrorCodeEnum code, const gchar *details, gpointer data)
+gpk_update_viewer_error_code_cb (PkClient *client, PkErrorCodeEnum code, const gchar *details, gpointer data)
{
GtkWidget *widget;
@@ -1357,19 +1345,19 @@
}
/**
- * pk_update_viewer_repo_list_changed_cb:
+ * gpk_update_viewer_repo_list_changed_cb:
**/
static void
-pk_update_viewer_repo_list_changed_cb (PkClient *client, gpointer data)
+gpk_update_viewer_repo_list_changed_cb (PkClient *client, gpointer data)
{
- pk_update_viewer_get_new_update_list ();
+ gpk_update_viewer_get_new_update_list ();
}
/**
- * pk_update_viewer_detail_popup_menu_select_all:
+ * gpk_update_viewer_detail_popup_menu_select_all:
**/
void
-pk_update_viewer_detail_popup_menu_select_all (GtkWidget *menuitem, gpointer userdata)
+gpk_update_viewer_detail_popup_menu_select_all (GtkWidget *menuitem, gpointer userdata)
{
GtkTreeView *treeview = GTK_TREE_VIEW (userdata);
gboolean valid;
@@ -1388,10 +1376,10 @@
}
/**
- * pk_update_viewer_detail_popup_menu_select_none:
+ * gpk_update_viewer_detail_popup_menu_select_none:
**/
void
-pk_update_viewer_detail_popup_menu_select_none (GtkWidget *menuitem, gpointer userdata)
+gpk_update_viewer_detail_popup_menu_select_none (GtkWidget *menuitem, gpointer userdata)
{
GtkTreeView *treeview = GTK_TREE_VIEW (userdata);
gboolean valid;
@@ -1410,10 +1398,10 @@
}
/**
- * pk_update_viewer_get_checked_status:
+ * gpk_update_viewer_get_checked_status:
**/
void
-pk_update_viewer_get_checked_status (gboolean *all_checked, gboolean *none_checked)
+gpk_update_viewer_get_checked_status (gboolean *all_checked, gboolean *none_checked)
{
GtkTreeView *treeview;
gboolean valid;
@@ -1439,10 +1427,10 @@
}
/**
- * pk_update_viewer_detail_popup_menu_create:
+ * gpk_update_viewer_detail_popup_menu_create:
**/
void
-pk_update_viewer_detail_popup_menu_create (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
+gpk_update_viewer_detail_popup_menu_create (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
{
GtkWidget *menu;
GtkWidget *menuitem;
@@ -1452,26 +1440,26 @@
menu = gtk_menu_new();
/* we don't want to show 'Select all' if they are all checked */
- pk_update_viewer_get_checked_status (&all_checked, &none_checked);
+ gpk_update_viewer_get_checked_status (&all_checked, &none_checked);
if (!all_checked) {
menuitem = gtk_menu_item_new_with_label (_("Select all"));
g_signal_connect (menuitem, "activate",
- G_CALLBACK (pk_update_viewer_detail_popup_menu_select_all), treeview);
+ G_CALLBACK (gpk_update_viewer_detail_popup_menu_select_all), treeview);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
}
if (!none_checked) {
menuitem = gtk_menu_item_new_with_label (_("Unselect all"));
g_signal_connect (menuitem, "activate",
- G_CALLBACK (pk_update_viewer_detail_popup_menu_select_none), treeview);
+ G_CALLBACK (gpk_update_viewer_detail_popup_menu_select_none), treeview);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
}
menuitem = gtk_menu_item_new_with_label (_("Ignore this package"));
gtk_widget_set_sensitive (GTK_WIDGET (menuitem), FALSE);
g_signal_connect (menuitem, "activate",
- G_CALLBACK (pk_update_viewer_detail_popup_menu_select_all), treeview);
+ G_CALLBACK (gpk_update_viewer_detail_popup_menu_select_all), treeview);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
gtk_widget_show_all (menu);
@@ -1481,10 +1469,10 @@
}
/**
- * pk_update_viewer_detail_button_pressed:
+ * gpk_update_viewer_detail_button_pressed:
**/
gboolean
-pk_update_viewer_detail_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
+gpk_update_viewer_detail_button_pressed (GtkWidget *treeview, GdkEventButton *event, gpointer userdata)
{
GtkTreeSelection *selection;
@@ -1511,25 +1499,25 @@
}
/* create */
- pk_update_viewer_detail_popup_menu_create (treeview, event, userdata);
+ gpk_update_viewer_detail_popup_menu_create (treeview, event, userdata);
return TRUE;
}
/**
- * pk_update_viewer_detail_popup_menu:
+ * gpk_update_viewer_detail_popup_menu:
**/
gboolean
-pk_update_viewer_detail_popup_menu (GtkWidget *treeview, gpointer userdata)
+gpk_update_viewer_detail_popup_menu (GtkWidget *treeview, gpointer userdata)
{
- pk_update_viewer_detail_popup_menu_create (treeview, NULL, userdata);
+ gpk_update_viewer_detail_popup_menu_create (treeview, NULL, userdata);
return TRUE;
}
/**
- * pk_update_viewer_task_list_finished_cb:
+ * gpk_update_viewer_task_list_finished_cb:
**/
static void
-pk_update_viewer_task_list_finished_cb (PkTaskList *tlist, PkClient *client, PkExitEnum exit,
+gpk_update_viewer_task_list_finished_cb (PkTaskList *tlist, PkClient *client, PkExitEnum exit,
guint runtime, gpointer userdata)
{
PkRoleEnum role;
@@ -1556,7 +1544,7 @@
role == PK_ROLE_ENUM_UPDATE_PACKAGES ||
role == PK_ROLE_ENUM_REFRESH_CACHE) {
pk_debug ("getting new");
- //pk_update_viewer_get_new_update_list ();
+ //gpk_update_viewer_get_new_update_list ();
}
}
@@ -1734,36 +1722,36 @@
control = pk_control_new ();
g_signal_connect (control, "repo-list-changed",
- G_CALLBACK (pk_update_viewer_repo_list_changed_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_repo_list_changed_cb), NULL);
/* this is stuff we don't care about */
client_query = pk_client_new ();
pk_client_set_use_buffer (client_query, TRUE, NULL);
g_signal_connect (client_query, "package",
- G_CALLBACK (pk_update_viewer_package_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_package_cb), NULL);
g_signal_connect (client_query, "finished",
- G_CALLBACK (pk_update_viewer_finished_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_finished_cb), NULL);
g_signal_connect (client_query, "progress-changed",
- G_CALLBACK (pk_update_viewer_progress_changed_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_progress_changed_cb), NULL);
g_signal_connect (client_query, "update-detail",
- G_CALLBACK (pk_update_viewer_update_detail_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_update_detail_cb), NULL);
g_signal_connect (client_query, "status-changed",
- G_CALLBACK (pk_update_viewer_status_changed_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_status_changed_cb), NULL);
g_signal_connect (client_query, "error-code",
- G_CALLBACK (pk_update_viewer_error_code_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_error_code_cb), NULL);
client_action = pk_client_new ();
pk_client_set_use_buffer (client_action, TRUE, NULL);
g_signal_connect (client_action, "package",
- G_CALLBACK (pk_update_viewer_package_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_package_cb), NULL);
g_signal_connect (client_action, "finished",
- G_CALLBACK (pk_update_viewer_finished_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_finished_cb), NULL);
g_signal_connect (client_action, "progress-changed",
- G_CALLBACK (pk_update_viewer_progress_changed_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_progress_changed_cb), NULL);
g_signal_connect (client_action, "status-changed",
- G_CALLBACK (pk_update_viewer_status_changed_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_status_changed_cb), NULL);
g_signal_connect (client_action, "error-code",
- G_CALLBACK (pk_update_viewer_error_code_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_error_code_cb), NULL);
/* get actions */
roles = pk_control_get_actions (control);
@@ -1784,10 +1772,6 @@
/* make GpkClient windows modal */
gpk_client_set_parent (gclient, GTK_WINDOW (main_window));
- /* hide until we have updates */
- widget = glade_xml_get_widget (glade_xml, "hbox_reboot");
- gtk_widget_hide (widget);
-
/* hide from finished page until we have updates */
widget = glade_xml_get_widget (glade_xml, "hbox_restart");
gtk_widget_hide (widget);
@@ -1800,10 +1784,10 @@
*/
widget = glade_xml_get_widget (glade_xml, "button_close2");
g_signal_connect (widget, "clicked",
- G_CALLBACK (pk_update_viewer_button_close_and_cancel_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_button_close_and_cancel_cb), NULL);
widget = glade_xml_get_widget (glade_xml, "button_close3");
g_signal_connect (widget, "clicked",
- G_CALLBACK (pk_update_viewer_button_close_and_cancel_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_button_close_and_cancel_cb), NULL);
/* normal close buttons */
widget = glade_xml_get_widget (glade_xml, "button_close4");
@@ -1811,22 +1795,22 @@
/* connect up PolicyKit actions */
g_signal_connect (refresh_action, "activate",
- G_CALLBACK (pk_update_viewer_refresh_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_refresh_cb), NULL);
g_signal_connect (restart_action, "activate",
- G_CALLBACK (pk_update_viewer_restart_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_restart_cb), NULL);
g_signal_connect (update_packages_action, "activate",
- G_CALLBACK (pk_update_viewer_apply_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_apply_cb), NULL);
g_signal_connect (update_system_action, "activate",
- G_CALLBACK (pk_update_viewer_update_system_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_update_system_cb), NULL);
widget = glade_xml_get_widget (glade_xml, "button_review");
g_signal_connect (widget, "clicked",
- G_CALLBACK (pk_update_viewer_review_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_review_cb), NULL);
gtk_widget_set_tooltip_text(widget, _("Review the update list"));
widget = glade_xml_get_widget (glade_xml, "button_overview");
g_signal_connect (widget, "clicked",
- G_CALLBACK (pk_update_viewer_overview_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_overview_cb), NULL);
gtk_widget_set_tooltip_text(widget, _("Back to overview"));
widget = glade_xml_get_widget (glade_xml, "button_overview2");
@@ -1844,7 +1828,7 @@
widget = glade_xml_get_widget (glade_xml, "button_history");
g_signal_connect (widget, "clicked",
- G_CALLBACK (pk_update_viewer_history_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_history_cb), NULL);
/* make the refresh button the same size as the history one */
size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
@@ -1857,7 +1841,7 @@
list_store_details = gtk_list_store_new (PACKAGES_COLUMN_LAST, G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
list_store_preview = gtk_list_store_new (PREVIEW_COLUMN_LAST, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF);
- list_store_description = gtk_list_store_new (DESC_COLUMN_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, GDK_TYPE_PIXBUF);
+ list_store_description = gtk_list_store_new (DESC_COLUMN_LAST, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
/* create preview tree view */
widget = glade_xml_get_widget (glade_xml, "treeview_preview");
@@ -1865,7 +1849,7 @@
GTK_TREE_MODEL (list_store_preview));
/* add columns to the tree view */
- pk_update_viewer_treeview_add_columns (GTK_TREE_VIEW (widget));
+ gpk_update_viewer_treeview_add_columns (GTK_TREE_VIEW (widget));
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
/* create description tree view */
@@ -1874,7 +1858,7 @@
GTK_TREE_MODEL (list_store_description));
/* add columns to the tree view */
- pk_update_viewer_treeview_add_columns_description (GTK_TREE_VIEW (widget));
+ gpk_update_viewer_treeview_add_columns_description (GTK_TREE_VIEW (widget));
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
/* create package tree view */
@@ -1882,9 +1866,9 @@
gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
GTK_TREE_MODEL (list_store_details));
g_signal_connect (widget, "popup-menu",
- G_CALLBACK (pk_update_viewer_detail_popup_menu), NULL);
+ G_CALLBACK (gpk_update_viewer_detail_popup_menu), NULL);
g_signal_connect (widget, "button-press-event",
- G_CALLBACK (pk_update_viewer_detail_button_pressed), NULL);
+ G_CALLBACK (gpk_update_viewer_detail_button_pressed), NULL);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
@@ -1892,7 +1876,7 @@
G_CALLBACK (pk_packages_treeview_clicked_cb), NULL);
/* add columns to the tree view */
- pk_update_viewer_treeview_add_columns_update (GTK_TREE_VIEW (widget));
+ gpk_update_viewer_treeview_add_columns_update (GTK_TREE_VIEW (widget));
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
/* make the buttons non-clickable until we get completion */
@@ -1907,16 +1891,16 @@
/* we need to grey out all the buttons if we are in progress */
g_signal_connect (tlist, "changed",
- G_CALLBACK (pk_update_viewer_task_list_changed_cb), NULL);
- pk_update_viewer_task_list_changed_cb (tlist, NULL);
+ G_CALLBACK (gpk_update_viewer_task_list_changed_cb), NULL);
+ gpk_update_viewer_task_list_changed_cb (tlist, NULL);
g_signal_connect (tlist, "finished",
- G_CALLBACK (pk_update_viewer_task_list_finished_cb), NULL);
+ G_CALLBACK (gpk_update_viewer_task_list_finished_cb), NULL);
/* show window */
gtk_widget_show (main_window);
/* coldplug */
- pk_update_viewer_get_new_update_list ();
+ gpk_update_viewer_get_new_update_list ();
/* wait */
gtk_main ();
Modified: trunk/src/gpk-watch.c
==============================================================================
--- trunk/src/gpk-watch.c (original)
+++ trunk/src/gpk-watch.c Wed Jun 11 15:30:23 2008
@@ -646,8 +646,8 @@
g_return_if_fail (GPK_IS_WATCH (watch));
pk_debug ("refresh cache");
+ gpk_client_set_interaction (watch->priv->gclient, GPK_CLIENT_INTERACT_ALWAYS);
gpk_client_show_finished (watch->priv->gclient, FALSE);
- gpk_client_show_progress (watch->priv->gclient, FALSE);
ret = gpk_client_refresh_cache (watch->priv->gclient, &error);
if (!ret) {
pk_warning ("%s", error->message);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]