diff options
author | Stefano Karapetsas <[email protected]> | 2013-12-31 08:19:27 -0800 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2013-12-31 08:19:27 -0800 |
commit | dfc74c8749852e4054d3c784f9adbec3de310a79 (patch) | |
tree | 6d812f8cc448394352e1a509475d6f022e3d2919 | |
parent | b7a57e21e92add2087d0b6ee5f4d93e2b3b468cd (diff) | |
parent | 92b8ddf6a4b42d818b5ba2095e2d8f084f777170 (diff) | |
download | pluma-dfc74c8749852e4054d3c784f9adbec3de310a79.tar.bz2 pluma-dfc74c8749852e4054d3c784f9adbec3de310a79.tar.xz |
Merge pull request #51 from infirit/1.6
Cherrypick usefull commits from master
-rw-r--r-- | README | 19 | ||||
-rw-r--r-- | configure.ac | 6 | ||||
-rw-r--r-- | help/C/pluma.xml | 16 | ||||
-rw-r--r-- | plugins/checkupdate/Makefile.am | 6 | ||||
-rw-r--r-- | plugins/filebrowser/pluma-file-browser-plugin.c | 1 | ||||
-rw-r--r-- | plugins/filebrowser/pluma-file-browser-store.c | 2 | ||||
-rw-r--r-- | plugins/filebrowser/pluma-file-browser-widget.c | 2 | ||||
-rwxr-xr-x | pluma/dialogs/pluma-search-dialog.c | 20 | ||||
-rwxr-xr-x | pluma/dialogs/pluma-search-dialog.h | 5 | ||||
-rwxr-xr-x | pluma/dialogs/pluma-search-dialog.ui | 18 | ||||
-rw-r--r-- | pluma/pluma-commands-search.c | 99 | ||||
-rw-r--r-- | pluma/pluma-document.h | 7 | ||||
-rw-r--r-- | pluma/pluma-tab.c | 18 | ||||
-rw-r--r-- | pluma/pluma-view.c | 18 | ||||
-rw-r--r-- | po/POTFILES.in | 3 |
15 files changed, 205 insertions, 35 deletions
@@ -66,19 +66,28 @@ enable python plugins support. Simple install procedure: - % gzip -cd mate-file-manager.tar.gz | tar xvf - # unpack the sources - % cd mate-file-manager # change to the toplevel directory - % ./autogen.sh # run the `configure' script + % gzip -cd mate-text-editor.tar.gz | tar xvf - # unpack the sources + % cd mate-text-editor # change to the toplevel directory + % ./autogen.sh # run the `configure' script % make # build pluma [ Become root if necessary ] % make install # install pluma +Running Tests +================== +Pluma has several test that can be run after compilation. Run them by issueing "make check". However there are a couple of requirements that need to be satified before they will pass. + +* You need the gsettings schemas installed for some tests to be able to run. +* You need to mount sftp://localhost/ with gvfs-mount for one test to pass. + +If test fail and you have setup the above correctly then please file a bug report as described below. + How to report bugs ================== Bugs should be reported to the MATE bug tracking system. -(http://bugzilla.gnome.org, product pluma). You will need to create an +(https://github.com/mate-desktop/pluma/issues). You will need to create an account for yourself. You can also report bugs using the MATE program bug-buddy. @@ -108,7 +117,7 @@ In the bug report please include: Patches ======= -Patches should also be submitted to bugzilla.gnome.org. If the patch +Patches should also be submitted to github.com/mate-desktop/pluma. If the patch fixes an existing bug, add the patch as an attachment to that bug report. diff --git a/configure.ac b/configure.ac index e9cecfad..c236de83 100644 --- a/configure.ac +++ b/configure.ac @@ -370,9 +370,9 @@ if test "x$have_python" != "xno"; then PYTHON_EXTRA_LIBS= else PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'` - PYTHON_LIB_LOC="-L$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config" + PYTHON_LIB_LOC="-L$libdir/python$PYTHON_VERSION/config" PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION" - PYTHON_MAKEFILE="$PY_EXEC_PREFIX/lib/python$PYTHON_VERSION/config/Makefile" + PYTHON_MAKEFILE="$libdir/python$PYTHON_VERSION/config/Makefile" PYTHON_BASEMODLIBS=`sed -n -e 's/^BASEMODLIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_OTHER_LIBS=`sed -n -e 's/^LIBS=\(.*\)/\1/p' $PYTHON_MAKEFILE` PYTHON_EXTRA_LIBS="$PYTHON_BASEMODLIBS $PYTHON_OTHER_LIBS" @@ -588,7 +588,7 @@ it from: http://pub.mate-desktop.org/release/1.${stable_version}/ -Or checkout the mate-${stable_version} branch of the pluma module from: +Or checkout the 1.${stable_version} branch of the pluma module from: git://github.com/mate-desktop/mate-text-editor.git diff --git a/help/C/pluma.xml b/help/C/pluma.xml index be9e063b..8cf61bb3 100644 --- a/help/C/pluma.xml +++ b/help/C/pluma.xml @@ -124,7 +124,7 @@ <revnumber>pluma Manual V2.0</revnumber> <date>March 2002</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -132,7 +132,7 @@ <revnumber>pluma Manual V2.1</revnumber> <date>June 2002</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -140,7 +140,7 @@ <revnumber>pluma Manual V2.2</revnumber> <date>August 2002</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -148,7 +148,7 @@ <revnumber>pluma Manual V2.3</revnumber> <date>September 2002</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -156,7 +156,7 @@ <revnumber>pluma Manual V2.4</revnumber> <date>January 2003</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -164,7 +164,7 @@ <revnumber>pluma Manual V2.5</revnumber> <date>March 2003</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -172,7 +172,7 @@ <revnumber>pluma Manual V2.6</revnumber> <date>September 2003</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> @@ -180,7 +180,7 @@ <revnumber>pluma Manual V2.7</revnumber> <date>March 2004</date> <revdescription> - <para role="author">Sun MATE Documentation Team</para> + <para role="author">Sun GNOME Documentation Team</para> <para role="publisher">MATE Documentation Project</para> </revdescription> </revision> diff --git a/plugins/checkupdate/Makefile.am b/plugins/checkupdate/Makefile.am index fe565398..38fd5bbc 100644 --- a/plugins/checkupdate/Makefile.am +++ b/plugins/checkupdate/Makefile.am @@ -31,10 +31,10 @@ gsettings_SCHEMAS = org.mate.pluma.plugins.checkupdate.gschema.xml %.gschema.xml.in: %.gschema.xml.in.in Makefile $(AM_V_GEN) $(SED) -e 's^\@GETTEXT_PACKAGE\@^$(GETTEXT_PACKAGE)^g' < $< > $@ -EXTRA_DIST = $(plugin_in_files) $(gsettings_SCHEMAS_in_in) +EXTRA_DIST = $(plugin_in_files) $(gsettings_SCHEMAS).in.in -CLEANFILES = $(plugin_DATA) $(gsettings_SCHEMAS_in) $(gsettings_SCHEMAS) +CLEANFILES = $(plugin_DATA) $(gsettings_SCHEMAS).in $(gsettings_SCHEMAS) -DISTCLEANFILES = $(plugin_DATA) $(gsettings_SCHEMAS_in) $(gsettings_SCHEMAS) +DISTCLEANFILES = $(plugin_DATA) $(gsettings_SCHEMAS).in $(gsettings_SCHEMAS) -include $(top_srcdir)/git.mk diff --git a/plugins/filebrowser/pluma-file-browser-plugin.c b/plugins/filebrowser/pluma-file-browser-plugin.c index bce64c69..69b1e185 100644 --- a/plugins/filebrowser/pluma-file-browser-plugin.c +++ b/plugins/filebrowser/pluma-file-browser-plugin.c @@ -306,6 +306,7 @@ on_confirm_trash_changed (GSettings *settings, PlumaFileBrowserPluginData *data; gboolean enable = FALSE; + data = (PlumaFileBrowserPluginData *)(user_data); enable = g_settings_get_boolean (settings, key); data->confirm_trash = enable; diff --git a/plugins/filebrowser/pluma-file-browser-store.c b/plugins/filebrowser/pluma-file-browser-store.c index 6f611105..ba45feff 100644 --- a/plugins/filebrowser/pluma-file-browser-store.c +++ b/plugins/filebrowser/pluma-file-browser-store.c @@ -2480,6 +2480,8 @@ set_virtual_root_from_node (PlumaFileBrowserStore * model, GSList *copy; GtkTreePath *empty = NULL; + g_assert (node != NULL); + prev = node; next = prev->parent; diff --git a/plugins/filebrowser/pluma-file-browser-widget.c b/plugins/filebrowser/pluma-file-browser-widget.c index f2c54fe9..22c3c3b0 100644 --- a/plugins/filebrowser/pluma-file-browser-widget.c +++ b/plugins/filebrowser/pluma-file-browser-widget.c @@ -1640,6 +1640,8 @@ jump_to_location (PlumaFileBrowserWidget * obj, GList * item, obj->priv->changing_location = TRUE; + g_assert (obj->priv->current_location != NULL); + loc = (Location *) (obj->priv->current_location->data); /* Set the new root + virtual root */ diff --git a/pluma/dialogs/pluma-search-dialog.c b/pluma/dialogs/pluma-search-dialog.c index 7db2a2bc..7e199225 100755 --- a/pluma/dialogs/pluma-search-dialog.c +++ b/pluma/dialogs/pluma-search-dialog.c @@ -70,6 +70,7 @@ struct _PlumaSearchDialogPrivate GtkWidget *entire_word_checkbutton; GtkWidget *backwards_checkbutton; GtkWidget *wrap_around_checkbutton; + GtkWidget *parse_escapes_checkbutton; GtkWidget *find_button; GtkWidget *replace_button; GtkWidget *replace_all_button; @@ -357,6 +358,7 @@ pluma_search_dialog_init (PlumaSearchDialog *dlg) "entire_word_checkbutton", &dlg->priv->entire_word_checkbutton, "search_backwards_checkbutton", &dlg->priv->backwards_checkbutton, "wrap_around_checkbutton", &dlg->priv->wrap_around_checkbutton, + "parse_escapes_checkbutton", &dlg->priv->parse_escapes_checkbutton, NULL); g_free (file); @@ -632,3 +634,21 @@ pluma_search_dialog_get_wrap_around (PlumaSearchDialog *dialog) return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->wrap_around_checkbutton)); } + +void +pluma_search_dialog_set_parse_escapes (PlumaSearchDialog *dialog, + gboolean parse_escapes) +{ + g_return_if_fail (PLUMA_IS_SEARCH_DIALOG (dialog)); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->parse_escapes_checkbutton), + parse_escapes); +} + +gboolean +pluma_search_dialog_get_parse_escapes (PlumaSearchDialog *dialog) +{ + g_return_val_if_fail (PLUMA_IS_SEARCH_DIALOG (dialog), FALSE); + + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->parse_escapes_checkbutton)); +} diff --git a/pluma/dialogs/pluma-search-dialog.h b/pluma/dialogs/pluma-search-dialog.h index 967f6a9f..fb92efba 100755 --- a/pluma/dialogs/pluma-search-dialog.h +++ b/pluma/dialogs/pluma-search-dialog.h @@ -123,6 +123,11 @@ void pluma_search_dialog_set_wrap_around (PlumaSearchDialog *dialog, gboolean wrap_around); gboolean pluma_search_dialog_get_wrap_around (PlumaSearchDialog *dialog); + +void pluma_search_dialog_set_parse_escapes (PlumaSearchDialog *dialog, + gboolean parse_escapes); +gboolean pluma_search_dialog_get_parse_escapes (PlumaSearchDialog *dialog); + G_END_DECLS #endif /* __PLUMA_SEARCH_DIALOG_H__ */ diff --git a/pluma/dialogs/pluma-search-dialog.ui b/pluma/dialogs/pluma-search-dialog.ui index 35b6c390..4f137b19 100755 --- a/pluma/dialogs/pluma-search-dialog.ui +++ b/pluma/dialogs/pluma-search-dialog.ui @@ -229,6 +229,24 @@ <property name="fill">False</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="parse_escapes_checkbutton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">_Parse escape sequences (e.g. \n)</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">True</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> </object> <packing> <property name="padding">0</property> diff --git a/pluma/pluma-commands-search.c b/pluma/pluma-commands-search.c index ee1b5129..d6a75ef2 100644 --- a/pluma/pluma-commands-search.c +++ b/pluma/pluma-commands-search.c @@ -229,6 +229,7 @@ do_find (PlumaSearchDialog *dialog, gboolean entire_word; gboolean wrap_around; gboolean search_backwards; + gboolean parse_escapes; guint flags = 0; guint old_flags = 0; gboolean found; @@ -241,12 +242,17 @@ do_find (PlumaSearchDialog *dialog, doc = PLUMA_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (active_view))); - entry_text = pluma_search_dialog_get_search_text (dialog); - match_case = pluma_search_dialog_get_match_case (dialog); entire_word = pluma_search_dialog_get_entire_word (dialog); search_backwards = pluma_search_dialog_get_backwards (dialog); wrap_around = pluma_search_dialog_get_wrap_around (dialog); + parse_escapes = pluma_search_dialog_get_parse_escapes (dialog); + + if (!parse_escapes) { + entry_text = pluma_utils_escape_search_text (pluma_search_dialog_get_search_text (dialog)); + } else { + entry_text = pluma_search_dialog_get_search_text (dialog); + } PLUMA_SEARCH_SET_CASE_SENSITIVE (flags, match_case); PLUMA_SEARCH_SET_ENTIRE_WORD (flags, entire_word); @@ -268,8 +274,13 @@ do_find (PlumaSearchDialog *dialog, if (found) text_found (window, 0); - else - text_not_found (window, entry_text); + else { + if (!parse_escapes) { + text_not_found (window, pluma_utils_unescape_search_text (entry_text)); + } else { + text_not_found (window, entry_text); + } + } gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), PLUMA_SEARCH_DIALOG_REPLACE_RESPONSE, @@ -330,17 +341,27 @@ do_replace (PlumaSearchDialog *dialog, gchar *unescaped_replace_text; gchar *selected_text = NULL; gboolean match_case; + gboolean parse_escapes; doc = pluma_window_get_active_document (window); if (doc == NULL) return; - search_entry_text = pluma_search_dialog_get_search_text (dialog); + parse_escapes = pluma_search_dialog_get_parse_escapes (dialog); + if (!parse_escapes) { + search_entry_text = pluma_utils_escape_search_text (pluma_search_dialog_get_search_text (dialog)); + } else { + search_entry_text = pluma_search_dialog_get_search_text (dialog); + } g_return_if_fail ((search_entry_text) != NULL); g_return_if_fail ((*search_entry_text) != '\0'); /* replace text may be "", we just delete */ - replace_entry_text = pluma_search_dialog_get_replace_text (dialog); + if (!parse_escapes) { + replace_entry_text = pluma_utils_escape_search_text (pluma_search_dialog_get_replace_text (dialog)); + } else { + replace_entry_text = pluma_search_dialog_get_replace_text (dialog); + } g_return_if_fail ((replace_entry_text) != NULL); unescaped_search_text = pluma_utils_unescape_search_text (search_entry_text); @@ -385,6 +406,7 @@ do_replace_all (PlumaSearchDialog *dialog, const gchar *replace_entry_text; gboolean match_case; gboolean entire_word; + gboolean parse_escapes; guint flags = 0; gint count; @@ -394,12 +416,21 @@ do_replace_all (PlumaSearchDialog *dialog, doc = PLUMA_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (active_view))); - search_entry_text = pluma_search_dialog_get_search_text (dialog); + parse_escapes = pluma_search_dialog_get_parse_escapes (dialog); + if (!parse_escapes) { + search_entry_text = pluma_utils_escape_search_text(pluma_search_dialog_get_search_text (dialog)); + } else { + search_entry_text = pluma_search_dialog_get_search_text (dialog); + } g_return_if_fail ((search_entry_text) != NULL); g_return_if_fail ((*search_entry_text) != '\0'); /* replace text may be "", we just delete all occurrencies */ - replace_entry_text = pluma_search_dialog_get_replace_text (dialog); + if (!parse_escapes) { + replace_entry_text = pluma_utils_escape_search_text (pluma_search_dialog_get_replace_text (dialog)); + } else { + replace_entry_text = pluma_search_dialog_get_replace_text (dialog); + } g_return_if_fail ((replace_entry_text) != NULL); match_case = pluma_search_dialog_get_match_case (dialog); @@ -419,7 +450,11 @@ do_replace_all (PlumaSearchDialog *dialog, } else { - text_not_found (window, search_entry_text); + if (!parse_escapes) { + text_not_found (window, pluma_utils_unescape_search_text (search_entry_text)); + } else { + text_not_found (window, search_entry_text); + } } gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), @@ -511,7 +546,9 @@ _pluma_cmd_search_find (GtkAction *action, GtkWidget *search_dialog; PlumaDocument *doc; gboolean selection_exists; + gboolean parse_escapes; gchar *find_text = NULL; + const gchar *search_text = NULL; gint sel_len; pluma_debug (DEBUG_COMMANDS); @@ -543,8 +580,25 @@ _pluma_cmd_search_find (GtkAction *action, if (selection_exists && find_text != NULL && sel_len < 80) { - pluma_search_dialog_set_search_text (PLUMA_SEARCH_DIALOG (search_dialog), - find_text); + /* + * Special case: if the currently selected text + * is the same as the unescaped search text and + * escape sequence parsing is activated, use the + * same old search text. (Without this, if you e.g. + * search for '\n' in escaped mode and then open + * the search dialog again, you'll get an unprintable + * single-character literal '\n' in the "search for" + * box). + */ + parse_escapes = pluma_search_dialog_get_parse_escapes (PLUMA_SEARCH_DIALOG (search_dialog)); + search_text = pluma_search_dialog_get_search_text (PLUMA_SEARCH_DIALOG (search_dialog)); + if (!(search_text != NULL + && !strcmp(pluma_utils_unescape_search_text(search_text), find_text) + && parse_escapes)) { + /* General case */ + pluma_search_dialog_set_search_text (PLUMA_SEARCH_DIALOG (search_dialog), + find_text); + } g_free (find_text); } else @@ -566,7 +620,9 @@ _pluma_cmd_search_replace (GtkAction *action, GtkWidget *replace_dialog; PlumaDocument *doc; gboolean selection_exists; + gboolean parse_escapes; gchar *find_text = NULL; + const gchar *search_text = NULL; gint sel_len; pluma_debug (DEBUG_COMMANDS); @@ -598,8 +654,25 @@ _pluma_cmd_search_replace (GtkAction *action, if (selection_exists && find_text != NULL && sel_len < 80) { - pluma_search_dialog_set_search_text (PLUMA_SEARCH_DIALOG (replace_dialog), - find_text); + /* + * Special case: if the currently selected text + * is the same as the unescaped search text and + * escape sequence parsing is activated, use the + * same old search text. (Without this, if you e.g. + * search for '\n' in escaped mode and then open + * the search dialog again, you'll get an unprintable + * single-character literal '\n' in the "search for" + * box). + */ + parse_escapes = pluma_search_dialog_get_parse_escapes (PLUMA_SEARCH_DIALOG (replace_dialog)); + search_text = pluma_search_dialog_get_search_text (PLUMA_SEARCH_DIALOG (replace_dialog)); + if (!(search_text != NULL + && !strcmp(pluma_utils_unescape_search_text(search_text), find_text) + && parse_escapes)) { + /* General case */ + pluma_search_dialog_set_search_text (PLUMA_SEARCH_DIALOG (replace_dialog), + find_text); + } g_free (find_text); } else diff --git a/pluma/pluma-document.h b/pluma/pluma-document.h index a8cf5020..099aaae1 100644 --- a/pluma/pluma-document.h +++ b/pluma/pluma-document.h @@ -78,7 +78,8 @@ typedef enum { PLUMA_SEARCH_DONT_SET_FLAGS = 1 << 0, PLUMA_SEARCH_ENTIRE_WORD = 1 << 1, - PLUMA_SEARCH_CASE_SENSITIVE = 1 << 2 + PLUMA_SEARCH_CASE_SENSITIVE = 1 << 2, + PLUMA_SEARCH_PARSE_ESCAPES = 1 << 3 } PlumaSearchFlags; @@ -322,6 +323,10 @@ void _pluma_document_search_region (PlumaDocument *doc, #define PLUMA_SEARCH_SET_CASE_SENSITIVE(sflags,state) ((state == TRUE) ? \ (sflags |= PLUMA_SEARCH_CASE_SENSITIVE) : (sflags &= ~PLUMA_SEARCH_CASE_SENSITIVE)) +#define PLUMA_SEARCH_IS_PARSE_ESCAPES(sflags) ((sflags & PLUMA_SEARCH_PARSE_ESCAPES) != 0) +#define PLUMA_SEARCH_SET_PARSE_ESCAPES(sflags,state) ((state == TRUE) ? \ +(sflags |= PLUMA_SEARCH_PARSE_ESCAPES) : (sflags &= ~PLUMA_SEARCH_PARSE_ESCAPES)) + typedef GMountOperation *(*PlumaMountOperationFactory)(PlumaDocument *doc, gpointer userdata); diff --git a/pluma/pluma-tab.c b/pluma/pluma-tab.c index e795b83a..46d9681b 100644 --- a/pluma/pluma-tab.c +++ b/pluma/pluma-tab.c @@ -2238,6 +2238,8 @@ get_print_settings (PlumaTab *tab) { gpointer data; PlumaDocument *doc; + GtkPrintSettings *settings; + gchar *uri, *name; doc = pluma_tab_get_document (tab); @@ -2246,12 +2248,24 @@ get_print_settings (PlumaTab *tab) if (data == NULL) { - return _pluma_app_get_default_print_settings (pluma_app_get_default()); + settings = _pluma_app_get_default_print_settings (pluma_app_get_default()); } else { - return gtk_print_settings_copy (GTK_PRINT_SETTINGS (data)); + settings = gtk_print_settings_copy (GTK_PRINT_SETTINGS (data)); } + + name = pluma_document_get_short_name_for_display (doc); + uri = g_strconcat ("file://", + g_get_user_special_dir (G_USER_DIRECTORY_DOCUMENTS), + "/", name, ".pdf", NULL); + + gtk_print_settings_set (settings, GTK_PRINT_SETTINGS_OUTPUT_URI, uri); + + g_free (uri); + g_free (name); + + return settings; } /* FIXME: show the message area only if the operation will be "long" */ diff --git a/pluma/pluma-view.c b/pluma/pluma-view.c index cbd2299c..63191279 100644 --- a/pluma/pluma-view.c +++ b/pluma/pluma-view.c @@ -1165,6 +1165,14 @@ match_case_menu_item_toggled (GtkCheckMenuItem *checkmenuitem, gtk_check_menu_item_get_active (checkmenuitem)); } +static void +parse_escapes_menu_item_toggled (GtkCheckMenuItem *checkmenuitem, + PlumaView *view) +{ + PLUMA_SEARCH_SET_PARSE_ESCAPES (view->priv->search_flags, + gtk_check_menu_item_get_active (checkmenuitem)); +} + static gboolean real_search_enable_popdown (gpointer data) { @@ -1243,6 +1251,16 @@ search_entry_populate_popup (GtkEntry *entry, gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), PLUMA_SEARCH_IS_CASE_SENSITIVE (view->priv->search_flags)); gtk_widget_show (menu_item); + + /* create "Parse escapes" menu item. */ + menu_item = gtk_check_menu_item_new_with_mnemonic (_("_Parse escape sequences (e.g. \n)")); + g_signal_connect (G_OBJECT (menu_item), "toggled", + G_CALLBACK (parse_escapes_menu_item_toggled), + view); + gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menu_item); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), + PLUMA_SEARCH_IS_PARSE_ESCAPES (view->priv->search_flags)); + gtk_widget_show (menu_item); } static void diff --git a/po/POTFILES.in b/po/POTFILES.in index b9cb1c07..1e50b4b4 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -48,6 +48,7 @@ plugins/changecase/changecase.pluma-plugin.desktop.in plugins/changecase/pluma-changecase-plugin.c plugins/checkupdate/checkupdate.pluma-plugin.desktop.in plugins/checkupdate/pluma-check-update-plugin.c +plugins/checkupdate/org.mate.pluma.plugins.checkupdate.gschema.xml.in.in plugins/docinfo/docinfo.pluma-plugin.desktop.in [type: gettext/glade]plugins/docinfo/docinfo.ui plugins/docinfo/pluma-docinfo-plugin.c @@ -63,6 +64,8 @@ plugins/externaltools/data/build.desktop.in plugins/externaltools/data/open-terminal-here.desktop.in plugins/externaltools/data/remove-trailing-spaces.desktop.in plugins/externaltools/data/run-command.desktop.in +plugins/externaltools/data/search-recursive.desktop.in +plugins/externaltools/data/switch-c.desktop.in plugins/filebrowser/filebrowser.pluma-plugin.desktop.in plugins/filebrowser/org.mate.pluma.plugins.filebrowser.gschema.xml.in.in plugins/filebrowser/pluma-file-bookmarks-store.c |