[Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-19 Thread noreply
The proposal to merge lp:~ev/activity-log-manager/add-whoopsie-back into 
lp:activity-log-manager has been updated.

Status: Needs review => Merged

For more details, see:
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-19 Thread मनीष सिन्हा
Review: Approve

This fixes it. I guess it was solved by

- extern void* whoopsie_daisy_preferences_new (void);
+ extern GtkWidget* whoopsie_daisy_preferences_new (void);

I will still check it on another developer installation before merging
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-19 Thread Evan Dandrea
So whoopsie_daisy_preferences_new () is returning an invalid type from the 
looks of it.

Can you please build from my branch with the latest commits (r53) and try 
again? It should output something like "GType: 258458288" but will probably 
give you something bogus. Bonus points if you can use gdb to dig at what's 
going on in whoopsie_daisy_preferences_new ().

As far as I can see we're constructing the type properly, so I'm perplexed as 
to what's going on here.
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-18 Thread मनीष सिन्हा
Used the debdiff and built the packages locally and installed it. Sadly, 
crashes again with exactly the same backtrace
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-18 Thread मनीष सिन्हा
Hello Evan, I am still getting crashes on another system, with backtrace

Program received signal SIGSEGV, Segmentation fault.
g_type_check_instance_cast (type_instance=0xe8006e00, 
iface_type=iface_type@entry=93824994480816) at 
/build/buildd/glib2.0-2.36.0/./gobject/gtype.c:4027
4027/build/buildd/glib2.0-2.36.0/./gobject/gtype.c: No such file or 
directory.
(gdb) bt
#0  g_type_check_instance_cast (type_instance=0xe8006e00, 
iface_type=iface_type@entry=93824994480816) at 
/build/buildd/glib2.0-2.36.0/./gobject/gtype.c:4027
#1  0x7fffe45f94b0 in alm_main_window_panel_init (self=0x55b3ab40) at 
alm-cc.c:63
#2  0x7648795f in g_type_create_instance (type=) at 
/build/buildd/glib2.0-2.36.0/./gobject/gtype.c:1917
#3  0x7646c718 in g_object_constructor (type=, 
n_construct_properties=1, construct_params=0x55b78110) at 
/build/buildd/glib2.0-2.36.0/./gobject/gobject.c:1855
#4  0x7646dce1 in g_object_newv 
(object_type=object_type@entry=93824997485168, 
n_parameters=n_parameters@entry=2, parameters=parameters@entry=0x55b7dcf0)
at /build/buildd/glib2.0-2.36.0/./gobject/gobject.c:1719
#5  0x7646e4d0 in g_object_new_valist 
(object_type=object_type@entry=93824997485168, 
first_property_name=first_property_name@entry=0x5556019b "shell", 
var_args=var_args@entry=0x7fffca48) at 
/build/buildd/glib2.0-2.36.0/./gobject/gobject.c:1836
#6  0x7646e804 in g_object_new (object_type=93824997485168, 
first_property_name=0x5556019b "shell") at 
/build/buildd/glib2.0-2.36.0/./gobject/gobject.c:1551
#7  0xde8c in ?? ()
#8  0xbe47 in ?? ()
#9  0x76467620 in g_closure_invoke (closure=0x55931870, 
return_value=0x0, n_param_values=4, param_values=0x7fffce10, 
invocation_hint=0x7fffcdb0)
at /build/buildd/glib2.0-2.36.0/./gobject/gclosure.c:777
#10 0x76478f00 in signal_emit_unlocked_R 
(node=node@entry=0x55931b20, detail=detail@entry=0, 
instance=instance@entry=0x55a0, 
emission_return=emission_return@entry=0x0, 
instance_and_params=instance_and_params@entry=0x7fffce10) at 
/build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3584
#11 0x76480d11 in g_signal_emit_valist (instance=0x55a0, 
signal_id=, detail=0, var_args=var_args@entry=0x7fffd098)
at /build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3328
#12 0x76480f92 in g_signal_emit (instance=, 
signal_id=, detail=) at 
/build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3384
#13 0xebbb in ?? ()
#14 0x7646a7a0 in g_cclosure_marshal_VOID__BOXEDv 
(closure=0x55931ff0, return_value=, instance=, args=, 
marshal_data=, n_params=, 
param_types=0x55768ea0) at 
/build/buildd/glib2.0-2.36.0/./gobject/gmarshal.c:1160
#15 0x764678e7 in _g_closure_invoke_va (closure=0x55931ff0, 
return_value=0x0, instance=0x55a0, args=0x7fffd518, n_params=1, 
param_types=0x55768ea0)
at /build/buildd/glib2.0-2.36.0/./gobject/gclosure.c:840
#16 0x764802df in g_signal_emit_valist (instance=0x55a0, 
signal_id=, detail=0, var_args=var_args@entry=0x7fffd518)
at /build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3234
#17 0x76480f92 in g_signal_emit (instance=, 
signal_id=, detail=) at 
/build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3384
#18 0xed94 in ?? ()
#19 0x776a849c in _gtk_marshal_BOOLEAN__BOXED (closure=0x5592d880, 
return_value=0x7fffd780, n_param_values=, 
param_values=0x7fffd830, 
invocation_hint=, marshal_data=) at 
/build/buildd/gtk+3.0-3.6.4/./gtk/gtkmarshalers.c:85
#20 0x76467620 in g_closure_invoke (closure=0x5592d880, 
return_value=0x7fffd780, n_param_values=2, param_values=0x7fffd830, 
invocation_hint=0x7fffd7d0)
at /build/buildd/glib2.0-2.36.0/./gobject/gclosure.c:777
#21 0x76478f00 in signal_emit_unlocked_R 
(node=node@entry=0x55780120, detail=detail@entry=0, 
instance=instance@entry=0x55a0, 
emission_return=emission_return@entry=0x7fffd900, 
instance_and_params=instance_and_params@entry=0x7fffd830) at 
/build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3584
#22 0x76480996 in g_signal_emit_valist (instance=0x55a0, 
signal_id=, detail=0, var_args=var_args@entry=0x7fffda88)
at /build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3338
#23 0x76480f92 in g_signal_emit 
(instance=instance@entry=0x55a0, signal_id=, 
detail=detail@entry=0) at /build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:3384
#24 0x777d777e in gtk_widget_event_internal 
(widget=widget@entry=0x55a0, event=event@entry=0x55b38180) at 
/build/buildd/gtk+3.0-3.6.4/./gtk/gtkwidget.c:6303
#25 0x777d7b99 in gtk_widget_event (widget=widget@entry=0x55a0, 
event=event@entry=0x55b38180) at 
/build/buildd/gtk+3.0-3.6.4/./gtk/gtkwidget.c:5960
#26 0x776a644e in propagate_event_up (topmost=, 
even

Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-18 Thread Evan Dandrea
I can also confirm this works well with Jeremy's debdiff:

