]> www.fi.muni.cz Git - evince.git/commitdiff
Fixes bug #364364 - toolbar editor shows zoom actions again.
authorNickolay V. Shmyrev <nshmyrev@yandex.ru>
Fri, 10 Nov 2006 00:56:02 +0000 (00:56 +0000)
committerNickolay V. Shmyrev <nshmyrev@src.gnome.org>
Fri, 10 Nov 2006 00:56:02 +0000 (00:56 +0000)
2006-11-10  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>

* cut-n-paste/toolbar-editor/egg-toolbar-editor.c: (setup_editor):
* data/Makefile.am:
* data/evince-preview-toolbar.xml:
* data/evince-toolbar.xml:
* shell/ev-application.c: (ev_application_shutdown),
(ev_application_init), (ev_application_get_toolbars_model):
* shell/ev-application.h:
* shell/ev-window.c: (update_chrome_visibility),
(ev_window_create_fullscreen_popup), (ev_window_run_preview),
(ev_window_cmd_edit_toolbar), (ev_window_init):

Fixes bug #364364 - toolbar editor shows zoom actions again.

ChangeLog
cut-n-paste/toolbar-editor/egg-toolbar-editor.c
data/Makefile.am
data/evince-preview-toolbar.xml [new file with mode: 0644]
data/evince-toolbar.xml
shell/ev-application.c
shell/ev-application.h
shell/ev-window.c

index c3e5fc7b8f4117dc2181161f36bff3f0a7d79918..bda71f180399ce366f7b094e31e452ec8ebdeaeb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2006-11-10  Nickolay V. Shmyrev  <nshmyrev@yandex.ru>
+
+       * cut-n-paste/toolbar-editor/egg-toolbar-editor.c: (setup_editor):
+       * data/Makefile.am:
+       * data/evince-preview-toolbar.xml:
+       * data/evince-toolbar.xml:
+       * shell/ev-application.c: (ev_application_shutdown),
+       (ev_application_init), (ev_application_get_toolbars_model):
+       * shell/ev-application.h:
+       * shell/ev-window.c: (update_chrome_visibility),
+       (ev_window_create_fullscreen_popup), (ev_window_run_preview),
+       (ev_window_cmd_edit_toolbar), (ev_window_init):
+       
+       Fixes bug #364364 - toolbar editor shows zoom actions again.
+
 2006-11-09  Carlos Garcia Campos  <carlosgc@gnome.org>
 
        * shell/ev-window.c: (ev_window_print_dialog_response_cb):
index 3882626c6cf7403283b8416bac005eb9f84a6243..ba5973cb8ef2fab21fca04dcbc61f78080fdf304 100644 (file)
@@ -602,7 +602,7 @@ setup_editor (EggToolbarEditor *editor)
   editor->priv->scrolled_window = scrolled_window;
   gtk_widget_show (scrolled_window);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
-                                 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+                                 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
   gtk_box_pack_start (GTK_BOX (editor), scrolled_window, TRUE, TRUE, 0);
 }
 
index 81322cc7eaa2385673144eeacffa25d6b738ff14..5e05397145716e9cb644482ee57595cd05eb3a5a 100644 (file)
@@ -9,6 +9,7 @@ uidir = $(pkgdatadir)
 ui_DATA =                              \
        evince-ui.xml                   \
        evince-toolbar.xml              \
+       evince-preview-toolbar.xml              \
        hand-open.png                   \
        $(NULL)
 
diff --git a/data/evince-preview-toolbar.xml b/data/evince-preview-toolbar.xml
new file mode 100644 (file)
index 0000000..23fed0e
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<toolbars version="1.0">
+<available>
+    <toolitem name="GoPreviousPage"/>
+    <toolitem name="GoNextPage"/>
+    <toolitem name="PageSelector"/>
+    <toolitem name="ViewZoomIn"/>
+    <toolitem name="ViewZoomOut"/>
+    <toolitem name="ViewBestFit"/>
+    <toolitem name="ViewPageWidth"/>
+</available>
+
+<toolbar name="PreviewTooBar" editable="false">
+    <toolitem name="GoPreviousPage"/>
+    <toolitem name="GoNextPage"/>
+    <separator/>
+    <toolitem name="PageSelector"/>
+    <separator/>
+    <toolitem name="ViewPageWidth"/>
+    <toolitem name="ViewBestFit"/>
+    <toolitem name="ViewZoomIn"/>
+    <toolitem name="ViewZoomOut"/>
+</toolbar>
+
+</toolbars>
index d89027619e59ca6e1c548467cb35a33a6418deb6..060b93898e67b9b49d5476f5e709a0246846e63e 100644 (file)
@@ -19,7 +19,7 @@
     <toolitem name="ViewReload"/>
     <toolitem name="ViewSidebar"/>
 </available>
-<toolbar name="DefaultToolBar">
+ <toolbar name="DefaultToolBar">
     <toolitem name="GoPreviousPage"/>
     <toolitem name="GoNextPage"/>
     <separator/>
     <separator/>
     <toolitem name="ViewZoom"/>
  </toolbar>
