[easytag/wip/future-gtk] Convert EtScanDialog to a template widget
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [easytag/wip/future-gtk] Convert EtScanDialog to a template widget
- Date: Mon, 4 May 2015 19:35:14 +0000 (UTC)
commit f17b517b302df8339178c181be296adf613b1a6a
Author: David King <amigadave amigadave com>
Date: Mon May 4 19:49:06 2015 +0100
Convert EtScanDialog to a template widget
data/scan_dialog.ui | 1625 ++++++++++++++++++++++++++-------------------------
src/scan_dialog.c | 750 +++++++++++-------------
2 files changed, 1173 insertions(+), 1202 deletions(-)
---
diff --git a/data/scan_dialog.ui b/data/scan_dialog.ui
index 8b60982..b1c5a6a 100644
--- a/data/scan_dialog.ui
+++ b/data/scan_dialog.ui
@@ -1,5 +1,5 @@
<interface domain="easytag">
- <requires lib="gtk+" version="3.4"/>
+ <requires lib="gtk+" version="3.10"/>
<object class="GtkListStore" id="fill_masks_model">
<columns>
<column type="gchararray"/>
@@ -10,858 +10,901 @@
<column type="gchararray"/>
</columns>
</object>
- <object class="GtkNotebook" id="scan_notebook">
- <property name="enable-popup">True</property>
- <property name="scrollable">True</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkGrid" id="fill_grid">
- <property name="border-width">12</property>
- <property name="column-spacing">12</property>
- <property name="orientation">vertical</property>
- <property name="row-spacing">6</property>
- <property name="visible">True</property>
+ <template class="EtScanDialog" parent="GtkDialog">
+ <property name="destroy-with-parent">True</property>
+ <property name="title" translatable="yes">Tag and Filename Scan</property>
+ <signal name="delete-event" handler="gtk_widget_hide_on_delete"/>
+ <signal name="hide" handler="et_scan_on_hide"/>
+ <signal name="response" handler="et_scan_on_response"/>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="scanner_vbox">
+ <property name="border-width">6</property>
+ <property name="spacing">12</property>
<child>
- <object class="GtkComboBox" id="fill_combo">
- <property name="has-entry">True</property>
- <property name="model">fill_masks_model</property>
- <property name="entry-text-column">0</property>
- <property name="hexpand">True</property>
- <property name="tooltip-text" translatable="yes">Select or type in a mask using
codes (see Legend) to parse filename and directory. Used to fill in tag fields</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="fill_preview_label">
- <property name="label" translatable="yes">Fill tag preview</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkGrid" id="editor_grid">
- <property name="column-spacing">12</property>
- <property name="orientation">vertical</property>
+ <object class="GtkNotebook" id="notebook">
+ <property name="enable-popup">True</property>
+ <property name="scrollable">True</property>
<property name="visible">True</property>
<child>
- <object class="GtkLabel" id="editor_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">Mask Editor</property>
+ <object class="GtkGrid" id="fill_grid">
+ <property name="border-width">12</property>
+ <property name="column-spacing">12</property>
+ <property name="orientation">vertical</property>
+ <property name="row-spacing">6</property>
<property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <child>
+ <object class="GtkComboBox" id="fill_combo">
+ <property name="has-entry">True</property>
+ <property name="model">fill_masks_model</property>
+ <property name="entry-text-column">0</property>
+ <property name="hexpand">True</property>
+ <property name="tooltip-text" translatable="yes">Select or type in a
mask using codes (see Legend) to parse filename and directory. Used to fill in tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="fill_preview_label">
+ <property name="label" translatable="yes">Fill tag preview</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkGrid" id="editor_grid">
+ <property name="column-spacing">12</property>
+ <property name="orientation">vertical</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkLabel" id="editor_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Mask
Editor</property>
+ <property name="visible">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="mask_scrolled">
+ <property name="margin-left">12</property>
+ <property name="margin-top">6</property>
+ <property name="min-content-height">150</property>
+ <property name="shadow-type">etched-in</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkTreeView" id="mask_view">
+ <property name="expand">True</property>
+ <property name="headers-visible">False</property>
+ <property name="model">fill_masks_model</property>
+ <property name="reorderable">True</property>
+ <property name="visible">True</property>
+ <signal name="key-press-event"
handler="Mask_Editor_List_Key_Press"/>
+ <child>
+ <object class="GtkTreeViewColumn"
id="mask_column">
+ <child>
+ <object class="GtkCellRendererText"
id="mask_renderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"
id="mask_selection">
+ <property name="mode">multiple</property>
+ <signal name="changed"
handler="Mask_Editor_List_Row_Selected" after="yes"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolbar" id="editor_toolbar">
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ <style>
+ <class name="inline-toolbar"/>
+ </style>
+ <child>
+ <object class="GtkToolButton" id="mask_new_button">
+ <property name="icon-name">document-new</property>
+ <property name="tooltip-text"
translatable="yes">Create a new mask</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_New" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="mask_up_button">
+ <property name="icon-name">go-up</property>
+ <property name="tooltip-text"
translatable="yes">Move the selected mask up</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_Move_Up" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="mask_down_button">
+ <property name="icon-name">go-down</property>
+ <property name="tooltip-text"
translatable="yes">Move the selected mask down</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_Move_Down" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="mask_copy_button">
+ <property name="icon-name">edit-copy</property>
+ <property name="tooltip-text"
translatable="yes">Duplicate the selected mask</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_Duplicate" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="mask_add_button">
+ <property name="icon-name">list-add</property>
+ <property name="tooltip-text" translatable="yes">Add
default masks</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_Add" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="mask_remove_button">
+ <property name="icon-name">list-remove</property>
+ <property name="tooltip-text"
translatable="yes">Remove the selected mask</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_Remove" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="mask_save_button">
+ <property name="icon-name">document-save</property>
+ <property name="tooltip-text"
translatable="yes">Save masks</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Mask_Editor_List_Save" swapped="yes"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="mask_entry">
+ <property name="margin-left">12</property>
+ <property name="margin-top">6</property>
+ <property name="visible">True</property>
+ <signal name="changed" handler="Mask_Editor_Entry_Changed"
swapped="yes"/>
+ <signal name="changed" handler="entry_check_scan_tag_mask"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkGrid" id="legend_grid">
+ <property name="column-spacing">12</property>
+ <property name="row-spacing">6</property>
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkLabel" id="legend_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Legend</property>
+ <property name="visible">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="artist_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%a:
artist</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="album_artist_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%a: album
artist</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="album_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%b:
album</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="comment_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%c:
comment</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="composer_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%p:
composer</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="copyright_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%r:
copyright</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="disc_number_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%d: disc
number</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="encoded_by_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%e: encoded
by</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="genre_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%g:
genre</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="ignored_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%i:
ignored</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="number_of_tracks_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%l: number of
tracks</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="orig_artist_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%o: original
artist</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="track_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%n: track
number</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="title_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%t:
title</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="url_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%u: URL</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="number_of_discs_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%x: number of
discs</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="year_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">%y: year</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="fill_tab_label">
+ <property name="label" translatable="yes">Fill Tag</property>
</object>
</child>
<child>
- <object class="GtkScrolledWindow" id="mask_scrolled">
- <property name="margin-left">12</property>
- <property name="margin-top">6</property>
- <property name="min-content-height">150</property>
- <property name="shadow-type">etched-in</property>
+ <object class="GtkGrid" id="rename_grid">
+ <property name="border-width">12</property>
+ <property name="column-spacing">6</property>
+ <property name="orientation">vertical</property>
+ <property name="row-spacing">6</property>
<property name="visible">True</property>
<child>
- <object class="GtkTreeView" id="mask_view">
- <property name="expand">True</property>
- <property name="headers-visible">False</property>
- <property name="model">fill_masks_model</property>
- <property name="reorderable">True</property>
+ <object class="GtkBox" id="rename_box">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">6</property>
<property name="visible">True</property>
<child>
- <object class="GtkTreeViewColumn" id="mask_column">
+ <object class="GtkButton" id="rename_prefix_button">
+ <property name="tooltip-text" translatable="yes">Prefix mask
with current directory</property>
+ <property name="visible">True</property>
+ <signal name="clicked"
handler="Scan_Rename_File_Prefix_Path" swapped="yes"/>
<child>
- <object class="GtkCellRendererText" id="mask_renderer"/>
- <attributes>
- <attribute name="text">0</attribute>
- </attributes>
+ <object class="GtkImage" id="rename_prefix_image">
+ <property name="icon-name">folder-new</property>
+ <property name="visible">True</property>
+ </object>
</child>
</object>
</child>
+ <child>
+ <object class="GtkComboBox" id="rename_combo">
+ <property name="has-entry">True</property>
+ <property name="model">rename_masks_model</property>
+ <property name="entry-text-column">0</property>
+ <property name="hexpand">True</property>
+ <property name="tooltip-text" translatable="yes">Select or
type in a mask using codes (see Legend) to parse tag fields. Used to rename the file.
+ Use ‘/’ to make directories. If the first character is ‘/’, it is an absolute path,
otherwise it is relative to the old path</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
</object>
</child>
+ <child>
+ <object class="GtkLabel" id="rename_preview_label">
+ <property name="label" translatable="yes">Rename file
preview</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="rename_tab_label">
+ <property name="label" translatable="yes">Rename File</property>
</object>
</child>
<child>
- <object class="GtkToolbar" id="editor_toolbar">
- <property name="margin-left">12</property>
+ <object class="GtkGrid" id="process_grid">
+ <property name="border-width">12</property>
+ <property name="orientation">vertical</property>
+ <property name="row-spacing">6</property>
<property name="visible">True</property>
- <style>
- <class name="inline-toolbar"/>
- </style>
<child>
- <object class="GtkToolButton" id="mask_new_button">
- <property name="icon-name">document-new</property>
- <property name="tooltip-text" translatable="yes">Create a new
mask</property>
+ <object class="GtkLabel" id="tag_fields_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Tag Fields</property>
<property name="visible">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
</child>
<child>
- <object class="GtkToolButton" id="mask_up_button">
- <property name="icon-name">go-up</property>
- <property name="tooltip-text" translatable="yes">Move the selected
mask up</property>
+ <object class="GtkGrid" id="fill_tags_grid">
+ <property name="column-spacing">12</property>
+ <property name="margin-left">12</property>
+ <property name="row-spacing">6</property>
<property name="visible">True</property>
+ <child>
+ <object class="GtkCheckButton" id="process_filename_check">
+ <property name="label" translatable="yes">Filename</property>
+ <property name="name">filename</property>
+ <property name="tooltip-text" translatable="yes">Process
filename</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_title_check">
+ <property name="label" translatable="yes">Title</property>
+ <property name="name">title</property>
+ <property name="tooltip-text" translatable="yes">Process
title field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_artist_check">
+ <property name="label" translatable="yes">Artist</property>
+ <property name="name">artist</property>
+ <property name="tooltip-text" translatable="yes">Process
artist field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_album_artist_check">
+ <property name="label" translatable="yes">Album
Artist</property>
+ <property name="name">album-artist</property>
+ <property name="tooltip-text" translatable="yes">Process
album artist field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_album_check">
+ <property name="label" translatable="yes">Album</property>
+ <property name="name">album</property>
+ <property name="tooltip-text" translatable="yes">Process
album field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">4</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_genre_check">
+ <property name="label" translatable="yes">Genre</property>
+ <property name="name">genre</property>
+ <property name="tooltip-text" translatable="yes">Process
genre field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">5</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_comment_check">
+ <property name="label" translatable="yes">Comment</property>
+ <property name="name">comment</property>
+ <property name="tooltip-text" translatable="yes">Process
comment field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_composer_check">
+ <property name="label" translatable="yes">Composer</property>
+ <property name="name">composer</property>
+ <property name="tooltip-text" translatable="yes">Process
composer field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_orig_artist_check">
+ <property name="label" translatable="yes">Orig.
Artist</property>
+ <property name="name">original-artist</property>
+ <property name="tooltip-text" translatable="yes">Process
original artist field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">2</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_copyright_check">
+ <property name="label"
translatable="yes">Copyright</property>
+ <property name="name">copyright</property>
+ <property name="tooltip-text" translatable="yes">Process
copyright field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">3</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_url_check">
+ <property name="label" translatable="yes">URL</property>
+ <property name="name">url</property>
+ <property name="tooltip-text" translatable="yes">Process URL
field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">4</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="process_encoded_by_check">
+ <property name="label" translatable="yes">Encoded
By</property>
+ <property name="name">encoded-by</property>
+ <property name="tooltip-text" translatable="yes">Process
encoded-by field</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">5</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
</object>
</child>
<child>
- <object class="GtkToolButton" id="mask_down_button">
- <property name="icon-name">go-down</property>
- <property name="tooltip-text" translatable="yes">Move the selected
mask down</property>
+ <object class="GtkGrid" id="capital_spaces_grid">
+ <property name="column-spacing">12</property>
+ <property name="row-spacing">6</property>
<property name="visible">True</property>
+ <child>
+ <object class="GtkLabel" id="capitalization_label">
+ <property name="halign">start</property>
+ <property name="label"
translatable="yes">Capitalization</property>
+ <property name="visible">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="capitalize_all_radio">
+ <property name="label" translatable="yes">Capitalize
all</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
upper-case all characters of the tag when processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="capitalize_lower_radio">
+ <property name="group">capitalize_all_radio</property>
+ <property name="label" translatable="yes">Lowercase
all</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
lower-case all characters of the tag when processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="capitalize_first_radio">
+ <property name="group">capitalize_all_radio</property>
+ <property name="label" translatable="yes">Capitalize first
letter</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
upper-case the first letter of the tag when processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="capitalize_first_style_radio">
+ <property name="group">capitalize_all_radio</property>
+ <property name="label" translatable="yes">Capitalize the
first letter of each word</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
upper-case the first letter of each word when processing tag fields</property>
+ <property name="visible">True</property>
+ <signal name="toggled"
handler="Process_Fields_First_Letters_Check_Button_Toggled" swapped="yes"/>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="capitalize_roman_check">
+ <property name="label" translatable="yes">Detect Roman
numerals</property>
+ <property name="margin-left">24</property>
+ <property name="tooltip-text" translatable="yes">Whether to
detect Roman numerals when applying upper-case conversions while processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="capitalize_none_radio">
+ <property name="group">capitalize_all_radio</property>
+ <property name="label" translatable="yes">Do not change
capitalization</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes"></property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="spaces_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Spaces
Conversions</property>
+ <property name="visible">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="spaces_remove_radio">
+ <property name="label" translatable="yes">Remove
spaces</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
remove all spaces when processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="spaces_insert_radio">
+ <property name="group">spaces_remove_radio</property>
+ <property name="label" translatable="yes">Insert a space
before uppercase letters</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
insert spaces before capital letters when processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="spaces_insert_one_radio">
+ <property name="group">spaces_remove_radio</property>
+ <property name="label" translatable="yes">Remove duplicate
spaces and underscores</property>
+ <property name="margin-left">12</property>
+ <property name="tooltip-text" translatable="yes">Whether to
remove duplicate spaces and underscores when processing tag fields</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="spaces_none_radio">
+ <property name="group">spaces_remove_radio</property>
+ <property name="label" translatable="yes">Do not change word
separators</property>
+ <property name="margin-left">12</property>
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
</object>
</child>
<child>
- <object class="GtkToolButton" id="mask_copy_button">
- <property name="icon-name">edit-copy</property>
- <property name="tooltip-text" translatable="yes">Duplicate the
selected mask</property>
+ <object class="GtkLabel" id="convert_characters_label">
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Character
Conversions</property>
<property name="visible">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
</object>
</child>
<child>
- <object class="GtkToolButton" id="mask_add_button">
- <property name="icon-name">list-add</property>
- <property name="tooltip-text" translatable="yes">Add default
masks</property>
+ <object class="GtkRadioButton" id="convert_space_radio">
+ <property name="label" translatable="yes">Convert ‘_’ and ‘%20’ to
spaces</property>
+ <property name="margin-left">12</property>
+ <property name="name">spaces</property>
+ <property name="tooltip-text" translatable="yes">The underscore
character or the string ‘%20’ is replaced by one space. Example, before: ‘Text%20In%20An_Entry‘, after: ‘Text
In An Entry’</property>
<property name="visible">True</property>
</object>
</child>
<child>
- <object class="GtkToolButton" id="mask_remove_button">
- <property name="icon-name">list-remove</property>
- <property name="tooltip-text" translatable="yes">Remove the selected
mask</property>
+ <object class="GtkRadioButton" id="convert_underscores_radio">
+ <property name="group">convert_space_radio</property>
+ <property name="label" translatable="yes">Convert spaces to
underscores</property>
+ <property name="margin-left">12</property>
+ <property name="name">underscores</property>
+ <property name="tooltip-text" translatable="yes">The space character
is replaced by one underscore character. Example, before: ‘Text In An Entry’, after:
‘Text_In_An_Entry’</property>
<property name="visible">True</property>
</object>
</child>
<child>
- <object class="GtkToolButton" id="mask_save_button">
- <property name="icon-name">document-save</property>
- <property name="tooltip-text" translatable="yes">Save
masks</property>
+ <object class="GtkBox" id="convert_string_box">
+ <property name="margin-left">12</property>
+ <property name="orientation">horizontal</property>
+ <property name="spacing">6</property>
<property name="visible">True</property>
+ <child>
+ <object class="GtkRadioButton" id="convert_string_radio">
+ <property name="group">convert_space_radio</property>
+ <property name="label" translatable="yes">Convert:</property>
+ <property name="name">characters</property>
+ <property name="tooltip-text" translatable="yes">Replace a
string by another one. Note that the search is case sensitive</property>
+ <property name="visible">True</property>
+ <signal name="toggled"
handler="Process_Fields_Convert_Check_Button_Toggled" swapped="yes"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="convert_from_entry">
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="convert_to_label">
+ <!-- FIXME: translation context. -->
+ <property name="label" translatable="yes">to: </property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry" id="convert_to_entry">
+ <property name="visible">True</property>
+ </object>
+ </child>
</object>
</child>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="mask_entry">
- <property name="margin-left">12</property>
- <property name="margin-top">6</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkGrid" id="legend_grid">
- <property name="column-spacing">12</property>
- <property name="row-spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="legend_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">Legend</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- <property name="width">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="artist_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%a: artist</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="album_artist_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%a: album artist</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="album_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%b: album</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="comment_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%c: comment</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="composer_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%p: composer</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="copyright_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%r: copyright</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="disc_number_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%d: disc number</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="encoded_by_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%e: encoded by</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="genre_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%g: genre</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="ignored_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%i: ignored</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="number_of_tracks_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%l: number of tracks</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="orig_artist_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%o: original artist</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="track_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%n: track number</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="title_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%t: title</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="url_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%u: URL</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="number_of_discs_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%x: number of discs</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="year_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">%y: year</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">5</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="fill_tab_label">
- <property name="label" translatable="yes">Fill Tag</property>
- </object>
- </child>
- <child>
- <object class="GtkGrid" id="rename_grid">
- <property name="border-width">12</property>
- <property name="column-spacing">6</property>
- <property name="orientation">vertical</property>
- <property name="row-spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkBox" id="rename_box">
- <property name="orientation">horizontal</property>
- <property name="spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkButton" id="rename_prefix_button">
- <property name="tooltip-text" translatable="yes">Prefix mask with current
directory</property>
- <property name="visible">True</property>
<child>
- <object class="GtkImage" id="rename_prefix_image">
- <property name="icon-name">folder-new</property>
+ <object class="GtkRadioButton" id="convert_none_radio">
+ <property name="group">convert_space_radio</property>
+ <property name="label" translatable="yes">Do not convert</property>
+ <property name="margin-left">12</property>
+ <property name="name">no-change</property>
<property name="visible">True</property>
</object>
</child>
</object>
</child>
- <child>
- <object class="GtkComboBox" id="rename_combo">
- <property name="has-entry">True</property>
- <property name="model">rename_masks_model</property>
- <property name="entry-text-column">0</property>
- <property name="hexpand">True</property>
- <property name="tooltip-text" translatable="yes">Select or type in a mask
using codes (see Legend) to parse tag fields. Used to rename the file.
-Use ‘/’ to make directories. If the first character is ‘/’, it is an absolute path, otherwise it is relative
to the old path</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="rename_preview_label">
- <property name="label" translatable="yes">Rename file preview</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="rename_tab_label">
- <property name="label" translatable="yes">Rename File</property>
- </object>
- </child>
- <child>
- <object class="GtkGrid" id="process_grid">
- <property name="border-width">12</property>
- <property name="orientation">vertical</property>
- <property name="row-spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="tag_fields_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">Tag Fields</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkGrid" id="fill_tags_grid">
- <property name="column-spacing">12</property>
- <property name="margin-left">12</property>
- <property name="row-spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkCheckButton" id="process_filename_check">
- <property name="label" translatable="yes">Filename</property>
- <property name="name">filename</property>
- <property name="tooltip-text" translatable="yes">Process filename</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_title_check">
- <property name="label" translatable="yes">Title</property>
- <property name="name">title</property>
- <property name="tooltip-text" translatable="yes">Process title
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_artist_check">
- <property name="label" translatable="yes">Artist</property>
- <property name="name">artist</property>
- <property name="tooltip-text" translatable="yes">Process artist
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_album_artist_check">
- <property name="label" translatable="yes">Album Artist</property>
- <property name="name">album-artist</property>
- <property name="tooltip-text" translatable="yes">Process artist
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">3</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_album_check">
- <property name="label" translatable="yes">Album</property>
- <property name="name">album</property>
- <property name="tooltip-text" translatable="yes">Process album
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">4</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_genre_check">
- <property name="label" translatable="yes">Genre</property>
- <property name="name">genre</property>
- <property name="tooltip-text" translatable="yes">Process genre
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">5</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_comment_check">
- <property name="label" translatable="yes">Comment</property>
- <property name="name">comment</property>
- <property name="tooltip-text" translatable="yes">Process comment
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_composer_check">
- <property name="label" translatable="yes">Composer</property>
- <property name="name">composer</property>
- <property name="tooltip-text" translatable="yes">Process composer
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_orig_artist_check">
- <property name="label" translatable="yes">Orig. Artist</property>
- <property name="name">original-artist</property>
- <property name="tooltip-text" translatable="yes">Process original artist
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">2</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_copyright_check">
- <property name="label" translatable="yes">Copyright</property>
- <property name="name">copyright</property>
- <property name="tooltip-text" translatable="yes">Process copyright
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">3</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_url_check">
- <property name="label" translatable="yes">URL</property>
- <property name="name">url</property>
- <property name="tooltip-text" translatable="yes">Process URL field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">4</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="process_encoded_by_check">
- <property name="label" translatable="yes">Encoded By</property>
- <property name="name">encoded-by</property>
- <property name="tooltip-text" translatable="yes">Process encoded-by
field</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">5</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkGrid" id="capital_spaces_grid">
- <property name="column-spacing">12</property>
- <property name="row-spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkLabel" id="capitalization_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">Capitalization</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="capitalize_all_radio">
- <property name="label" translatable="yes">Capitalize all</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to upper-case all
characters of the tag when processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="capitalize_lower_radio">
- <property name="group">capitalize_all_radio</property>
- <property name="label" translatable="yes">Lowercase all</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to lower-case all
characters of the tag when processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="capitalize_first_radio">
- <property name="group">capitalize_all_radio</property>
- <property name="label" translatable="yes">Capitalize first letter</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to upper-case the
first letter of the tag when processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="capitalize_first_style_radio">
- <property name="group">capitalize_all_radio</property>
- <property name="label" translatable="yes">Capitalize the first letter of
each word</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to upper-case the
first letter of each word when processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="capitalize_roman_check">
- <property name="label" translatable="yes">Detect Roman numerals</property>
- <property name="margin-left">24</property>
- <property name="tooltip-text" translatable="yes">Whether to detect Roman
numerals when applying upper-case conversions while processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="capitalize_none_radio">
- <property name="group">capitalize_all_radio</property>
- <property name="label" translatable="yes">Do not change
capitalization</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes"></property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">0</property>
- <property name="top-attach">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="spaces_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">Spaces Conversions</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="spaces_remove_radio">
- <property name="label" translatable="yes">Remove spaces</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to remove all
spaces when processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="spaces_insert_radio">
- <property name="group">spaces_remove_radio</property>
- <property name="label" translatable="yes">Insert a space before uppercase
letters</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to insert spaces
before capital letters when processing tag fields</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkRadioButton" id="spaces_insert_one_radio">
- <property name="group">spaces_remove_radio</property>
- <property name="label" translatable="yes">Remove duplicate spaces and
underscores</property>
- <property name="margin-left">12</property>
- <property name="tooltip-text" translatable="yes">Whether to remove duplicate
spaces and underscores when processing tag fields</property>
- <property name="visible">True</property>
+ <child type="tab">
+ <object class="GtkLabel" id="process_tab_label">
+ <property name="label" translatable="yes">Process Fields</property>
</object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">3</property>
- </packing>
</child>
- <child>
- <object class="GtkRadioButton" id="spaces_none_radio">
- <property name="group">spaces_remove_radio</property>
- <property name="label" translatable="yes">Do not change word
separators</property>
- <property name="margin-left">12</property>
- <property name="visible">True</property>
- </object>
- <packing>
- <property name="left-attach">1</property>
- <property name="top-attach">4</property>
- </packing>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="convert_characters_label">
- <property name="halign">start</property>
- <property name="label" translatable="yes">Character Conversions</property>
- <property name="visible">True</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- </child>
- <child>
- <object class="GtkRadioButton" id="convert_space_radio">
- <property name="label" translatable="yes">Convert ‘_’ and ‘%20’ to spaces</property>
- <property name="margin-left">12</property>
- <property name="name">spaces</property>
- <property name="tooltip-text" translatable="yes">The underscore character or the
string ‘%20’ is replaced by one space. Example, before: ‘Text%20In%20An_Entry‘, after: ‘Text In An
Entry’</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkRadioButton" id="convert_underscores_radio">
- <property name="group">convert_space_radio</property>
- <property name="label" translatable="yes">Convert spaces to underscores</property>
- <property name="margin-left">12</property>
- <property name="name">underscores</property>
- <property name="tooltip-text" translatable="yes">The space character is replaced by
one underscore character. Example, before: ‘Text In An Entry’, after: ‘Text_In_An_Entry’</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkBox" id="convert_string_box">
- <property name="margin-left">12</property>
- <property name="orientation">horizontal</property>
- <property name="spacing">6</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkRadioButton" id="convert_string_radio">
- <property name="group">convert_space_radio</property>
- <property name="label" translatable="yes">Convert:</property>
- <property name="name">characters</property>
- <property name="tooltip-text" translatable="yes">Replace a string by another
one. Note that the search is case sensitive</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="convert_from_entry">
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkLabel" id="convert_to_label">
-<!-- FIXME: translation context. -->
- <property name="label" translatable="yes">to: </property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkEntry" id="convert_to_entry">
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkRadioButton" id="convert_none_radio">
- <property name="group">convert_space_radio</property>
- <property name="label" translatable="yes">Do not convert</property>
- <property name="margin-left">12</property>
- <property name="name">no-change</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="process_tab_label">
- <property name="label" translatable="yes">Process Fields</property>
- </object>
- </child>
- <child type="action-end">
- <object class="GtkBox" id="action_box">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkToggleButton" id="scanner_mask_toggle">
- <property name="tooltip-text" translatable="yes">Show / Hide Masks Editor</property>
- <property name="visible">True</property>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="scanner_legend_toggle">
- <property name="tooltip-text" translatable="yes">Show / Hide Legend</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage" id="scanner_legend_image">
- <property name="icon-name">help-faq</property>
- <property name="visible">True</property>
- </object>
- </child>
- </object>
- </child>
- <child>
- <object class="GtkButton" id="scanner_preferences_button">
- <property name="tooltip-text" translatable="yes">Scanner Preferences</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkImage" id="scanner_preferences_image">
- <property name="icon-name">preferences-other</property>
+ <child type="action-end">
+ <object class="GtkBox" id="action_box">
+ <property name="orientation">horizontal</property>
<property name="visible">True</property>
+ <child>
+ <object class="GtkToggleButton" id="mask_editor_toggle">
+ <property name="tooltip-text" translatable="yes">Show / Hide Masks
Editor</property>
+ <property name="visible">True</property>
+ <signal name="clicked" handler="Scan_Toggle_Mask_Editor_Button"
swapped="yes"/>
+ <child>
+ <object class="GtkImage" id="mask_toggle_image">
+ <property
name="resource">/org/gnome/EasyTAG/images/mask.png</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton" id="legend_toggle">
+ <property name="tooltip-text" translatable="yes">Show / Hide
Legend</property>
+ <property name="visible">True</property>
+ <signal name="clicked" handler="Scan_Toggle_Legend_Button"
swapped="yes"/>
+ <child>
+ <object class="GtkImage" id="scanner_legend_image">
+ <property name="icon-name">help-faq</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="scanner_preferences_button">
+ <property name="tooltip-text" translatable="yes">Scanner
Preferences</property>
+ <property name="visible">True</property>
+ <signal name="clicked" handler="Scan_Option_Button"/>
+ <child>
+ <object class="GtkImage" id="scanner_preferences_image">
+ <property name="icon-name">preferences-other</property>
+ <property name="visible">True</property>
+ </object>
+ </child>
+ </object>
+ </child>
</object>
</child>
</object>
</child>
</object>
</child>
- </object>
+ </template>
</interface>
diff --git a/src/scan_dialog.c b/src/scan_dialog.c
index 2025483..3234f05 100644
--- a/src/scan_dialog.c
+++ b/src/scan_dialog.c
@@ -1,5 +1,5 @@
/* EasyTAG - Tag editor for audio files
- * Copyright (C) 2014,2014 David King <amigadave amigadave com>
+ * Copyright (C) 2014-2015 David King <amigadave amigadave com>
* Copyright (C) 2000-2003 Jerome Couderc <easytag gmail com>
*
* This program is free software; you can redistribute it and/or modify
@@ -43,44 +43,57 @@
typedef struct
{
GtkListStore *rename_masks_model;
- GtkListStore *scan_tag_masks_model;
+ GtkListStore *fill_masks_model;
- GtkWidget *mask_editor_entry;
- GtkWidget *mask_editor_view;
+ GtkWidget *mask_entry;
+ GtkWidget *mask_view;
GtkWidget *notebook;
GtkWidget *fill_grid;
GtkWidget *rename_grid;
- GtkWidget *scan_tag_mask_combo;
- GtkWidget *rename_file_mask_combo;
+ GtkWidget *fill_combo;
+ GtkWidget *rename_combo;
- GtkWidget *legend_frame;
- GtkWidget *mask_editor_frame;
+ GtkWidget *legend_grid;
+ GtkWidget *editor_grid;
GtkWidget *legend_toggle;
GtkWidget *mask_editor_toggle;
- GtkWidget *process_convert_to_space_toggle;
- GtkWidget *process_convert_to_underscores_toggle;
- GtkWidget *process_convert_toggle;
- GtkWidget *process_convert_label;
-
- GtkWidget *process_all_uppercase_toggle;
- GtkWidget *process_all_lowercase_toggle;
- GtkWidget *process_first_uppercase_toggle;
- GtkWidget *process_first_style_uppercase_toggle;
- GtkWidget *process_roman_numerals_check;
-
- GtkWidget *process_remove_space_toggle;
- GtkWidget *process_insert_space_toggle;
- GtkWidget *process_insert_one_space_toggle;
-
- GtkWidget *process_convert_to_entry;
- GtkWidget *process_convert_from_entry;
-
- GtkWidget *fill_tag_preview_label;
- GtkWidget *rename_file_preview_label;
+ GtkWidget *process_filename_check;
+ GtkWidget *process_title_check;
+ GtkWidget *process_artist_check;
+ GtkWidget *process_album_artist_check;
+ GtkWidget *process_album_check;
+ GtkWidget *process_genre_check;
+ GtkWidget *process_comment_check;
+ GtkWidget *process_composer_check;
+ GtkWidget *process_orig_artist_check;
+ GtkWidget *process_copyright_check;
+ GtkWidget *process_url_check;
+ GtkWidget *process_encoded_by_check;
+
+ GtkWidget *convert_space_radio;
+ GtkWidget *convert_underscores_radio;
+ GtkWidget *convert_string_radio;
+ GtkWidget *convert_none_radio;
+ GtkWidget *convert_to_entry;
+ GtkWidget *convert_from_entry;
+ GtkWidget *convert_to_label;
+
+ GtkWidget *capitalize_all_radio;
+ GtkWidget *capitalize_lower_radio;
+ GtkWidget *capitalize_first_radio;
+ GtkWidget *capitalize_first_style_radio;
+ GtkWidget *capitalize_roman_check;
+
+ GtkWidget *spaces_remove_radio;
+ GtkWidget *spaces_insert_radio;
+ GtkWidget *spaces_insert_one_radio;
+
+ GtkWidget *fill_preview_label;
+ GtkWidget *rename_preview_label;
} EtScanDialogPrivate;
G_DEFINE_TYPE_WITH_PRIVATE (EtScanDialog, et_scan_dialog, GTK_TYPE_DIALOG)
@@ -337,7 +350,7 @@ Scan_Tag_With_Mask (EtScanDialog *self, ET_File *ETFile)
priv = et_scan_dialog_get_instance_private (self);
- mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->scan_tag_mask_combo)))));
+ mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->fill_combo)))));
if (!mask) return;
// Create a new File_Tag item
@@ -636,7 +649,7 @@ Scan_Fill_Tag_Generate_Preview (EtScanDialog *self)
|| gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) != ET_SCAN_MODE_FILL_TAG)
return;
- mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->scan_tag_mask_combo)))));
+ mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->fill_combo)))));
if (!mask)
return;
@@ -662,15 +675,15 @@ Scan_Fill_Tag_Generate_Preview (EtScanDialog *self)
Scan_Free_File_Fill_Tag_List(fill_tag_list);
- if (GTK_IS_LABEL(priv->fill_tag_preview_label))
+ if (GTK_IS_LABEL(priv->fill_preview_label))
{
if (preview_text)
{
- //gtk_label_set_text(GTK_LABEL(priv->fill_tag_preview_label),preview_text);
- gtk_label_set_markup(GTK_LABEL(priv->fill_tag_preview_label),preview_text);
+ //gtk_label_set_text(GTK_LABEL(priv->fill_preview_label),preview_text);
+ gtk_label_set_markup(GTK_LABEL(priv->fill_preview_label),preview_text);
} else
{
- gtk_label_set_text(GTK_LABEL(priv->fill_tag_preview_label),"");
+ gtk_label_set_text(GTK_LABEL(priv->fill_preview_label),"");
}
/* Force the window to be redrawn. */
@@ -691,32 +704,32 @@ Scan_Rename_File_Generate_Preview (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
if (!ETCore->ETFileDisplayed
- || !priv->rename_file_mask_combo || !priv->rename_file_preview_label)
+ || !priv->rename_combo || !priv->rename_preview_label)
return;
if (gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) != ET_SCAN_MODE_RENAME_FILE)
return;
- mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->rename_file_mask_combo)))));
+ mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->rename_combo)))));
if (!mask)
return;
preview_text = et_scan_generate_new_filename_from_mask (ETCore->ETFileDisplayed,
mask, FALSE);
- if (GTK_IS_LABEL(priv->rename_file_preview_label))
+ if (GTK_IS_LABEL(priv->rename_preview_label))
{
if (preview_text)
{
- //gtk_label_set_text(GTK_LABEL(priv->rename_file_preview_label),preview_text);
+ //gtk_label_set_text(GTK_LABEL(priv->rename_preview_label),preview_text);
gchar *tmp_string = g_markup_printf_escaped("%s",preview_text); // To avoid problem with strings
containing characters like '&'
gchar *str = g_strdup_printf("<i>%s</i>",tmp_string);
- gtk_label_set_markup(GTK_LABEL(priv->rename_file_preview_label),str);
+ gtk_label_set_markup(GTK_LABEL(priv->rename_preview_label),str);
g_free(tmp_string);
g_free(str);
} else
{
- gtk_label_set_text(GTK_LABEL(priv->rename_file_preview_label),"");
+ gtk_label_set_text(GTK_LABEL(priv->rename_preview_label),"");
}
/* Force the window to be redrawn. */
@@ -780,7 +793,7 @@ Scan_Rename_File_With_Mask (EtScanDialog *self, ET_File *ETFile)
priv = et_scan_dialog_get_instance_private (self);
- mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->rename_file_mask_combo)))));
+ mask = g_strdup(gtk_entry_get_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(priv->rename_combo)))));
if (!mask) return;
// Note : if the first character is '/', we have a path with the filename,
@@ -1120,7 +1133,7 @@ Scan_Rename_File_Prefix_Path (EtScanDialog *self)
path_utf8_cur = g_path_get_dirname(filename_utf8_cur);
/* The current text in the combobox. */
- combo_text = gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (priv->rename_file_mask_combo))));
+ combo_text = gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (priv->rename_combo))));
// If the path already exists we don't add it again
// Use g_utf8_collate_key instead of strncmp
@@ -1135,7 +1148,7 @@ Scan_Rename_File_Prefix_Path (EtScanDialog *self)
path_tmp = g_strconcat(path_utf8_cur,G_DIR_SEPARATOR_S,NULL);
}
pos = 0;
-
gtk_editable_insert_text(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(priv->rename_file_mask_combo))),path_tmp, -1,
&pos);
+ gtk_editable_insert_text(GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(priv->rename_combo))),path_tmp, -1,
&pos);
g_free(path_tmp);
}
@@ -1169,9 +1182,9 @@ Scan_Convert_Character (EtScanDialog *self, gchar **string)
priv = et_scan_dialog_get_instance_private (self);
- from = gtk_editable_get_chars (GTK_EDITABLE (priv->process_convert_from_entry), 0,
+ from = gtk_editable_get_chars (GTK_EDITABLE (priv->convert_from_entry), 0,
-1);
- to = gtk_editable_get_chars (GTK_EDITABLE (priv->process_convert_to_entry), 0, -1);
+ to = gtk_editable_get_chars (GTK_EDITABLE (priv->convert_to_entry), 0, -1);
regex = g_regex_new (from, 0, 0, ®ex_error);
if (regex_error != NULL)
@@ -1236,7 +1249,7 @@ Scan_Process_Fields_Functions (EtScanDialog *self, gchar **string)
}
/* FIXME: Use GSettings keys instead of toggle buton states. */
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_insert_space_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->spaces_insert_radio)))
{
gchar *res;
res = Scan_Process_Fields_Insert_Space (*string);
@@ -1244,10 +1257,10 @@ Scan_Process_Fields_Functions (EtScanDialog *self, gchar **string)
*string = res;
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_insert_one_space_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->spaces_insert_one_radio)))
Scan_Process_Fields_Keep_One_Space(*string);
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_all_uppercase_toggle)))
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->capitalize_all_radio)))
{
gchar *res;
res = Scan_Process_Fields_All_Uppercase (*string);
@@ -1255,7 +1268,7 @@ Scan_Process_Fields_Functions (EtScanDialog *self, gchar **string)
*string = res;
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_all_lowercase_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->capitalize_lower_radio)))
{
gchar *res;
res = Scan_Process_Fields_All_Downcase (*string);
@@ -1263,7 +1276,7 @@ Scan_Process_Fields_Functions (EtScanDialog *self, gchar **string)
*string = res;
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_first_uppercase_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->capitalize_first_radio)))
{
gchar *res;
res = Scan_Process_Fields_Letter_Uppercase (*string);
@@ -1271,7 +1284,7 @@ Scan_Process_Fields_Functions (EtScanDialog *self, gchar **string)
*string = res;
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_first_style_uppercase_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->capitalize_first_style_radio)))
{
gboolean uppercase_preps;
gboolean handle_roman;
@@ -1284,7 +1297,7 @@ Scan_Process_Fields_Functions (EtScanDialog *self, gchar **string)
handle_roman);
}
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_remove_space_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->spaces_remove_radio)))
Scan_Process_Fields_Remove_Space(*string);
}
@@ -1584,7 +1597,7 @@ on_scan_mode_changed (EtScanDialog *self,
case ET_SCAN_MODE_FILL_TAG:
gtk_widget_show(priv->mask_editor_toggle);
gtk_widget_show(priv->legend_toggle);
- gtk_tree_view_set_model(GTK_TREE_VIEW(priv->mask_editor_view),
GTK_TREE_MODEL(priv->scan_tag_masks_model));
+ gtk_tree_view_set_model(GTK_TREE_VIEW(priv->mask_view), GTK_TREE_MODEL(priv->fill_masks_model));
Scan_Fill_Tag_Generate_Preview (self);
g_signal_emit_by_name(G_OBJECT(priv->legend_toggle),"toggled"); /* To hide or show legend
frame */
g_signal_emit_by_name(G_OBJECT(priv->mask_editor_toggle),"toggled"); /* To hide or show mask
editor frame */
@@ -1593,7 +1606,7 @@ on_scan_mode_changed (EtScanDialog *self,
case ET_SCAN_MODE_RENAME_FILE:
gtk_widget_show(priv->mask_editor_toggle);
gtk_widget_show(priv->legend_toggle);
- gtk_tree_view_set_model(GTK_TREE_VIEW(priv->mask_editor_view),
GTK_TREE_MODEL(priv->rename_masks_model));
+ gtk_tree_view_set_model(GTK_TREE_VIEW(priv->mask_view),
GTK_TREE_MODEL(priv->rename_masks_model));
Scan_Rename_File_Generate_Preview (self);
g_signal_emit_by_name(G_OBJECT(priv->legend_toggle),"toggled"); /* To hide or show legend
frame */
g_signal_emit_by_name(G_OBJECT(priv->mask_editor_toggle),"toggled"); /* To hide or show mask
editor frame */
@@ -1603,10 +1616,10 @@ on_scan_mode_changed (EtScanDialog *self,
gtk_widget_hide(priv->mask_editor_toggle);
gtk_widget_hide(priv->legend_toggle);
// Hide directly the frames to don't change state of the buttons!
- gtk_widget_hide(priv->legend_frame);
- gtk_widget_hide(priv->mask_editor_frame);
+ gtk_widget_hide(priv->legend_grid);
+ gtk_widget_hide(priv->editor_grid);
- gtk_tree_view_set_model(GTK_TREE_VIEW(priv->mask_editor_view), NULL);
+ gtk_tree_view_set_model(GTK_TREE_VIEW(priv->mask_view), NULL);
break;
default:
g_assert_not_reached ();
@@ -1618,34 +1631,34 @@ on_scan_mode_changed (EtScanDialog *self,
{
GtkWidget *parent;
- parent = gtk_widget_get_parent (priv->mask_editor_frame);
+ parent = gtk_widget_get_parent (priv->editor_grid);
if ((mode == ET_SCAN_MODE_RENAME_FILE && parent != priv->rename_grid)
|| (mode == ET_SCAN_MODE_FILL_TAG && parent != priv->fill_grid))
{
- g_object_ref (priv->mask_editor_frame);
- g_object_ref (priv->legend_frame);
+ g_object_ref (priv->editor_grid);
+ g_object_ref (priv->legend_grid);
gtk_container_remove (GTK_CONTAINER (parent),
- priv->mask_editor_frame);
- gtk_container_remove (GTK_CONTAINER (parent), priv->legend_frame);
+ priv->editor_grid);
+ gtk_container_remove (GTK_CONTAINER (parent), priv->legend_grid);
if (mode == ET_SCAN_MODE_RENAME_FILE)
{
gtk_container_add (GTK_CONTAINER (priv->rename_grid),
- priv->mask_editor_frame);
+ priv->editor_grid);
gtk_container_add (GTK_CONTAINER (priv->rename_grid),
- priv->legend_frame);
+ priv->legend_grid);
}
else
{
gtk_container_add (GTK_CONTAINER (priv->fill_grid),
- priv->mask_editor_frame);
+ priv->editor_grid);
gtk_container_add (GTK_CONTAINER (priv->fill_grid),
- priv->legend_frame);
+ priv->legend_grid);
}
- g_object_unref (priv->mask_editor_frame);
- g_object_unref (priv->legend_frame);
+ g_object_unref (priv->editor_grid);
+ g_object_unref (priv->legend_grid);
}
}
}
@@ -1660,7 +1673,7 @@ Mask_Editor_List_Add (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
if (gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) != ET_SCAN_MODE_FILL_TAG)
{
@@ -1704,7 +1717,7 @@ Mask_Editor_Clean_Up_Masks_List (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
/* Remove blank and duplicate items */
if (gtk_tree_model_get_iter_first(treemodel, ¤tIter))
@@ -1763,7 +1776,7 @@ Mask_Editor_Clean_Up_Masks_List (EtScanDialog *self)
* Save the currently displayed mask list in the mask editor
*/
static void
-Mask_Editor_List_Save_Button (EtScanDialog *self)
+Mask_Editor_List_Save (EtScanDialog *self)
{
EtScanDialogPrivate *priv;
@@ -1773,7 +1786,7 @@ Mask_Editor_List_Save_Button (EtScanDialog *self)
if (gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) == ET_SCAN_MODE_FILL_TAG)
{
- Save_Scan_Tag_Masks_List(priv->scan_tag_masks_model, MASK_EDITOR_TEXT);
+ Save_Scan_Tag_Masks_List(priv->fill_masks_model, MASK_EDITOR_TEXT);
}
else if (gtk_notebook_get_current_page (GTK_NOTEBOOK (priv->notebook)) == ET_SCAN_MODE_RENAME_FILE)
{
@@ -1788,8 +1801,8 @@ Process_Fields_First_Letters_Check_Button_Toggled (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- gtk_widget_set_sensitive (GTK_WIDGET (priv->process_roman_numerals_check),
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(priv->process_first_style_uppercase_toggle)));
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->capitalize_roman_check),
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(priv->capitalize_first_style_radio)));
}
/*
@@ -1806,40 +1819,40 @@ on_process_fields_changed (EtScanDialog *self,
if (g_settings_get_flags (settings, key) != 0)
{
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_to_space_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_to_underscores_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_label), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_space_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_underscores_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_string_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_to_label), TRUE);
// Activate the two entries only if the check box is activated, else keep them disabled
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->process_convert_toggle)))
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->convert_string_radio)))
{
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_to_entry), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_from_entry), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_to_entry), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_from_entry), TRUE);
}
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_all_uppercase_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_all_lowercase_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_first_uppercase_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_first_style_uppercase_toggle),TRUE);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->capitalize_all_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_lower_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_first_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_first_style_radio),TRUE);
Process_Fields_First_Letters_Check_Button_Toggled (self);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_remove_space_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_insert_space_toggle), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_insert_one_space_toggle), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->spaces_remove_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->spaces_insert_radio), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->spaces_insert_one_radio), TRUE);
}else
{
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_to_space_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_to_underscores_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_to_entry), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_label), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_convert_from_entry), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_all_uppercase_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_all_lowercase_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_first_uppercase_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_first_style_uppercase_toggle),FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_roman_numerals_check), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_remove_space_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_insert_space_toggle), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(priv->process_insert_one_space_toggle), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_space_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_underscores_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_string_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_to_entry), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_to_label), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->convert_from_entry), FALSE);
+ gtk_widget_set_sensitive (GTK_WIDGET (priv->capitalize_all_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_lower_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_first_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_first_style_radio),FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->capitalize_roman_check), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->spaces_remove_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->spaces_insert_radio), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(priv->spaces_insert_one_radio), FALSE);
}
}
@@ -1852,11 +1865,11 @@ Scan_Toggle_Legend_Button (EtScanDialog *self)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->legend_toggle)))
{
- gtk_widget_show_all (priv->legend_frame);
+ gtk_widget_show_all (priv->legend_grid);
}
else
{
- gtk_widget_hide (priv->legend_frame);
+ gtk_widget_hide (priv->legend_grid);
}
}
@@ -1872,22 +1885,22 @@ Scan_Toggle_Mask_Editor_Button (EtScanDialog *self)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->mask_editor_toggle)))
{
- gtk_widget_show_all(priv->mask_editor_frame);
+ gtk_widget_show_all(priv->editor_grid);
// Select first row in list
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
if (gtk_tree_model_get_iter_first(treemodel, &iter))
{
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
gtk_tree_selection_unselect_all(selection);
gtk_tree_selection_select_iter(selection, &iter);
}
// Update status of the icon box cause prev instruction show it for all cases
- g_signal_emit_by_name(G_OBJECT(priv->mask_editor_entry),"changed");
+ g_signal_emit_by_name(G_OBJECT(priv->mask_entry),"changed");
}else
{
- gtk_widget_hide(priv->mask_editor_frame);
+ gtk_widget_hide(priv->editor_grid);
}
}
@@ -1907,8 +1920,8 @@ Mask_Editor_Entry_Changed (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
selectedRows = gtk_tree_selection_get_selected_rows(selection, NULL);
if (!selectedRows)
@@ -1917,7 +1930,7 @@ Mask_Editor_Entry_Changed (EtScanDialog *self)
}
firstSelected = (GtkTreePath *)g_list_first(selectedRows)->data;
- text = gtk_entry_get_text(GTK_ENTRY(priv->mask_editor_entry));
+ text = gtk_entry_get_text(GTK_ENTRY(priv->mask_entry));
if (gtk_tree_model_get_iter (treemodel, &row, firstSelected))
{
@@ -1944,10 +1957,10 @@ Mask_Editor_List_Row_Selected (GtkTreeSelection* selection, EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
/* We must block the function, else the previous selected row will be modified */
- g_signal_handlers_block_by_func(G_OBJECT(priv->mask_editor_entry),
+ g_signal_handlers_block_by_func(G_OBJECT(priv->mask_entry),
G_CALLBACK(Mask_Editor_Entry_Changed),NULL);
selectedRows = gtk_tree_selection_get_selected_rows(selection, NULL);
@@ -1957,7 +1970,7 @@ Mask_Editor_List_Row_Selected (GtkTreeSelection* selection, EtScanDialog *self)
*/
if (!selectedRows)
{
- g_signal_handlers_unblock_by_func(G_OBJECT(priv->mask_editor_entry),
+ g_signal_handlers_unblock_by_func(G_OBJECT(priv->mask_entry),
G_CALLBACK(Mask_Editor_Entry_Changed),NULL);
return;
}
@@ -1972,12 +1985,12 @@ Mask_Editor_List_Row_Selected (GtkTreeSelection* selection, EtScanDialog *self)
if (text)
{
- gtk_entry_set_text(GTK_ENTRY(priv->mask_editor_entry),text);
+ gtk_entry_set_text(GTK_ENTRY(priv->mask_entry),text);
g_free(text);
}
}
- g_signal_handlers_unblock_by_func(G_OBJECT(priv->mask_editor_entry),
+ g_signal_handlers_unblock_by_func(G_OBJECT(priv->mask_entry),
G_CALLBACK(Mask_Editor_Entry_Changed),NULL);
g_list_free_full (selectedRows, (GDestroyNotify)gtk_tree_path_free);
@@ -1996,8 +2009,8 @@ Mask_Editor_List_Remove (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
if (gtk_tree_selection_count_selected_rows(selection) == 0) {
g_critical ("%s", "Remove: No row selected");
@@ -2067,8 +2080,8 @@ Mask_Editor_List_New (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
text = _("New_mask");
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
gtk_list_store_insert(GTK_LIST_STORE(treemodel), &iter, 0);
gtk_list_store_set(GTK_LIST_STORE(treemodel), &iter, MASK_EDITOR_TEXT, text, -1);
@@ -2094,8 +2107,8 @@ Mask_Editor_List_Move_Up (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
selectedRows = gtk_tree_selection_get_selected_rows(selection, NULL);
if (!selectedRows)
@@ -2139,8 +2152,8 @@ Mask_Editor_List_Move_Down (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
- treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
+ treemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
selectedRows = gtk_tree_selection_get_selected_rows(selection, NULL);
if (!selectedRows)
@@ -2204,9 +2217,9 @@ Mask_Editor_List_Duplicate (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
- selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_editor_view));
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->mask_view));
selectedRows = gtk_tree_selection_get_selected_rows(selection, NULL);
- treeModel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_editor_view));
+ treeModel = gtk_tree_view_get_model(GTK_TREE_VIEW(priv->mask_view));
if (!selectedRows)
{
@@ -2237,7 +2250,7 @@ Mask_Editor_List_Duplicate (EtScanDialog *self)
/* Set focus to the last inserted line. */
if (toInsert)
{
- Mask_Editor_List_Set_Row_Visible (GTK_TREE_VIEW (priv->mask_editor_view),
+ Mask_Editor_List_Set_Row_Visible (GTK_TREE_VIEW (priv->mask_view),
treeModel, &rowIter);
}
@@ -2253,10 +2266,10 @@ Process_Fields_Convert_Check_Button_Toggled (EtScanDialog *self, GtkWidget *obje
priv = et_scan_dialog_get_instance_private (self);
- gtk_widget_set_sensitive (priv->process_convert_to_entry,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(priv->process_convert_toggle)));
- gtk_widget_set_sensitive (priv->process_convert_from_entry,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON
(priv->process_convert_toggle)));
+ gtk_widget_set_sensitive (priv->convert_to_entry,
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->convert_string_radio)));
+ gtk_widget_set_sensitive (priv->convert_from_entry,
+ gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->convert_string_radio)));
}
/* Make sure that the Show Scanner toggle action is updated. */
@@ -2269,22 +2282,25 @@ et_scan_on_hide (GtkWidget *widget,
}
static void
+init_process_field_check (GtkWidget *widget)
+{
+ g_object_set_data (G_OBJECT (widget), "flags-type",
+ GSIZE_TO_POINTER (ET_TYPE_PROCESS_FIELD));
+ g_settings_bind_with_mapping (MainSettings, "process-fields", widget,
+ "active", G_SETTINGS_BIND_DEFAULT,
+ et_settings_flags_toggle_get,
+ et_settings_flags_toggle_set, widget, NULL);
+}
+
+static void
create_scan_dialog (EtScanDialog *self)
{
EtScanDialogPrivate *priv;
GtkWidget *scan_button;
- GtkWidget *ScanVBox;
- GtkWidget *button;
- GtkWidget *icon;
- GtkWidget *process_fields_convert_none;
- GtkBuilder *builder;
- GError *error = NULL;
priv = et_scan_dialog_get_instance_private (self);
/* The window */
- gtk_window_set_title (GTK_WINDOW (self), _("Tag and Filename Scan"));
- gtk_window_set_destroy_with_parent (GTK_WINDOW (self), TRUE);
gtk_dialog_add_buttons (GTK_DIALOG (self), _("_Close"),
GTK_RESPONSE_CLOSE, NULL);
@@ -2297,35 +2313,6 @@ create_scan_dialog (EtScanDialog *self)
gtk_widget_show (scan_button);
gtk_widget_set_tooltip_text (scan_button, _("Scan selected files"));
- /* The response signal handles close, scan and the delete event. */
- g_signal_connect (self, "response", G_CALLBACK (et_scan_on_response),
- NULL);
- g_signal_connect (self, "delete-event",
- G_CALLBACK (gtk_widget_hide_on_delete), NULL);
- g_signal_connect (self, "hide", G_CALLBACK (et_scan_on_hide), NULL);
-
- /* The main vbox */
- ScanVBox = gtk_dialog_get_content_area (GTK_DIALOG (self));
- gtk_container_set_border_width (GTK_CONTAINER (self), 6);
- gtk_box_set_spacing (GTK_BOX (ScanVBox), 12);
-
- /*
- * The hbox for mode buttons + buttons + what to scan
- */
- builder = gtk_builder_new ();
- gtk_builder_add_from_resource (builder,
- "/org/gnome/EasyTAG/scan_dialog.ui",
- &error);
-
- if (error != NULL)
- {
- g_error ("Unable to get scanner dialog from resource: %s",
- error->message);
- }
-
- priv->notebook = GTK_WIDGET (gtk_builder_get_object (builder,
- "scan_notebook"));
- gtk_container_add (GTK_CONTAINER (ScanVBox), priv->notebook);
g_settings_bind_with_mapping (MainSettings, "scan-mode", priv->notebook,
"page", G_SETTINGS_BIND_DEFAULT,
et_settings_enum_get, et_settings_enum_set,
@@ -2334,89 +2321,38 @@ create_scan_dialog (EtScanDialog *self)
G_CALLBACK (on_scan_mode_changed),
self);
- priv->fill_grid = GTK_WIDGET (gtk_builder_get_object (builder,
- "fill_grid"));
- priv->rename_grid = GTK_WIDGET (gtk_builder_get_object (builder,
- "rename_grid"));
-
- /* Options button */
- button = GTK_WIDGET (gtk_builder_get_object (builder,
- "scanner_preferences_button"));
- g_signal_connect (button, "clicked", G_CALLBACK (Scan_Option_Button),
- NULL);
-
/* Mask Editor button */
- priv->mask_editor_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "scanner_mask_toggle"));
- icon = gtk_image_new_from_resource ("/org/gnome/EasyTAG/images/mask.png");
- gtk_button_set_image (GTK_BUTTON (priv->mask_editor_toggle), icon);
g_settings_bind (MainSettings, "scan-mask-editor-show",
priv->mask_editor_toggle, "active",
G_SETTINGS_BIND_DEFAULT);
- g_signal_connect_swapped (priv->mask_editor_toggle, "toggled",
- G_CALLBACK (Scan_Toggle_Mask_Editor_Button),
- self);
- /* Legend button */
- priv->legend_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "scanner_legend_toggle"));
g_settings_bind (MainSettings, "scan-legend-show", priv->legend_toggle,
"active", G_SETTINGS_BIND_DEFAULT);
- g_signal_connect_swapped (priv->legend_toggle, "toggled",
- G_CALLBACK (Scan_Toggle_Legend_Button),
- self);
-
- /* Frame for Scan Tag. */
- /* Set up list model which is used both by the combobox and the editor. */
- priv->scan_tag_masks_model = GTK_LIST_STORE (gtk_builder_get_object (builder,
- "fill_masks_model"));
-
- /* The combo box to select the mask to apply. */
- priv->scan_tag_mask_combo = GTK_WIDGET (gtk_builder_get_object (builder,
- "fill_combo"));
/* Signal to generate preview (preview of the new tag values). */
- g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (priv->scan_tag_mask_combo)),
+ g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (priv->fill_combo)),
"changed",
G_CALLBACK (Scan_Fill_Tag_Generate_Preview),
self);
/* Load masks into the combobox from a file. */
- Load_Scan_Tag_Masks_List (priv->scan_tag_masks_model, MASK_EDITOR_TEXT,
+ Load_Scan_Tag_Masks_List (priv->fill_masks_model, MASK_EDITOR_TEXT,
Scan_Masks);
g_settings_bind (MainSettings, "scan-tag-default-mask",
- gtk_bin_get_child (GTK_BIN (priv->scan_tag_mask_combo)),
+ gtk_bin_get_child (GTK_BIN (priv->fill_combo)),
"text", G_SETTINGS_BIND_DEFAULT);
- Add_String_To_Combo_List (priv->scan_tag_masks_model,
- gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->scan_tag_mask_combo)))));
+ Add_String_To_Combo_List (priv->fill_masks_model,
+ gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->fill_combo)))));
/* Mask status icon. Signal connection to check if mask is correct in the
* mask entry. */
- g_signal_connect (gtk_bin_get_child (GTK_BIN (priv->scan_tag_mask_combo)),
+ g_signal_connect (gtk_bin_get_child (GTK_BIN (priv->fill_combo)),
"changed", G_CALLBACK (entry_check_scan_tag_mask),
NULL);
- /* Preview label. */
- priv->fill_tag_preview_label = GTK_WIDGET (gtk_builder_get_object (builder,
- "fill_preview_label"));
-
/* Frame for Rename File. */
- /* Button to prefix path. */
- button = GTK_WIDGET (gtk_builder_get_object (builder,
- "rename_prefix_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Scan_Rename_File_Prefix_Path), self);
-
- /* Set up list model which is used both by the combobox and the editor. */
- priv->rename_masks_model = GTK_LIST_STORE (gtk_builder_get_object (builder,
- "rename_masks_model"));
-
- /* The combo box to select the mask to apply. */
- priv->rename_file_mask_combo = GTK_WIDGET (gtk_builder_get_object (builder,
- "rename_combo"));
-
/* Signal to generate preview (preview of the new filename). */
- g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (priv->rename_file_mask_combo)),
+ g_signal_connect_swapped (gtk_bin_get_child (GTK_BIN (priv->rename_combo)),
"changed",
G_CALLBACK (Scan_Rename_File_Generate_Preview),
self);
@@ -2425,245 +2361,108 @@ create_scan_dialog (EtScanDialog *self)
Load_Rename_File_Masks_List (priv->rename_masks_model, MASK_EDITOR_TEXT,
Rename_File_Masks);
g_settings_bind (MainSettings, "rename-file-default-mask",
- gtk_bin_get_child (GTK_BIN (priv->rename_file_mask_combo)),
+ gtk_bin_get_child (GTK_BIN (priv->rename_combo)),
"text", G_SETTINGS_BIND_DEFAULT);
Add_String_To_Combo_List (priv->rename_masks_model,
- gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->rename_file_mask_combo)))));
+ gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->rename_combo)))));
/* Mask status icon. Signal connection to check if mask is correct to the
* mask entry. */
- g_signal_connect (gtk_bin_get_child (GTK_BIN (priv->rename_file_mask_combo)),
+ g_signal_connect (gtk_bin_get_child (GTK_BIN (priv->rename_combo)),
"changed", G_CALLBACK (entry_check_rename_file_mask),
NULL);
- /* Preview label */
- priv->rename_file_preview_label = GTK_WIDGET (gtk_builder_get_object (builder,
- "rename_preview_label"));
-
- /* Frame for Processing Fields. */
/* Group: select entry fields to process */
- {
- gsize i;
- static const struct
- {
- const gchar *id;
- } ids[] =
- {
- { "process_filename_check" },
- { "process_title_check" },
- { "process_artist_check" },
- { "process_album_artist_check" },
- { "process_album_check" },
- { "process_genre_check" },
- { "process_comment_check" },
- { "process_composer_check" },
- { "process_orig_artist_check" },
- { "process_copyright_check" },
- { "process_url_check" },
- { "process_encoded_by_check" }
- };
-
- for (i = 0; i < G_N_ELEMENTS (ids); i++)
- {
- GtkWidget *widget;
-
- widget = GTK_WIDGET (gtk_builder_get_object (builder, ids[i].id));
- g_object_set_data (G_OBJECT (widget), "flags-type",
- GSIZE_TO_POINTER (ET_TYPE_PROCESS_FIELD));
- g_settings_bind_with_mapping (MainSettings, "process-fields",
- widget, "active",
- G_SETTINGS_BIND_DEFAULT,
- et_settings_flags_toggle_get,
- et_settings_flags_toggle_set, widget,
- NULL);
- }
- }
+ init_process_field_check (priv->process_filename_check);
+ init_process_field_check (priv->process_title_check);
+ init_process_field_check (priv->process_artist_check);
+ init_process_field_check (priv->process_album_artist_check);
+ init_process_field_check (priv->process_album_check);
+ init_process_field_check (priv->process_genre_check);
+ init_process_field_check (priv->process_comment_check);
+ init_process_field_check (priv->process_composer_check);
+ init_process_field_check (priv->process_orig_artist_check);
+ init_process_field_check (priv->process_copyright_check);
+ init_process_field_check (priv->process_url_check);
+ init_process_field_check (priv->process_encoded_by_check);
g_signal_connect_swapped (MainSettings, "changed::process-fields",
G_CALLBACK (on_process_fields_changed), self);
/* Group: character conversion */
- priv->process_convert_to_space_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
"convert_space_radio"));
- priv->process_convert_to_underscores_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
"convert_underscores_radio"));
- priv->process_convert_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "convert_string_radio"));
- priv->process_convert_from_entry = GTK_WIDGET (gtk_builder_get_object (builder,
- "convert_from_entry"));
- priv->process_convert_to_entry = GTK_WIDGET (gtk_builder_get_object (builder,
- "convert_to_entry"));
- priv->process_convert_label = GTK_WIDGET (gtk_builder_get_object (builder,
- "convert_to_label"));
- process_fields_convert_none = GTK_WIDGET (gtk_builder_get_object (builder,
- "convert_none_radio"));
-
- /* Toggled signals */
- g_signal_connect_swapped (priv->process_convert_toggle, "toggled",
- G_CALLBACK (Process_Fields_Convert_Check_Button_Toggled),
- self);
- /* Set check buttons to init value */
g_settings_bind_with_mapping (MainSettings, "process-convert",
- priv->process_convert_to_space_toggle,
- "active", G_SETTINGS_BIND_DEFAULT,
+ priv->convert_space_radio, "active",
+ G_SETTINGS_BIND_DEFAULT,
et_settings_enum_radio_get,
et_settings_enum_radio_set,
- priv->process_convert_to_space_toggle, NULL);
+ priv->convert_space_radio, NULL);
g_settings_bind_with_mapping (MainSettings, "process-convert",
- priv->process_convert_to_underscores_toggle,
- "active", G_SETTINGS_BIND_DEFAULT,
+ priv->convert_underscores_radio, "active",
+ G_SETTINGS_BIND_DEFAULT,
et_settings_enum_radio_get,
et_settings_enum_radio_set,
- priv->process_convert_to_underscores_toggle,
- NULL);
+ priv->convert_underscores_radio, NULL);
g_settings_bind_with_mapping (MainSettings, "process-convert",
- priv->process_convert_toggle,
- "active", G_SETTINGS_BIND_DEFAULT,
+ priv->convert_string_radio, "active",
+ G_SETTINGS_BIND_DEFAULT,
et_settings_enum_radio_get,
et_settings_enum_radio_set,
- priv->process_convert_toggle, NULL);
+ priv->convert_string_radio, NULL);
g_settings_bind_with_mapping (MainSettings, "process-convert",
- process_fields_convert_none,
- "active", G_SETTINGS_BIND_DEFAULT,
+ priv->convert_none_radio, "active",
+ G_SETTINGS_BIND_DEFAULT,
et_settings_enum_radio_get,
et_settings_enum_radio_set,
- process_fields_convert_none, NULL);
+ priv->convert_none_radio, NULL);
g_settings_bind (MainSettings, "process-convert-characters-from",
- priv->process_convert_from_entry, "text",
+ priv->convert_from_entry, "text",
G_SETTINGS_BIND_DEFAULT);
g_settings_bind (MainSettings, "process-convert-characters-to",
- priv->process_convert_to_entry, "text",
- G_SETTINGS_BIND_DEFAULT);
+ priv->convert_to_entry, "text", G_SETTINGS_BIND_DEFAULT);
/* Group: capitalize, ... */
- priv->process_all_uppercase_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "capitalize_all_radio"));
- priv->process_all_lowercase_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "capitalize_lower_radio"));
- priv->process_first_uppercase_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
"capitalize_first_radio"));
- priv->process_first_style_uppercase_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
"capitalize_first_style_radio"));
- priv->process_roman_numerals_check = GTK_WIDGET (gtk_builder_get_object (builder,
- "capitalize_roman_check"));
- /* Toggled signals */
- g_signal_connect_swapped (priv->process_first_style_uppercase_toggle,
- "toggled",
- G_CALLBACK (Process_Fields_First_Letters_Check_Button_Toggled),
- self);
- /* Set check buttons to init value */
g_settings_bind (MainSettings, "process-uppercase-all",
- priv->process_all_uppercase_toggle, "active",
+ priv->capitalize_all_radio, "active",
G_SETTINGS_BIND_DEFAULT);
g_settings_bind (MainSettings, "process-lowercase-all",
- priv->process_all_lowercase_toggle, "active",
+ priv->capitalize_lower_radio, "active",
G_SETTINGS_BIND_DEFAULT);
g_settings_bind (MainSettings, "process-uppercase-first-letters",
- priv->process_first_uppercase_toggle, "active",
+ priv->capitalize_first_radio, "active",
G_SETTINGS_BIND_DEFAULT);
g_settings_bind (MainSettings, "process-detect-roman-numerals",
- priv->process_roman_numerals_check, "active",
+ priv->capitalize_roman_check, "active",
G_SETTINGS_BIND_DEFAULT);
/* Group: insert/remove spaces */
- priv->process_remove_space_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "spaces_remove_radio"));
- priv->process_insert_space_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
- "spaces_insert_radio"));
- priv->process_insert_one_space_toggle = GTK_WIDGET (gtk_builder_get_object (builder,
"spaces_insert_one_radio"));
- /* Set check buttons to init value */
g_settings_bind (MainSettings, "process-remove-spaces",
- priv->process_remove_space_toggle, "active",
+ priv->spaces_remove_radio, "active",
G_SETTINGS_BIND_DEFAULT);
g_settings_bind (MainSettings, "process-insert-capital-spaces",
- priv->process_insert_space_toggle, "active",
+ priv->spaces_insert_radio, "active",
G_SETTINGS_BIND_DEFAULT);
g_settings_bind (MainSettings, "process-remove-duplicate-spaces",
- priv->process_insert_one_space_toggle, "active",
+ priv->spaces_insert_one_radio, "active",
G_SETTINGS_BIND_DEFAULT);
on_process_fields_changed (self, "process-fields", MainSettings);
/*
* Frame to display codes legend
*/
- priv->legend_frame = GTK_WIDGET (gtk_builder_get_object (builder,
- "legend_grid"));
-
- /* Masks Editor. */
- priv->mask_editor_frame = GTK_WIDGET (gtk_builder_get_object (builder,
- "editor_grid"));
-
- /* The list */
- priv->mask_editor_view = GTK_WIDGET (gtk_builder_get_object (builder,
- "mask_view"));
-
- gtk_tree_selection_set_mode (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->mask_editor_view)),
- GTK_SELECTION_MULTIPLE);
- g_signal_connect_after (gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->mask_editor_view)),
- "changed",
- G_CALLBACK (Mask_Editor_List_Row_Selected), self);
- g_signal_connect (priv->mask_editor_view, "key-press-event",
- G_CALLBACK (Mask_Editor_List_Key_Press), self);
- /* The entry */
- priv->mask_editor_entry = GTK_WIDGET (gtk_builder_get_object (builder,
- "mask_entry"));
- g_signal_connect_swapped (priv->mask_editor_entry, "changed",
- G_CALLBACK (Mask_Editor_Entry_Changed), self);
- /* Mask status icon. */
- /* Signal connection to check if mask is correct into the mask entry. */
- g_signal_connect (priv->mask_editor_entry, "changed",
- G_CALLBACK (entry_check_scan_tag_mask), NULL);
-
/* The buttons part */
- /* New mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder, "mask_new_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_New), self);
-
- /* Move up mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder, "mask_up_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_Move_Up), self);
-
- /* Move down mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder, "mask_down_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_Move_Down), self);
-
- /* Copy mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder, "mask_copy_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_Duplicate), self);
-
- /* Add mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder, "mask_add_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_Add), self);
-
- /* Remove mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder,
- "mask_remove_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_Remove), self);
-
- /* Save mask button */
- button = GTK_WIDGET (gtk_builder_get_object (builder, "mask_save_button"));
- g_signal_connect_swapped (button, "clicked",
- G_CALLBACK (Mask_Editor_List_Save_Button), self);
-
/* To initialize the mask status icon and visibility */
- g_signal_emit_by_name (gtk_bin_get_child (GTK_BIN (priv->scan_tag_mask_combo)),
+ g_signal_emit_by_name (gtk_bin_get_child (GTK_BIN (priv->fill_combo)),
"changed");
- g_signal_emit_by_name (gtk_bin_get_child (GTK_BIN (priv->rename_file_mask_combo)),
+ g_signal_emit_by_name (gtk_bin_get_child (GTK_BIN (priv->rename_combo)),
"changed");
- g_signal_emit_by_name (priv->mask_editor_entry, "changed");
+ g_signal_emit_by_name (priv->mask_entry, "changed");
g_signal_emit_by_name (priv->legend_toggle, "toggled"); /* To hide legend frame */
g_signal_emit_by_name (priv->mask_editor_toggle, "toggled"); /* To hide mask editor frame */
- g_signal_emit_by_name (priv->process_convert_toggle, "toggled"); /* To enable / disable entries */
- g_signal_emit_by_name (priv->process_roman_numerals_check, "toggled"); /* To enable / disable entries */
-
- gtk_widget_show_all (ScanVBox);
+ g_signal_emit_by_name (priv->convert_string_radio, "toggled"); /* To enable / disable entries */
+ g_signal_emit_by_name (priv->capitalize_roman_check, "toggled"); /* To enable / disable entries */
/* Activate the current menu in the option menu. */
on_scan_mode_changed (self, "scan-mode", MainSettings);
-
- g_object_unref (builder);
}
/*
@@ -2710,13 +2509,13 @@ et_scan_dialog_apply_changes (EtScanDialog *self)
priv = et_scan_dialog_get_instance_private (self);
/* Save default masks. */
- Add_String_To_Combo_List (priv->scan_tag_masks_model,
- gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->scan_tag_mask_combo)))));
- Save_Rename_File_Masks_List(priv->scan_tag_masks_model, MASK_EDITOR_TEXT);
+ Add_String_To_Combo_List (priv->fill_masks_model,
+ gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->fill_combo)))));
+ Save_Rename_File_Masks_List (priv->fill_masks_model, MASK_EDITOR_TEXT);
- Add_String_To_Combo_List(priv->rename_masks_model,
- gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->rename_file_mask_combo)))));
- Save_Rename_File_Masks_List(priv->rename_masks_model, MASK_EDITOR_TEXT);
+ Add_String_To_Combo_List (priv->rename_masks_model,
+ gtk_entry_get_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN
(priv->rename_combo)))));
+ Save_Rename_File_Masks_List (priv->rename_masks_model, MASK_EDITOR_TEXT);
}
@@ -2968,12 +2767,141 @@ et_scan_on_response (GtkDialog *dialog, gint response_id, gpointer user_data)
static void
et_scan_dialog_init (EtScanDialog *self)
{
+ gtk_widget_init_template (GTK_WIDGET (self));
create_scan_dialog (self);
}
static void
et_scan_dialog_class_init (EtScanDialogClass *klass)
{
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ gtk_widget_class_set_template_from_resource (widget_class,
+ "/org/gnome/EasyTAG/scan_dialog.ui");
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ notebook);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ fill_grid);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ fill_combo);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ rename_grid);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ rename_combo);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ mask_editor_toggle);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ fill_masks_model);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ rename_masks_model);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ mask_view);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ mask_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ legend_grid);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ editor_grid);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ legend_toggle);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ mask_editor_toggle);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_filename_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_title_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_artist_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_album_artist_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_album_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_genre_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_comment_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_composer_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_orig_artist_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_copyright_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_url_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ process_encoded_by_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_space_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_underscores_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_string_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_none_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_to_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_from_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ convert_to_label);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ capitalize_all_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ capitalize_lower_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ capitalize_first_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ capitalize_first_style_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ capitalize_roman_check);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ spaces_remove_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ spaces_insert_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ spaces_insert_one_radio);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ fill_preview_label);
+ gtk_widget_class_bind_template_child_private (widget_class, EtScanDialog,
+ rename_preview_label);
+ gtk_widget_class_bind_template_callback (widget_class,
+ entry_check_scan_tag_mask);
+ gtk_widget_class_bind_template_callback (widget_class, et_scan_on_hide);
+ gtk_widget_class_bind_template_callback (widget_class,
+ et_scan_on_response);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_Entry_Changed);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Add);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Add);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Duplicate);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Key_Press);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Move_Down);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Move_Up);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_New);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Remove);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Row_Selected);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Mask_Editor_List_Save);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Process_Fields_Convert_Check_Button_Toggled);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Process_Fields_First_Letters_Check_Button_Toggled);
+ gtk_widget_class_bind_template_callback (widget_class, Scan_Option_Button);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Scan_Rename_File_Prefix_Path);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Scan_Toggle_Legend_Button);
+ gtk_widget_class_bind_template_callback (widget_class,
+ Scan_Toggle_Mask_Editor_Button);
}
/*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]