[zypp-commit] r6955 - in /trunk/updater-gnome: glade/ src/ src/zypp/
![](https://seccdn.libravatar.org/avatar/69e11c14f8f73eee717456823bcff438.jpg?s=120&d=mm&r=g)
Author: joshkress
Date: Wed Aug 29 11:24:29 2007
New Revision: 6955
URL: http://svn.opensuse.org/viewcvs/zypp?rev=6955&view=rev
Log:
Fixed blocker bug #299779
Along the way made some improvements, clean up and fixed these bugs:
#303826 (normal)
#304259 (normal)
#303809 only partially (normal)
Modified:
trunk/updater-gnome/glade/updater.glade
trunk/updater-gnome/src/updater-applet-callbacks.c
trunk/updater-gnome/src/updater-applet.c
trunk/updater-gnome/src/updater-backend.c
trunk/updater-gnome/src/updater-callbacks.c
trunk/updater-gnome/src/updater-callbacks.h
trunk/updater-gnome/src/updater-main.c
trunk/updater-gnome/src/updater.c
trunk/updater-gnome/src/updater.h
trunk/updater-gnome/src/zypp/updater-zypper-gui.c
Modified: trunk/updater-gnome/glade/updater.glade
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/glade/updater.glade?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/glade/updater.glade (original)
+++ trunk/updater-gnome/glade/updater.glade Wed Aug 29 11:24:29 2007
@@ -7,7 +7,7 @@
<widget class="GtkWindow" id="mainWindow">
<property name="width_request">640</property>
<property name="height_request">480</property>
- <property name="title" translatable="yes">OpenSUSE Updater</property>
+ <property name="title" translatable="yes">openSUSE Updater</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">False</property>
@@ -279,7 +279,7 @@
<widget class="GtkWindow" id="simpleWindow">
<property name="border_width">6</property>
- <property name="title" translatable="yes">OpenSUSE Updater</property>
+ <property name="title" translatable="yes">openSUSE Updater</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">False</property>
@@ -374,7 +374,7 @@
<child>
<widget class="GtkLabel" id="labelUpdates">
<property name="visible">True</property>
- <property name="label" translatable="yes">%d security updates are about to be installed</property>
+ <property name="label" translatable="yes">0 mandatory updates are about to be installed</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -400,7 +400,7 @@
<widget class="GtkCheckButton" id="checkbuttonRecommended">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="label" translatable="yes">include %d recommended updates</property>
+ <property name="label" translatable="yes">include 0 additional updates</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
@@ -493,6 +493,7 @@
<child>
<widget class="GtkButton" id="SimpleInstallButton">
<property name="visible">True</property>
+ <property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
@@ -677,7 +678,7 @@
<property name="visible">True</property>
<property name="label" translatable="yes"><span weight="bold" size="larger">Some security updates do not get installed</span>
-%d security updates require the system to be restarted.
+Some security updates require the system to be restarted.
You can hold back those updates for now, but it's strongly advised to install those updates as soon as possible!</property>
<property name="use_underline">False</property>
@@ -717,7 +718,7 @@
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER</property>
<property name="modal">False</property>
- <property name="resizable">True</property>
+ <property name="resizable">False</property>
<property name="destroy_with_parent">False</property>
<property name="icon_name">gtk-preferences</property>
<property name="decorated">True</property>
@@ -727,7 +728,7 @@
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="focus_on_map">True</property>
<property name="urgency_hint">False</property>
- <property name="has_separator">False</property>
+ <property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox3">
@@ -741,19 +742,6 @@
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
- <widget class="GtkButton" id="helpbutton1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-help</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-11</property>
- </widget>
- </child>
-
- <child>
<widget class="GtkButton" id="closebutton1">
<property name="visible">True</property>
<property name="can_default">True</property>
@@ -775,7 +763,356 @@
</child>
<child>
- <placeholder/>
+ <widget class="GtkVBox" id="vbox4">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label14">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Check interval:</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment9">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox14">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label19">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Check for updates:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combo_interval">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Every day
+Every other day</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label15">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Recommended updates:</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox13">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label18">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Treat as:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkComboBox" id="combo_recommended_updates">
+ <property name="visible">True</property>
+ <property name="items" translatable="yes">Mandatory updates
+Additional updates</property>
+ <property name="add_tearoffs">False</property>
+ <property name="focus_on_click">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label16">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><span weight="bold">Optional & 3rd party updates:</span></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment7">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">1</property>
+ <property name="yscale">1</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">12</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="homogeneous">True</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_optional_patches">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Include optional patches in additional updates</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">True</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="checkbutton_3rd_party_updates">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Include 3rd party updates in additional updates</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHSeparator" id="hseparator2">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox12">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkImage" id="image8">
+ <property name="visible">True</property>
+ <property name="icon_size">6</property>
+ <property name="icon_name">gtk-dialog-info</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">6</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label17">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">The default settings provide a sane default for most users. Changes should only be made, if they are absolutely necessary and you know what you're doing.</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">True</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ </packing>
</child>
</widget>
</child>
Modified: trunk/updater-gnome/src/updater-applet-callbacks.c
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater-applet-callbacks.c?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater-applet-callbacks.c (original)
+++ trunk/updater-gnome/src/updater-applet-callbacks.c Wed Aug 29 11:24:29 2007
@@ -84,28 +84,58 @@
{
UpdaterApplet *applet = (UpdaterApplet *) callback_data;
- GtkWidget *dialog, *label;
+ if (applet->updater->preferences_win_shown == FALSE)
+ {
+ updater_init_preferences_win (applet->updater);
+ applet->updater->preferences_win_shown = TRUE;
+ gtk_dialog_run (GTK_DIALOG (applet->updater->preferences_window));
+ gtk_widget_destroy (applet->updater->preferences_window);
+ applet->updater->preferences_win_shown = FALSE;
+ }
+ else
+ gtk_window_present (GTK_WINDOW (applet->updater->preferences_window));
- dialog = gtk_dialog_new_with_buttons ("Not Implemented",
- NULL,
- GTK_DIALOG_MODAL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
+
+
+
+
+
+ // g_printf ("%s: preferences_win_shown = %d\n", __FUNCTION__, applet->updater->preferences_win_shown);
+
+ /* Non Modal not good
+ if (applet->updater->preferences_win_shown)
+ gtk_widget_hide(applet->updater->preferences_window);
+ else
+ gtk_widget_show(applet->updater->preferences_window);
+
+ applet->updater->preferences_win_shown = !applet->updater->preferences_win_shown;
+ */
+
+
+
+ /* For beta phase. This was disabled
+ GtkWidget *dialog, *label;
+
+ dialog = gtk_dialog_new_with_buttons ("Not Implemented",
+ NULL,
+ GTK_DIALOG_MODAL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
- label = gtk_label_new ("This functionality is temporarily disabled.\nThe next beta will have it again!");
+ label = gtk_label_new ("This functionality is temporarily disabled.\nThe next beta will have it again!");
- // Ensure that the dialog box is destroyed when the user responds.
- g_signal_connect_swapped (dialog,
+ // Ensure that the dialog box is destroyed when the user responds.
+ g_signal_connect_swapped (dialog,
"response",
G_CALLBACK (gtk_widget_destroy),
dialog);
- // Add the label, and show everything we've added to the dialog.
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
+ // Add the label, and show everything we've added to the dialog.
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
label);
- gtk_widget_show_all(dialog);
-
+ gtk_widget_show_all(dialog);
+ */
//report(applet->updater->main_window, "Not implemented yet.");
}
@@ -138,6 +168,9 @@
guint action,
GtkWidget *widget)
{
+ // UpdaterApplet *applet = (UpdaterApplet *) callback_data;
+ // updater_destroy(applet->updater);
+ g_printf("We are now calling gtk_main_quit from the callback function.\n");
gtk_main_quit ();
}
Modified: trunk/updater-gnome/src/updater-applet.c
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater-applet.c?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater-applet.c (original)
+++ trunk/updater-gnome/src/updater-applet.c Wed Aug 29 11:24:29 2007
@@ -102,7 +102,7 @@
stock_icons[i].type,
stock_icons[i].filename_base);
- g_print("%s: filename = %s\n", __FUNCTION__, filename);
+ // g_print("%s: filename = %s\n", __FUNCTION__, filename);
if (!does_file_exist(filename))
{
@@ -119,7 +119,6 @@
}
g_free(filename);
- g_print("\n");
}
// add wildcarded scalable icon
@@ -127,7 +126,7 @@
char *filename = g_strdup_printf("/usr/share/opensuse-updater-gnome/images/scalable/%s/%s.svg",
stock_icons[i].type,
stock_icons[i].filename_base);
- g_print("%s: filename = %s\n", __FUNCTION__, filename);
+ // g_print("%s: filename = %s\n", __FUNCTION__, filename);
if (does_file_exist(filename))
{
GtkIconSource *source = gtk_icon_source_new();
@@ -140,7 +139,6 @@
g_print("%s: does not exist\n", __FUNCTION__);
}
g_free(filename);
- g_print("\n");
}
// add the set to factory
@@ -244,7 +242,7 @@
gtk_init (&argc, &argv);
g_set_application_name (_("OpenSuSE Updater"));
-
+/*
if (!have_tray ())
{
GtkWidget *dialog;
@@ -265,11 +263,13 @@
return -1;
}
+*/
+
applet = create_applet ();
gtk_main ();
-
+ g_printf("updater-applet-main: Did we get here?\n");
destroy_applet (applet);
return 0;
Modified: trunk/updater-gnome/src/updater-backend.c
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater-backend.c?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater-backend.c (original)
+++ trunk/updater-gnome/src/updater-backend.c Wed Aug 29 11:24:29 2007
@@ -131,12 +131,12 @@
updater_applet_set_icon(updater->applet, ICON_GREEN);
// update simple view contents
- str = g_strdup_printf("%d security updates are about to be installed",
+ str = g_strdup_printf("%d mandatory updates are about to be installed",
updater->backend->security_updates_count);
gtk_label_set_text (updater->simple_window_labelUpdates, str);
g_free(str);
- str = g_strdup_printf("include %d recommended updates",
+ str = g_strdup_printf("include %d additional updates",
(updater->backend->recommended_updates_count+updater->backend->recommended_restart_count+updater->backend->recommended_packages_count));
gtk_button_set_label (updater->simple_window_checkbuttonRecommended, str);
g_free(str);
@@ -149,8 +149,10 @@
g_print ("child process %d (you) exited with status %d.\n",pid,status);
updater_ui_set_for_active_operation(updater,FALSE);
-
- //verb_check_now (NULL, updater, NULL);
+ /* This doesn't work. It never worked. I could kill this code!
+ verb_check_now (updater, 0, NULL);
+ */
+
}
Modified: trunk/updater-gnome/src/updater-callbacks.c
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater-callbacks.c?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater-callbacks.c (original)
+++ trunk/updater-gnome/src/updater-callbacks.c Wed Aug 29 11:24:29 2007
@@ -115,6 +115,17 @@
{
SUSEUpdater *updater = user_data;
+ GPid pid;
+ gchar *argv[] = {
+ "/sbin/yast2",
+ "sw_single",
+ NULL
+ };
+
+ if (!gnomesu_spawn_async("root", argv, &pid))
+ return; // TODO report
+
+ /* Dialog for beta1 and beat2
GtkWidget *dialog, *label;
dialog = gtk_dialog_new_with_buttons ("Disabled",
@@ -136,11 +147,13 @@
label);
gtk_widget_show_all(dialog);
+ */
// This is the real stuff
- // gtk_widget_hide(updater->simple_window);
- // updater->simple_win_shown = FALSE;
+ gtk_widget_hide(updater->simple_window);
+ updater->simple_win_shown = FALSE;
+
// gtk_widget_show(updater->main_window);
// updater->main_win_shown = TRUE;
@@ -164,6 +177,8 @@
updater->backend->not_install_restart = TRUE;
else
updater->backend->not_install_restart = FALSE;
+
+ updater_save_settings(updater);
//g_print("Recommended: %d; Restart %d\n", updater->backend->install_recommended,
// updater->backend->not_install_restart);
@@ -200,4 +215,53 @@
}
+/* Preferences window callbacks */
+void on_preferenceWindow_comboInterval_changed (GtkWidget *widget, gpointer user_data)
+{
+ SUSEUpdater *updater = user_data;
+
+ updater->settings_check_interval = 1 + gtk_combo_box_get_active(GTK_COMBO_BOX (updater->preferences_window_combo_interval));
+ g_printf("Interval: %d\n", updater->settings_check_interval);
+ updater_save_settings(updater);
+}
+
+void on_preferenceWindow_comboRecommended_changed (GtkWidget *widget, gpointer user_data)
+{
+ SUSEUpdater *updater = user_data;
+
+ if (gtk_combo_box_get_active(GTK_COMBO_BOX (updater->preferences_window_combo_recommended)) == 0)
+ updater->settings_recommended_are_mandatory = 1;
+ else
+ updater->settings_recommended_are_mandatory = 0;
+ g_printf("Recommended: %d\n", updater->settings_recommended_are_mandatory);
+ updater_save_settings(updater);
+}
+
+void on_preferenceWindow_checkbutton_optional_toggled (GtkWidget *widget, gpointer user_data)
+{
+ SUSEUpdater *updater = user_data;
+
+ updater->settings_include_optional_patches = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (updater->preferences_window_checkbutton_optional_patches));
+ g_printf("Optional?: %d\n", updater->settings_include_optional_patches);
+ updater_save_settings(updater);
+}
+
+void on_preferenceWindow_checkbutton_third_party_toggled (GtkWidget *widget, gpointer user_data)
+{
+ SUSEUpdater *updater = user_data;
+
+ updater->settings_include_third_party_updates = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (updater->preferences_window_checkbutton_3rd_party_updates));
+ g_printf("Third Party?: %d\n", updater->settings_include_third_party_updates);
+ updater_save_settings(updater);
+}
+
+gboolean on_preferencesWindow_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data)
+{
+ SUSEUpdater *updater = user_data;
+
+ gtk_widget_hide(widget);
+ updater->preferences_win_shown = FALSE;
+ return TRUE;
+}
+
// vim: set ts=2 sts=2 sw=2 et ai:
Modified: trunk/updater-gnome/src/updater-callbacks.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater-callbacks.h?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater-callbacks.h (original)
+++ trunk/updater-gnome/src/updater-callbacks.h Wed Aug 29 11:24:29 2007
@@ -42,6 +42,12 @@
*/
void on_CloseButton_clicked (GtkWidget *widget, gpointer user_data);
+/* Callbacks for preferences win */
+void on_preferenceWindow_comboInterval_changed (GtkWidget *widget, gpointer user_data);
+void on_preferenceWindow_comboRecommended_changed (GtkWidget *widget, gpointer user_data);
+void on_preferenceWindow_checkbutton_optional_toggled (GtkWidget *widget, gpointer user_data);
+void on_preferenceWindow_checkbutton_third_party_toggled (GtkWidget *widget, gpointer user_data);
+gboolean on_preferencesWindow_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data);
#endif /*UPDATERCALLBACKS_H_*/
Modified: trunk/updater-gnome/src/updater-main.c
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater-main.c?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater-main.c (original)
+++ trunk/updater-gnome/src/updater-main.c Wed Aug 29 11:24:29 2007
@@ -26,7 +26,7 @@
// start the event loop
gtk_main();
-
+ g_printf("updater-main: Did we come here?\n");
updater_destroy(updater);
return 0;
Modified: trunk/updater-gnome/src/updater.c
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater.c?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater.c (original)
+++ trunk/updater-gnome/src/updater.c Wed Aug 29 11:24:29 2007
@@ -13,16 +13,65 @@
SUSEUpdater *updater;
updater = g_new0(SUSEUpdater, 1);
+
+ /* Read settings */
+ gchar *settings_file;
+ GKeyFile *kf;
+ FILE *fp_settings_file;
+ gint sfcc;
+
+ settings_file = g_build_filename (g_get_home_dir(), ".opensuse-updater-gnome", NULL);
+ if (!g_file_test (settings_file, G_FILE_TEST_EXISTS))
+ {
+ fp_settings_file = g_fopen(settings_file, "w+");
+ sfcc = g_fprintf (fp_settings_file, "[osug]\n");
+ sfcc = g_fprintf (fp_settings_file, "check_interval=1\n");
+ sfcc = g_fprintf (fp_settings_file, "recommended_are_mandatory=1\n");
+ sfcc = g_fprintf (fp_settings_file, "include_optional_patches=0\n");
+ sfcc = g_fprintf (fp_settings_file, "include_third_party=0\n");
+ sfcc = g_fprintf (fp_settings_file, "include_additional_updates=0\n");
+ fclose (fp_settings_file);
+ }
+
+ kf = g_key_file_new();
+
+ if (!g_key_file_load_from_file(kf, settings_file, G_KEY_FILE_NONE, NULL))
+ {
+ fp_settings_file = g_fopen(settings_file, "w+");
+ sfcc = g_fprintf (fp_settings_file, "[osug]\n");
+ sfcc = g_fprintf (fp_settings_file, "check_interval=1\n");
+ sfcc = g_fprintf (fp_settings_file, "recommended_are_mandatory=1\n");
+ sfcc = g_fprintf (fp_settings_file, "include_optional_patches=0\n");
+ sfcc = g_fprintf (fp_settings_file, "include_third_party=0\n");
+ sfcc = g_fprintf (fp_settings_file, "include_additional_updates=0\n");
+ fclose (fp_settings_file);
+ }
+
+ updater->settings_check_interval = g_key_file_get_integer (kf, "osug", "check_interval", NULL);
+ // g_printf ("Interval: %d\n", updater->settings_check_interval);
+ updater->settings_recommended_are_mandatory = g_key_file_get_boolean (kf, "osug", "recommended_are_mandatory", NULL);
+ // g_printf ("Recommended are mandatory: %d\n", updater->settings_recommended_are_mandatory);
+ updater->settings_include_optional_patches = g_key_file_get_boolean (kf, "osug", "include_optional_patches", NULL);
+ // g_printf ("Optional Patches?: %d\n", updater->settings_include_optional_patches);
+ updater->settings_include_third_party_updates = g_key_file_get_boolean (kf, "osug", "include_third_party", NULL);
+ // g_printf ("Third Party Updates?: %d\n", updater->settings_include_third_party_updates);
+ updater->settings_include_additional_updates = g_key_file_get_boolean (kf, "osug", "include_additional_updates", NULL);
+ // g_printf ("Additional updates?: %d\n", updater->settings_include_additional_updates);
+
+ g_key_file_free(kf);
+ g_free (settings_file);
+
updater->backend = backend_init();
updater_init_main_win (updater, show_main_window);
updater_init_simple_win (updater, show_simple_window);
+ // updater_init_preferences_win (updater);
return updater;
}
// ----------------------------------------------------------------------------
-// TODO: Add simpleWindow et al
+
void updater_destroy(SUSEUpdater *updater)
{
@@ -34,6 +83,8 @@
gtk_widget_destroy (updater->simple_window);
if (updater->backend)
backend_destroy (updater->backend);
+ if (updater->preferences_window)
+ gtk_widget_destroy (updater->preferences_window);
g_free(updater);
}
@@ -180,12 +231,12 @@
// updater_ui_create_update_list_model(updater);
// set informative text
- str = g_strdup_printf("%d security updates are about to be installed",
+ str = g_strdup_printf("%d mandatory updates are about to be installed",
updater->backend->security_updates_count);
gtk_label_set_text (updater->simple_window_labelUpdates, str);
g_free(str);
- str = g_strdup_printf("include %d recommended updates",
+ str = g_strdup_printf("include %d additional updates",
updater->backend->recommended_updates_count);
gtk_button_set_label (updater->simple_window_checkbuttonRecommended, str);
g_free(str);
@@ -198,6 +249,128 @@
updater->simple_win_shown = show;
}
+// ----------------------------------------------------------------------------
+
+// Preference Window
+
+void updater_init_preferences_win (SUSEUpdater *updater)
+{
+ char *gladefilename;
+ FILE *gladefile;
+
+ GladeXML *xml;
+ gchar *str;
+
+ glade_gnome_init();
+
+ /* check where to find the glade file */
+ gladefilename = DATADIR "/glade/updater.glade";
+ if (gladefile = fopen(gladefilename, "r"))
+ fclose(gladefile);
+ else
+ gladefilename = PROJECTDIR "/glade/updater.glade";
+
+ /* load the interface */
+ updater->preferences_window_xml = glade_xml_new(gladefilename, NULL, NULL);
+ updater->preferences_window = glade_xml_get_widget(updater->preferences_window_xml,
+ "dialogPreferences");
+ updater->preferences_window_combo_interval = glade_xml_get_widget(updater->preferences_window_xml,
+ "combo_interval");
+ updater->preferences_window_combo_recommended = glade_xml_get_widget(updater->preferences_window_xml,
+ "combo_recommended_updates");
+ updater->preferences_window_checkbutton_optional_patches = glade_xml_get_widget(updater->preferences_window_xml,
+ "checkbutton_optional_patches");
+ updater->preferences_window_checkbutton_3rd_party_updates = glade_xml_get_widget(updater->preferences_window_xml,
+ "checkbutton_3rd_party_updates");
+
+ /* Set the controls according to the current settings */
+ if (updater->settings_check_interval == 2)
+ gtk_combo_box_set_active (updater->preferences_window_combo_interval, 1);
+ else
+ gtk_combo_box_set_active (updater->preferences_window_combo_interval, 0);
+
+ if (updater->settings_recommended_are_mandatory)
+ gtk_combo_box_set_active (updater->preferences_window_combo_recommended, 0);
+ else
+ gtk_combo_box_set_active (updater->preferences_window_combo_recommended, 1);
+
+ gtk_toggle_button_set_active (updater->preferences_window_checkbutton_optional_patches, updater->settings_include_optional_patches);
+
+ gtk_toggle_button_set_active (updater->preferences_window_checkbutton_3rd_party_updates, updater->settings_include_third_party_updates);
+
+ /* autoconnect the signals in the interface */
+ glade_xml_signal_autoconnect(updater->preferences_window_xml);
+
+ // gtk_dialog_set_default_response (GTK_DIALOG (updater->preferences_window), GTK_RESPONSE_CLOSE);
+
+ /* manually connect signals to handlers which need user_data
+ (glade-2 isn't able to handle this) */
+ g_signal_connect(glade_xml_get_widget(updater->preferences_window_xml,
+ "combo_interval"),
+ "changed",
+ G_CALLBACK(on_preferenceWindow_comboInterval_changed),
+ updater);
+
+ g_signal_connect(glade_xml_get_widget(updater->preferences_window_xml,
+ "combo_recommended_updates"),
+ "changed",
+ G_CALLBACK(on_preferenceWindow_comboRecommended_changed),
+ updater);
+
+ g_signal_connect(glade_xml_get_widget(updater->preferences_window_xml,
+ "checkbutton_optional_patches"),
+ "toggled",
+ G_CALLBACK(on_preferenceWindow_checkbutton_optional_toggled),
+ updater);
+
+ g_signal_connect(glade_xml_get_widget(updater->preferences_window_xml,
+ "checkbutton_3rd_party_updates"),
+ "toggled",
+ G_CALLBACK(on_preferenceWindow_checkbutton_third_party_toggled),
+ updater);
+ /*
+ g_signal_connect(updater->simple_window,
+ "destroy",
+ G_CALLBACK(on_simpleWindow_destroy),
+ updater);
+ */
+ g_signal_connect(updater->preferences_window,
+ "delete-event",
+ G_CALLBACK(on_preferencesWindow_delete_event),
+ updater);
+
+ gtk_widget_show_all (updater->preferences_window);
+
+
+ // hide the window after initialization if requested
+ // gtk_widget_hide (updater->preferences_window);
+ // updater->preferences_win_shown = FALSE;
+}
+
+// ----------------------------------------------------------------------------
+
+void
+updater_save_settings (SUSEUpdater *updater)
+{
+
+ gchar *save_settings_file;
+ FILE *fp_save_settings_file;
+ gint save_sfcc;
+
+ save_settings_file = g_build_filename (g_get_home_dir(), ".opensuse-updater-gnome", NULL);
+
+ fp_save_settings_file = g_fopen(save_settings_file, "w+");
+ save_sfcc = g_fprintf (fp_save_settings_file, "[osug]\n");
+ save_sfcc = g_fprintf (fp_save_settings_file, "check_interval=%d\n", updater->settings_check_interval);
+ save_sfcc = g_fprintf (fp_save_settings_file, "recommended_are_mandatory=%d\n", updater->settings_recommended_are_mandatory);
+ save_sfcc = g_fprintf (fp_save_settings_file, "include_optional_patches=%d\n", updater->settings_include_optional_patches);
+ save_sfcc = g_fprintf (fp_save_settings_file, "include_third_party=%d\n", updater->settings_include_third_party_updates);
+ save_sfcc = g_fprintf (fp_save_settings_file, "include_additional_updates=%d\n", updater->settings_include_additional_updates);
+ fclose (fp_save_settings_file);
+
+ g_free (save_settings_file);
+
+}
// ----------------------------------------------------------------------------
Modified: trunk/updater-gnome/src/updater.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/updater-gnome/src/updater.h?rev=6955&r1=6954&r2=6955&view=diff
==============================================================================
--- trunk/updater-gnome/src/updater.h (original)
+++ trunk/updater-gnome/src/updater.h Wed Aug 29 11:24:29 2007
@@ -10,6 +10,9 @@
#include
participants (1)
-
joshkress@svn.opensuse.org