Let the embedded version also benefit from the view filters

This commit is contained in:
Pierre Pronchery 2010-09-04 19:20:35 +00:00
parent bd1f7cd75e
commit 10751c4a94
5 changed files with 70 additions and 8 deletions

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Todo 0.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-09-04 19:24+0200\n"
"POT-Creation-Date: 2010-09-04 21:17+0200\n"
"PO-Revision-Date: 2010-04-23 14:35+0200\n"
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
"Language-Team: French\n"
@ -108,7 +108,7 @@ msgstr "_Vue"
msgid "_Help"
msgstr "_Aide"
#: ../src/todo.c:164 ../src/todo.c:432
#: ../src/todo.c:164 ../src/todo.c:462
msgid "New task"
msgstr "Nouvelle tâche"
@ -128,22 +128,38 @@ msgstr "Supprimer la tâche"
msgid "Preferences"
msgstr "Préférences"
#: ../src/todo.c:223
#: ../src/todo.c:227
msgid "Todo"
msgstr "Todo"
#: ../src/todo.c:328
#: ../src/todo.c:238
msgid "View as..."
msgstr "Vue de..."
#: ../src/todo.c:242
msgid "All tasks"
msgstr "Toutes les tâches"
#: ../src/todo.c:246
msgid "Completed tasks"
msgstr "Tâches complétées"
#: ../src/todo.c:250
msgid "Remaining tasks"
msgstr "Tâches restantes"
#: ../src/todo.c:351
msgid "Priority"
msgstr "Priorité"
#: ../src/todo.c:393 ../src/todo.c:398
#: ../src/todo.c:423 ../src/todo.c:428
msgid "Error"
msgstr "Erreur"
#: ../src/todo.c:485
#: ../src/todo.c:515
msgid "Are you sure you want to delete the selected task(s)?"
msgstr "Voulez-vous vraiment supprimer la sélection?"
#: ../src/todo.c:693 ../src/todo.c:698
#: ../src/todo.c:723 ../src/todo.c:728
msgid "Question"
msgstr "Question"

View File

@ -161,6 +161,18 @@ void on_preferences(gpointer data)
}
/* on_view_as */
void on_view_as(gpointer data)
{
Todo * todo = data;
TodoView view;
view = todo_get_view(todo);
view = ++view % TODO_VIEW_COUNT;
todo_set_view(todo, view);
}
/* on_select_all */
void on_select_all(gpointer data)
{

View File

@ -49,6 +49,7 @@ void on_edit(gpointer data);
void on_select_all(gpointer data);
void on_delete(gpointer data);
void on_preferences(gpointer data);
void on_view_as(gpointer data);
/* view */
void on_task_done_toggled(GtkCellRendererToggle * renderer, gchar * path,

View File

@ -178,6 +178,7 @@ static DesktopToolbar _toolbar[] =
{ N_("Preferences"), G_CALLBACK(on_preferences), GTK_STOCK_PREFERENCES,
0, 0, NULL },
#endif
{ "", NULL, NULL, 0, 0, NULL },
{ NULL, NULL, NULL, 0, 0, NULL }
};
@ -208,6 +209,9 @@ Todo * todo_new(void)
GtkAccelGroup * group;
GtkWidget * vbox;
GtkWidget * widget;
GtkToolItem * toolitem;
GtkWidget * menu;
GtkWidget * menuitem;
if((todo = malloc(sizeof(*todo))) == NULL)
{
@ -231,6 +235,25 @@ Todo * todo_new(void)
#endif
/* toolbar */
widget = desktop_toolbar_create(_toolbar, todo, group);
toolitem = gtk_menu_tool_button_new(NULL, _("View as..."));
g_signal_connect_swapped(G_OBJECT(toolitem), "clicked", G_CALLBACK(
on_view_as), todo);
menu = gtk_menu_new();
menuitem = gtk_menu_item_new_with_label(_("All tasks"));
g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(
on_view_all_tasks), todo);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
menuitem = gtk_menu_item_new_with_label(_("Completed tasks"));
g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(
on_view_completed_tasks), todo);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
menuitem = gtk_menu_item_new_with_label(_("Remaining tasks"));
g_signal_connect_swapped(G_OBJECT(menuitem), "activate", G_CALLBACK(
on_view_remaining_tasks), todo);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
gtk_widget_show_all(menu);
gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(toolitem), menu);
gtk_toolbar_insert(GTK_TOOLBAR(widget), toolitem, -1);
gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, TRUE, 0);
/* view */
todo->scrolled = gtk_scrolled_window_new(NULL, NULL);
@ -351,6 +374,13 @@ void todo_delete(Todo * todo)
/* accessors */
/* todo_get_view */
TodoView todo_get_view(Todo * todo)
{
return todo->filter_view;
}
/* todo_set_view */
void todo_set_view(Todo * todo, TodoView view)
{

View File

@ -37,10 +37,12 @@ typedef enum _TodoPriority
typedef enum _TodoView
{
TODO_VIEW_ALL_TASKS,
TODO_VIEW_ALL_TASKS = 0,
TODO_VIEW_COMPLETED_TASKS,
TODO_VIEW_REMAINING_TASKS
} TodoView;
# define TODO_VIEW_LAST TODO_VIEW_REMAINING_TASKS
# define TODO_VIEW_COUNT (TODO_VIEW_LAST + 1)
/* functions */
@ -48,6 +50,7 @@ Todo * todo_new(void);
void todo_delete(Todo * todo);
/* accessors */
TodoView todo_get_view(Todo * todo);
void todo_set_view(Todo * todo, TodoView view);
/* useful */