https://bugs.launchpad.net/ubuntu/+source/activity-log-manager/+bug/1189253/+attachment/3699264/+files/update-to-0.9.5.debdiff
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-18 Thread Evan Dandrea
I've implemented the define for whoopsie in a slightly different way. It is 
working fine for me when I build it in a deb and install that way.

Can you please build with debugging symbols and provide a backtrace?
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-18 Thread मनीष सिन्हा
Sorry, here is the branch where I pushed the minor changes with your merged 
branch
lp:~manishsinha/activity-log-manager/ev
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-18 Thread मनीष सिन्हा
I tried it in a VM and I did not get any Segfault. Now this is weird. Evan, can 
you try it out with the above changes I mentioned
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-17 Thread मनीष सिन्हा
#1 0x7fffb99244b0 in alm_main_window_panel_init (self=0x557b9b40) at 
alm-cc.c:63
line 63 is 
GtkWidget *whoopsie = GTK_WIDGET (whoopsie_daisy_preferences_new ());

tells that the issue is with macro GTK_WIDGET since if the problem was with 
whoopsie_daisy_preferences_new () then the backtrace would have included the 
function

GtkWidget*
whoopsie_daisy_preferences_new (void)
{
return g_object_new (WHOOPSIE_DAISY_TYPE_PREFERENCES, NULL);
}

section from diagnostic-widget.c
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-17 Thread मनीष सिन्हा
I did some more research and found that in alm-cc.c file, inside function 
"alm_main_window_panel_init"

the #ifdef section is not being called. I tried fixing that with changing

#ifdef HAVE_WHOOPSIE to
#ifdef WHOOPSIE

and changing in src/Makefile.am

if HAVE_WHOOPSIE
libactivity_log_manager_la_CFLAGS += \
$(POLKIT_CFLAGS) \
-DGNOMECC_UI_DIR=\""$(gnomeccuidir)"\"
endif

