Updating branch refs/heads/master to 143b6ba6c2a8e024057bfca7e96deeb6bc3e765f (commit) from 5c88d180a1e20cb51737990948bb041529a97357 (commit)
commit 143b6ba6c2a8e024057bfca7e96deeb6bc3e765f Author: Matthew Brush <m...@xfce.org> Date: Fri Oct 7 00:52:59 2011 -0700 Cleanup View and Document menus. * Move "Line Numbers" from Document to View menu and apply it to all of the currently open textviews. * Re-order View and Document menu items, mostly sorted alphabetically. * Remove extra separators between related items. * Re-arrange action handler functions to be in the same order as their items appear in the XML file. mousepad/mousepad-window-ui.xml | 27 ++-- mousepad/mousepad-window.c | 335 ++++++++++++++++++++------------------- 2 files changed, 185 insertions(+), 177 deletions(-) diff --git a/mousepad/mousepad-window-ui.xml b/mousepad/mousepad-window-ui.xml index f782f96..bf49fd5 100644 --- a/mousepad/mousepad-window-ui.xml +++ b/mousepad/mousepad-window-ui.xml @@ -67,11 +67,12 @@ <menu action="view-menu"> <menuitem action="font" /> <separator /> - <menuitem action="statusbar" /> - <separator /> <menu action="color-scheme-menu"> <placeholder name="placeholder-color-scheme-items" /> </menu> + <menuitem action="line-numbers" /> + <separator /> + <menuitem action="statusbar" /> </menu> <menu action="text-menu"> @@ -100,27 +101,23 @@ </menu> <menu action="document-menu"> - <menuitem action="line-numbers" /> - <menuitem action="word-wrap" /> - <separator /> <menuitem action="auto-indent" /> - <separator /> - <menuitem action="write-bom" /> - <separator /> - <menu action="tab-size-menu"> - <placeholder name="placeholder-tab-items" /> - <separator /> - <menuitem action="insert-spaces" /> + <menu action="language-menu"> + <placeholder name="placeholder-language-section-items" /> </menu> <menu action="eol-menu"> <menuitem action="unix" /> <menuitem action="mac" /> <menuitem action="dos" /> </menu> - <separator /> - <menu action="language-menu"> - <placeholder name="placeholder-language-section-items" /> + <menu action="tab-size-menu"> + <placeholder name="placeholder-tab-items" /> + <separator /> + <menuitem action="insert-spaces" /> </menu> + <menuitem action="word-wrap" /> + <separator /> + <menuitem action="write-bom" /> </menu> <menu action="navigation-menu"> diff --git a/mousepad/mousepad-window.c b/mousepad/mousepad-window.c index 118e7e9..7524a39 100644 --- a/mousepad/mousepad-window.c +++ b/mousepad/mousepad-window.c @@ -281,12 +281,14 @@ static void mousepad_window_action_replace (GtkAction MousepadWindow *window); static void mousepad_window_action_select_font (GtkAction *action, MousepadWindow *window); +static void mousepad_window_action_color_scheme (GtkToggleAction *action, + MousepadWindow *window); +static void mousepad_window_action_line_numbers (GtkToggleAction *action, + MousepadWindow *window); static void mousepad_window_action_statusbar_overwrite (MousepadWindow *window, gboolean overwrite); static void mousepad_window_action_statusbar (GtkToggleAction *action, MousepadWindow *window); -static void mousepad_window_action_color_scheme (GtkToggleAction *action, - MousepadWindow *window); static void mousepad_window_action_lowercase (GtkAction *action, MousepadWindow *window); static void mousepad_window_action_uppercase (GtkAction *action, @@ -313,22 +315,20 @@ static void mousepad_window_action_increase_indent (GtkAction MousepadWindow *window); static void mousepad_window_action_decrease_indent (GtkAction *action, MousepadWindow *window); -static void mousepad_window_action_line_numbers (GtkToggleAction *action, - MousepadWindow *window); -static void mousepad_window_action_word_wrap (GtkToggleAction *action, +static void mousepad_window_action_auto_indent (GtkToggleAction *action, MousepadWindow *window); -static void mousepad_window_action_write_bom (GtkToggleAction *action, +static void mousepad_window_action_language (GtkToggleAction *action, MousepadWindow *window); -static void mousepad_window_action_auto_indent (GtkToggleAction *action, +static void mousepad_window_action_line_ending (GtkRadioAction *action, + GtkRadioAction *current, MousepadWindow *window); static void mousepad_window_action_tab_size (GtkToggleAction *action, MousepadWindow *window); -static void mousepad_window_action_insert_spaces (GtkToggleAction *action, +static void mousepad_window_action_word_wrap (GtkToggleAction *action, MousepadWindow *window); -static void mousepad_window_action_line_ending (GtkRadioAction *action, - GtkRadioAction *current, +static void mousepad_window_action_write_bom (GtkToggleAction *action, MousepadWindow *window); -static void mousepad_window_action_language (GtkToggleAction *action, +static void mousepad_window_action_insert_spaces (GtkToggleAction *action, MousepadWindow *window); static void mousepad_window_action_prev_tab (GtkAction *action, MousepadWindow *window); @@ -4373,65 +4373,6 @@ mousepad_window_action_select_font (GtkAction *action, static void -mousepad_window_action_statusbar_overwrite (MousepadWindow *window, - gboolean overwrite) -{ - mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); - mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); - - /* set the new overwrite mode */ - mousepad_document_set_overwrite (window->active, overwrite); -} - - - -static void -mousepad_window_action_statusbar (GtkToggleAction *action, - MousepadWindow *window) -{ - gboolean show_statusbar; - - mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); - - /* whether we show the statusbar */ - show_statusbar = gtk_toggle_action_get_active (action); - - /* check if we should drop the statusbar */ - if (!show_statusbar && window->statusbar != NULL) - { - /* destroy the statusbar */ - gtk_widget_destroy (window->statusbar); - window->statusbar = NULL; - } - else if (show_statusbar && window->statusbar == NULL) - { - /* setup a new statusbar */ - window->statusbar = mousepad_statusbar_new (); - gtk_box_pack_end (GTK_BOX (window->box), window->statusbar, FALSE, FALSE, 0); - gtk_widget_show (window->statusbar); - - /* overwrite toggle signal */ - g_signal_connect_swapped (G_OBJECT (window->statusbar), "enable-overwrite", - G_CALLBACK (mousepad_window_action_statusbar_overwrite), window); - - /* update the statusbar items */ - if (window->active) - { - /* debug check */ - mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); - - /* ask document to resend the cursor status signals */ - mousepad_document_send_signals (window->active); - } - } - - /* remember the setting */ - g_object_set (G_OBJECT (window->preferences), "window-statusbar-visible", show_statusbar, NULL); -} - - - -static void mousepad_window_action_color_scheme (GtkToggleAction *action, MousepadWindow *window) { @@ -4492,6 +4433,101 @@ mousepad_window_action_color_scheme (GtkToggleAction *action, static void +mousepad_window_action_line_numbers (GtkToggleAction *action, + MousepadWindow *window) +{ + gint page_num = 0; + gboolean active; + GtkWidget *page; + MousepadDocument *document; + + mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); + mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); + + /* leave when menu updates are locked */ + if (lock_menu_updates == 0) + { + /* get the current state */ + active = gtk_toggle_action_get_active (action); + + /* save as the last used line number setting */ + g_object_set (G_OBJECT (window->preferences), "view-line-numbers", active, NULL); + + /* apply line numbers setting to all open textviews */ + while ((page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), page_num))) + { + if (G_LIKELY (MOUSEPAD_IS_DOCUMENT (page))) + { + document = MOUSEPAD_DOCUMENT (page); + mousepad_view_set_line_numbers (document->textview, active); + } + page_num++; + } + } +} + + + +static void +mousepad_window_action_statusbar_overwrite (MousepadWindow *window, + gboolean overwrite) +{ + mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); + mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); + + /* set the new overwrite mode */ + mousepad_document_set_overwrite (window->active, overwrite); +} + + + +static void +mousepad_window_action_statusbar (GtkToggleAction *action, + MousepadWindow *window) +{ + gboolean show_statusbar; + + mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); + + /* whether we show the statusbar */ + show_statusbar = gtk_toggle_action_get_active (action); + + /* check if we should drop the statusbar */ + if (!show_statusbar && window->statusbar != NULL) + { + /* destroy the statusbar */ + gtk_widget_destroy (window->statusbar); + window->statusbar = NULL; + } + else if (show_statusbar && window->statusbar == NULL) + { + /* setup a new statusbar */ + window->statusbar = mousepad_statusbar_new (); + gtk_box_pack_end (GTK_BOX (window->box), window->statusbar, FALSE, FALSE, 0); + gtk_widget_show (window->statusbar); + + /* overwrite toggle signal */ + g_signal_connect_swapped (G_OBJECT (window->statusbar), "enable-overwrite", + G_CALLBACK (mousepad_window_action_statusbar_overwrite), window); + + /* update the statusbar items */ + if (window->active) + { + /* debug check */ + mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); + + /* ask document to resend the cursor status signals */ + mousepad_document_send_signals (window->active); + } + } + + /* remember the setting */ + g_object_set (G_OBJECT (window->preferences), "window-statusbar-visible", show_statusbar, NULL); +} + + + +static void mousepad_window_action_lowercase (GtkAction *action, MousepadWindow *window) { @@ -4661,8 +4697,8 @@ mousepad_window_action_decrease_indent (GtkAction *action, static void -mousepad_window_action_line_numbers (GtkToggleAction *action, - MousepadWindow *window) +mousepad_window_action_auto_indent (GtkToggleAction *action, + MousepadWindow *window) { gboolean active; @@ -4675,86 +4711,75 @@ mousepad_window_action_line_numbers (GtkToggleAction *action, /* get the current state */ active = gtk_toggle_action_get_active (action); - /* save as the last used line number setting */ - g_object_set (G_OBJECT (window->preferences), "view-line-numbers", active, NULL); + /* save as the last auto indent mode */ + g_object_set (G_OBJECT (window->preferences), "view-auto-indent", active, NULL); /* update the active document */ - mousepad_view_set_line_numbers (window->active->textview, active); + mousepad_view_set_auto_indent (window->active->textview, active); } } static void -mousepad_window_action_word_wrap (GtkToggleAction *action, - MousepadWindow *window) +mousepad_window_action_language (GtkToggleAction *action, + MousepadWindow *window) { - gboolean active; + guint lang_hash; + const gchar *const *lang_id; + GtkSourceLanguage *language; + GtkSourceLanguageManager *manager; + GtkSourceBuffer *buffer; - mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); - mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); + lang_hash = (guint) gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action)); + buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->active->textview))); - /* leave when menu updates are locked */ - if (lock_menu_updates == 0) + if (lang_hash == g_str_hash ("none")) { - /* get the current state */ - active = gtk_toggle_action_get_active (action); - - /* store this as the last used wrap mode */ - g_object_set (G_OBJECT (window->preferences), "view-word-wrap", active, NULL); - - /* set the wrapping mode of the current document */ - mousepad_document_set_word_wrap (window->active, active); + gtk_source_buffer_set_language (buffer, NULL); + return; } -} - + manager = gtk_source_language_manager_get_default (); + lang_id = gtk_source_language_manager_get_language_ids (manager); -static void -mousepad_window_action_write_bom (GtkToggleAction *action, - MousepadWindow *window) -{ - gboolean active; - - mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); - mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); - - /* leave when menu updates are locked */ - if (lock_menu_updates == 0) + while (*lang_id) { - /* get the current state */ - active = gtk_toggle_action_get_active (action); - - /* set new value */ - mousepad_file_set_write_bom (window->active->file, active); - - /* make buffer as modified to show the user the change is not saved */ - gtk_text_buffer_set_modified (window->active->buffer, TRUE); + if (g_str_hash (*lang_id) == lang_hash) + { + language = gtk_source_language_manager_get_language (manager, *lang_id); + gtk_source_buffer_set_language (buffer, language); + break; + } + lang_id++; } } static void -mousepad_window_action_auto_indent (GtkToggleAction *action, - MousepadWindow *window) +mousepad_window_action_line_ending (GtkRadioAction *action, + GtkRadioAction *current, + MousepadWindow *window) { - gboolean active; + MousepadLineEnding eol; mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); + mousepad_return_if_fail (MOUSEPAD_IS_FILE (window->active->file)); + mousepad_return_if_fail (GTK_IS_TEXT_BUFFER (window->active->buffer)); /* leave when menu updates are locked */ if (lock_menu_updates == 0) { - /* get the current state */ - active = gtk_toggle_action_get_active (action); + /* get selected line ending */ + eol = gtk_radio_action_get_current_value (current); - /* save as the last auto indent mode */ - g_object_set (G_OBJECT (window->preferences), "view-auto-indent", active, NULL); + /* set the new line ending on the file */ + mousepad_file_set_line_ending (window->active->file, eol); - /* update the active document */ - mousepad_view_set_auto_indent (window->active->textview, active); + /* make buffer as modified to show the user the change is not saved */ + gtk_text_buffer_set_modified (window->active->buffer, TRUE); } } @@ -4800,10 +4825,10 @@ mousepad_window_action_tab_size (GtkToggleAction *action, static void -mousepad_window_action_insert_spaces (GtkToggleAction *action, - MousepadWindow *window) +mousepad_window_action_word_wrap (GtkToggleAction *action, + MousepadWindow *window) { - gboolean insert_spaces; + gboolean active; mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); @@ -4812,38 +4837,35 @@ mousepad_window_action_insert_spaces (GtkToggleAction *action, if (lock_menu_updates == 0) { /* get the current state */ - insert_spaces = gtk_toggle_action_get_active (action); + active = gtk_toggle_action_get_active (action); - /* save as the last auto indent mode */ - g_object_set (G_OBJECT (window->preferences), "view-insert-spaces", insert_spaces, NULL); + /* store this as the last used wrap mode */ + g_object_set (G_OBJECT (window->preferences), "view-word-wrap", active, NULL); - /* update the active document */ - mousepad_view_set_insert_spaces (window->active->textview, insert_spaces); + /* set the wrapping mode of the current document */ + mousepad_document_set_word_wrap (window->active, active); } } static void -mousepad_window_action_line_ending (GtkRadioAction *action, - GtkRadioAction *current, - MousepadWindow *window) +mousepad_window_action_write_bom (GtkToggleAction *action, + MousepadWindow *window) { - MousepadLineEnding eol; + gboolean active; mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); - mousepad_return_if_fail (MOUSEPAD_IS_FILE (window->active->file)); - mousepad_return_if_fail (GTK_IS_TEXT_BUFFER (window->active->buffer)); /* leave when menu updates are locked */ if (lock_menu_updates == 0) { - /* get selected line ending */ - eol = gtk_radio_action_get_current_value (current); + /* get the current state */ + active = gtk_toggle_action_get_active (action); - /* set the new line ending on the file */ - mousepad_file_set_line_ending (window->active->file, eol); + /* set new value */ + mousepad_file_set_write_bom (window->active->file, active); /* make buffer as modified to show the user the change is not saved */ gtk_text_buffer_set_modified (window->active->buffer, TRUE); @@ -4853,36 +4875,25 @@ mousepad_window_action_line_ending (GtkRadioAction *action, static void -mousepad_window_action_language (GtkToggleAction *action, - MousepadWindow *window) +mousepad_window_action_insert_spaces (GtkToggleAction *action, + MousepadWindow *window) { - guint lang_hash; - const gchar *const *lang_id; - GtkSourceLanguage *language; - GtkSourceLanguageManager *manager; - GtkSourceBuffer *buffer; + gboolean insert_spaces; - lang_hash = (guint) gtk_radio_action_get_current_value (GTK_RADIO_ACTION (action)); - buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (window->active->textview))); + mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window)); + mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active)); - if (lang_hash == g_str_hash ("none")) + /* leave when menu updates are locked */ + if (lock_menu_updates == 0) { - gtk_source_buffer_set_language (buffer, NULL); - return; - } + /* get the current state */ + insert_spaces = gtk_toggle_action_get_active (action); - manager = gtk_source_language_manager_get_default (); - lang_id = gtk_source_language_manager_get_language_ids (manager); + /* save as the last auto indent mode */ + g_object_set (G_OBJECT (window->preferences), "view-insert-spaces", insert_spaces, NULL); - while (*lang_id) - { - if (g_str_hash (*lang_id) == lang_hash) - { - language = gtk_source_language_manager_get_language (manager, *lang_id); - gtk_source_buffer_set_language (buffer, language); - break; - } - lang_id++; + /* update the active document */ + mousepad_view_set_insert_spaces (window->active->textview, insert_spaces); } } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits