Lots of asserts in the code.
[speedometer] / util.c
diff --git a/util.c b/util.c
index dee79a0..3c90f9f 100644 (file)
--- a/util.c
+++ b/util.c
 #include "callbacks.h"
 #include "ui.h"
 
-#define GCONF_DIR "/apps/Maemo/speedometer/"
+#define GCONF_KEY "/apps/Maemo/speedometer/disclaimer"
 
 static LocationGPSDevice *device = NULL;
 static LocationGPSDControl *control = NULL;
 
 void start_gps(AppData* appdata) {
 #ifdef __arm__
+       g_assert(appdata);
        if(!device) {
                device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
                g_signal_connect(device, "changed", G_CALLBACK(location_changed), appdata);
@@ -46,6 +47,7 @@ void start_gps(AppData* appdata) {
 
 void stop_gps(AppData* appdata) {
 #ifdef __arm__
+       g_assert(appdata);
        control = location_gpsd_control_get_default();
        location_gpsd_control_request_status(control);
        if(control->can_control) {
@@ -55,6 +57,7 @@ void stop_gps(AppData* appdata) {
 }
 
 void interpret_speed_from_gps(AppData* appdata, gdouble speed) {
+       g_assert(appdata);
 
        // if speed is below one then it's zero
        if(speed < 1) {
@@ -99,20 +102,36 @@ void interpret_speed_from_gps(AppData* appdata, gdouble speed) {
        g_strfreev(splitted);
 }
 
-void show_postcard_dialog() {
+static show_dialog() {
+       GtkWidget *dialog = gtk_message_dialog_new(
+                       NULL,
+                       GTK_DIALOG_MODAL,
+                       GTK_MESSAGE_INFO,
+                       GTK_BUTTONS_OK,
+                       "This program is licensed under GNU General Public License, "
+                       "which means (among other things) that you don't have to pay "
+                       "a dime for it. "
+                       "If you think, however, that this software is worth it, you "
+                       "can always drop me a postcard.\n\n"
+                       "Wellu Mäkinen\n"
+                       "PO BOX\n"
+                       "33580 Tampere\n"
+                       "FINLAND");
+       gtk_dialog_run(GTK_DIALOG(dialog));
+       gtk_widget_destroy(dialog);
+}
+
+void show_cardware_dialog() {
        GConfClient* client = gconf_client_get_default();
        g_assert(GCONF_IS_CLIENT(client));
 
-
        GConfValue* gcvalue = NULL;
-       gcvalue = gconf_client_get_without_default(client, GCONF_DIR "disclaimer", NULL);
+       gcvalue = gconf_client_get_without_default(client, GCONF_KEY, NULL);
 
        if(gcvalue == NULL) {
-               g_warning("key %sdisclaimer not found\n", GCONF_DIR);
-               gconf_client_set_bool(client, GCONF_DIR "disclaimer", TRUE, NULL);
-       }
-       else {
-               g_print("key %sdisclaimer was found\n", GCONF_DIR);
+               g_print("GConf key not found so show dialog.");
+               show_dialog();
+               gconf_client_set_bool(client, GCONF_KEY, TRUE, NULL);
        }
        g_object_unref(client);
 }