to 
if HAVE_WHOOPSIE
libactivity_log_manager_la_CFLAGS += \
$(POLKIT_CFLAGS) \
-DGNOMECC_UI_DIR=\""$(gnomeccuidir)"\" \
-DWHOOPSIE
endif

Now the section isnide #ifdef is built, but there is a segfault with bt

Program received signal SIGSEGV, Segmentation fault.
0x76488c10 in g_type_check_instance_cast () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
(gdb) bt
#0  0x76488c10 in g_type_check_instance_cast () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#1  0x7fffb99244b0 in alm_main_window_panel_init (self=0x557b9b40) at 
alm-cc.c:63
#2  0x7648795f in g_type_create_instance () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#3  0x7646c718 in ?? () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4  0x7646dce1 in g_object_newv () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5  0x7646e4d0 in g_object_new_valist () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x7646e804 in g_object_new () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0xde8c in ?? ()
#8  0xbe47 in ?? ()
#9  0x76467620 in g_closure_invoke () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#10 0x76478f00 in ?? () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#11 0x76480d11 in g_signal_emit_valist () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#12 0x76480f92 in g_signal_emit () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0xebbb in ?? ()
#14 0x7646a7a0 in g_cclosure_marshal_VOID__BOXEDv () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x764678e7 in ?? () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x764802df in g_signal_emit_valist () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x76480f92 in g_signal_emit () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0xed94 in ?? ()
#19 0x776a849c in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x76467620 in g_closure_invoke () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x76478f00 in ?? () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#22 0x76480996 in g_signal_emit_valist () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#23 0x76480f92 in g_signal_emit () from 
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#24 0x777d777e in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


