From bd7342aad81904a616ea6948a1e87c59e26af951 Mon Sep 17 00:00:00 2001 From: Nickolay V. Shmyrev Date: Fri, 10 Nov 2006 00:56:02 +0000 Subject: Fixes bug #364364 - toolbar editor shows zoom actions again. 2006-11-10 Nickolay V. Shmyrev * 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. --- diff --git a/ChangeLog b/ChangeLog index c3e5fc7..bda71f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2006-11-10 Nickolay V. Shmyrev + + * 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 * shell/ev-window.c: (ev_window_print_dialog_response_cb): diff --git a/cut-n-paste/toolbar-editor/egg-toolbar-editor.c b/cut-n-paste/toolbar-editor/egg-toolbar-editor.c index 3882626..ba5973c 100644 --- a/cut-n-paste/toolbar-editor/egg-toolbar-editor.c +++ b/cut-n-paste/toolbar-editor/egg-toolbar-editor.c @@ -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); } diff --git a/data/Makefile.am b/data/Makefile.am index 81322cc..5e05397 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -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 index 0000000..23fed0e --- /dev/null +++ b/data/evince-preview-toolbar.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/evince-toolbar.xml b/data/evince-toolbar.xml index d890276..060b938 100644 --- a/data/evince-toolbar.xml +++ b/data/evince-toolbar.xml @@ -19,7 +19,7 @@ - + @@ -27,17 +27,4 @@ - - - diff --git a/shell/ev-application.c b/shell/ev-application.c index 388c8d2..4bbec37 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -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 diff --git a/shell/ev-application.h b/shell/ev-application.h index 09519b1..3b43b45 100644 --- a/shell/ev-application.h +++ b/shell/ev-application.h @@ -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); diff --git a/shell/ev-window.c b/shell/ev-window.c index af4e530..bbe65a7 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -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, -- cgit v0.9.1