-
-<toolbar name="PreviewTooBar" hidden="true" editable="false">
-    <toolitem name="GoPreviousPage"/>
-    <toolitem name="GoNextPage"/>
-    <separator/>
-    <toolitem name="PageSelector"/>
-    <separator/>
-    <toolitem name="ViewPageWidth"/>
-    <toolitem name="ViewBestFit"/>
-    <toolitem name="ViewZoomIn"/>
-    <toolitem name="ViewZoomOut"/>
-</toolbar>
-
 </toolbars>
index 388c8d276d5dea5ac9d4af345b80f0ff34fbafa7..4bbec37cd1d1348a63903a316fd317662084d590 100644 (file)
@@ -413,8 +413,10 @@ ev_application_shutdown (EvApplication *application)
 {
        if (application->toolbars_model) {
                g_object_unref (application->toolbars_model);
+               g_object_unref (application->preview_toolbars_model);
                g_free (application->toolbars_file);
                application->toolbars_model = NULL;
+               application->preview_toolbars_model = NULL;
                application->toolbars_file = NULL;
        }
 
@@ -458,6 +460,14 @@ ev_application_init (EvApplication *ev_application)
        egg_toolbars_model_set_flags (ev_application->toolbars_model, 0,
                                      EGG_TB_MODEL_NOT_REMOVABLE); 
 
+       ev_application->preview_toolbars_model = egg_toolbars_model_new ();
+
+       egg_toolbars_model_load_toolbars (ev_application->preview_toolbars_model,
+                                         DATADIR"/evince-preview-toolbar.xml");
+
+       egg_toolbars_model_set_flags (ev_application->preview_toolbars_model, 0,
+                                     EGG_TB_MODEL_NOT_REMOVABLE); 
+
 #ifndef HAVE_GTK_RECENT
        ev_application->recent_model = egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU);
        /* FIXME we should add a mime type filter but current eggrecent
@@ -488,9 +498,11 @@ ev_application_get_windows (EvApplication *application)
        return windows;
 }
 
-EggToolbarsModel *ev_application_get_toolbars_model (EvApplication *application)
+EggToolbarsModel *ev_application_get_toolbars_model (EvApplication *application,
+                                                    gboolean preview)
 {
-       return application->toolbars_model;
+       return preview ? 
+           application->preview_toolbars_model : application->toolbars_model;
 }
 
 #ifndef HAVE_GTK_RECENT
index 09519b1e3496e37b75365e042d42537a02fe0b0e..3b43b453961d146f68ba5160bcdcbcb51a887f1b 100644 (file)
@@ -53,6 +53,8 @@ struct _EvApplication {
        gchar *toolbars_file;
        
        EggToolbarsModel *toolbars_model;
+       EggToolbarsModel *preview_toolbars_model;
+       
 #ifndef HAVE_GTK_RECENT
        EggRecentModel  *recent_model;
 #endif
@@ -91,7 +93,8 @@ void            ev_application_open_uri_list       (EvApplication   *application,
                                                      guint32          timestamp);
 GList           *ev_application_get_windows         (EvApplication   *application);
 
-EggToolbarsModel *ev_application_get_toolbars_model  (EvApplication   *application);
+EggToolbarsModel *ev_application_get_toolbars_model  (EvApplication   *application, 
+                                                     gboolean preview);
 void              ev_application_save_toolbars_model (EvApplication   *application);
 #ifndef HAVE_GTK_RECENT
 EggRecentModel   *ev_application_get_recent_model    (EvApplication   *application);
index af4e530ffa87081f3be8b99272d6c6db0bb6a3d3..bbe65a7cf4827c796f4f628d58ae7c90f4c3dfe6 100644 (file)
@@ -100,6 +100,7 @@ typedef enum {
        EV_CHROME_RAISE_TOOLBAR = 1 << 3,
        EV_CHROME_FULLSCREEN_TOOLBAR    = 1 << 4,
        EV_CHROME_SIDEBAR       = 1 << 5,
+       EV_CHROME_PREVIEW_TOOLBAR       = 1 << 6,
        EV_CHROME_NORMAL        = EV_CHROME_MENUBAR | EV_CHROME_TOOLBAR | EV_CHROME_SIDEBAR
 } EvChrome;
 
@@ -120,6 +121,7 @@ struct _EvWindowPrivate {
        GtkWidget *sidebar_thumbs;
        GtkWidget *sidebar_links;
        GtkWidget *sidebar_attachments;
+       GtkWidget *preview_toolbar;
 
        /* Dialogs */
        GtkWidget *properties;
@@ -462,6 +464,7 @@ update_chrome_visibility (EvWindow *window)
        EvWindowPrivate *priv = window->priv;
        gboolean menubar, toolbar, findbar, fullscreen_toolbar, sidebar;
        gboolean fullscreen_mode, presentation, fullscreen;
