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