summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac1
-rw-r--r--help/C/index.docbook314
-rw-r--r--plugins/Makefile.am2
-rw-r--r--plugins/changecase/Makefile.am33
-rw-r--r--plugins/changecase/README.md3
-rw-r--r--plugins/changecase/changecase.plugin.desktop.in8
-rw-r--r--plugins/changecase/pluma-changecase-plugin.c470
-rw-r--r--plugins/changecase/pluma-changecase-plugin.h79
-rw-r--r--pluma/pluma-commands-edit.c64
-rw-r--r--pluma/pluma-commands.h8
-rw-r--r--pluma/pluma-ui.h9
-rw-r--r--pluma/pluma-ui.xml26
-rw-r--r--pluma/pluma-view.c97
-rw-r--r--pluma/pluma-view.h6
-rw-r--r--po/POTFILES.in2
15 files changed, 333 insertions, 789 deletions
diff --git a/configure.ac b/configure.ac
index 0490de3a..94760c6e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -243,7 +243,6 @@ pluma/Makefile
help/Makefile
pixmaps/Makefile
plugins/Makefile
-plugins/changecase/Makefile
plugins/docinfo/Makefile
plugins/externaltools/data/Makefile
plugins/externaltools/Makefile
diff --git a/help/C/index.docbook b/help/C/index.docbook
index c363df9f..5961f617 100644
--- a/help/C/index.docbook
+++ b/help/C/index.docbook
@@ -21,21 +21,21 @@
<copyright its:translate="no">
<year>2015-2020</year>
- <holder>MATE Documentation Project</holder>
+ <holder>MATE Documentation Project</holder>
</copyright>
<copyright its:translate="no">
<year>2007</year>
- <holder>GNOME Documentation Project</holder>
+ <holder>GNOME Documentation Project</holder>
</copyright>
<copyright its:translate="no">
<year>2002</year>
<year>2003</year>
<year>2004</year>
- <holder>Sun Microsystems</holder>
+ <holder>Sun Microsystems</holder>
</copyright>
<copyright its:translate="no">
<year>2000</year>
- <holder>Eric Baudais</holder>
+ <holder>Eric Baudais</holder>
</copyright>
<publisher>
@@ -88,7 +88,7 @@
<affiliation>
<orgname its:translate="yes">GNOME Documentation Project</orgname>
</affiliation>
- <email>[email protected]</email>
+ <email>[email protected]</email>
</author>
<othercredit role="other">
<personname>
@@ -277,7 +277,7 @@
<imageobject>
<imagedata fileref="figures/pluma_window.png" format="PNG"/>
</imageobject>
- <textobject>
+ <textobject>
<phrase its:translate="yes">Shows pluma main window.</phrase>
</textobject>
</mediaobject>
@@ -286,25 +286,25 @@
<para>The <application>pluma</application> window contains the following elements:</para>
<variablelist>
- <varlistentry>
+ <varlistentry>
<term>Menubar</term>
<listitem>
<para>The menus on the menubar contain all the commands you need to work with files in <application>pluma</application>.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>Toolbar</term>
<listitem>
<para>The toolbar contains a subset of the commands that you can access from the menubar.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>Display area</term>
<listitem>
<para>The display area contains the text of the file that you are editing.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>Statusbar</term>
<listitem>
<para>The statusbar displays information about current <application>pluma</application> activity and contextual information about the menu items. The statusbar also displays the following information:</para>
@@ -318,14 +318,14 @@
</itemizedlist>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>Side Pane</term>
<listitem>
<para>The side pane displays a list of open documents, and other information depending on which plugins are enabled.</para>
<para>By default, the side pane is not shown. To show it, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Side Pane</guimenuitem> </menuchoice>.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>Bottom Pane</term>
<listitem>
<para>The bottom pane is used by programming tools such as the <application>Python Console</application> plugin to display output.</para>
@@ -472,13 +472,13 @@
<info>
<title>Finding Text</title>
</info>
-
+
<para>To search a file for a string of text, perform the following steps:</para>
<orderedlist inheritnum="ignore" continuation="restarts">
<listitem>
- <para>Choose <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Find</guimenuitem>
+ <para>Choose <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Find</guimenuitem>
</menuchoice> to display the <guilabel>Find</guilabel> dialog.</para>
</listitem>
<listitem>
@@ -488,25 +488,25 @@
<para>Click <guibutton>Find</guibutton> to search the file for the first occurrence of the string after your current cursor position. If <application>pluma</application> finds the string, the application selects first occurrence of the string. Other occurrences of the string are highlighted.</para>
</listitem>
<listitem>
- <para>To find the next occurrence of the string, click <guibutton>Find</guibutton> or choose <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Find Next</guimenuitem>
- </menuchoice>. To find the previous occurrence of the text, choose <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Find Previous</guimenuitem>
+ <para>To find the next occurrence of the string, click <guibutton>Find</guibutton> or choose <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Find Next</guimenuitem>
+ </menuchoice>. To find the previous occurrence of the text, choose <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Find Previous</guimenuitem>
</menuchoice>.</para>
</listitem>
</orderedlist>
- <para>After you have closed the <guilabel>Find</guilabel> dialog, you can still move the selection to other occurrences of the text by choosing <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Find Next</guimenuitem>
- </menuchoice> and <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Find Previous</guimenuitem>
+ <para>After you have closed the <guilabel>Find</guilabel> dialog, you can still move the selection to other occurrences of the text by choosing <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Find Next</guimenuitem>
+ </menuchoice> and <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Find Previous</guimenuitem>
</menuchoice>.</para>
- <para>To remove the highlighting from the text, choose <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Clear Highlight</guimenuitem>
+ <para>To remove the highlighting from the text, choose <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Clear Highlight</guimenuitem>
</menuchoice>.</para>
<para>Refer to the <link xlink:href="man:pcrepattern"> <citerefentry> <refentrytitle>pcrepattern</refentrytitle> <manvolnum>3</manvolnum> </citerefentry> </link> for more information about the syntax and the semantics of the regular expressions supported on <guilabel>Find</guilabel> dialog.</para>
</section>
@@ -515,12 +515,12 @@
<info>
<title>Incremental Search</title>
</info>
-
+
<para>Incremental search highlights matching text in the document as you type it letter by letter. (This is similar to the search feature in several web browsers.)</para>
- <para>To start an incremental search, choose <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Incremental Search</guimenuitem>
+ <para>To start an incremental search, choose <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Incremental Search</guimenuitem>
</menuchoice>. The search box appears at the top of the display area. </para>
<para>Begin typing, and text that matches will be highlighted in the document. The first instance after the cursor position is also selected.</para>
<para>To advance the selection to the next match while keeping the incremental search box open, press <keycombo>
@@ -544,9 +544,9 @@
<para>To search a file for a string, and replace the string with an alternative string, perform the following steps:</para>
<orderedlist inheritnum="ignore" continuation="restarts">
<listitem>
- <para>Choose <menuchoice>
- <guimenu>Search</guimenu>
- <guimenuitem>Replace</guimenuitem>
+ <para>Choose <menuchoice>
+ <guimenu>Search</guimenu>
+ <guimenuitem>Replace</guimenuitem>
</menuchoice> to display the <guilabel>Replace</guilabel> dialog.</para>
</listitem>
<listitem>
@@ -566,7 +566,7 @@
<info>
<title>Find and Replace Options</title>
</info>
-
+
<para>The <guilabel>Find</guilabel> dialog and the <guilabel>Replace</guilabel> dialog both have the following options:</para>
<itemizedlist>
<listitem>
@@ -589,7 +589,7 @@
<info>
<title>Special Characters</title>
</info>
-
+
<para>You can include the following escape sequences in the text to find or replace to represent special characters:</para>
<variablelist>
<varlistentry>
@@ -662,23 +662,23 @@
<title>General Tabbed Section</title>
</info>
<variablelist>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Print syntax highlighting</guilabel>
+ <guilabel>Print syntax highlighting</guilabel>
</term>
<listitem>
<para>Select this option to print syntax highlighting. For more information about syntax highlighting, see <xref linkend="pluma-set-highlightmode"/>.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Print page headers</guilabel>
+ <guilabel>Print page headers</guilabel>
</term>
<listitem>
<para>Select this option to include a header on each page that you print. You cannot configure the header. </para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
<guilabel>Line Numbers</guilabel>
</term>
@@ -687,9 +687,9 @@
<para>Use the <guilabel>Number every ... lines </guilabel> spin box to specify how often to print the line numbers, for example every 5 lines, every 10 lines, and so on.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Text Wrapping</guilabel>
+ <guilabel>Text Wrapping</guilabel>
</term>
<listitem>
<para>Select the <guilabel>Enable text wrapping</guilabel> option to wrap text onto the next line, at a character level, when you print a file. The application counts wrapped lines as one line for line numbering purposes.</para>
@@ -704,15 +704,15 @@
<title>Fonts</title>
</info>
<variablelist>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Body</guilabel>
+ <guilabel>Body</guilabel>
</term>
<listitem>
<para>Click on this button to select the font used to print the body text of a file.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
<guilabel>Line numbers</guilabel>
</term>
@@ -720,9 +720,9 @@
<para>Click on this button to select the font used to print line numbers.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Headers and footers</guilabel>
+ <guilabel>Headers and footers</guilabel>
</term>
<listitem>
<para>Click on this button to select the font to use to print the headers and footers in a file. </para>
@@ -757,9 +757,9 @@
<title>Job Tabbed Section</title>
</info>
<variablelist>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Print range</guilabel>
+ <guilabel>Print range</guilabel>
</term>
<listitem>
<para>Select one of the following options to determine how many pages to print:</para>
@@ -785,9 +785,9 @@
</itemizedlist>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Copies</guilabel>
+ <guilabel>Copies</guilabel>
</term>
<listitem>
<para>Use the <guilabel>Number of copies</guilabel> spin box to specify the number of copies of the file that you want to print.</para>
@@ -801,28 +801,28 @@
<info>
<title>Printer Tabbed Section</title>
</info>
-
+
<variablelist>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Printer</guilabel>
+ <guilabel>Printer</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select the printer to which you want to print the file.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Settings</guilabel>
+ <guilabel>Settings</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select the printer settings.</para>
<para>To configure the printer, click <guibutton>Configure</guibutton>. For example, you can enable or disable duplex printing, or schedule delayed printing, if this functionality is supported by the printer.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Location</guilabel>
+ <guilabel>Location</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select one of the following print destinations:</para>
@@ -867,25 +867,25 @@
</variablelist>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>State</guilabel>
+ <guilabel>State</guilabel>
</term>
<listitem>
<para>This functionality is not supported in this version of pluma.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Type</guilabel>
+ <guilabel>Type</guilabel>
</term>
<listitem>
<para>This functionality is not supported in this version of pluma.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Comment</guilabel>
+ <guilabel>Comment</guilabel>
</term>
<listitem>
<para>This functionality is not supported in this version of pluma.</para>
@@ -898,62 +898,62 @@
<info>
<title>Paper Tabbed Section</title>
</info>
-
+
<variablelist>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Paper size</guilabel>
+ <guilabel>Paper size</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select the size of the paper to which you want to print the file.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Width</guilabel>
+ <guilabel>Width</guilabel>
</term>
<listitem>
<para>Use this spin box to specify the width of the paper. Use the adjacent drop-down list to change the measurement unit.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Height</guilabel>
+ <guilabel>Height</guilabel>
</term>
<listitem>
<para>Use this spin box to specify the height of the paper.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Feed orientation</guilabel>
+ <guilabel>Feed orientation</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select the orientation of the paper in the printer.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Page orientation</guilabel>
+ <guilabel>Page orientation</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select the page orientation.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Layout</guilabel>
+ <guilabel>Layout</guilabel>
</term>
<listitem>
<para>Use this drop-down list to select the page layout. A preview of each layout that you select is displayed in the <guilabel>Preview</guilabel> area.</para>
</listitem>
</varlistentry>
- <varlistentry>
+ <varlistentry>
<term>
- <guilabel>Paper tray</guilabel>
+ <guilabel>Paper tray</guilabel>
</term>
<listitem>
- <para>Use this drop-down list to select the paper tray.</para>
+ <para>Use this drop-down list to select the paper tray.</para>
</listitem>
</varlistentry>
</variablelist>
@@ -972,7 +972,7 @@
<info>
<title>Syntax Highlighting</title>
</info>
-
+
<para>Syntax highlighting makes source code easier to read by showing different parts of the text in different colors.</para>
<para><application>pluma</application> chooses an appropriate syntax highlighting mode based on a document's type. To override the syntax highlighting mode, choose <menuchoice> <guimenu>View</guimenu> <guimenuitem>Highlight Mode</guimenuitem> </menuchoice>, then choose one of the following menu items:</para>
<variablelist>
@@ -1270,6 +1270,38 @@
</row>
<row valign="top">
<entry>
+ <para>Ctrl + U</para>
+ </entry>
+ <entry>
+ <para>Change case to uppercase.</para>
+ </entry>
+ </row>
+ <row valign="top">
+ <entry>
+ <para>Ctrl + L</para>
+ </entry>
+ <entry>
+ <para>Change case to lowercase.</para>
+ </entry>
+ </row>
+ <row valign="top">
+ <entry>
+ <para>Alt + U</para>
+ </entry>
+ <entry>
+ <para>Toggle case of each character.</para>
+ </entry>
+ </row>
+ <row valign="top">
+ <entry>
+ <para>Alt + L</para>
+ </entry>
+ <entry>
+ <para>Capitalize each word.</para>
+ </entry>
+ </row>
+ <row valign="top">
+ <entry>
<para>Alt + Up</para>
</entry>
<entry>
@@ -1541,7 +1573,7 @@
<variablelist>
<varlistentry>
<term>
- <guilabel>Text Wrapping</guilabel>
+ <guilabel>Text Wrapping</guilabel>
</term>
<listitem>
<para>Select the <guilabel>Enable text wrapping</guilabel> option to have long lines of text flow into paragraphs instead of running off the edge of the text window. This avoids having to scroll horizontally</para>
@@ -1591,7 +1623,7 @@
<variablelist>
<varlistentry>
<term>
- <guilabel>Tabs</guilabel>
+ <guilabel>Tabs</guilabel>
</term>
<listitem>
<para>Use the <guilabel>Tab width</guilabel> spin box to specify the width of the space that <application> pluma</application> inserts when you press the <keycap>Tab</keycap> key. </para>
@@ -1600,7 +1632,7 @@
</varlistentry>
<varlistentry>
<term>
- <guilabel>Auto Indentation</guilabel>
+ <guilabel>Auto Indentation</guilabel>
</term>
<listitem>
<para>Select the <guilabel>Enable auto indentation</guilabel> option to specify that the next line starts at the indentation level of the current line. </para>
@@ -1608,7 +1640,7 @@
</varlistentry>
<varlistentry>
<term>
- <guilabel>File Saving</guilabel>
+ <guilabel>File Saving</guilabel>
</term>
<listitem>
<para>Select the <guilabel>Create a backup copy of files before saving</guilabel> option to create a backup copy of a file each time you save the file. The backup copy of the file contains a ~ at the end of the filename.</para>
@@ -1622,11 +1654,11 @@
<info>
<title>Font &amp; Colors Preferences</title>
</info>
-
+
<variablelist>
<varlistentry>
<term>
- <guilabel>Font</guilabel>
+ <guilabel>Font</guilabel>
</term>
<listitem>
<para>Select the <guilabel>Use default theme font</guilabel> option to use the default system font for the text in the <application>pluma</application> text window. </para>
@@ -1721,7 +1753,7 @@
<info>
<title>Disabling a Plugin</title>
</info>
-
+
<para>A plugin remains enabled when you quit <application>pluma</application>. </para>
<para>To disable a <application>pluma</application> plugin, perform the following steps:</para>
<orderedlist inheritnum="ignore" continuation="restarts">
@@ -1763,11 +1795,6 @@
<itemizedlist>
<listitem>
<para>
- <xref linkend="pluma-change-case-plugin"/> allows you to change the case of the selected text.
- </para>
- </listitem>
- <listitem>
- <para>
<xref linkend="pluma-document-statistics-plugin"/> shows the number of lines, words, and characters in the document.
</para>
</listitem>
@@ -1832,81 +1859,6 @@
</note>
</section>
- <section xml:id="pluma-change-case-plugin">
- <info>
- <title>Change Case Plugin</title>
- </info>
- <para>The <application>Change Case</application> plugin changes the case of the selected text.</para>
- <para>The following items are added to the <guimenu>Edit</guimenu> menu when the <application>Change Case</application> plugin is enabled:</para>
- <informaltable frame="all">
- <tgroup cols="3" colsep="1" rowsep="1">
- <colspec colname="COLSPEC0" colwidth="33*"/>
- <colspec colname="COLSPEC1" colwidth="33*"/>
- <colspec colname="COLSPEC2" colwidth="33*"/>
- <thead>
- <row valign="top">
- <entry colname="COLSPEC0">
- <para>Menu Item</para>
- </entry>
- <entry colname="COLSPEC1">
- <para>Action</para>
- </entry>
- <entry colname="COLSPEC2">
- <para>Example</para>
- </entry>
- </row>
- </thead>
- <tbody>
- <row valign="top">
- <entry>
- <para><menuchoice> <guimenu>Edit</guimenu> <guisubmenu>Change Case</guisubmenu> <guimenuitem>All Upper Case</guimenuitem> </menuchoice></para>
- </entry>
- <entry>
- <para>Change each character to uppercase. </para>
- </entry>
- <entry>
- <para><literal>This text</literal> becomes <literal>THIS TEXT</literal></para>
- </entry>
- </row>
- <row valign="top">
- <entry>
- <para><menuchoice> <guimenu>Edit</guimenu> <guisubmenu>Change Case</guisubmenu> <guimenuitem>All Lower Case</guimenuitem> </menuchoice></para>
- </entry>
- <entry>
- <para>Change each character to lowercase. </para>
- </entry>
- <entry>
- <para><literal>This Text</literal> becomes <literal>this text</literal></para>
- </entry>
- </row>
- <row valign="top">
- <entry>
- <para><menuchoice> <guimenu>Edit</guimenu> <guisubmenu>Change Case</guisubmenu> <guimenuitem>Invert Case</guimenuitem> </menuchoice></para>
- </entry>
- <entry>
- <para>Change each lowercase character to uppercase, and change each uppercase character to lowercase. </para>
- </entry>
- <entry>
- <para><literal>This Text</literal> becomes <literal>tHIS tEXT</literal></para>
- </entry>
- </row>
- <row valign="top">
- <entry>
- <para><menuchoice> <guimenu>Edit</guimenu> <guisubmenu>Change Case</guisubmenu> <guimenuitem>Title Case</guimenuitem> </menuchoice></para>
- </entry>
- <entry>
- <para>Change the first character of each word to uppercase. </para>
- </entry>
- <entry>
- <para><literal>this text</literal> becomes <literal>This Text</literal></para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- </section>
-
<section xml:id="pluma-document-statistics-plugin">
<info>
<title>Document Statistics Plugin</title>
@@ -2148,19 +2100,19 @@
</info>
<para>To configure the Insert Date/Time plugin, perform the following steps:</para>
<orderedlist inheritnum="ignore" continuation="restarts">
- <listitem>
+ <listitem>
<para>Choose <menuchoice> <guimenu>Edit</guimenu> <guimenuitem>Preferences</guimenuitem> </menuchoice>.</para>
</listitem>
- <listitem>
+ <listitem>
<para>Select the <guilabel>Plugins</guilabel> tab.</para>
</listitem>
- <listitem>
+ <listitem>
<para>Select the <guilabel>Insert Date/Time</guilabel> plugin.</para>
</listitem>
- <listitem>
+ <listitem>
<para>Click <guibutton>Configure Plugin</guibutton> to display the <guilabel>Configure insert date/time plugin</guilabel> dialog.</para>
</listitem>
- <listitem>
+ <listitem>
<para>Select one of the options, as follows: </para>
<itemizedlist>
<listitem>
@@ -2180,11 +2132,11 @@
</listitem>
</itemizedlist>
</listitem>
- <listitem>
+ <listitem>
<para>Click <guibutton>OK</guibutton> to close the <guilabel>Configure insert date/time plugin</guilabel> dialog.
</para>
</listitem>
- <listitem>
+ <listitem>
<para>To close the <guilabel>Preferences</guilabel> dialog, click <guibutton>Close</guibutton>.</para>
</listitem>
</orderedlist>
@@ -2264,7 +2216,7 @@
<listitem>
<para>When your document is ready, save it.</para>
</listitem>
- <listitem>
+ <listitem>
<para>You will see that any trailing whitespaces has been stripped after the document has been saved.</para>
</listitem>
</orderedlist>
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 28ae8910..4a40c74d 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -1,5 +1,4 @@
DIST_SUBDIRS = \
- changecase \
docinfo \
externaltools \
filebrowser \
@@ -14,7 +13,6 @@ DIST_SUBDIRS = \
trailsave
SUBDIRS = \
- changecase \
docinfo \
externaltools \
filebrowser \
diff --git a/plugins/changecase/Makefile.am b/plugins/changecase/Makefile.am
deleted file mode 100644
index e30cfa37..00000000
--- a/plugins/changecase/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-# changecase plugin
-plugindir = $(PLUMA_PLUGINS_LIBS_DIR)
-
-AM_CPPFLAGS = \
- -I$(top_srcdir) \
- $(PLUMA_CFLAGS) \
- $(WARN_CFLAGS)
-
-plugin_LTLIBRARIES = libchangecase.la
-
-libchangecase_la_SOURCES = \
- pluma-changecase-plugin.h \
- pluma-changecase-plugin.c
-
-libchangecase_la_LDFLAGS = $(PLUGIN_LIBTOOL_FLAGS)
-libchangecase_la_LIBADD = $(PLUMA_LIBS)
-
-uidir = $(PLUMA_PLUGINS_DATA_DIR)/changecase
-ui_DATA =
-
-plugin_in_files = changecase.plugin.desktop.in
-plugin_DATA = $(plugin_in_files:.plugin.desktop.in=.plugin)
-
-$(plugin_DATA): $(plugin_in_files)
- $(AM_V_GEN) $(MSGFMT) --keyword=Name --keyword=Description --desktop --template $< -d $(top_srcdir)/po -o $@
-
-EXTRA_DIST = $(ui_DATA) $(plugin_in_files)
-
-CLEANFILES = $(plugin_DATA)
-DISTCLEANFILES = $(plugin_DATA)
-
-
--include $(top_srcdir)/git.mk
diff --git a/plugins/changecase/README.md b/plugins/changecase/README.md
deleted file mode 100644
index 7f9dadad..00000000
--- a/plugins/changecase/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Change case Plugin
-
-The Change Case plugin changes the case of the selected text, like uppercase to lowercase and vice versa. To know more, see the **Plugins** section of the pluma user manual. \ No newline at end of file
diff --git a/plugins/changecase/changecase.plugin.desktop.in b/plugins/changecase/changecase.plugin.desktop.in
deleted file mode 100644
index bff2f4f6..00000000
--- a/plugins/changecase/changecase.plugin.desktop.in
+++ /dev/null
@@ -1,8 +0,0 @@
-[Plugin]
-Module=changecase
-IAge=2
-Name=Change Case
-Description=Changes the case of selected text.
-Authors=Paolo Borelli <[email protected]>
-Copyright=Copyright © 2004-2005 Paolo Borelli
-Website=https://mate-desktop.org
diff --git a/plugins/changecase/pluma-changecase-plugin.c b/plugins/changecase/pluma-changecase-plugin.c
deleted file mode 100644
index 0c0f5289..00000000
--- a/plugins/changecase/pluma-changecase-plugin.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * pluma-changecase-plugin.c
- *
- * Copyright (C) 2004-2005 - Paolo Borelli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $Id$
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "pluma-changecase-plugin.h"
-
-#include <glib/gi18n-lib.h>
-#include <gmodule.h>
-#include <libpeas/peas-activatable.h>
-
-#include <pluma/pluma-window.h>
-#include <pluma/pluma-debug.h>
-
-static void peas_activatable_iface_init (PeasActivatableInterface *iface);
-
-struct _PlumaChangecasePluginPrivate
-{
- GtkWidget *window;
-
- GtkActionGroup *action_group;
- guint ui_id;
-};
-
-G_DEFINE_DYNAMIC_TYPE_EXTENDED (PlumaChangecasePlugin,
- pluma_changecase_plugin,
- PEAS_TYPE_EXTENSION_BASE,
- 0,
- G_ADD_PRIVATE_DYNAMIC (PlumaChangecasePlugin)
- G_IMPLEMENT_INTERFACE_DYNAMIC (PEAS_TYPE_ACTIVATABLE,
- peas_activatable_iface_init))
-
-enum {
- PROP_0,
- PROP_OBJECT
-};
-
-typedef enum {
- TO_UPPER_CASE,
- TO_LOWER_CASE,
- INVERT_CASE,
- TO_TITLE_CASE,
-} ChangeCaseChoice;
-
-static void
-do_upper_case (GtkTextBuffer *buffer,
- GtkTextIter *start,
- GtkTextIter *end)
-{
- GString *s = g_string_new (NULL);
-
- while (!gtk_text_iter_is_end (start) &&
- !gtk_text_iter_equal (start, end))
- {
- gunichar c, nc;
-
- c = gtk_text_iter_get_char (start);
- nc = g_unichar_toupper (c);
- g_string_append_unichar (s, nc);
-
- gtk_text_iter_forward_char (start);
- }
-
- gtk_text_buffer_delete_selection (buffer, TRUE, TRUE);
- gtk_text_buffer_insert_at_cursor (buffer, s->str, s->len);
-
- g_string_free (s, TRUE);
-}
-
-static void
-do_lower_case (GtkTextBuffer *buffer,
- GtkTextIter *start,
- GtkTextIter *end)
-{
- GString *s = g_string_new (NULL);
-
- while (!gtk_text_iter_is_end (start) &&
- !gtk_text_iter_equal (start, end))
- {
- gunichar c, nc;
-
- c = gtk_text_iter_get_char (start);
- nc = g_unichar_tolower (c);
- g_string_append_unichar (s, nc);
-
- gtk_text_iter_forward_char (start);
- }
-
- gtk_text_buffer_delete_selection (buffer, TRUE, TRUE);
- gtk_text_buffer_insert_at_cursor (buffer, s->str, s->len);
-
- g_string_free (s, TRUE);
-}
-
-static void
-do_invert_case (GtkTextBuffer *buffer,
- GtkTextIter *start,
- GtkTextIter *end)
-{
- GString *s = g_string_new (NULL);
-
- while (!gtk_text_iter_is_end (start) &&
- !gtk_text_iter_equal (start, end))
- {
- gunichar c, nc;
-
- c = gtk_text_iter_get_char (start);
- if (g_unichar_islower (c))
- nc = g_unichar_toupper (c);
- else
- nc = g_unichar_tolower (c);
- g_string_append_unichar (s, nc);
-
- gtk_text_iter_forward_char (start);
- }
-
- gtk_text_buffer_delete_selection (buffer, TRUE, TRUE);
- gtk_text_buffer_insert_at_cursor (buffer, s->str, s->len);
-
- g_string_free (s, TRUE);
-}
-
-static void
-do_title_case (GtkTextBuffer *buffer,
- GtkTextIter *start,
- GtkTextIter *end)
-{
- GString *s = g_string_new (NULL);
-
- while (!gtk_text_iter_is_end (start) &&
- !gtk_text_iter_equal (start, end))
- {
- gunichar c, nc;
-
- c = gtk_text_iter_get_char (start);
- if (gtk_text_iter_starts_word (start))
- nc = g_unichar_totitle (c);
- else
- nc = g_unichar_tolower (c);
- g_string_append_unichar (s, nc);
-
- gtk_text_iter_forward_char (start);
- }
-
- gtk_text_buffer_delete_selection (buffer, TRUE, TRUE);
- gtk_text_buffer_insert_at_cursor (buffer, s->str, s->len);
-
- g_string_free (s, TRUE);
-}
-
-static void
-change_case (PlumaWindow *window,
- ChangeCaseChoice choice)
-{
- PlumaDocument *doc;
- GtkTextIter start, end;
-
- pluma_debug (DEBUG_PLUGINS);
-
- doc = pluma_window_get_active_document (window);
- g_return_if_fail (doc != NULL);
-
- if (!gtk_text_buffer_get_selection_bounds (GTK_TEXT_BUFFER (doc),
- &start, &end))
- {
- return;
- }
-
- gtk_text_buffer_begin_user_action (GTK_TEXT_BUFFER (doc));
-
- switch (choice)
- {
- case TO_UPPER_CASE:
- do_upper_case (GTK_TEXT_BUFFER (doc), &start, &end);
- break;
- case TO_LOWER_CASE:
- do_lower_case (GTK_TEXT_BUFFER (doc), &start, &end);
- break;
- case INVERT_CASE:
- do_invert_case (GTK_TEXT_BUFFER (doc), &start, &end);
- break;
- case TO_TITLE_CASE:
- do_title_case (GTK_TEXT_BUFFER (doc), &start, &end);
- break;
- default:
- g_return_if_reached ();
- }
-
- gtk_text_buffer_end_user_action (GTK_TEXT_BUFFER (doc));
-}
-
-static void
-upper_case_cb (GtkAction *action,
- PlumaWindow *window)
-{
- change_case (window, TO_UPPER_CASE);
-}
-
-static void
-lower_case_cb (GtkAction *action,
- PlumaWindow *window)
-{
- change_case (window, TO_LOWER_CASE);
-}
-
-static void
-invert_case_cb (GtkAction *action,
- PlumaWindow *window)
-{
- change_case (window, INVERT_CASE);
-}
-
-static void
-title_case_cb (GtkAction *action,
- PlumaWindow *window)
-{
- change_case (window, TO_TITLE_CASE);
-}
-
-static const GtkActionEntry action_entries[] =
-{
- { "ChangeCase", NULL, N_("C_hange Case") },
- { "UpperCase", NULL, N_("All _Upper Case"), NULL,
- N_("Change selected text to upper case"),
- G_CALLBACK (upper_case_cb) },
- { "LowerCase", NULL, N_("All _Lower Case"), NULL,
- N_("Change selected text to lower case"),
- G_CALLBACK (lower_case_cb) },
- { "InvertCase", NULL, N_("_Invert Case"), NULL,
- N_("Invert the case of selected text"),
- G_CALLBACK (invert_case_cb) },
- { "TitleCase", NULL, N_("_Title Case"), NULL,
- N_("Capitalize the first letter of each selected word"),
- G_CALLBACK (title_case_cb) }
-};
-
-const gchar submenu[] =
-"<ui>"
-" <menubar name='MenuBar'>"
-" <menu name='EditMenu' action='Edit'>"
-" <placeholder name='EditOps_6'>"
-" <menu action='ChangeCase'>"
-" <menuitem action='UpperCase'/>"
-" <menuitem action='LowerCase'/>"
-" <menuitem action='InvertCase'/>"
-" <menuitem action='TitleCase'/>"
-" </menu>"
-" </placeholder>"
-" </menu>"
-" </menubar>"
-"</ui>";
-
-
-static void
-pluma_changecase_plugin_init (PlumaChangecasePlugin *plugin)
-{
- pluma_debug_message (DEBUG_PLUGINS, "PlumaChangecasePlugin initializing");
-
- plugin->priv = pluma_changecase_plugin_get_instance_private (plugin);
-}
-
-static void
-pluma_changecase_plugin_dispose (GObject *object)
-{
- PlumaChangecasePlugin *plugin = PLUMA_CHANGECASE_PLUGIN (object);
-
- pluma_debug_message (DEBUG_PLUGINS, "PlumaChangecasePlugin disposing");
-
- if (plugin->priv->window != NULL)
- {
- g_object_unref (plugin->priv->window);
- plugin->priv->window = NULL;
- }
-
- if (plugin->priv->action_group != NULL)
- {
- g_object_unref (plugin->priv->action_group);
- plugin->priv->action_group = NULL;
- }
-
- G_OBJECT_CLASS (pluma_changecase_plugin_parent_class)->dispose (object);
-}
-
-static void
-pluma_changecase_plugin_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- PlumaChangecasePlugin *plugin = PLUMA_CHANGECASE_PLUGIN (object);
-
- switch (prop_id)
- {
- case PROP_OBJECT:
- plugin->priv->window = GTK_WIDGET (g_value_dup_object (value));
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-pluma_changecase_plugin_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- PlumaChangecasePlugin *plugin = PLUMA_CHANGECASE_PLUGIN (object);
-
- switch (prop_id)
- {
- case PROP_OBJECT:
- g_value_set_object (value, plugin->priv->window);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-update_ui (PlumaChangecasePluginPrivate *data)
-{
- PlumaWindow *window;
- GtkTextView *view;
- GtkAction *action;
- gboolean sensitive = FALSE;
-
- pluma_debug (DEBUG_PLUGINS);
-
- window = PLUMA_WINDOW (data->window);
- view = GTK_TEXT_VIEW (pluma_window_get_active_view (window));
-
- if (view != NULL)
- {
- GtkTextBuffer *buffer;
-
- buffer = gtk_text_view_get_buffer (view);
- sensitive = (gtk_text_view_get_editable (view) &&
- gtk_text_buffer_get_has_selection (buffer));
- }
-
- action = gtk_action_group_get_action (data->action_group,
- "ChangeCase");
- gtk_action_set_sensitive (action, sensitive);
-}
-
-static void
-pluma_changecase_plugin_activate (PeasActivatable *activatable)
-{
- PlumaChangecasePluginPrivate *data;
- PlumaWindow *window;
- GtkUIManager *manager;
- GError *error = NULL;
-
- pluma_debug (DEBUG_PLUGINS);
-
- data = PLUMA_CHANGECASE_PLUGIN (activatable)->priv;
- window = PLUMA_WINDOW (data->window);
-
- manager = pluma_window_get_ui_manager (window);
-
- data->action_group = gtk_action_group_new ("PlumaChangecasePluginActions");
- gtk_action_group_set_translation_domain (data->action_group,
- GETTEXT_PACKAGE);
- gtk_action_group_add_actions (data->action_group,
- action_entries,
- G_N_ELEMENTS (action_entries),
- window);
-
- gtk_ui_manager_insert_action_group (manager, data->action_group, -1);
-
- data->ui_id = gtk_ui_manager_add_ui_from_string (manager,
- submenu,
- -1,
- &error);
- if (data->ui_id == 0)
- {
- g_warning ("%s", error->message);
- return;
- }
-
- update_ui (data);
-}
-
-static void
-pluma_changecase_plugin_deactivate (PeasActivatable *activatable)
-{
- PlumaChangecasePluginPrivate *data;
- PlumaWindow *window;
- GtkUIManager *manager;
-
- pluma_debug (DEBUG_PLUGINS);
-
- data = PLUMA_CHANGECASE_PLUGIN (activatable)->priv;
- window = PLUMA_WINDOW (data->window);
-
- manager = pluma_window_get_ui_manager (window);
-
- gtk_ui_manager_remove_ui (manager, data->ui_id);
- gtk_ui_manager_remove_action_group (manager, data->action_group);
-}
-
-static void
-pluma_changecase_plugin_update_state (PeasActivatable *activatable)
-{
- pluma_debug (DEBUG_PLUGINS);
-
- update_ui (PLUMA_CHANGECASE_PLUGIN (activatable)->priv);
-}
-
-static void
-pluma_changecase_plugin_class_init (PlumaChangecasePluginClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->dispose = pluma_changecase_plugin_dispose;
- object_class->set_property = pluma_changecase_plugin_set_property;
- object_class->get_property = pluma_changecase_plugin_get_property;
-
- g_object_class_override_property (object_class, PROP_OBJECT, "object");
-}
-
-static void
-pluma_changecase_plugin_class_finalize (PlumaChangecasePluginClass *klass)
-{
- /* dummy function - used by G_DEFINE_DYNAMIC_TYPE_EXTENDED */
-}
-
-static void
-peas_activatable_iface_init (PeasActivatableInterface *iface)
-{
- iface->activate = pluma_changecase_plugin_activate;
- iface->deactivate = pluma_changecase_plugin_deactivate;
- iface->update_state = pluma_changecase_plugin_update_state;
-}
-
-G_MODULE_EXPORT void
-peas_register_types (PeasObjectModule *module)
-{
- pluma_changecase_plugin_register_type (G_TYPE_MODULE (module));
-
- peas_object_module_register_extension_type (module,
- PEAS_TYPE_ACTIVATABLE,
- PLUMA_TYPE_CHANGECASE_PLUGIN);
-}
diff --git a/plugins/changecase/pluma-changecase-plugin.h b/plugins/changecase/pluma-changecase-plugin.h
deleted file mode 100644
index d6611097..00000000
--- a/plugins/changecase/pluma-changecase-plugin.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * pluma-changecase-plugin.h
- *
- * Copyright (C) 2004-2005 - Paolo Borelli
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $Id$
- */
-
-#ifndef __PLUMA_CHANGECASE_PLUGIN_H__
-#define __PLUMA_CHANGECASE_PLUGIN_H__
-
-#include <glib.h>
-#include <glib-object.h>
-#include <libpeas/peas-extension-base.h>
-#include <libpeas/peas-object-module.h>
-
-G_BEGIN_DECLS
-
-/*
- * Type checking and casting macros
- */
-#define PLUMA_TYPE_CHANGECASE_PLUGIN (pluma_changecase_plugin_get_type ())
-#define PLUMA_CHANGECASE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PLUMA_TYPE_CHANGECASE_PLUGIN, PlumaChangecasePlugin))
-#define PLUMA_CHANGECASE_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PLUMA_TYPE_CHANGECASE_PLUGIN, PlumaChangecasePluginClass))
-#define PLUMA_IS_CHANGECASE_PLUGIN(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PLUMA_TYPE_CHANGECASE_PLUGIN))
-#define PLUMA_IS_CHANGECASE_PLUGIN_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PLUMA_TYPE_CHANGECASE_PLUGIN))
-#define PLUMA_CHANGECASE_PLUGIN_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PLUMA_TYPE_CHANGECASE_PLUGIN, PlumaChangecasePluginClass))
-
-/* Private structure type */
-typedef struct _PlumaChangecasePluginPrivate PlumaChangecasePluginPrivate;
-
-/*
- * Main object structure
- */
-typedef struct _PlumaChangecasePlugin PlumaChangecasePlugin;
-
-struct _PlumaChangecasePlugin
-{
- PeasExtensionBase parent_instance;
-
- /*< private >*/
- PlumaChangecasePluginPrivate *priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _PlumaChangecasePluginClass PlumaChangecasePluginClass;
-
-struct _PlumaChangecasePluginClass
-{
- PeasExtensionBaseClass parent_class;
-};
-
-/*
- * Public methods
- */
-GType pluma_changecase_plugin_get_type (void) G_GNUC_CONST;
-
-/* All the plugins must implement this function */
-G_MODULE_EXPORT void peas_register_types (PeasObjectModule *module);
-
-G_END_DECLS
-
-#endif /* __PLUMA_CHANGECASE_PLUGIN_H__ */
diff --git a/pluma/pluma-commands-edit.c b/pluma/pluma-commands-edit.c
index 3915da8f..71e953af 100644
--- a/pluma/pluma-commands-edit.c
+++ b/pluma/pluma-commands-edit.c
@@ -165,6 +165,70 @@ _pluma_cmd_edit_select_all (GtkAction *action,
}
void
+_pluma_cmd_edit_upper_case (GtkAction *action,
+ PlumaWindow *window)
+{
+ PlumaView *active_view;
+
+ pluma_debug (DEBUG_COMMANDS);
+
+ active_view = pluma_window_get_active_view (window);
+ g_return_if_fail (active_view);
+
+ pluma_view_upper_case_selection (active_view);
+
+ gtk_widget_grab_focus (GTK_WIDGET (active_view));
+}
+
+void
+_pluma_cmd_edit_lower_case (GtkAction *action,
+ PlumaWindow *window)
+{
+ PlumaView *active_view;
+
+ pluma_debug (DEBUG_COMMANDS);
+
+ active_view = pluma_window_get_active_view (window);
+ g_return_if_fail (active_view);
+
+ pluma_view_lower_case_selection (active_view);
+
+ gtk_widget_grab_focus (GTK_WIDGET (active_view));
+}
+
+void
+_pluma_cmd_edit_invert_case (GtkAction *action,
+ PlumaWindow *window)
+{
+ PlumaView *active_view;
+
+ pluma_debug (DEBUG_COMMANDS);
+
+ active_view = pluma_window_get_active_view (window);
+ g_return_if_fail (active_view);
+
+ pluma_view_invert_case_selection (active_view);
+
+ gtk_widget_grab_focus (GTK_WIDGET (active_view));
+}
+
+void
+_pluma_cmd_edit_title_case (GtkAction *action,
+ PlumaWindow *window)
+{
+ PlumaView *active_view;
+
+ pluma_debug (DEBUG_COMMANDS);
+
+ active_view = pluma_window_get_active_view (window);
+ g_return_if_fail (active_view);
+
+ pluma_view_title_case_selection (active_view);
+
+ gtk_widget_grab_focus (GTK_WIDGET (active_view));
+}
+
+void
_pluma_cmd_edit_preferences (GtkAction *action,
PlumaWindow *window)
{
diff --git a/pluma/pluma-commands.h b/pluma/pluma-commands.h
index 2fc44259..b2d5b423 100644
--- a/pluma/pluma-commands.h
+++ b/pluma/pluma-commands.h
@@ -103,6 +103,14 @@ void _pluma_cmd_edit_paste (GtkAction *action,
PlumaWindow *window);
void _pluma_cmd_edit_delete (GtkAction *action,
PlumaWindow *window);
+void _pluma_cmd_edit_upper_case (GtkAction *action,
+ PlumaWindow *window);
+void _pluma_cmd_edit_lower_case (GtkAction *action,
+ PlumaWindow *window);
+void _pluma_cmd_edit_invert_case (GtkAction *action,
+ PlumaWindow *window);
+void _pluma_cmd_edit_title_case (GtkAction *action,
+ PlumaWindow *window);
void _pluma_cmd_edit_select_all (GtkAction *action,
PlumaWindow *window);
void _pluma_cmd_edit_preferences (GtkAction *action,
diff --git a/pluma/pluma-ui.h b/pluma/pluma-ui.h
index 824e1e32..2567ebb0 100644
--- a/pluma/pluma-ui.h
+++ b/pluma/pluma-ui.h
@@ -103,6 +103,15 @@ static const GtkActionEntry pluma_menu_entries[] =
N_("Delete the selected text"), G_CALLBACK (_pluma_cmd_edit_delete) },
{ "EditSelectAll", "edit-select-all", N_("Select _All"), "<control>A",
N_("Select the entire document"), G_CALLBACK (_pluma_cmd_edit_select_all) },
+ { "ChangeCase", NULL, N_("C_hange Case"), NULL, NULL, NULL },
+ { "UpperCase", NULL, N_("All _Upper Case"), NULL,
+ N_("Change selected text to upper case"), G_CALLBACK (_pluma_cmd_edit_upper_case) },
+ { "LowerCase", NULL, N_("All _Lower Case"), NULL,
+ N_("Change selected text to lower case"), G_CALLBACK (_pluma_cmd_edit_lower_case) },
+ { "InvertCase", NULL, N_("_Invert Case"), NULL,
+ N_("Invert the case of selected text"), G_CALLBACK (_pluma_cmd_edit_invert_case) },
+ { "TitleCase", NULL, N_("_Title Case"), NULL,
+ N_("Capitalize the first letter of each selected word"), G_CALLBACK (_pluma_cmd_edit_title_case) },
/* View menu */
{ "ViewHighlightMode", NULL, N_("_Highlight Mode") },
diff --git a/pluma/pluma-ui.xml b/pluma/pluma-ui.xml
index f2c69b42..0c2c0d95 100644
--- a/pluma/pluma-ui.xml
+++ b/pluma/pluma-ui.xml
@@ -2,7 +2,7 @@
* pluma-ui.xml
* This file is part of pluma
*
- * Copyright (C) 2005 - Paolo Maggi
+ * Copyright (C) 2005 - Paolo Maggi
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -19,9 +19,9 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Modified by the pluma Team, 2005. See the AUTHORS file for a
- * list of people on the pluma Team.
- * See the ChangeLog files for a list of changes.
+ * Modified by the pluma Team, 2005. See the AUTHORS file for a
+ * list of people on the pluma Team.
+ * See the ChangeLog files for a list of changes.
*
* $Id$
-->
@@ -60,9 +60,9 @@
<menuitem name="EditCopyMenu" action="EditCopy"/>
<menuitem name="EditPasteMenu" action="EditPaste"/>
<menuitem name="EditDeleteMenu" action="EditDelete"/>
- <placeholder name="EditOps_1" />
+ <placeholder name="EditOps_1" />
<separator/>
- <placeholder name="EditOps_2" />
+ <placeholder name="EditOps_2" />
<menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
<placeholder name="EditOps_3" />
<separator/>
@@ -71,6 +71,12 @@
<placeholder name="EditOps_5" />
<separator/>
<placeholder name="EditOps_6" />
+ <menu name="ChangeCaseMenu" action="ChangeCase">
+ <menuitem name="UpperCaseMenu" action="UpperCase" />
+ <menuitem name="LowerCaseMenu" action="LowerCase" />
+ <menuitem name="InvertCaseMenu" action="InvertCase" />
+ <menuitem name="TitleCaseMenu" action="TitleCase" />
+ </menu>
<separator/>
<menuitem name="EditPreferencesMenu" action="EditPreferences"/>
</menu>
@@ -103,12 +109,12 @@
<separator/>
<placeholder name="SearchOps_4" />
<separator/>
- <menuitem name="SearchClearHighlight" action="SearchClearHighlight"/>
+ <menuitem name="SearchClearHighlight" action="SearchClearHighlight"/>
<placeholder name="SearchOps_5" />
<separator/>
<placeholder name="SearchOps_6" />
<separator/>
- <menuitem name="SearchGoToLineMenu" action="SearchGoToLine"/>
+ <menuitem name="SearchGoToLineMenu" action="SearchGoToLine"/>
<placeholder name="SearchOps_7" />
<separator/>
<placeholder name="SearchOps_8" />
@@ -136,7 +142,7 @@
<placeholder name="DocumentsOps_2" />
<separator/>
<placeholder name="DocumentsOps_3" />
- <menuitem action="DocumentsPreviousDocument" />
+ <menuitem action="DocumentsPreviousDocument" />
<menuitem action="DocumentsNextDocument" />
<separator/>
<menuitem action="DocumentsMoveToNewWindow"/>
@@ -195,7 +201,7 @@
<separator/>
<menuitem action="FilePrint"/>
<separator/>
- <placeholder name="NotebookPupupOps_1"/>
+ <placeholder name="NotebookPupupOps_1"/>
<separator/>
<menuitem name="FileCloseMenu" action="FileClose"/>
</popup>
diff --git a/pluma/pluma-view.c b/pluma/pluma-view.c
index 24bc0007..1c376877 100644
--- a/pluma/pluma-view.c
+++ b/pluma/pluma-view.c
@@ -323,6 +323,27 @@ pluma_view_class_init (PlumaViewClass *klass)
"delete_from_cursor", 2,
G_TYPE_ENUM, GTK_DELETE_PARAGRAPHS,
G_TYPE_INT, 1);
+
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KEY_u,
+ GDK_CONTROL_MASK,
+ "change_case", 1,
+ G_TYPE_ENUM, GTK_SOURCE_CHANGE_CASE_UPPER);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KEY_l,
+ GDK_CONTROL_MASK,
+ "change_case", 1,
+ G_TYPE_ENUM, GTK_SOURCE_CHANGE_CASE_LOWER);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KEY_u,
+ GDK_MOD1_MASK,
+ "change_case", 1,
+ G_TYPE_ENUM, GTK_SOURCE_CHANGE_CASE_TOGGLE);
+ gtk_binding_entry_add_signal (binding_set,
+ GDK_KEY_l,
+ GDK_MOD1_MASK,
+ "change_case", 1,
+ G_TYPE_ENUM, GTK_SOURCE_CHANGE_CASE_TITLE);
}
static void
@@ -753,6 +774,82 @@ pluma_view_delete_selection (PlumaView *view)
0.0);
}
+void
+pluma_view_upper_case_selection (PlumaView *view)
+{
+ GtkTextBuffer *buffer = NULL;
+ GtkTextIter start, end;
+
+ pluma_debug (DEBUG_VIEW);
+
+ g_return_if_fail (PLUMA_IS_VIEW (view));
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+ g_return_if_fail (buffer != NULL);
+
+ if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+ {
+ gtk_source_buffer_change_case (GTK_SOURCE_BUFFER (buffer), GTK_SOURCE_CHANGE_CASE_UPPER, &start, &end);
+ }
+}
+
+void
+pluma_view_lower_case_selection (PlumaView *view)
+{
+ GtkTextBuffer *buffer = NULL;
+ GtkTextIter start, end;
+
+ pluma_debug (DEBUG_VIEW);
+
+ g_return_if_fail (PLUMA_IS_VIEW (view));
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+ g_return_if_fail (buffer != NULL);
+
+ if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+ {
+ gtk_source_buffer_change_case (GTK_SOURCE_BUFFER (buffer), GTK_SOURCE_CHANGE_CASE_LOWER, &start, &end);
+ }
+}
+
+void
+pluma_view_invert_case_selection (PlumaView *view)
+{
+ GtkTextBuffer *buffer = NULL;
+ GtkTextIter start, end;
+
+ pluma_debug (DEBUG_VIEW);
+
+ g_return_if_fail (PLUMA_IS_VIEW (view));
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+ g_return_if_fail (buffer != NULL);
+
+ if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+ {
+ gtk_source_buffer_change_case (GTK_SOURCE_BUFFER (buffer), GTK_SOURCE_CHANGE_CASE_TOGGLE, &start, &end);
+ }
+}
+
+void
+pluma_view_title_case_selection (PlumaView *view)
+{
+ GtkTextBuffer *buffer = NULL;
+ GtkTextIter start, end;
+
+ pluma_debug (DEBUG_VIEW);
+
+ g_return_if_fail (PLUMA_IS_VIEW (view));
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+ g_return_if_fail (buffer != NULL);
+
+ if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+ {
+ gtk_source_buffer_change_case (GTK_SOURCE_BUFFER (buffer), GTK_SOURCE_CHANGE_CASE_TITLE, &start, &end);
+ }
+}
+
/**
* pluma_view_select_all:
* @view: a #PlumaView
diff --git a/pluma/pluma-view.h b/pluma/pluma-view.h
index c2f5e1df..afad9e08 100644
--- a/pluma/pluma-view.h
+++ b/pluma/pluma-view.h
@@ -95,6 +95,12 @@ void pluma_view_cut_clipboard (PlumaView *view);
void pluma_view_copy_clipboard (PlumaView *view);
void pluma_view_paste_clipboard (PlumaView *view);
void pluma_view_delete_selection (PlumaView *view);
+
+void pluma_view_upper_case_selection (PlumaView *view);
+void pluma_view_lower_case_selection (PlumaView *view);
+void pluma_view_invert_case_selection (PlumaView *view);
+void pluma_view_title_case_selection (PlumaView *view);
+
void pluma_view_select_all (PlumaView *view);
void pluma_view_scroll_to_cursor (PlumaView *view);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index d3754054..04cc2256 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -41,8 +41,6 @@ pluma/pluma-ui.xml
pluma/pluma-utils.c
pluma/pluma-view.c
pluma/pluma-window.c
-plugins/changecase/changecase.plugin.desktop.in
-plugins/changecase/pluma-changecase-plugin.c
plugins/docinfo/docinfo.plugin.desktop.in
plugins/docinfo/docinfo.ui
plugins/docinfo/pluma-docinfo-plugin.c