[gnome-packagekit] Remove the update preferences from the control center



commit 76cc7cae937a1cc9d8023fd5b3925917e595d23e
Author: Richard Hughes <richard hughsie com>
Date:   Tue Feb 15 13:11:25 2011 +0000

    Remove the update preferences from the control center
    
    The design team didn't want the update preferences as a pane
    in the control center. So rip out the control center integration,
    re-port to GtkApplication and ship as the old binary name.

 configure.ac                           |    6 -
 contrib/gnome-packagekit.spec.in       |    5 -
 data/gpk-prefs.desktop.in              |    5 +-
 data/gpk-prefs.ui                      |  155 ++++++---
 man/Makefile.am                        |    4 +
 po/POTFILES.in                         |    2 +-
 src/Makefile.am                        |   20 +-
 src/cc-update-panel.h                  |   54 ---
 src/gpk-application.c                  |    2 +-
 src/{cc-update-panel.c => gpk-prefs.c} |  584 ++++++++++++++++++--------------
 10 files changed, 441 insertions(+), 396 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index b075239..3970620 100644
--- a/configure.ac
+++ b/configure.ac
@@ -122,12 +122,6 @@ PKG_CHECK_MODULES(UPOWER, [
 PKG_CHECK_MODULES(CANBERRA, libcanberra-gtk3 >= 0.10)
 PKG_CHECK_MODULES(X11, x11)
 
-dnl Required for the properties window
-PKG_CHECK_MODULES(CONTROL_CENTER, [
- libgnome-control-center >= 2.31.4])
-PANELS_DIR="${libdir}/control-center-1/panels"
-AC_SUBST(PANELS_DIR)
-
 dnl **** Check for libnotify ****
 PKG_CHECK_MODULES(NOTIFY, libnotify >= 0.7.0)
 
diff --git a/contrib/gnome-packagekit.spec.in b/contrib/gnome-packagekit.spec.in
index 9f8c713..061d7f3 100644
--- a/contrib/gnome-packagekit.spec.in
+++ b/contrib/gnome-packagekit.spec.in
@@ -51,7 +51,6 @@ BuildRequires: fontconfig-devel
 BuildRequires: libcanberra-devel
 BuildRequires: libgudev1-devel
 BuildRequires: upower-devel >= 0.9.0
-BuildRequires: control-center-devel >= 2.31.4
 
 # obsolete sub-package
 Obsoletes: gnome-packagekit-extra <= 2.91.1
@@ -85,9 +84,6 @@ for i in gpk-application gpk-update-viewer gpk-install-file gpk-log gpk-prefs ;
     $RPM_BUILD_ROOT%{_datadir}/applications/$i.desktop
 done
 
-rm -f $RPM_BUILD_ROOT%{_libdir}/control-center-1/panels/*.a
-rm -f $RPM_BUILD_ROOT%{_libdir}/control-center-1/panels/*.la
-
 %find_lang %name --with-gnome
 
 %clean
@@ -115,7 +111,6 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 %defattr(-,root,root,-)
 %doc AUTHORS COPYING NEWS README
 %{_bindir}/gpk-*
-%{_libdir}/control-center-1/panels/*.so
 %dir %{_datadir}/gnome-packagekit
 %{_datadir}/gnome-packagekit/gpk-*.ui
 %dir %{_datadir}/gnome-packagekit/icons
diff --git a/data/gpk-prefs.desktop.in b/data/gpk-prefs.desktop.in
index a5f2e27..d3000ea 100644
--- a/data/gpk-prefs.desktop.in
+++ b/data/gpk-prefs.desktop.in
@@ -2,10 +2,9 @@
 _Name=Software Updates
 _Comment=Change software update preferences and enable or disable software sources
 Icon=gpk-prefs
-Exec=gnome-control-center update
+Exec=gpk-prefs
 Terminal=false
 Type=Application
-Categories=Settings;X-GNOME-SystemSettings;X-GNOME-Settings-Panel;
+Categories=Settings;X-GNOME-SystemSettings;
 NotShowIn=KDE;
 StartupNotify=true
-X-GNOME-Settings-Panel=update
diff --git a/data/gpk-prefs.ui b/data/gpk-prefs.ui
index baecd2e..fbc0349 100644
--- a/data/gpk-prefs.ui
+++ b/data/gpk-prefs.ui
@@ -1,17 +1,71 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="2.16"/>
-  <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkDialog" id="dialog_prefs">
-    <property name="border_width">6</property>
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
     <property name="title" translatable="yes">Software Update Preferences</property>
-    <property name="modal">True</property>
-    <property name="window_position">center-on-parent</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="dialog-vbox1">
+      <object class="GtkBox" id="dialog-vbox">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
         <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="button_help">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button_check_now">
+                <property name="label" translatable="yes">_Check Now</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button_close">
+                <property name="label">gtk-close</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+        </child>
         <child>
           <object class="GtkNotebook" id="notebook_preferences">
             <property name="visible">True</property>
@@ -20,19 +74,22 @@
             <child>
               <object class="GtkVBox" id="vbox8">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="border_width">15</property>
                 <property name="spacing">12</property>
                 <child>
                   <object class="GtkTable" id="table1">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="n_rows">3</property>
                     <property name="n_columns">2</property>
                     <property name="column_spacing">20</property>
                     <property name="row_spacing">9</property>
                     <child>
                       <object class="GtkComboBoxText" id="combobox_check">
-                        <property name="entry-text-column">0</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="entry_text_column">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -43,8 +100,9 @@
                     </child>
                     <child>
                       <object class="GtkComboBoxText" id="combobox_install">
-                        <property name="entry-text-column">0</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="entry_text_column">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -57,6 +115,7 @@
                     <child>
                       <object class="GtkLabel" id="label_install">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">_Automatically install:</property>
                         <property name="use_underline">True</property>
@@ -72,6 +131,7 @@
                     <child>
                       <object class="GtkLabel" id="label_check1">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">C_heck for updates:</property>
                         <property name="use_underline">True</property>
@@ -85,6 +145,7 @@
                     <child>
                       <object class="GtkLabel" id="label_upgrade">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">Check for major _upgrades:</property>
                         <property name="use_underline">True</property>
@@ -99,8 +160,9 @@
                     </child>
                     <child>
                       <object class="GtkComboBoxText" id="combobox_upgrade">
-                        <property name="entry-text-column">0</property>
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="entry_text_column">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -124,6 +186,8 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="xalign">0</property>
                     <property name="draw_indicator">True</property>
                   </object>
                   <packing>
@@ -134,21 +198,25 @@
                 </child>
                 <child>
                   <object class="GtkHBox" id="hbox_mobile_broadband">
+                    <property name="can_focus">False</property>
                     <property name="spacing">9</property>
                     <child>
                       <object class="GtkImage" id="image1">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="stock">gtk-dialog-info</property>
                         <property name="icon-size">5</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">True</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkLabel" id="label1">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="label" translatable="yes">Currently using mobile broadband</property>
                         <attributes>
                           <attribute name="style" value="italic"/>
@@ -156,6 +224,7 @@
                       </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
@@ -171,6 +240,7 @@
             <child type="tab">
               <object class="GtkLabel" id="label_tab_settings">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">Update Settings</property>
               </object>
               <packing>
@@ -180,14 +250,17 @@
             <child>
               <object class="GtkVBox" id="vbox3">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="border_width">15</property>
                 <property name="spacing">12</property>
                 <child>
                   <object class="GtkHBox" id="hbox1">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <child>
                       <object class="GtkLabel" id="label2">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0.49000000953674316</property>
                         <property name="label" translatable="yes">A software source contains packages that can be installed on this computer.</property>
                         <attributes>
@@ -203,6 +276,7 @@
                   </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -210,45 +284,55 @@
                   <object class="GtkScrolledWindow" id="scrolledwindow_repo">
                     <property name="can_focus">True</property>
                     <property name="hscrollbar_policy">never</property>
-                    <property name="vscrollbar_policy">automatic</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkTreeView" id="treeview_repo">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="headers_visible">False</property>
+                        <child internal-child="selection">
+                          <object class="GtkTreeSelection" id="treeview-selection"/>
+                        </child>
                       </object>
                     </child>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkViewport" id="viewport_status">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="resize_mode">queue</property>
                     <child>
                       <object class="GtkHBox" id="hbox_status">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <child>
                           <object class="GtkHBox" id="hbox_status2">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="spacing">12</property>
                             <child>
                               <object class="GtkImage" id="image_status">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="stock">gtk-execute</property>
                                 <property name="icon-size">6</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkLabel" id="label_status">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="label">Another action is in progress.</property>
                                 <attributes>
                                   <attribute name="weight" value="bold"/>
@@ -256,11 +340,13 @@
                               </object>
                               <packing>
                                 <property name="expand">False</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
                           </object>
                           <packing>
+                            <property name="expand">True</property>
                             <property name="fill">False</property>
                             <property name="position">0</property>
                           </packing>
@@ -269,6 +355,8 @@
                     </child>
                   </object>
                   <packing>
+                    <property name="expand">True</property>
+                    <property name="fill">True</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
@@ -278,11 +366,14 @@
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
+                    <property name="use_action_appearance">False</property>
                     <property name="use_underline">True</property>
+                    <property name="xalign">0</property>
                     <property name="draw_indicator">True</property>
                   </object>
                   <packing>
                     <property name="expand">False</property>
+                    <property name="fill">True</property>
                     <property name="position">3</property>
                   </packing>
                 </child>
@@ -294,6 +385,7 @@
             <child type="tab">
               <object class="GtkLabel" id="label_tab_battery">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes">Software Sources</property>
               </object>
               <packing>
@@ -303,49 +395,9 @@
             </child>
           </object>
           <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="button_help">
-                <property name="label">gtk-help</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-                <property name="secondary">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkButton" id="button_check_now">
-                <property name="label" translatable="yes">_Check Now</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_action_appearance">False</property>
-                <property name="use_underline">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
             <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
@@ -353,6 +405,7 @@
     <action-widgets>
       <action-widget response="0">button_help</action-widget>
       <action-widget response="0">button_check_now</action-widget>
+      <action-widget response="0">button_close</action-widget>
     </action-widgets>
   </object>
 </interface>
diff --git a/man/Makefile.am b/man/Makefile.am
index 23427a4..344b717 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -5,6 +5,7 @@ EXTRA_DIST =						\
 	gpk-install-mime-type.sgml			\
 	gpk-install-package-name.sgml			\
 	gpk-install-provide-file.sgml			\
+	gpk-prefs.sgml					\
 	gpk-repo.sgml					\
 	gpk-update-icon.sgml				\
 	gpk-update-viewer.sgml
@@ -17,6 +18,7 @@ man_MANS =						\
 	gpk-install-mime-type.1			\
 	gpk-install-package-name.1			\
 	gpk-install-provide-file.1			\
+	gpk-prefs.1					\
 	gpk-repo.1					\
 	gpk-update-icon.1				\
 	gpk-update-viewer.1
@@ -35,6 +37,8 @@ gpk-install-provide-file.1: gpk-install-provide-file.sgml
 	docbook2man $? > /dev/null
 gpk-install-mime-type.1: gpk-install-mime-type.sgml
 	docbook2man $? > /dev/null
+gpk-prefs.1: gpk-prefs.sgml
+	docbook2man $? > /dev/null
 gpk-repo.1: gpk-repo.sgml
 	docbook2man $? > /dev/null
 gpk-update-icon.1: gpk-update-icon.sgml
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1bcd51a..9b36939 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -21,7 +21,6 @@ data/gpk-update-viewer.desktop.in
 data/gpk-distro-upgrade.desktop.in
 [type: gettext/glade]data/gpk-update-viewer.ui
 python/packagekit/gtkwidgets.py
-src/cc-update-panel.c
 src/gpk-application.c
 src/gpk-check-update.c
 src/gpk-common.c
@@ -44,6 +43,7 @@ src/gpk-install-package-name.c
 src/gpk-install-provide-file.c
 src/gpk-log.c
 src/gpk-modal-dialog.c
+src/gpk-prefs.c
 src/gpk-service-pack.c
 src/gpk-update-icon.c
 src/gpk-update-viewer.c
diff --git a/src/Makefile.am b/src/Makefile.am
index dc34d1f..90434c9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -12,7 +12,6 @@ INCLUDES =						\
 	$(PACKAGEKIT_CFLAGS)				\
 	$(GUDEV_CFLAGS)					\
 	$(GNOME_MENUS_CFLAGS)				\
-	$(CONTROL_CENTER_CFLAGS)			\
 	-DI_KNOW_THE_UPOWER_API_IS_SUBJECT_TO_CHANGE	\
 	-DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE	\
 	-DG_UDEV_API_IS_SUBJECT_TO_CHANGE		\
@@ -30,11 +29,9 @@ INCLUDES =						\
 	-DG_LOG_DOMAIN=\"GnomePackageKit\"		\
 	$(NULL)
 
-ccpanelsdir = $(PANELS_DIR)
-ccpanels_LTLIBRARIES = libupdate.la
-
 bin_PROGRAMS =						\
 	gpk-application					\
+	gpk-prefs					\
 	gpk-service-pack				\
 	gpk-install-catalog				\
 	gpk-install-local-file				\
@@ -214,7 +211,7 @@ gpk_service_pack_LDADD =				\
 	$(shared_LIBS)					\
 	$(NULL)
 
-libupdate_la_SOURCES =					\
+gpk_prefs_SOURCES =					\
 	gpk-debug.h					\
 	gpk-debug.c					\
 	gpk-animated-icon.c				\
@@ -225,19 +222,14 @@ libupdate_la_SOURCES =					\
 	gpk-common.h					\
 	gpk-error.c					\
 	gpk-error.h					\
-	cc-update-panel.c				\
-	cc-update-panel.h				\
+	gpk-prefs.c					\
 	$(NULL)
 
-libupdate_la_LIBADD =					\
-	$(GLIB_LIBS)					\
-	$(PACKAGEKIT_LIBS)				\
-	$(CONTROL_CENTER_LIBS)				\
+gpk_prefs_LDADD =					\
+	libgpkshared.a					\
+	$(shared_LIBS)					\
 	-lm
 
-libupdate_la_LDFLAGS = -avoid-version -module
-libupdate_la_CFLAGS = $(WARNINGFLAGS)
-
 gpk_update_viewer_SOURCES =				\
 	gpk-update-viewer.c				\
 	gpk-cell-renderer-size.c			\
diff --git a/src/gpk-application.c b/src/gpk-application.c
index b9824a2..390e4c9 100644
--- a/src/gpk-application.c
+++ b/src/gpk-application.c
@@ -2756,7 +2756,7 @@ gpk_application_menu_sources_cb (GtkAction *_action, gpointer user_data)
 	window = GTK_WIDGET (gtk_builder_get_object (builder, "window_manager"));
 	xid = gdk_x11_window_get_xid (gtk_widget_get_window (window));
 
-	command = g_strdup_printf ("%s/gnome-control-center update --parent-window %u", BINDIR, xid);
+	command = g_strdup_printf ("%s/gpk-prefs --parent-window %u", BINDIR, xid);
 	g_debug ("running: %s", command);
 	ret = g_spawn_command_line_async (command, NULL);
 	if (!ret) {
diff --git a/src/cc-update-panel.c b/src/gpk-prefs.c
similarity index 57%
rename from src/cc-update-panel.c
rename to src/gpk-prefs.c
index 4f277c9..f5738be 100644
--- a/src/cc-update-panel.c
+++ b/src/gpk-prefs.c
@@ -1,6 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
- * Copyright (C) 2010 Richard Hughes <richard hughsie com>
+ * Copyright (C) 2010-2011 Richard Hughes <richard hughsie com>
  *
  * Licensed under the GNU General Public License Version 2
  *
@@ -23,29 +23,30 @@
 #include <config.h>
 #endif
 
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
+#include <locale.h>
 #include <gtk/gtk.h>
 #include <packagekit-glib2/packagekit.h>
 
-#include "cc-update-panel.h"
-
 #include "gpk-common.h"
-#include "gpk-gnome.h"
+#include "gpk-debug.h"
 #include "gpk-enum.h"
 #include "gpk-error.h"
+#include "gpk-gnome.h"
 
-struct _CcUpdatePanelPrivate {
-	GtkBuilder		*builder;
+typedef struct {
+	const gchar		*id_tmp;
+	GCancellable		*cancellable;
 	GSettings		*settings;
+	GtkApplication		*application;
+	GtkBuilder		*builder;
 	GtkListStore		*list_store;
-	PkClient		*client;
-	PkBitfield		 roles;
 	GtkTreePath		*path_tmp;
-	const gchar		*id_tmp;
-	PkStatusEnum		 status;
 	guint			 status_id;
-	GCancellable		*cancellable;
-};
+	PkBitfield		 roles;
+	PkClient		*client;
+	PkStatusEnum		 status;
+} GpkPrefsPrivate;
 
 enum {
 	GPK_COLUMN_ENABLED,
@@ -56,12 +57,6 @@ enum {
 	GPK_COLUMN_LAST
 };
 
-G_DEFINE_DYNAMIC_TYPE (CcUpdatePanel, cc_update_panel, CC_TYPE_PANEL)
-
-static void cc_update_panel_finalize (GObject *object);
-
-#define CC_UPDATE_PREFS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CC_TYPE_UPDATE_PANEL, CcUpdatePanelPrivate))
-
 /* TRANSLATORS: check once an hour */
 #define PK_FREQ_HOURLY_TEXT		_("Hourly")
 /* TRANSLATORS: check once a day */
@@ -84,19 +79,19 @@ static void cc_update_panel_finalize (GObject *object);
 #define GPK_PREFS_VALUE_WEEKLY		(60*60*24*7)
 
 /**
- * cc_update_panel_help_cb:
+ * gpk_prefs_help_cb:
  **/
 static void
-cc_update_panel_help_cb (GtkWidget *widget, CcUpdatePanel *panel)
+gpk_prefs_help_cb (GtkWidget *widget, GpkPrefsPrivate *priv)
 {
 	gpk_gnome_help ("prefs");
 }
 
 /**
- * cc_update_panel_check_now_cb:
+ * gpk_prefs_check_now_cb:
  **/
 static void
-cc_update_panel_check_now_cb (GtkWidget *widget, CcUpdatePanel *panel)
+gpk_prefs_check_now_cb (GtkWidget *widget, GpkPrefsPrivate *priv)
 {
 	gboolean ret;
 	GError *error = NULL;
@@ -112,10 +107,10 @@ cc_update_panel_check_now_cb (GtkWidget *widget, CcUpdatePanel *panel)
 }
 
 /**
- * cc_update_panel_update_freq_combo_changed:
+ * gpk_prefs_update_freq_combo_changed:
  **/
 static void
-cc_update_panel_update_freq_combo_changed (GtkWidget *widget, CcUpdatePanel *panel)
+gpk_prefs_update_freq_combo_changed (GtkWidget *widget, GpkPrefsPrivate *priv)
 {
 	gchar *value;
 	guint freq = 0;
@@ -133,15 +128,15 @@ cc_update_panel_update_freq_combo_changed (GtkWidget *widget, CcUpdatePanel *pan
 		g_assert (FALSE);
 
 	g_debug ("Changing %s to %i", GPK_SETTINGS_FREQUENCY_GET_UPDATES, freq);
-	g_settings_set_int (panel->priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPDATES, freq);
+	g_settings_set_int (priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPDATES, freq);
 	g_free (value);
 }
 
 /**
- * cc_update_panel_upgrade_freq_combo_changed:
+ * gpk_prefs_upgrade_freq_combo_changed:
  **/
 static void
-cc_update_panel_upgrade_freq_combo_changed (GtkWidget *widget, CcUpdatePanel *panel)
+gpk_prefs_upgrade_freq_combo_changed (GtkWidget *widget, GpkPrefsPrivate *priv)
 {
 	gchar *value;
 	guint freq = 0;
@@ -157,37 +152,37 @@ cc_update_panel_upgrade_freq_combo_changed (GtkWidget *widget, CcUpdatePanel *pa
 		g_assert (FALSE);
 
 	g_debug ("Changing %s to %i", GPK_SETTINGS_FREQUENCY_GET_UPGRADES, freq);
-	g_settings_set_int (panel->priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPGRADES, freq);
+	g_settings_set_int (priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPGRADES, freq);
 	g_free (value);
 }
 
 /**
- * cc_update_panel_update_combo_changed:
+ * gpk_prefs_update_combo_changed:
  **/
 static void
-cc_update_panel_update_combo_changed (GtkWidget *widget, CcUpdatePanel *panel)
+gpk_prefs_update_combo_changed (GtkWidget *widget, GpkPrefsPrivate *priv)
 {
 	GpkUpdateEnum update;
 
 	update = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
 	if (update == -1)
 		return;
-	g_settings_set_enum (panel->priv->settings, GPK_SETTINGS_AUTO_UPDATE, update);
+	g_settings_set_enum (priv->settings, GPK_SETTINGS_AUTO_UPDATE, update);
 }
 
 /**
- * cc_update_panel_update_freq_combo_setup:
+ * gpk_prefs_update_freq_combo_setup:
  **/
 static void
-cc_update_panel_update_freq_combo_setup (CcUpdatePanel *panel)
+gpk_prefs_update_freq_combo_setup (GpkPrefsPrivate *priv)
 {
-	guint value;
 	gboolean is_writable;
 	GtkWidget *widget;
+	guint value;
 
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "combobox_check"));
-	is_writable = g_settings_is_writable (panel->priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPDATES);
-	value = g_settings_get_int (panel->priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPDATES);
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "combobox_check"));
+	is_writable = g_settings_is_writable (priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPDATES);
+	value = g_settings_get_int (priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPDATES);
 	g_debug ("value from settings %i", value);
 
 	/* do we have permission to write? */
@@ -211,22 +206,22 @@ cc_update_panel_update_freq_combo_setup (CcUpdatePanel *panel)
 
 	/* only do this after else we redraw the window */
 	g_signal_connect (G_OBJECT (widget), "changed",
-			  G_CALLBACK (cc_update_panel_update_freq_combo_changed), panel);
+			  G_CALLBACK (gpk_prefs_update_freq_combo_changed), priv);
 }
 
 /**
- * cc_update_panel_upgrade_freq_combo_setup:
+ * gpk_prefs_upgrade_freq_combo_setup:
  **/
 static void
