r2169 - trunk/src/target/OM-2007/applications/openmoko-dialer/src

thomas at sita.openmoko.org thomas at sita.openmoko.org
Tue Jun 5 18:19:48 CEST 2007


Author: thomas
Date: 2007-06-05 18:19:47 +0200 (Tue, 05 Jun 2007)
New Revision: 2169

Modified:
   trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c
   trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c
   trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.h
Log:
openmoko-dialer: Add --show-missed command line option to show the history
window filtered by missed calls


Modified: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c	2007-06-05 15:45:28 UTC (rev 2168)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-main.c	2007-06-05 16:19:47 UTC (rev 2169)
@@ -48,7 +48,6 @@
 static void
 handle_sigusr1 (int value)
 {
-  DBG_ENTER ();
   MokoDialerData *p_data = moko_get_app_data ();
   if (!p_data)
     return;
@@ -62,11 +61,33 @@
   }
   gtk_widget_show_all (mainwindow);
   gtk_window_present (GTK_WINDOW (mainwindow));
-  DBG_TRACE ();
   signal (SIGUSR1, handle_sigusr1);
-  DBG_LEAVE ();
 }
 
+static void
+handle_sigusr2 (int value)
+{
+  /* Show missed calls */
+  MokoDialerData *p_data = moko_get_app_data ();
+  if (!p_data)
+    return;
+  GtkWidget *window = p_data->window_history;
+
+  if (!window)
+    return;
+
+  /*
+   * Filter history on missed calls
+   */
+  window_history_filter (p_data, CALLS_MISSED);
+
+  gtk_widget_show_all (window);
+  gtk_window_present (GTK_WINDOW (window));
+  signal (SIGUSR2, handle_sigusr2);
+}
+
+
+
 static pid_t
 testlock (char *fname)
 {
@@ -130,11 +151,14 @@
   }
 }
 
-static gboolean show_gui;
+static gboolean show_dialer;
+static gboolean show_missed;
 
 static GOptionEntry entries[] = {
-  {"show-gui", 's', 0, G_OPTION_ARG_NONE, &show_gui,
-   "Show the GUI at startup (default off)", "N"},
+  {"show-dialer", 's', 0, G_OPTION_ARG_NONE, &show_dialer,
+   "Show the dialer at startup", "N"},
+  {"show-missed", 'm', 0, G_OPTION_ARG_NONE, &show_missed,
+   "Show the history window filtered by the missed, none.", "N"},
   {NULL}
 };
 
@@ -160,9 +184,13 @@
 
   //FIXME: the following lines to enable unique instance will be changed.
   lockapp = testlock ("/tmp/dialer.lock");
+
   if (lockapp > 0)
   {
-    kill (lockapp, SIGUSR1);
+    if (show_missed)
+      kill (lockapp, SIGUSR2);
+    else
+      kill (lockapp, SIGUSR1);
 
     /* make sure startup notifaction is terminated */
     gdk_init(&argc, &argv);
@@ -200,7 +228,9 @@
   p_dialer_data->journal = moko_journal_open_default ();
   moko_journal_load_from_storage (p_dialer_data->journal);
 
+  /* set up signal handling */
   signal (SIGUSR1, handle_sigusr1);
+  signal (SIGUSR2, handle_sigusr2);
 
   //init the dialer windows
   window_dialer_init (p_dialer_data);
@@ -209,11 +239,16 @@
   window_outgoing_init (p_dialer_data);
   window_history_init (p_dialer_data);
 
-  if (show_gui)
+  if (show_dialer)
   {
     handle_sigusr1 (SIGUSR1);
   }
-  
+
+  if (show_missed)
+  {
+    handle_sigusr2 (SIGUSR2);
+  }
+ 
   gtk_main ();
   
   //release everything

Modified: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c	2007-06-05 15:45:28 UTC (rev 2168)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.c	2007-06-05 16:19:47 UTC (rev 2169)
@@ -33,14 +33,6 @@
 #include "dialer-window-history.h"
 #include "dialer-window-outgoing.h"
 
-/* call types */
-typedef enum {
-  ALL =0,
-  MISSED,
-  OUTGOING,
-  INCOMING
-} CallFilter;
-
 #define HISTORY_MAX_ENTRIES 50
 
 #define HISTORY_CALL_INCOMING_ICON "moko-history-call-in"
@@ -74,7 +66,7 @@
 
 static int
 history_view_change_filter (MokoDialerData * p_dialer_data,
-                            CallFilter type)
+                            CallHistoryFilter type)
 {
  p_dialer_data->g_history_filter_type = type;
  gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER
@@ -89,7 +81,7 @@
   MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
   GtkWidget *label = p_dialer_data->label_filter_history;
   gtk_label_set_text (GTK_LABEL (label), "All");
-  history_view_change_filter (p_dialer_data, ALL);
+  history_view_change_filter (p_dialer_data, CALLS_ALL);
   history_update_counter (p_dialer_data);
 }
 
