From: Marco Pesenti Gritti Date: Fri, 7 Jan 2005 10:30:52 +0000 (+0000) Subject: Cleanup and add select all. X-Git-Tag: EVINCE_0_1_0~8 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=3a87fe3d6bd17d8151c675c9b4e9294619127b1b;p=evince.git Cleanup and add select all. 2005-01-07 Marco Pesenti Gritti * data/evince-ui.xml: Cleanup and add select all. * shell/ev-view.c: (ev_view_select_all), (ev_view_button_press_event): * shell/ev-view.h: * shell/ev-window.c: (ev_window_cmd_edit_select_all): Add select all. Clear selection on click. --- diff --git a/ChangeLog b/ChangeLog index 08647d41..a9ec90e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2005-01-07 Marco Pesenti Gritti + + * data/evince-ui.xml: + + Cleanup and add select all. + + * shell/ev-view.c: (ev_view_select_all), + (ev_view_button_press_event): + * shell/ev-view.h: + * shell/ev-window.c: (ev_window_cmd_edit_select_all): + + Add select all. + Clear selection on click. + Fri Jan 7 01:28:58 2005 Jonathan Blandford * shell/ev-sidebar-thumbnails.c diff --git a/data/evince-ui.xml b/data/evince-ui.xml index 8452c689..ffeb696b 100644 --- a/data/evince-ui.xml +++ b/data/evince-ui.xml @@ -12,6 +12,9 @@ + + + @@ -19,9 +22,9 @@ - + - + @@ -32,10 +35,10 @@ - + - + diff --git a/shell/ev-view.c b/shell/ev-view.c index 9936ce1e..f878812d 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -421,6 +421,21 @@ ev_view_expose_event (GtkWidget *widget, return FALSE; } +void +ev_view_select_all (EvView *ev_view) +{ + GtkWidget *widget = GTK_WIDGET (ev_view); + + g_return_if_fail (EV_IS_VIEW (ev_view)); + + ev_view->has_selection = TRUE; + ev_view->selection.x = ev_view->selection.y = 0; + ev_view->selection.width = widget->requisition.width; + ev_view->selection.height = widget->requisition.height; + + gtk_widget_queue_draw (widget); +} + void ev_view_copy (EvView *ev_view) { @@ -490,6 +505,11 @@ ev_view_button_press_event (GtkWidget *widget, switch (event->button) { case 1: + if (view->has_selection) { + view->has_selection = FALSE; + gtk_widget_queue_draw (widget); + } + view->selection.x = event->x; view->selection.y = event->y; view->selection.width = 0; diff --git a/shell/ev-view.h b/shell/ev-view.h index cddd2745..c68bf9fe 100644 --- a/shell/ev-view.h +++ b/shell/ev-view.h @@ -37,6 +37,7 @@ typedef struct _EvViewClass EvViewClass; GType ev_view_get_type (void) G_GNUC_CONST; GtkWidget* ev_view_new (void); void ev_view_copy (EvView *view); +void ev_view_select_all (EvView *view); void ev_view_set_document (EvView *view, EvDocument *document); void ev_view_set_page (EvView *view, diff --git a/shell/ev-window.c b/shell/ev-window.c index e110e1db..8f01111b 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -583,6 +583,14 @@ find_not_supported_dialog (EvWindow *ev_window) gtk_widget_destroy (dialog); } +static void +ev_window_cmd_edit_select_all (GtkAction *action, EvWindow *ev_window) +{ + g_return_if_fail (EV_IS_WINDOW (ev_window)); + + ev_view_select_all (EV_VIEW (ev_window->priv->view)); +} + static void ev_window_cmd_edit_find (GtkAction *action, EvWindow *ev_window) { @@ -1239,7 +1247,9 @@ static GtkActionEntry entries[] = { { "EditCopy", GTK_STOCK_COPY, N_("_Copy"), "C", N_("Copy text from the document"), G_CALLBACK (ev_window_cmd_edit_copy) }, - + { "EditSelectAll", NULL, N_("Select _All"), "A", + N_("Select the entire page"), + G_CALLBACK (ev_window_cmd_edit_select_all) }, { "EditFind", GTK_STOCK_FIND, N_("_Find"), "F", N_("Find a word or phrase in the document"), G_CALLBACK (ev_window_cmd_edit_find) },