-cc_update_panel_upgrade_freq_combo_setup (CcUpdatePanel *panel)
+gpk_prefs_upgrade_freq_combo_setup (GpkPrefsPrivate *priv)
 {
-	guint value;
 	gboolean is_writable;
 	GtkWidget *widget;
+	guint value;
 
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "combobox_upgrade"));
-	is_writable = g_settings_is_writable (panel->priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPGRADES);
-	value = g_settings_get_int (panel->priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPGRADES);
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "combobox_upgrade"));
+	is_writable = g_settings_is_writable (priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPGRADES);
+	value = g_settings_get_int (priv->settings, GPK_SETTINGS_FREQUENCY_GET_UPGRADES);
 	g_debug ("value from settings %i", value);
 
 	/* do we have permission to write? */
@@ -247,22 +242,22 @@ cc_update_panel_upgrade_freq_combo_setup (CcUpdatePanel *panel)
 
 	/* only do this after else we redraw the window */
 	g_signal_connect (G_OBJECT (widget), "changed",
-			  G_CALLBACK (cc_update_panel_upgrade_freq_combo_changed), panel);
+			  G_CALLBACK (gpk_prefs_upgrade_freq_combo_changed), priv);
 }
 
 /**
- * cc_update_panel_auto_update_combo_setup:
+ * gpk_prefs_auto_update_combo_setup:
  **/
 static void
-cc_update_panel_auto_update_combo_setup (CcUpdatePanel *panel)
+gpk_prefs_auto_update_combo_setup (GpkPrefsPrivate *priv)
 {
 	gboolean is_writable;
-	GtkWidget *widget;
 	GpkUpdateEnum update;
+	GtkWidget *widget;
 
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "combobox_install"));
-	is_writable = g_settings_is_writable (panel->priv->settings, GPK_SETTINGS_AUTO_UPDATE);
-	update = g_settings_get_enum (panel->priv->settings, GPK_SETTINGS_AUTO_UPDATE);
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "combobox_install"));
+	is_writable = g_settings_is_writable (priv->settings, GPK_SETTINGS_AUTO_UPDATE);
+	update = g_settings_get_enum (priv->settings, GPK_SETTINGS_AUTO_UPDATE);
 
 	/* do we have permission to write? */
 	gtk_widget_set_sensitive (widget, is_writable);
@@ -276,14 +271,14 @@ cc_update_panel_auto_update_combo_setup (CcUpdatePanel *panel)
 
 	/* only do this after else we redraw the window */
 	g_signal_connect (G_OBJECT (widget), "changed",
-			  G_CALLBACK (cc_update_panel_update_combo_changed), panel);
+			  G_CALLBACK (gpk_prefs_update_combo_changed), priv);
 }
 
 /**
- * cc_update_panel_notify_network_state_cb:
+ * gpk_prefs_notify_network_state_cb:
  **/
 static void
-cc_update_panel_notify_network_state_cb (PkControl *control, GParamSpec *pspec, CcUpdatePanel *panel)
+gpk_prefs_notify_network_state_cb (PkControl *control, GParamSpec *pspec, GpkPrefsPrivate *priv)
 {
 	GtkWidget *widget;
 	PkNetworkEnum state;
@@ -292,7 +287,7 @@ cc_update_panel_notify_network_state_cb (PkControl *control, GParamSpec *pspec,
 	g_object_get (control,
 		      "network-state", &state,
 		      NULL);
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "hbox_mobile_broadband"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox_mobile_broadband"));
 	if (state == PK_NETWORK_ENUM_MOBILE)
 		gtk_widget_show (widget);
 	else
@@ -300,27 +295,27 @@ cc_update_panel_notify_network_state_cb (PkControl *control, GParamSpec *pspec,
 }
 
 /**
- * cc_update_panel_find_iter_model_cb:
+ * gpk_prefs_find_iter_model_cb:
  **/
 static gboolean
-cc_update_panel_find_iter_model_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, CcUpdatePanel *panel)
+gpk_prefs_find_iter_model_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GpkPrefsPrivate *priv)
 {
 	gchar *repo_id_tmp = NULL;
 	gtk_tree_model_get (model, iter,
 			    GPK_COLUMN_ID, &repo_id_tmp,
 			    -1);
-	if (strcmp (repo_id_tmp, panel->priv->id_tmp) == 0) {
-		panel->priv->path_tmp = gtk_tree_path_copy (path);
+	if (strcmp (repo_id_tmp, priv->id_tmp) == 0) {
+		priv->path_tmp = gtk_tree_path_copy (path);
 		return TRUE;
 	}
 	return FALSE;
 }
 
 /**
- * cc_update_panel_mark_nonactive_cb:
+ * gpk_prefs_mark_nonactive_cb:
  **/
 static gboolean
-cc_update_panel_mark_nonactive_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, CcUpdatePanel *panel)
+gpk_prefs_mark_nonactive_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, GpkPrefsPrivate *priv)
 {
 	gtk_list_store_set (GTK_LIST_STORE(model), iter,
 			    GPK_COLUMN_ACTIVE, FALSE,
@@ -329,38 +324,38 @@ cc_update_panel_mark_nonactive_cb (GtkTreeModel *model, GtkTreePath *path, GtkTr
 }
 
 /**
- * cc_update_panel_mark_nonactive:
+ * gpk_prefs_mark_nonactive:
  **/
 static void
-cc_update_panel_mark_nonactive (CcUpdatePanel *panel, GtkTreeModel *model)
+gpk_prefs_mark_nonactive (GpkPrefsPrivate *priv, GtkTreeModel *model)
 {
-	gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) cc_update_panel_mark_nonactive_cb, panel);
+	gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) gpk_prefs_mark_nonactive_cb, priv);
 }
 
 /**
- * cc_update_panel_model_get_iter:
+ * gpk_prefs_model_get_iter:
  **/
 static gboolean
-cc_update_panel_model_get_iter (CcUpdatePanel *panel, GtkTreeModel *model, GtkTreeIter *iter, const gchar *id)
+gpk_prefs_model_get_iter (GpkPrefsPrivate *priv, GtkTreeModel *model, GtkTreeIter *iter, const gchar *id)
 {
 	gboolean ret = TRUE;
-	panel->priv->id_tmp = id;
-	panel->priv->path_tmp = NULL;
-	gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) cc_update_panel_find_iter_model_cb, panel);
-	if (panel->priv->path_tmp == NULL) {
+	priv->id_tmp = id;
+	priv->path_tmp = NULL;
+	gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) gpk_prefs_find_iter_model_cb, priv);
+	if (priv->path_tmp == NULL) {
 		gtk_list_store_append (GTK_LIST_STORE(model), iter);
 	} else {
-		ret = gtk_tree_model_get_iter (model, iter, panel->priv->path_tmp);
-		gtk_tree_path_free (panel->priv->path_tmp);
+		ret = gtk_tree_model_get_iter (model, iter, priv->path_tmp);
+		gtk_tree_path_free (priv->path_tmp);
 	}
 	return ret;
 }
 
 /**
- * cc_update_panel_remove_nonactive_cb:
+ * gpk_prefs_remove_nonactive_cb:
  **/
 static gboolean
-cc_update_panel_remove_nonactive_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gboolean *ret)
+gpk_prefs_remove_nonactive_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gboolean *ret)
 {
 	gboolean active;
 	gtk_tree_model_get (model, iter,
@@ -375,53 +370,53 @@ cc_update_panel_remove_nonactive_cb (GtkTreeModel *model, GtkTreePath *path, Gtk
 }
 
 /**
- * cc_update_panel_remove_nonactive:
+ * gpk_prefs_remove_nonactive:
  **/
 static void
-cc_update_panel_remove_nonactive (GtkTreeModel *model)
+gpk_prefs_remove_nonactive (GtkTreeModel *model)
 {
 	gboolean ret;
 	/* do this again and again as removing in gtk_tree_model_foreach causes errors */
 	do {
 		ret = FALSE;
-		gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) cc_update_panel_remove_nonactive_cb, &ret);
+		gtk_tree_model_foreach (model, (GtkTreeModelForeachFunc) gpk_prefs_remove_nonactive_cb, &ret);
 	} while (ret);
 }
 
 /**
- * cc_update_panel_status_changed_timeout_cb:
+ * gpk_prefs_status_changed_timeout_cb:
  **/
 static gboolean
-cc_update_panel_status_changed_timeout_cb (CcUpdatePanel *panel)
+gpk_prefs_status_changed_timeout_cb (GpkPrefsPrivate *priv)
 {
 	const gchar *text;
 	GtkWidget *widget;
 
 	/* set the text and show */
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "scrolledwindow_repo"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "scrolledwindow_repo"));
 	gtk_widget_hide (widget);
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "viewport_status"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "viewport_status"));
 	gtk_widget_show (widget);
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "label_status"));
-	text = gpk_status_enum_to_localised_text (panel->priv->status);
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "label_status"));
+	text = gpk_status_enum_to_localised_text (priv->status);
 	gtk_label_set_label (GTK_LABEL (widget), text);
 
 	/* set icon */
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "image_status"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "image_status"));
 	gtk_image_set_from_icon_name (GTK_IMAGE (widget),
-				      gpk_status_enum_to_icon_name (panel->priv->status),
+				      gpk_status_enum_to_icon_name (priv->status),
 				      GTK_ICON_SIZE_DIALOG);
 
 	/* never repeat */