+       gboolean preview_toolbar;
 
        presentation = ev_view_get_presentation (EV_VIEW (priv->view));
        fullscreen = ev_view_get_fullscreen (EV_VIEW (priv->view));
@@ -474,11 +477,13 @@ update_chrome_visibility (EvWindow *window)
                              (priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0) && fullscreen;
        findbar = (priv->chrome & EV_CHROME_FINDBAR) != 0;
        sidebar = (priv->chrome & EV_CHROME_SIDEBAR) != 0 && !fullscreen_mode;
+       preview_toolbar = (priv->chrome& EV_CHROME_PREVIEW_TOOLBAR);
 
        set_widget_visibility (priv->menubar, menubar); 
        set_widget_visibility (priv->toolbar_dock, toolbar);
        set_widget_visibility (priv->find_bar, findbar);
        set_widget_visibility (priv->sidebar, sidebar);
+       set_widget_visibility (priv->preview_toolbar, preview_toolbar);
 
        ev_window_set_action_sensitive (window, "EditToolbar", toolbar);
        gtk_widget_set_sensitive (priv->menubar, menubar);
@@ -2219,7 +2224,7 @@ ev_window_create_fullscreen_popup (EvWindow *window)
        GdkScreen *screen;
 
        window->priv->fullscreen_toolbar = egg_editable_toolbar_new_with_model
-                       (window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP), NULL);
+                       (window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP, FALSE), NULL);
 
        popup = gtk_window_new (GTK_WINDOW_POPUP);
        hbox = gtk_hbox_new (FALSE, 0);
@@ -2426,29 +2431,14 @@ ev_window_cmd_view_presentation (GtkAction *action, EvWindow *window)
 static void
 ev_window_run_preview (EvWindow *window)
 {
-       EggToolbarsModel *model;
-       EggTbModelFlags   flags;
-
-       model = egg_toolbars_model_new ();
-
-       egg_toolbars_model_load_toolbars (model,
-                                         DATADIR"/evince-toolbar.xml");
-       
-       flags = egg_toolbars_model_get_flags (model, 1);
-       egg_toolbars_model_set_flags (model, 1, flags &= ~(EGG_TB_MODEL_HIDDEN));
-
-       egg_editable_toolbar_set_model (EGG_EDITABLE_TOOLBAR (window->priv->toolbar),
-                                       model);
-       
-       egg_editable_toolbar_hide (EGG_EDITABLE_TOOLBAR (window->priv->toolbar),
-                                  "DefaultToolBar");
-       egg_editable_toolbar_show (EGG_EDITABLE_TOOLBAR (window->priv->toolbar),
-                                  "PreviewToolBar");
-
        ev_view_set_continuous (EV_VIEW (window->priv->view), FALSE); 
        
+       update_chrome_flag (window, EV_CHROME_TOOLBAR, FALSE);
        update_chrome_flag (window, EV_CHROME_MENUBAR, FALSE);
        update_chrome_flag (window, EV_CHROME_SIDEBAR, FALSE);
+
+       update_chrome_flag (window, EV_CHROME_PREVIEW_TOOLBAR, TRUE);
+
        update_chrome_visibility (window);
 }
 
@@ -2596,7 +2586,7 @@ ev_window_cmd_edit_toolbar (GtkAction *action, EvWindow *ev_window)
        gtk_window_set_default_size (GTK_WINDOW (dialog), 500, 400);
          
        editor = egg_toolbar_editor_new (ev_window->priv->ui_manager,
-                                        ev_application_get_toolbars_model (EV_APP));
+                                        ev_application_get_toolbars_model (EV_APP, FALSE));
        gtk_container_set_border_width (GTK_CONTAINER (editor), 5);
        gtk_box_set_spacing (GTK_BOX (EGG_TOOLBAR_EDITOR (editor)), 5);
              
@@ -4223,13 +4213,19 @@ ev_window_init (EvWindow *ev_window)
        gtk_widget_show (toolbar_dock);
 
        ev_window->priv->toolbar = egg_editable_toolbar_new_with_model
-                               (ev_window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP), NULL);
+                               (ev_window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP, FALSE), NULL);
        egg_editable_toolbar_show (EGG_EDITABLE_TOOLBAR (ev_window->priv->toolbar),
                                   "DefaultToolBar");
        gtk_box_pack_start (GTK_BOX (toolbar_dock), ev_window->priv->toolbar,
                            TRUE, TRUE, 0);
        gtk_widget_show (ev_window->priv->toolbar);
 
+       /* Preview toolbar */
+       ev_window->priv->preview_toolbar = egg_editable_toolbar_new_with_model
+                               (ev_window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP, TRUE), NULL);
+       gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box), ev_window->priv->preview_toolbar,
+                           FALSE, FALSE, 0);
+
        /* Add the main area */
        ev_window->priv->hpaned = gtk_hpaned_new ();
        g_signal_connect (ev_window->priv->hpaned,