Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--shell/ev-page-action.c4
-rw-r--r--shell/ev-page-cache.c9
-rw-r--r--test/Makefile.am13
-rw-r--r--test/test-page-labels.pdfbin0 -> 10150 bytes
-rwxr-xr-xtest/test1.py2
-rwxr-xr-xtest/test4.py7
-rwxr-xr-xtest/test5.py24
8 files changed, 68 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 15b6eea..9c16b3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
new file mode 100644
index 0000000..c7d1267
--- /dev/null
+++ b/test/test-page-labels.pdf
Binary files differ
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')