-	panel->priv->status_id = 0;
+	priv->status_id = 0;
 	return FALSE;
 }
 
 /**
- * cc_update_panel_progress_cb:
+ * gpk_prefs_progress_cb:
  **/
 static void
-cc_update_panel_progress_cb (PkProgress *progress, PkProgressType type, CcUpdatePanel *panel)
+gpk_prefs_progress_cb (PkProgress *progress, PkProgressType type, GpkPrefsPrivate *priv)
 {
 	GtkWidget *widget;
 
@@ -430,44 +425,44 @@ cc_update_panel_progress_cb (PkProgress *progress, PkProgressType type, CcUpdate
 
 	/* get value */
 	g_object_get (progress,
-		      "status", &panel->priv->status,
+		      "status", &priv->status,
 		      NULL);
-	g_debug ("now %s", pk_status_enum_to_text (panel->priv->status));
+	g_debug ("now %s", pk_status_enum_to_text (priv->status));
 
-	if (panel->priv->status == PK_STATUS_ENUM_FINISHED) {
+	if (priv->status == PK_STATUS_ENUM_FINISHED) {
 		/* we've not yet shown, so don't bother */
-		if (panel->priv->status_id > 0) {
-			g_source_remove (panel->priv->status_id);
-			panel->priv->status_id = 0;
+		if (priv->status_id > 0) {
+			g_source_remove (priv->status_id);
+			priv->status_id = 0;
 		}
-		widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "viewport_status"));
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "viewport_status"));
 		gtk_widget_hide (widget);
-		widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "scrolledwindow_repo"));
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "scrolledwindow_repo"));
 		gtk_widget_show (widget);
 		goto out;
 	}
 
 	/* already pending show */
-	if (panel->priv->status_id > 0)
+	if (priv->status_id > 0)
 		goto out;
 
 	/* only show after some time in the transaction */
-	panel->priv->status_id = g_timeout_add (GPK_UI_STATUS_SHOW_DELAY, (GSourceFunc) cc_update_panel_status_changed_timeout_cb, panel);
-	g_source_set_name_by_id (panel->priv->status_id, "[GpkRepo] status");
+	priv->status_id = g_timeout_add (GPK_UI_STATUS_SHOW_DELAY, (GSourceFunc) gpk_prefs_status_changed_timeout_cb, priv);
+	g_source_set_name_by_id (priv->status_id, "[GpkRepo] status");
 out:
 	return;
 }
 
 /**
- * cc_update_panel_process_messages_cb:
+ * gpk_prefs_process_messages_cb:
  **/
 static void
-cc_update_panel_process_messages_cb (PkMessage *item, CcUpdatePanel *panel)
+gpk_prefs_process_messages_cb (PkMessage *item, GpkPrefsPrivate *priv)
 {
+	const gchar *title;
+	gchar *details;
 	GtkWindow *window;
 	PkMessageEnum type;
-	gchar *details;
-	const gchar *title;
 
 	/* get data */
 	g_object_get (item,
@@ -476,7 +471,7 @@ cc_update_panel_process_messages_cb (PkMessage *item, CcUpdatePanel *panel)
 		      NULL);
 
 	/* show a modal window */
-	window = GTK_WINDOW (gtk_builder_get_object (panel->priv->builder, "dialog_prefs"));
+	window = GTK_WINDOW (gtk_builder_get_object (priv->builder, "dialog_prefs"));
 	title = gpk_message_enum_to_localised_text (type);
 	gpk_error_dialog_modal (window, title, details, NULL);
 
@@ -484,17 +479,17 @@ cc_update_panel_process_messages_cb (PkMessage *item, CcUpdatePanel *panel)
 }
 
 /**
- * cc_update_panel_repo_enable_cb
+ * gpk_prefs_repo_enable_cb
  **/
 static void
