]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Updated Slovenian translation
[evince.git] / shell / ev-window.c
index 96200fce702d20a7cca4ba83ce054fde43b93952..c53b772b448f761de91ecf50a151ae5285a750b3 100644 (file)
@@ -32,6 +32,7 @@
 #include "ev-window-title.h"
 #include "ev-navigation-action.h"
 #include "ev-page-action.h"
 #include "ev-window-title.h"
 #include "ev-navigation-action.h"
 #include "ev-page-action.h"
+#include "ev-open-recent-action.h"
 #include "ev-sidebar.h"
 #include "ev-sidebar-links.h"
 #include "ev-sidebar-attachments.h"
 #include "ev-sidebar.h"
 #include "ev-sidebar-links.h"
 #include "ev-sidebar-attachments.h"
@@ -264,6 +265,8 @@ static void ev_window_cmd_view_page_width           (GtkAction        *action,
 static void    view_handle_link_cb                     (EvView           *view, 
                                                         EvLink           *link, 
                                                         EvWindow         *window);
 static void    view_handle_link_cb                     (EvView           *view, 
                                                         EvLink           *link, 
                                                         EvWindow         *window);
+static void     ev_window_cmd_edit_find                 (GtkAction        *action,
+                                                        EvWindow         *ev_window);
 static void     find_bar_search_changed_cb              (EggFindBar       *find_bar,
                                                         GParamSpec       *param,
                                                         EvWindow         *ev_window);
 static void     find_bar_search_changed_cb              (EggFindBar       *find_bar,
                                                         GParamSpec       *param,
                                                         EvWindow         *ev_window);
@@ -1341,6 +1344,10 @@ ev_window_load_job_cb  (EvJobLoad *job,
                                find_bar_search_changed_cb (EGG_FIND_BAR (ev_window->priv->find_bar),
                                                            NULL, ev_window);
                        }
                                find_bar_search_changed_cb (EGG_FIND_BAR (ev_window->priv->find_bar),
                                                            NULL, ev_window);
                        }
+               } else if (job->search_string && EV_IS_DOCUMENT_FIND (document)) {
+                       ev_window_cmd_edit_find (NULL, ev_window);
+                       egg_find_bar_set_search_string (EGG_FIND_BAR (ev_window->priv->find_bar),
+                                                       job->search_string);
                }
 
                ev_window_clear_load_job (ev_window);
                }
 
                ev_window_clear_load_job (ev_window);
@@ -1447,11 +1454,17 @@ ev_window_open_uri (EvWindow       *ev_window,
                    const char     *uri,
                    EvLinkDest     *dest,
                    EvWindowRunMode mode,
                    const char     *uri,
                    EvLinkDest     *dest,
                    EvWindowRunMode mode,
+                   const gchar    *search_string, 
                    gboolean        unlink_temp_file,
                    const gchar    *print_settings)
 {
        GnomeVFSURI *source_uri;
        GnomeVFSURI *target_uri;
                    gboolean        unlink_temp_file,
                    const gchar    *print_settings)
 {
        GnomeVFSURI *source_uri;
        GnomeVFSURI *target_uri;
+
+       if (ev_window->priv->uri &&
+           g_ascii_strcasecmp (ev_window->priv->uri, uri) == 0) {
+               ev_window->priv->in_reload = TRUE;
+       }
        
        ev_window_close_dialogs (ev_window);
        ev_window_clear_load_job (ev_window);
        
        ev_window_close_dialogs (ev_window);
        ev_window_clear_load_job (ev_window);
@@ -1472,7 +1485,7 @@ ev_window_open_uri (EvWindow       *ev_window,
 
        setup_size_from_metadata (ev_window);
        
 
        setup_size_from_metadata (ev_window);
        
-       ev_window->priv->load_job = ev_job_load_new (uri, dest, mode);
+       ev_window->priv->load_job = ev_job_load_new (uri, dest, mode, search_string);
        g_signal_connect (ev_window->priv->load_job,
                          "finished",
                          G_CALLBACK (ev_window_load_job_cb),
        g_signal_connect (ev_window->priv->load_job,
                          "finished",
                          G_CALLBACK (ev_window_load_job_cb),
@@ -1674,6 +1687,7 @@ ev_window_cmd_file_open_copy_at_dest (EvWindow *window, EvLinkDest *dest)
                                         gtk_window_get_screen (GTK_WINDOW (window)),
                                         dest,
                                         0,
                                         gtk_window_get_screen (GTK_WINDOW (window)),
                                         dest,
                                         0,
+                                        NULL, 
                                         TRUE,
                                         NULL,
                                         GDK_CURRENT_TIME);
                                         TRUE,
                                         NULL,
                                         GDK_CURRENT_TIME);
@@ -1696,8 +1710,8 @@ ev_window_cmd_file_open_copy (GtkAction *action, EvWindow *window)
 }
 
 static void
 }
 
 static void