Re: [Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-17 Thread मनीष सिन्हा
Review: Needs Fixing

It looks good, but still doesn't show up in System Settings.

http://i.imgur.com/xCTk5bR.png
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is subscribed to branch lp:activity-log-manager.

___
Mailing list: https://launchpad.net/~zeitgeist
Post to : zeitgeist@lists.launchpad.net
Unsubscribe : https://launchpad.net/~zeitgeist
More help   : https://help.launchpad.net/ListHelp


[Zeitgeist] [Merge] lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager

2013-06-17 Thread Evan Dandrea
Evan Dandrea has proposed merging lp:~ev/activity-log-manager/add-whoopsie-back 
into lp:activity-log-manager.

Requested reviews:
  Activity Log Manager (activity-log-manager)

For more details, see:
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855

This resurrects code for the Diagnostics panel (whoopsie) that appears to have 
been accidentally deleted in the move from the 
lp:~activity-log-manager/activity-log-manager/vala branch.

Namely, it brings back src/diagnostics-widget.c, which is not automatically 
generated code, unlike the rest of the C files that appear in that directory.

I'm working on a debdiff, with these changes incorporated, against 
0.9.4-0ubuntu6.1, which is the version in Ubuntu Saucy.
-- 
https://code.launchpad.net/~ev/activity-log-manager/add-whoopsie-back/+merge/169855
Your team Activity Log Manager is requested to review the proposed merge of 
lp:~ev/activity-log-manager/add-whoopsie-back into lp:activity-log-manager.
=== modified file '.bzrignore'
--- .bzrignore	2013-04-21 07:25:20 +
+++ .bzrignore	2013-06-17 17:15:32 +
@@ -28,7 +28,7 @@
 src/activity-log-manager
 src/alm
 src/alm-switchboard
-src/*.c
+RE:src/(?!diagnostics-widget).*.c
 src/*.h
 src/*.la
 src/*.lo
@@ -41,3 +41,6 @@
 po/.intltool-merge-cache
 po/POTFILES
 po/stamp-it
+src/diagnostics/whoopsie-preferences
+src/diagnostics/com.ubuntu.whoopsiepreferences.policy
+src/diagnostics/.libs

=== modified file 'src/Makefile.am'
--- src/Makefile.am	2013-04-20 12:35:20 +
+++ src/Makefile.am	2013-06-17 17:15:32 +
@@ -79,6 +79,12 @@
 	$(SHARED_CFLAGS) \
 	$(CCPANEL_CFLAGS)
 
+if HAVE_WHOOPSIE
+libactivity_log_manager_la_CFLAGS += \
+	$(POLKIT_CFLAGS) \
+	-DGNOMECC_UI_DIR=\""$(gnomeccuidir)"\"
+endif
+
 activity_log_manager_SOURCES = \
 	$(SHARED_SOURCES) \
 	alm.vala \
@@ -88,6 +94,13 @@
 	alm-cc.c \
 	$(NULL)
 
+if HAVE_WHOOPSIE
+libactivity_log_manager_la_SOURCES += \
+	diagnostics-widget.c \
+	diagnostics/whoopsie-generated.c \
+	$(NULL)
+endif
+
 
 activity_log_manager_LDFLAGS = \
 	-Wl,--export-dynamic
@@ -99,6 +112,11 @@
 	$(SHARED_LIBS) \
 	$(CCPANEL_LIBS)
 
+if HAVE_WHOOPSIE
+libactivity_log_manager_la_LIBADD += \
+	$(POLKIT_LIBS)
+endif
+
 GENERATED_C_FILES = $(activity_log_manager_SOURCES:.vala=.c)
 
 GENERATED_O_FILES = $(activity_log_manager_SOURCES:.vala=.o)

=== added file 'src/diagnostics-widget.c'
--- src/diagnostics-widget.c	1970-01-01 00:00:00 +
+++ src/diagnostics-widget.c	2013-06-17 17:15:32 +
@@ -0,0 +1,249 @@
+#include 
+#include 
+#include 
+#include 
+
+#include "diagnostics/whoopsie-generated.h"
+
+static WhoopsiePreferences* proxy = NULL;
+
+#define POL_PATH "com.ubuntu.whoopsiepreferences.change"
+#define PRIVACY_URL "http://www.ubuntu.com/aboutus/privacypolicy?crashdb";
+#define SYSTEM_ERRORS_URL "https://errors.ubuntu.com/user";
+
+#define WHOOPSIE_DAISY_TYPE_PREFERENCES whoopsie_daisy_preferences_get_type()
+#define WHOOPSIE_DAISY_PREFERENCES(obj) \
+(G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+WHOOPSIE_DAISY_TYPE_PREFERENCES, WhoopsieDaisyPreferences))
+#define WHOOPSIE_DAISY_PREFERENCES_PRIVATE(o) \
+(G_TYPE_INSTANCE_GET_PRIVATE ((o), WHOOPSIE_DAISY_TYPE_PREFERENCES, WhoopsieDaisyPreferencesPrivate))
+
+GType whoopsie_daisy_preferences_get_type (void) G_GNUC_CONST;
+
+typedef struct _WhoopsieDaisyPreferences WhoopsieDaisyPreferences;
+typedef struct _WhoopsieDaisyPreferencesClass WhoopsieDaisyPreferencesClass;
+typedef struct _WhoopsieDaisyPreferencesPrivate WhoopsieDaisyPreferencesPrivate;
+
+struct _WhoopsieDaisyPreferencesPrivate
+{
+GtkBuilder* builder;
+GPermission* permission;
+};
+
+struct _WhoopsieDaisyPreferences
+{
+GtkBox parent;
+WhoopsieDaisyPreferencesPrivate* priv;
+};
+
+struct _WhoopsieDaisyPreferencesClass
+{
+GtkBoxClass parent_class;
+};
+
+G_DEFINE_TYPE (WhoopsieDaisyPreferences, whoopsie_daisy_preferences, GTK_TYPE_BOX)
+
+static void
+whoopsie_daisy_preferences_dispose (GObject* object)
+{
+WhoopsieDaisyPreferencesPrivate* priv = WHOOPSIE_DAISY_PREFERENCES (object)->priv;
+
+if (priv->builder) {
+g_object_unref (priv->builder);
+priv->builder = NULL;
+}
+if (priv->permission) {
+g_object_unref (priv->permission);
+priv->permission = NULL;
+}
+}
+
+static void
+whoopsie_daisy_preferences_class_init (WhoopsieDaisyPreferencesClass *klass)
+{
+GObjectClass *object_class = G_OBJECT_CLASS (klass);
+g_type_class_add_private (klass, sizeof (WhoopsieDaisyPreferencesPrivate));
+object_class->dispose = whoopsie_daisy_preferences_dispose;
+}
+
+static void
+on_privacy_policy_clicked (GtkWidget* button, gpointer user_data)
+{
+system ("xdg-open " PRIVACY_URL);
+}
+
+static void
+on_show_previous_reports_clicked (GtkWidget* button, gpointer user_data)
+{
+GError* error = NULL;
+gchar* identifier = NULL;
+gchar* command = NULL;
+whoopsie_preferences_call_get_identifier_sync (proxy, &identifier, NULL, &error);
+
+if (!