-cc_update_panel_repo_enable_cb (GObject *object, GAsyncResult *res, CcUpdatePanel *panel)
+gpk_prefs_repo_enable_cb (GObject *object, GAsyncResult *res, GpkPrefsPrivate *priv)
 {
-	PkClient *client = PK_CLIENT (object);
 	GError *error = NULL;
-	PkResults *results = NULL;
-	PkError *error_code = NULL;
-	GtkWindow *window;
 	GPtrArray *array;
+	GtkWindow *window;
+	PkClient *client = PK_CLIENT (object);
+	PkError *error_code = NULL;
+	PkResults *results = NULL;
 
 	/* get the results */
 	results = pk_client_generic_finish (client, res, &error);
@@ -508,7 +503,7 @@ cc_update_panel_repo_enable_cb (GObject *object, GAsyncResult *res, CcUpdatePane
 	error_code = pk_results_get_error_code (results);
 	if (error_code != NULL) {
 		g_warning ("failed to set repo: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
-		window = GTK_WINDOW (gtk_builder_get_object (panel->priv->builder, "dialog_prefs"));
+		window = GTK_WINDOW (gtk_builder_get_object (priv->builder, "dialog_prefs"));
 		/* TRANSLATORS: for one reason or another, we could not enable or disable a software source */
 		gpk_error_dialog_modal (window, _("Failed to change status"),
 					gpk_error_enum_to_localised_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
@@ -517,7 +512,7 @@ cc_update_panel_repo_enable_cb (GObject *object, GAsyncResult *res, CcUpdatePane
 
 	/* process messages */
 	array = pk_results_get_message_array (results);
-	g_ptr_array_foreach (array, (GFunc) cc_update_panel_process_messages_cb, panel);
+	g_ptr_array_foreach (array, (GFunc) gpk_prefs_process_messages_cb, priv);
 	g_ptr_array_unref (array);
 out:
 	if (error_code != NULL)
@@ -527,23 +522,23 @@ out:
 }
 
 static void
-gpk_misc_enabled_toggled (GtkCellRendererToggle *cell, gchar *path_str, CcUpdatePanel *panel)
+gpk_misc_enabled_toggled (GtkCellRendererToggle *cell, gchar *path_str, GpkPrefsPrivate *priv)
 {
-	GtkTreeModel *model;
-	GtkTreeView *treeview;
-	GtkTreeIter iter;
-	GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
 	gboolean enabled;
 	gchar *repo_id = NULL;
+	GtkTreeIter iter;
+	GtkTreeModel *model;
+	GtkTreePath *path = gtk_tree_path_new_from_string (path_str);
+	GtkTreeView *treeview;
 
 	/* do we have the capability? */
-	if (pk_bitfield_contain (panel->priv->roles, PK_ROLE_ENUM_REPO_ENABLE) == FALSE) {
+	if (pk_bitfield_contain (priv->roles, PK_ROLE_ENUM_REPO_ENABLE) == FALSE) {
 		g_debug ("can't change state");
 		goto out;
 	}
 
 	/* get toggled iter */
-	treeview = GTK_TREE_VIEW (gtk_builder_get_object (panel->priv->builder, "treeview_repo"));
+	treeview = GTK_TREE_VIEW (gtk_builder_get_object (priv->builder, "treeview_repo"));
 	model = gtk_tree_view_get_model (treeview);
 	gtk_tree_model_get_iter (model, &iter, path);
 	gtk_tree_model_get (model, &iter,
@@ -560,10 +555,10 @@ gpk_misc_enabled_toggled (GtkCellRendererToggle *cell, gchar *path_str, CcUpdate
 
 	/* set the repo */
 	g_debug ("setting %s to %i", repo_id, enabled);
-	pk_client_repo_enable_async (panel->priv->client, repo_id, enabled,
-				     panel->priv->cancellable,
-				     (PkProgressCallback) cc_update_panel_progress_cb, panel,
-				     (GAsyncReadyCallback) cc_update_panel_repo_enable_cb, panel);
+	pk_client_repo_enable_async (priv->client, repo_id, enabled,
+				     priv->cancellable,
+				     (PkProgressCallback) gpk_prefs_progress_cb, priv,
+				     (GAsyncReadyCallback) gpk_prefs_repo_enable_cb, priv);
 
 out:
 	/* clean up */
@@ -575,14 +570,14 @@ out:
  * gpk_treeview_add_columns:
  **/
 static void
-gpk_treeview_add_columns (CcUpdatePanel *panel, GtkTreeView *treeview)
+gpk_treeview_add_columns (GpkPrefsPrivate *priv, GtkTreeView *treeview)
 {
 	GtkCellRenderer *renderer;
 	GtkTreeViewColumn *column;
 
 	/* column for enabled toggles */
 	renderer = gtk_cell_renderer_toggle_new ();
-	g_signal_connect (renderer, "toggled", G_CALLBACK (gpk_misc_enabled_toggled), panel);
+	g_signal_connect (renderer, "toggled", G_CALLBACK (gpk_misc_enabled_toggled), priv);
 
 	/* TRANSLATORS: column if the source is enabled */
 	column = gtk_tree_view_column_new_with_attributes (_("Enabled"), renderer,
@@ -605,11 +600,11 @@ gpk_treeview_add_columns (CcUpdatePanel *panel, GtkTreeView *treeview)
  * gpk_repos_treeview_clicked_cb:
  **/
 static void
-gpk_repos_treeview_clicked_cb (GtkTreeSelection *selection, CcUpdatePanel *panel)
+gpk_repos_treeview_clicked_cb (GtkTreeSelection *selection, GpkPrefsPrivate *priv)
 {
-	GtkTreeModel *model;
-	GtkTreeIter iter;
 	gchar *repo_id;
+	GtkTreeIter iter;
+	GtkTreeModel *model;
 
 	/* This will only work in single or browse selection mode! */
 	if (gtk_tree_selection_get_selected (selection, &model, &iter)) {
@@ -622,25 +617,25 @@ gpk_repos_treeview_clicked_cb (GtkTreeSelection *selection, CcUpdatePanel *panel
 }
 
 /**
- * cc_update_panel_get_repo_list_cb
+ * gpk_prefs_get_repo_list_cb
  **/
 static void
-cc_update_panel_get_repo_list_cb (GObject *object, GAsyncResult *res, CcUpdatePanel *panel)
+gpk_prefs_get_repo_list_cb (GObject *object, GAsyncResult *res, GpkPrefsPrivate *priv)
 {
-	PkClient *client = PK_CLIENT (object);
+	gboolean enabled;
+	gchar *description;
+	gchar *repo_id;
 	GError *error = NULL;
-	PkResults *results = NULL;
-	PkError *error_code = NULL;
-	GtkTreeView *treeview;
+	GPtrArray *array = NULL;
+	GtkTreeIter iter;
 	GtkTreeModel *model;
+	GtkTreeView *treeview;
 	GtkWindow *window;
-	GPtrArray *array = NULL;
 	guint i;
+	PkClient *client = PK_CLIENT (object);
+	PkError *error_code = NULL;
 	PkRepoDetail *item;
-	GtkTreeIter iter;
-	gchar *repo_id;
-	gchar *description;
-	gboolean enabled;
+	PkResults *results = NULL;
 
 	/* get the results */
 	results = pk_client_generic_finish (client, res, &error);
@@ -654,7 +649,7 @@ cc_update_panel_get_repo_list_cb (GObject *object, GAsyncResult *res, CcUpdatePa
 	error_code = pk_results_get_error_code (results);
 	if (error_code != NULL) {
 		g_warning ("failed to get repo list: %s, %s", pk_error_enum_to_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
-		window = GTK_WINDOW (gtk_builder_get_object (panel->priv->builder, "dialog_prefs"));
+		window = GTK_WINDOW (gtk_builder_get_object (priv->builder, "dialog_prefs"));
 		/* TRANSLATORS: for one reason or another, we could not get the list of sources */
 		gpk_error_dialog_modal (window, _("Failed to get the list of sources"),
 					gpk_error_enum_to_localised_text (pk_error_get_code (error_code)), pk_error_get_details (error_code));
@@ -662,7 +657,7 @@ cc_update_panel_get_repo_list_cb (GObject *object, GAsyncResult *res, CcUpdatePa
 	}
 
 	/* add repos */
-	treeview = GTK_TREE_VIEW (gtk_builder_get_object (panel->priv->builder, "treeview_repo"));
+	treeview = GTK_TREE_VIEW (gtk_builder_get_object (priv->builder, "treeview_repo"));
 	model = gtk_tree_view_get_model (treeview);
 	array = pk_results_get_repo_detail_array (results);
 	for (i=0; i<array->len; i++) {
@@ -673,8 +668,8 @@ cc_update_panel_get_repo_list_cb (GObject *object, GAsyncResult *res, CcUpdatePa
 			      "enabled", &enabled,
 			      NULL);
 		g_debug ("repo = %s:%s:%i", repo_id, description, enabled);
-		cc_update_panel_model_get_iter (panel, model, &iter, repo_id);
-		gtk_list_store_set (panel->priv->list_store, &iter,
+		gpk_prefs_model_get_iter (priv, model, &iter, repo_id);
+		gtk_list_store_set (priv->list_store, &iter,
 				    GPK_COLUMN_ENABLED, enabled,
 				    GPK_COLUMN_TEXT, description,
 				    GPK_COLUMN_ID, repo_id,
@@ -687,10 +682,10 @@ cc_update_panel_get_repo_list_cb (GObject *object, GAsyncResult *res, CcUpdatePa
 	}
 
 	/* remove the items that are not now present */
-	cc_update_panel_remove_nonactive (model);
+	gpk_prefs_remove_nonactive (model);
 
 	/* sort */
-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(panel->priv->list_store), GPK_COLUMN_TEXT, GTK_SORT_ASCENDING);
+	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE(priv->list_store), GPK_COLUMN_TEXT, GTK_SORT_ASCENDING);
 out:
 	if (error_code != NULL)
 		g_object_unref (error_code);
@@ -701,63 +696,63 @@ out:
 }
 
 /**
- * cc_update_panel_repo_list_refresh:
+ * gpk_prefs_repo_list_refresh:
  **/
 static void
-cc_update_panel_repo_list_refresh (CcUpdatePanel *panel)
+gpk_prefs_repo_list_refresh (GpkPrefsPrivate *priv)
 {
-	PkBitfield filters;
-	GtkWidget *widget;
-	GtkTreeView *treeview;
-	GtkTreeModel *model;
 	gboolean show_details;
+	GtkTreeModel *model;
+	GtkTreeView *treeview;
+	GtkWidget *widget;
+	PkBitfield filters;
 
 	/* mark the items as not used */
-	treeview = GTK_TREE_VIEW (gtk_builder_get_object (panel->priv->builder, "treeview_repo"));
+	treeview = GTK_TREE_VIEW (gtk_builder_get_object (priv->builder, "treeview_repo"));
 	model = gtk_tree_view_get_model (treeview);
-	cc_update_panel_mark_nonactive (panel, model);
+	gpk_prefs_mark_nonactive (priv, model);
 
 	g_debug ("refreshing list");
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "checkbutton_detail"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "checkbutton_detail"));
 	show_details = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 	if (!show_details)
 		filters = pk_bitfield_value (PK_FILTER_ENUM_NOT_DEVELOPMENT);
 	else
 		filters = pk_bitfield_value (PK_FILTER_ENUM_NONE);
-	pk_client_get_repo_list_async (panel->priv->client, filters,
-				       panel->priv->cancellable,
-				       (PkProgressCallback) cc_update_panel_progress_cb, panel,
-				       (GAsyncReadyCallback) cc_update_panel_get_repo_list_cb, panel);
+	pk_client_get_repo_list_async (priv->client, filters,
+				       priv->cancellable,
+				       (PkProgressCallback) gpk_prefs_progress_cb, priv,
+				       (GAsyncReadyCallback) gpk_prefs_get_repo_list_cb, priv);
 }
 
 /**
- * cc_update_panel_repo_list_changed_cb:
+ * gpk_prefs_repo_list_changed_cb:
  **/
 static void
-cc_update_panel_repo_list_changed_cb (PkControl *control, CcUpdatePanel *panel)
+gpk_prefs_repo_list_changed_cb (PkControl *control, GpkPrefsPrivate *priv)
 {
-	cc_update_panel_repo_list_refresh (panel);
+	gpk_prefs_repo_list_refresh (priv);
 }
 
 /**
- * cc_update_panel_checkbutton_detail_cb:
+ * gpk_prefs_checkbutton_detail_cb:
  **/
 static void
-cc_update_panel_checkbutton_detail_cb (GtkWidget *widget, CcUpdatePanel *panel)
+gpk_prefs_checkbutton_detail_cb (GtkWidget *widget, GpkPrefsPrivate *priv)
 {
-	cc_update_panel_repo_list_refresh (panel);
+	gpk_prefs_repo_list_refresh (priv);
 }
 
 /**
- * cc_update_panel_get_properties_cb:
+ * gpk_prefs_get_properties_cb:
  **/
 static void
-cc_update_panel_get_properties_cb (GObject *object, GAsyncResult *res, CcUpdatePanel *panel)
+gpk_prefs_get_properties_cb (GObject *object, GAsyncResult *res, GpkPrefsPrivate *priv)
 {
-	GtkWidget *widget;
+	gboolean ret;
 	GError *error = NULL;
+	GtkWidget *widget;
 	PkControl *control = PK_CONTROL(object);
-	gboolean ret;
 	PkNetworkEnum state;
 
 	/* get the result */
@@ -771,190 +766,257 @@ cc_update_panel_get_properties_cb (GObject *object, GAsyncResult *res, CcUpdateP
 
 	/* get values */
 	g_object_get (control,
-		      "roles", &panel->priv->roles,
+		      "roles", &priv->roles,
 		      "network-state", &state,
 		      NULL);
 
 	/* only show label on mobile broadband */
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "hbox_mobile_broadband"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "hbox_mobile_broadband"));
 	gtk_widget_set_visible (widget, (state == PK_NETWORK_ENUM_MOBILE));
 
 	/* hide if not supported */
-	if (!pk_bitfield_contain (panel->priv->roles, PK_ROLE_ENUM_GET_DISTRO_UPGRADES)) {
-		widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "label_upgrade"));
+	if (!pk_bitfield_contain (priv->roles, PK_ROLE_ENUM_GET_DISTRO_UPGRADES)) {
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "label_upgrade"));
 		gtk_widget_hide (widget);
-		widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "combobox_upgrade"));
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "combobox_upgrade"));
 		gtk_widget_hide (widget);
 	}
 
 	/* setup sources GUI elements */
-	if (pk_bitfield_contain (panel->priv->roles, PK_ROLE_ENUM_GET_REPO_LIST)) {
-		cc_update_panel_repo_list_refresh (panel);
+	if (pk_bitfield_contain (priv->roles, PK_ROLE_ENUM_GET_REPO_LIST)) {
+		gpk_prefs_repo_list_refresh (priv);
 	} else {
 		GtkTreeIter iter;
-		GtkTreeView *treeview = GTK_TREE_VIEW (gtk_builder_get_object (panel->priv->builder, "treeview_repo"));
+		GtkTreeView *treeview = GTK_TREE_VIEW (gtk_builder_get_object (priv->builder, "treeview_repo"));
 		GtkTreeModel *model = gtk_tree_view_get_model (treeview);
 
 		gtk_list_store_append (GTK_LIST_STORE(model), &iter);
-		gtk_list_store_set (panel->priv->list_store, &iter,
+		gtk_list_store_set (priv->list_store, &iter,
 				    GPK_COLUMN_ENABLED, FALSE,
 				    GPK_COLUMN_TEXT, _("Getting software source list not supported by backend"),
 				    GPK_COLUMN_ACTIVE, FALSE,
 				    GPK_COLUMN_SENSITIVE, FALSE,
 				    -1);
 
-		widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "treeview_repo"));
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "treeview_repo"));
 		gtk_widget_set_sensitive (widget, FALSE);
-		widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "checkbutton_detail"));
+		widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "checkbutton_detail"));
 		gtk_widget_set_sensitive (widget, FALSE);
 	}
 out:
 	return;
 }
 
+/**
+ * gpk_prefs_close_cb:
+ **/
 static void
-cc_update_panel_class_init (CcUpdatePanelClass *klass)
+gpk_prefs_close_cb (GtkWidget *widget, gpointer data)
 {
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	g_type_class_add_private (klass, sizeof (CcUpdatePanelPrivate));
-	object_class->finalize = cc_update_panel_finalize;
+	GpkPrefsPrivate *priv = (GpkPrefsPrivate *) data;
+	g_application_release (G_APPLICATION (priv->application));
 }
 
-static void
-cc_update_panel_class_finalize (CcUpdatePanelClass *klass)
+/**
+ * gpk_prefs_delete_event_cb:
+ **/
+static gboolean
+gpk_prefs_delete_event_cb (GtkWidget *widget, GdkEvent *event, GpkPrefsPrivate *priv)
 {
+	gpk_prefs_close_cb (widget, priv);
+	return FALSE;
 }
 
-static void
-cc_update_panel_finalize (GObject *object)
-{
-	CcUpdatePanel *panel = CC_UPDATE_PANEL (object);
-	g_cancellable_cancel (panel->priv->cancellable);
-	g_object_unref (panel->priv->cancellable);
-	g_object_unref (panel->priv->builder);
-	g_object_unref (panel->priv->settings);
-	g_object_unref (panel->priv->list_store);
-	g_object_unref (panel->priv->client);
-	G_OBJECT_CLASS (cc_update_panel_parent_class)->finalize (object);
-}
 
+/**
+ * gpk_pack_startup_cb:
+ **/
 static void
-cc_update_panel_init (CcUpdatePanel *panel)
+gpk_pack_startup_cb (GtkApplication *application, GpkPrefsPrivate *priv)
 {
+	GError *error = NULL;
+	GtkTreeSelection *selection;
 	GtkWidget *main_window;
 	GtkWidget *widget;
-	PkControl *control;
 	guint retval;
-	GError *error = NULL;
-	GtkTreeSelection *selection;
-
-	panel->priv = CC_UPDATE_PREFS_GET_PRIVATE (panel);
-	panel->priv->cancellable = g_cancellable_new ();
+	PkControl *control;
 
 	/* add application specific icons to search path */
 	gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
-                                           GPK_DATA G_DIR_SEPARATOR_S "icons");
-
-	/* load settings */
-	panel->priv->settings = g_settings_new (GPK_SETTINGS_SCHEMA);
+					   GPK_DATA G_DIR_SEPARATOR_S "icons");
 
 	/* get actions */
 	control = pk_control_new ();
 	g_signal_connect (control, "notify::network-state",
-			  G_CALLBACK (cc_update_panel_notify_network_state_cb), panel);
+			  G_CALLBACK (gpk_prefs_notify_network_state_cb), priv);
 	g_signal_connect (control, "repo-list-changed",
-			  G_CALLBACK (cc_update_panel_repo_list_changed_cb), panel);
-
-	panel->priv->client = pk_client_new ();
-	g_object_set (panel->priv->client,
-		      "background", FALSE,
-		      NULL);
+			  G_CALLBACK (gpk_prefs_repo_list_changed_cb), priv);
 
 	/* get UI */