-ev_window_cmd_recent_file_activate (GtkAction     *action,
-                                   EvWindow      *window)
+ev_window_cmd_recent_file_activate (GtkAction *action,
+                                   EvWindow  *window)
 {
        GtkRecentInfo *info;
        const gchar   *uri;
 {
        GtkRecentInfo *info;
        const gchar   *uri;
@@ -1709,7 +1723,18 @@ ev_window_cmd_recent_file_activate (GtkAction     *action,
        
        ev_application_open_uri_at_dest (EV_APP, uri,
                                         gtk_window_get_screen (GTK_WINDOW (window)),
        
        ev_application_open_uri_at_dest (EV_APP, uri,
                                         gtk_window_get_screen (GTK_WINDOW (window)),
-                                        NULL, 0, FALSE, NULL, 
+                                        NULL, 0, NULL, FALSE, NULL, 
+                                        GDK_CURRENT_TIME);
+}
+
+static void
+ev_window_open_recent_action_item_activated (EvOpenRecentAction *action,
+                                            const gchar        *uri,
+                                            EvWindow           *window)
+{
+       ev_application_open_uri_at_dest (EV_APP, uri,
+                                        gtk_window_get_screen (GTK_WINDOW (window)),
+                                        NULL, 0, NULL, FALSE, NULL, 
                                         GDK_CURRENT_TIME);
 }
 
                                         GDK_CURRENT_TIME);
 }
 
@@ -2169,6 +2194,7 @@ ev_window_print_send (EvWindow    *window,
                                                 gtk_window_get_screen (GTK_WINDOW (window)),
                                                 NULL,
                                                 EV_WINDOW_MODE_PREVIEW,
                                                 gtk_window_get_screen (GTK_WINDOW (window)),
                                                 NULL,
                                                 EV_WINDOW_MODE_PREVIEW,
+                                                NULL, 
                                                 TRUE,
                                                 print_settings_file,
                                                 GDK_CURRENT_TIME);
                                                 TRUE,
                                                 print_settings_file,
                                                 GDK_CURRENT_TIME);
@@ -3224,10 +3250,8 @@ ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window)
 {
        gchar *uri;
 
 {
        gchar *uri;
 
-       ev_window->priv->in_reload = TRUE;
-       
        uri = g_strdup (ev_window->priv->uri);
        uri = g_strdup (ev_window->priv->uri);
-       ev_window_open_uri (ev_window, uri, NULL, 0, FALSE, NULL);
+       ev_window_open_uri (ev_window, uri, NULL, 0, NULL, FALSE, NULL);
        g_free (uri);
 }
 
        g_free (uri);
 }
 
@@ -4464,6 +4488,20 @@ register_custom_actions (EvWindow *window, GtkActionGroup *group)
                          G_CALLBACK (navigation_action_activate_link_cb), window);
        gtk_action_group_add_action (group, action);
        g_object_unref (action);
                          G_CALLBACK (navigation_action_activate_link_cb), window);
        gtk_action_group_add_action (group, action);
        g_object_unref (action);
+
+       action = g_object_new (EV_TYPE_OPEN_RECENT_ACTION,
+                              "name", "FileOpenRecent",
+                              "label", _("_Open..."),
+                              "tooltip", _("Open an existing document"),
+                              "stock_id", GTK_STOCK_OPEN,
+                              NULL);
+       g_signal_connect (action, "activate",
+                         G_CALLBACK (ev_window_cmd_file_open), window);
+       g_signal_connect (action, "item_activated",
+                         G_CALLBACK (ev_window_open_recent_action_item_activated),
+                         window);
+       gtk_action_group_add_action (group, action);
+       g_object_unref (action);
 }
 
 static void
 }
 
 static void
@@ -4711,6 +4749,7 @@ open_remote_link (EvWindow *window, EvLinkAction *action)
                                         gtk_window_get_screen (GTK_WINDOW (window)),
                                         ev_link_action_get_dest (action),
                                         0,
                                         gtk_window_get_screen (GTK_WINDOW (window)),
                                         ev_link_action_get_dest (action),
                                         0,
+                                        NULL, 
                                         FALSE,
                                         NULL,
                                         GDK_CURRENT_TIME);
                                         FALSE,
                                         NULL,
                                         GDK_CURRENT_TIME);
@@ -5151,7 +5190,7 @@ ev_window_init (EvWindow *ev_window)
                                  "changed",
                                  G_CALLBACK (ev_window_setup_recent),
                                  ev_window);
                                  "changed",
                                  G_CALLBACK (ev_window_setup_recent),
                                  ev_window);
-       
+
        ev_window->priv->menubar =
                 gtk_ui_manager_get_widget (ev_window->priv->ui_manager,
                                            "/MainMenu");
        ev_window->priv->menubar =
                 gtk_ui_manager_get_widget (ev_window->priv->ui_manager,
                                            "/MainMenu");
@@ -5159,7 +5198,6 @@ ev_window_init (EvWindow *ev_window)
                            ev_window->priv->menubar,
                            FALSE, FALSE, 0);
 
                            ev_window->priv->menubar,
                            FALSE, FALSE, 0);
 
-
        ev_window->priv->toolbar = GTK_WIDGET 
          (g_object_new (EGG_TYPE_EDITABLE_TOOLBAR,
                         "ui-manager", ev_window->priv->ui_manager,
        ev_window->priv->toolbar = GTK_WIDGET 
          (g_object_new (EGG_TYPE_EDITABLE_TOOLBAR,
                         "ui-manager", ev_window->priv->ui_manager,