gnome-packagekit r175 - in trunk: data libpackagekit-gnome
- From: rhughes svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-packagekit r175 - in trunk: data libpackagekit-gnome
- Date: Mon, 14 Apr 2008 16:13:12 +0100 (BST)
Author: rhughes
Date: Mon Apr 14 16:13:12 2008
New Revision: 175
URL: http://svn.gnome.org/viewvc/gnome-packagekit?rev=175&view=rev
Log:
from git
Added:
trunk/data/gpk-eula.glade
Modified:
trunk/data/Makefile.am
trunk/libpackagekit-gnome/gpk-client.c
trunk/libpackagekit-gnome/gpk-common.c
Modified: trunk/data/Makefile.am
==============================================================================
--- trunk/data/Makefile.am (original)
+++ trunk/data/Makefile.am Mon Apr 14 16:13:12 2008
@@ -27,6 +27,7 @@
pkgdata_DATA = \
gpk-repo.glade \
+ gpk-eula.glade \
gpk-application.glade \
gpk-update-viewer.glade \
gpk-progress.glade \
Added: trunk/data/gpk-eula.glade
==============================================================================
--- (empty file)
+++ trunk/data/gpk-eula.glade Mon Apr 14 16:13:12 2008
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
+<!--*- mode: xml -*-->
+<glade-interface>
+ <widget class="GtkWindow" id="window_eula">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">PackageKit Error</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="border_width">10</property>
+ <property name="spacing">12</property>
+ <child>
+ <widget class="GtkTable" id="table1">
+ <property name="visible">True</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">9</property>
+ <property name="row_spacing">12</property>
+ <child>
+ <widget class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTextView" id="textview_details">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">False</property>
+ <property name="wrap_mode">GTK_WRAP_WORD</property>
+ <property name="cursor_visible">False</property>
+ <property name="accepts_tab">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-dialog-warning</property>
+ <property name="icon_size">6</property>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <widget class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <child>
+ <widget class="GtkLabel" id="label_title">
+ <property name="visible">True</property>
+ <property name="label"><b>License required for foo-devel by Acme Corp.</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label_message">
+ <property name="visible">True</property>
+ <property name="label">Please read the following important information before continuing.</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox2">
+ <property name="visible">True</property>
+ <property name="spacing">6</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <widget class="GtkButton" id="button_help">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="label" translatable="yes">gtk-help</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="button_cancel">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="label" translatable="yes">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkButton" id="button_agree">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="label">I accept the agreement</property>
+ <property name="response_id">0</property>
+ </widget>
+ <packing>
+ <property name="pack_type">GTK_PACK_END</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+</glade-interface>
Modified: trunk/libpackagekit-gnome/gpk-client.c
==============================================================================
--- trunk/libpackagekit-gnome/gpk-client.c (original)
+++ trunk/libpackagekit-gnome/gpk-client.c Mon Apr 14 16:13:12 2008
@@ -28,6 +28,7 @@
#include "config.h"
+#include <string.h>
#include <glib/gi18n.h>
#include <glib/gprintf.h>
#include <gtk/gtk.h>
@@ -157,7 +158,10 @@
if (exit == PK_EXIT_ENUM_SUCCESS) {
gpk_client_set_page (gclient, GPK_CLIENT_PAGE_CONFIRM);
g_timeout_add_seconds (30, gpk_install_finished_timeout, gclient);
+ } else {
+ gtk_main_quit ();
}
+
/* make insensitive */
widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_cancel");
gtk_widget_set_sensitive (widget, FALSE);
@@ -285,27 +289,6 @@
}
/**
- * gpk_client_window_delete_event_cb:
- **/
-static gboolean
-gpk_client_window_delete_event_cb (GtkWidget *widget, GdkEvent *event, GpkClient *gclient)
-{
- g_return_val_if_fail (GPK_IS_CLIENT (gclient), FALSE);
- gtk_main_quit ();
- return FALSE;
-}
-
-/**
- * gpk_client_button_close_cb:
- **/
-static void
-gpk_client_button_close_cb (GtkWidget *widget, GpkClient *gclient)
-{
- g_return_if_fail (GPK_IS_CLIENT (gclient));
- gtk_main_quit ();
-}
-
-/**
* gpk_client_button_help_cb:
**/
static void
@@ -770,20 +753,10 @@
}
/**
- * gpk_client_sig_button_no:
+ * gpk_client_button_help:
**/
static void
-gpk_client_sig_button_no (GtkWidget *widget, GpkClient *gclient)
-{
- g_return_if_fail (GPK_IS_CLIENT (gclient));
- gtk_main_quit ();
-}
-
-/**
- * gpk_client_sig_button_help:
- **/
-static void
-gpk_client_sig_button_help (GtkWidget *widget, GpkClient *gclient)
+gpk_client_button_help (GtkWidget *widget, GpkClient *gclient)
{
g_return_if_fail (GPK_IS_CLIENT (gclient));
/* TODO: need a whole section on this! */
@@ -791,18 +764,6 @@
}
/**
- * gpk_client_sig_delete_event_cb:
- * @event: The event type, unused.
- **/
-static gboolean
-gpk_client_sig_delete_event_cb (GtkWidget *widget, GdkEvent *event, GpkClient *gclient)
-{
- g_return_val_if_fail (GPK_IS_CLIENT (gclient), FALSE);
- gtk_main_quit ();
- return FALSE;
-}
-
-/**
* gpk_client_repo_signature_required_cb:
**/
static void
@@ -819,20 +780,18 @@
g_return_if_fail (GPK_IS_CLIENT (gclient));
glade_xml = glade_xml_new (PK_DATA "/gpk-signature.glade", NULL, NULL);
+
+ /* connect up default actions */
widget = glade_xml_get_widget (glade_xml, "window_gpg");
- g_signal_connect (widget, "delete_event",
- G_CALLBACK (gpk_client_sig_delete_event_cb), gclient);
+ g_signal_connect_swapped (widget, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
+ widget = glade_xml_get_widget (glade_xml, "button_no");
+ g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
/* connect up buttons */
widget = glade_xml_get_widget (glade_xml, "button_yes");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_client_sig_button_yes), gclient);
- widget = glade_xml_get_widget (glade_xml, "button_no");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_client_sig_button_no), gclient);
+ g_signal_connect (widget, "clicked", G_CALLBACK (gpk_client_sig_button_yes), gclient);
widget = glade_xml_get_widget (glade_xml, "button_help");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_client_sig_button_help), gclient);
+ g_signal_connect (widget, "clicked", G_CALLBACK (gpk_client_button_help), gclient);
/* show correct text */
widget = glade_xml_get_widget (glade_xml, "label_name");
@@ -853,7 +812,9 @@
gtk_main ();
/* hide window */
- gtk_widget_hide (widget);
+ if (GTK_IS_WIDGET (widget)) {
+ gtk_widget_hide (widget);
+ }
g_object_unref (glade_xml);
/* disagreed with auth */
@@ -880,6 +841,63 @@
}
/**
+ * gpk_client_eula_required_cb:
+ **/
+static void
+gpk_client_eula_required_cb (PkClient *client, const gchar *eula_id, const gchar *package_id,
+ const gchar *vendor_name, const gchar *license_agreement, GpkClient *gclient)
+{
+ GtkWidget *widget;
+ GladeXML *glade_xml;
+ GtkTextBuffer *buffer;
+ gchar *text;
+ PkPackageId *ident;
+
+ g_return_if_fail (GPK_IS_CLIENT (gclient));
+
+ glade_xml = glade_xml_new (PK_DATA "/gpk-eula.glade", NULL, NULL);
+
+ /* connect up default actions */
+ widget = glade_xml_get_widget (glade_xml, "window_eula");
+ g_signal_connect_swapped (widget, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
+ widget = glade_xml_get_widget (glade_xml, "button_cancel");
+ g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
+
+ /* connect up buttons */
+ widget = glade_xml_get_widget (glade_xml, "button_agree");
+ g_signal_connect (widget, "clicked", G_CALLBACK (gpk_client_sig_button_yes), gclient);
+ widget = glade_xml_get_widget (glade_xml, "button_help");
+ g_signal_connect (widget, "clicked", G_CALLBACK (gpk_client_button_help), gclient);
+
+ /* title */
+ widget = glade_xml_get_widget (glade_xml, "label_title");
+ ident = pk_package_id_new_from_string (package_id);
+ text = g_strdup_printf ("<b><big>License required for %s by %s</big></b>", ident->name, vendor_name);
+ gtk_label_set_label (GTK_LABEL (widget), text);
+ pk_package_id_free (ident);
+ g_free (text);
+
+ buffer = gtk_text_buffer_new (NULL);
+ gtk_text_buffer_insert_at_cursor (buffer, license_agreement, strlen (license_agreement));
+ widget = glade_xml_get_widget (glade_xml, "textview_details");
+ gtk_text_view_set_buffer (GTK_TEXT_VIEW (widget), buffer);
+
+ /* show window */
+ widget = glade_xml_get_widget (glade_xml, "window_eula");
+ gtk_widget_show (widget);
+
+ /* wait for button press */
+ gtk_main ();
+
+ /* hide window */
+ if (GTK_IS_WIDGET (widget)) {
+ gtk_widget_hide (widget);
+ }
+ g_object_unref (glade_xml);
+ g_object_unref (buffer);
+}
+
+/**
* gpk_client_signature_finished_cb:
**/
static void
@@ -951,6 +969,8 @@
G_CALLBACK (gpk_client_allow_cancel_cb), gclient);
g_signal_connect (gclient->priv->client_action, "repo-signature-required",
G_CALLBACK (gpk_client_repo_signature_required_cb), gclient);
+ g_signal_connect (gclient->priv->client_action, "eula-required",
+ G_CALLBACK (gpk_client_eula_required_cb), gclient);
gclient->priv->client_resolve = pk_client_new ();
g_signal_connect (gclient->priv->client_resolve, "status-changed",
@@ -964,21 +984,18 @@
G_CALLBACK (gpk_client_signature_finished_cb), gclient);
gclient->priv->glade_xml = glade_xml_new (PK_DATA "/gpk-install-file.glade", NULL, NULL);
- widget = glade_xml_get_widget (gclient->priv->glade_xml, "window_updates");
/* Get the main window quit */
- g_signal_connect (widget, "delete_event",
- G_CALLBACK (gpk_client_window_delete_event_cb), gclient);
+ widget = glade_xml_get_widget (gclient->priv->glade_xml, "window_updates");
+ g_signal_connect_swapped (widget, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
+ /* just close */
widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_close");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_client_button_close_cb), gclient);
+ g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_close2");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_client_button_close_cb), gclient);
+ g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_close3");
- g_signal_connect (widget, "clicked",
- G_CALLBACK (gpk_client_button_close_cb), gclient);
+ g_signal_connect_swapped (widget, "clicked", G_CALLBACK (gtk_main_quit), NULL);
widget = glade_xml_get_widget (gclient->priv->glade_xml, "button_cancel");
g_signal_connect (widget, "clicked",
Modified: trunk/libpackagekit-gnome/gpk-common.c
==============================================================================
--- trunk/libpackagekit-gnome/gpk-common.c (original)
+++ trunk/libpackagekit-gnome/gpk-common.c Mon Apr 14 16:13:12 2008
@@ -391,6 +391,9 @@
case PK_ERROR_ENUM_CANNOT_INSTALL_SOURCE_PACKAGE:
text = _("Source packages cannot be installed");
break;
+ case PK_ERROR_ENUM_NO_LICENSE_AGREEMENT:
+ text = _("The license agreement failed");
+ break;
default:
text = _("Unknown error");
}
@@ -489,6 +492,10 @@
text = _("Source packages are not normally installed this way.\n"
"Check the extension of the file you are trying to install.");
break;
+ case PK_ERROR_ENUM_NO_LICENSE_AGREEMENT:
+ text = _("The license agreement was not agreed to.\n"
+ "To use this software you have to accept the license.");
+ break;
default:
text = _("Unknown error, please report a bug.\n"
"More information is available in the detailed report.");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]