diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | shell/ev-page-action.c | 4 | ||||
-rw-r--r-- | shell/ev-page-cache.c | 9 | ||||
-rw-r--r-- | test/Makefile.am | 13 | ||||
-rw-r--r-- | test/test-page-labels.pdf | bin | 0 -> 10150 bytes | |||
-rwxr-xr-x | test/test1.py | 2 | ||||
-rwxr-xr-x | test/test4.py | 7 | ||||
-rwxr-xr-x | test/test5.py | 24 |
8 files changed, 68 insertions, 6 deletions
@@ -1,3 +1,18 @@ +2008-09-07 Nickolay V. Shmyrev <nshmyrev@yandex.ru> + + * shell/ev-page-cache.c (ev_page_cache_set_page_label): + + Patch for case unsensitive page label match by Michael Lee. + See bug #550136. + + * shell/ev-page-action.c (create_tool_item): + * test/Makefile.am: + * test/test1.py: + * test/test4.py: + * test/test5.py: + + Added test for the above and updated other tests. + 2008-09-07 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-window.c: (image_save_dialog_response_cb): diff --git a/shell/ev-page-action.c b/shell/ev-page-action.c index ef87e75..cc3615a 100644 --- a/shell/ev-page-action.c +++ b/shell/ev-page-action.c @@ -163,6 +163,7 @@ create_tool_item (GtkAction *action) { EvPageActionWidget *proxy; GtkWidget *hbox; + AtkObject *obj; proxy = g_object_new (ev_page_action_widget_get_type (), NULL); gtk_container_set_border_width (GTK_CONTAINER (proxy), 6); @@ -172,6 +173,9 @@ create_tool_item (GtkAction *action) gtk_box_set_spacing (GTK_BOX (hbox), 6); proxy->entry = gtk_entry_new (); + obj = gtk_widget_get_accessible (proxy->entry); + atk_object_set_name (obj, "page-label-entry"); + g_signal_connect(proxy->entry, "scroll-event",G_CALLBACK(page_scroll_cb),action); gtk_widget_add_events(GTK_WIDGET(proxy->entry),GDK_BUTTON_MOTION_MASK); gtk_entry_set_width_chars (GTK_ENTRY (proxy->entry), 5); diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index bbddbbc..a43876a 100644 --- a/shell/ev-page-cache.c +++ b/shell/ev-page-cache.c @@ -482,6 +482,15 @@ ev_page_cache_set_page_label (EvPageCache *page_cache, } } + /* Second, look for a match with case insensitively */ + for (i = 0; i < page_cache->n_pages; i++) { + if (page_cache->page_labels[i] != NULL && + ! strcasecmp (page_label, page_cache->page_labels[i])) { + ev_page_cache_set_current_page (page_cache, i); + return TRUE; + } + } + /* Next, parse the label, and see if the number fits */ value = strtol (page_label, &endptr, 10); if (endptr[0] == '\0') { diff --git a/test/Makefile.am b/test/Makefile.am index db56b57..aa562d3 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,6 +1,15 @@ -dist_check_SCRIPTS = test1.py test2.py test3.py test4.py +dist_check_SCRIPTS = \ + test1.py \ + test2.py \ + test3.py \ + test4.py \ + test5.py TESTS = $(dist_check_SCRIPTS) -EXTRA_DIST = test-encrypt.pdf test-links.pdf test-mime.bin +EXTRA_DIST = \ + test-encrypt.pdf \ + test-links.pdf \ + test-mime.bin \ + test-page-labels.pdf diff --git a/test/test-page-labels.pdf b/test/test-page-labels.pdf Binary files differnew file mode 100644 index 0000000..c7d1267 --- /dev/null +++ b/test/test-page-labels.pdf diff --git a/test/test1.py b/test/test1.py index 6822c7f..a106c0d 100755 --- a/test/test1.py +++ b/test/test1.py @@ -24,7 +24,7 @@ click('Close', roleName='push button') # About dialog click('Help', roleName='menu') click('About', roleName='menu item') -focus.dialog('About Evince') +focus.dialog('About Document Viewer') click('Credits', roleName='push button') focus.dialog('Credits') click('Close', roleName='push button') diff --git a/test/test4.py b/test/test4.py index 86ff197..789030e 100755 --- a/test/test4.py +++ b/test/test4.py @@ -10,9 +10,10 @@ from dogtail.procedural import * run('evince', arguments=' '+srcdir+'/test-links.pdf') -# Close evince -click('View', roleName='menu') -click('Reload', roleName='menu item') +# Reload document a few times +for i in range(1,6): + click('View', roleName='menu') + click('Reload', roleName='menu item') # Close evince click('File', roleName='menu') diff --git a/test/test5.py b/test/test5.py new file mode 100755 index 0000000..9fd7276 --- /dev/null +++ b/test/test5.py @@ -0,0 +1,24 @@ +#!/usr/bin/python + +# This test tries document reload action. + +import os +os.environ['LANG']='C' +srcdir = os.environ['srcdir'] + +from dogtail.procedural import * + +run('evince', arguments=' '+srcdir+'/test-page-labels.pdf') + +focus.widget('page-label-entry') +focus.widget.text = "iii" +activate() + +if focus.widget.text != "III": + click('File', roleName='menu') + click('Close', roleName='menu item') + exit (1) + +# Close evince +click('File', roleName='menu') +click('Close', roleName='menu item') |