@@ -100,7 +92,7 @@
   MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
   GtkWidget *label = p_dialer_data->label_filter_history;
   gtk_label_set_text (GTK_LABEL (label), "Missed");
-  history_view_change_filter (p_dialer_data, MISSED);
+  history_view_change_filter (p_dialer_data, CALLS_MISSED);
   history_update_counter (p_dialer_data);
 }
 
@@ -111,7 +103,7 @@
   MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
   GtkWidget *label = p_dialer_data->label_filter_history;
   gtk_label_set_text (GTK_LABEL (label), "Dialed");
-  history_view_change_filter (p_dialer_data, OUTGOING);
+  history_view_change_filter (p_dialer_data, CALLS_OUTGOING);
   history_update_counter (p_dialer_data);
 }
 
@@ -122,10 +114,24 @@
   MokoDialerData *p_dialer_data = (MokoDialerData *) user_data;
   GtkWidget *label = p_dialer_data->label_filter_history;
   gtk_label_set_text (GTK_LABEL (label), "Received");
-  history_view_change_filter (p_dialer_data, INCOMING);
+  history_view_change_filter (p_dialer_data, CALLS_INCOMING);
   history_update_counter (p_dialer_data);
 }
 
+void window_history_filter (MokoDialerData *data, CallHistoryFilter filter)
+{
+  /* FIXME: this is ugly */
+  switch (filter)
+  {
+    case CALLS_INCOMING: on_received_calls_activate (NULL, data); break;
+    case CALLS_OUTGOING: on_dialed_calls_activate (NULL, data); break;
+    case CALLS_MISSED: on_missed_calls_activate (NULL, data); break;
+    case CALLS_ALL:
+    default:
+         on_all_calls_activate (NULL, data);
+  }
+}
+
 static gboolean
 on_eventboxTop_button_release_event (GtkWidget * widget,
                                      GdkEventButton * event,
@@ -638,8 +644,8 @@
                                       GtkTreeIter * iter, gpointer data)
 {
   MokoDialerData *p_dialer_data = (MokoDialerData *) data;
-  CallFilter type;
-  if (p_dialer_data->g_history_filter_type == ALL)
+  CallHistoryFilter type;
+  if (p_dialer_data->g_history_filter_type == CALLS_ALL)
     return TRUE;
   
   gtk_tree_model_get (model, iter, HISTORY_CALL_TYPE_COLUMN, &type, -1);
@@ -665,7 +671,7 @@
   gboolean was_missed;
   const MokoTime *time;
   MokoJournalVoiceInfo *info = NULL;
-  CallFilter type;
+  CallHistoryFilter type;
     
   /* We're not interested in anything other than voice entrys */
   if (moko_journal_entry_get_type (j_entry) != VOICE_JOURNAL_ENTRY)
@@ -689,19 +695,19 @@
   if (direction == DIRECTION_OUT)
   {
     icon = history_out_icon;
-    type = OUTGOING;
+    type = CALLS_OUTGOING;
   }
   else
   {
     if (was_missed)
     {
       icon = history_missed_icon;
-      type = MISSED;
+      type = CALLS_MISSED;
     }
     else
     { 
       icon = history_in_icon;
-      type = INCOMING;      
+      type = CALLS_INCOMING;
     }
   }
   /* display text should be either the contact name, or the number if the
@@ -787,7 +793,7 @@
                                         GTK_SORT_DESCENDING);
   
   /* We setup the default filter */
-  p_dialer_data->g_history_filter_type = ALL;
+  p_dialer_data->g_history_filter_type = CALLS_ALL;
   
   //we will use a filter to facilitate the filtering in treeview without rebuilding the database.  p_dialer_data->g_list_store_filter =
   p_dialer_data->g_list_store_filter = 

Modified: trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.h	2007-06-05 15:45:28 UTC (rev 2168)
+++ trunk/src/target/OM-2007/applications/openmoko-dialer/src/dialer-window-history.h	2007-06-05 16:19:47 UTC (rev 2169)
@@ -29,9 +29,16 @@
   HISTORY_ENTRY_POINTER /*  needed for deletes */
 };
 
+typedef enum {
+  CALLS_ALL = 0,
+  CALLS_MISSED,
+  CALLS_OUTGOING,
+  CALLS_INCOMING
+} CallHistoryFilter;
 
+
 gint window_history_init (MokoDialerData * p_dialer_data);
-
+void window_history_filter (MokoDialerData *data, CallHistoryFilter filter);
 #define _OPENMOKO_DIALER_WINDOW_HISTORY_H
 
 #endif





More information about the commitlog mailing list