-	panel->priv->builder = gtk_builder_new ();
-	retval = gtk_builder_add_from_file (panel->priv->builder, GPK_DATA "/gpk-prefs.ui", &error);
+	retval = gtk_builder_add_from_file (priv->builder, GPK_DATA "/gpk-prefs.ui", &error);
 	if (retval == 0) {
 		g_warning ("failed to load ui: %s", error->message);
 		g_error_free (error);
 		goto out;
 	}
 
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "checkbutton_mobile_broadband"));
-	g_settings_bind (panel->priv->settings,
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "checkbutton_mobile_broadband"));
+	g_settings_bind (priv->settings,
 			 GPK_SETTINGS_CONNECTION_USE_MOBILE,
 			 widget, "active",
 			 G_SETTINGS_BIND_DEFAULT);
 
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "button_help"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_close"));
 	g_signal_connect (widget, "clicked",
-			  G_CALLBACK (cc_update_panel_help_cb), panel);
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "button_check_now"));
+			  G_CALLBACK (gpk_prefs_close_cb), priv);
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_help"));
 	g_signal_connect (widget, "clicked",
-			  G_CALLBACK (cc_update_panel_check_now_cb), panel);
+			  G_CALLBACK (gpk_prefs_help_cb), priv);
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_check_now"));
+	g_signal_connect (widget, "clicked",
+			  G_CALLBACK (gpk_prefs_check_now_cb), priv);
 
 	/* update the combo boxes */
-	cc_update_panel_update_freq_combo_setup (panel);
-	cc_update_panel_upgrade_freq_combo_setup (panel);
-	cc_update_panel_auto_update_combo_setup (panel);
+	gpk_prefs_update_freq_combo_setup (priv);
+	gpk_prefs_upgrade_freq_combo_setup (priv);
+	gpk_prefs_auto_update_combo_setup (priv);
 
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "checkbutton_detail"));
-	g_settings_bind (panel->priv->settings,
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "checkbutton_detail"));
+	g_settings_bind (priv->settings,
 			 GPK_SETTINGS_REPO_SHOW_DETAILS,
 			 widget, "active",
 			 G_SETTINGS_BIND_DEFAULT);
 	g_signal_connect (widget, "clicked",
-			  G_CALLBACK (cc_update_panel_checkbutton_detail_cb), panel);
-
-	/* create list stores */
-	panel->priv->list_store = gtk_list_store_new (GPK_COLUMN_LAST, G_TYPE_BOOLEAN,
-						      G_TYPE_STRING, G_TYPE_STRING,
-						      G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+			  G_CALLBACK (gpk_prefs_checkbutton_detail_cb), priv);
 
 	/* create repo tree view */
-	widget = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "treeview_repo"));
+	widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "treeview_repo"));
 	gtk_tree_view_set_model (GTK_TREE_VIEW (widget),
-				 GTK_TREE_MODEL (panel->priv->list_store));
+				 GTK_TREE_MODEL (priv->list_store));
 
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
 	g_signal_connect (selection, "changed",
-			  G_CALLBACK (gpk_repos_treeview_clicked_cb), panel);
+			  G_CALLBACK (gpk_repos_treeview_clicked_cb), priv);
 
 	/* add columns to the tree view */
-	gpk_treeview_add_columns (panel, GTK_TREE_VIEW (widget));
+	gpk_treeview_add_columns (priv, GTK_TREE_VIEW (widget));
 	gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
 
+	main_window = GTK_WIDGET (gtk_builder_get_object (priv->builder, "dialog_prefs"));
+	g_signal_connect (main_window, "delete_event",
+			  G_CALLBACK (gpk_prefs_delete_event_cb), priv);
+	gtk_application_add_window (application, GTK_WINDOW (main_window));
+
+	gtk_widget_show (main_window);
+
 	/* get some data */
-	pk_control_get_properties_async (control, NULL, (GAsyncReadyCallback) cc_update_panel_get_properties_cb, panel);
+	pk_control_get_properties_async (control, NULL, (GAsyncReadyCallback) gpk_prefs_get_properties_cb, priv);
 out:
 	g_object_unref (control);
-	main_window = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder, "dialog_prefs"));
-	widget = gtk_dialog_get_content_area (GTK_DIALOG (main_window));
-	gtk_widget_unparent (widget);
-
-	gtk_container_add (GTK_CONTAINER (panel), widget);
 }
 
-void
-cc_update_panel_register (GIOModule *module)
+
+/**
+ * gpm_prefs_commandline_cb:
+ **/
+static int
+gpm_prefs_commandline_cb (GApplication *application,
+			  GApplicationCommandLine *cmdline,
+			  GpkPrefsPrivate *priv)
 {
-	cc_update_panel_register_type (G_TYPE_MODULE (module));
-	g_io_extension_point_implement (CC_SHELL_PANEL_EXTENSION_POINT,
-					CC_TYPE_UPDATE_PANEL,
-					"update", 0);
+	gboolean ret;
+	gchar **argv;
+	gint argc;
+	GOptionContext *context;
+	GtkWindow *window;
+	guint xid = 0;
+
+	const GOptionEntry options[] = {
+		{ "parent-window", 'p', 0, G_OPTION_ARG_INT, &xid,
+		  /* TRANSLATORS: we can make this modal (stay on top of) another window */
+		  _("Set the parent window to make this modal"), NULL },
+		{ NULL}
+	};
+
+	/* get arguments */
+	argv = g_application_command_line_get_arguments (cmdline, &argc);
+
+	context = g_option_context_new (NULL);
+	/* TRANSLATORS: program name, an application to set per-user policy for updates */
+	g_option_context_set_summary(context, _("Software Update Preferences"));
+	g_option_context_add_main_entries (context, options, NULL);
+	g_option_context_add_group (context, gpk_debug_get_option_group ());
+	ret = g_option_context_parse (context, &argc, &argv, NULL);
+	if (!ret)
+		goto out;
+
+	/* make sure the window is raised */
+	window = GTK_WINDOW (gtk_builder_get_object (priv->builder, "dialog_prefs"));
+	gtk_window_present (window);
+
+	/* set the parent window if it is specified */
+	if (xid != 0) {
+		g_debug ("Setting xid %i", xid);
+		gpk_window_set_parent_xid (window, xid);
+	}
+out:
+	g_strfreev (argv);
+	g_option_context_free (context);
+	return ret;
 }
 
-/* GIO extension stuff */
-void
-g_io_module_load (GIOModule *module)
+/**
+ * main:
+ **/
+int
+main (int argc, char *argv[])
 {
+	gint status = 0;
+	GpkPrefsPrivate *priv = NULL;
+
+	setlocale (LC_ALL, "");
+
 	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+	textdomain (GETTEXT_PACKAGE);
+
+	if (! g_thread_supported ())
+		g_thread_init (NULL);
+	g_type_init ();
+
+	gtk_init (&argc, &argv);
+
+	priv = g_new0 (GpkPrefsPrivate, 1);
+	priv->cancellable = g_cancellable_new ();
+	priv->builder = gtk_builder_new ();
+	priv->settings = g_settings_new (GPK_SETTINGS_SCHEMA);
+	priv->list_store = gtk_list_store_new (GPK_COLUMN_LAST, G_TYPE_BOOLEAN,
+					       G_TYPE_STRING, G_TYPE_STRING,
+					       G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
+	priv->client = pk_client_new ();
+	g_object_set (priv->client,
+		      "background", FALSE,
+		      NULL);
 
-	/* register the panel */
-	cc_update_panel_register (module);
-}
-
-void
-g_io_module_unload (GIOModule *module)
-{
+	/* are we already activated? */
+	priv->application = gtk_application_new ("org.freedesktop.PackageKit.Prefs",
+						 G_APPLICATION_HANDLES_COMMAND_LINE);
+	g_signal_connect (priv->application, "startup",
+			  G_CALLBACK (gpk_pack_startup_cb), priv);
+	g_signal_connect (priv->application, "command-line",
+			  G_CALLBACK (gpm_prefs_commandline_cb), priv);
+
+	/* run */
+	status = g_application_run (G_APPLICATION (priv->application), argc, argv);
+
+	if (priv != NULL) {
+		g_cancellable_cancel (priv->cancellable);
+		g_object_unref (priv->cancellable);
+		g_object_unref (priv->builder);
+		g_object_unref (priv->settings);
+		g_object_unref (priv->list_store);
+		g_object_unref (priv->client);
+		g_free (priv);
+	}
+	return status;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]