2005-11-29 Benedikt Meurer <benny@xfce.org>
+ * thunar/thunar-standard-view.c
+ (thunar_standard_view_merge_custom_actions): Fix typo.
+ * thunarx/thunarx-private.{c,h}, thunarx/thunarx-menu-provider.c,
+ thunarx/Makefile.am, thunarx/thunarx-property-page-provider.c: Add
+ helper function thunarx_object_list_take_reference(), so we don't
+ need to repeat the same code again and again.
+ * thunar/thunar-window.c(action_entries): Add ... to the Preferences
+ action, since it opens a dialog. Use "e" as mnemonic, as "P" is
+ already used by "Paste".
+ * thunar/thunar-standard-view.c(action_entries): Add ... to the Select
+ by Pattern action, since it opens a dialog.
+ * thunar/thunar-preferences-dialog.c: Close preferences dialog on Esc
+ key press.
+ * thunarx/thunarx-preferences-provider.{c,h}, thunarx/thunarx.h,
+ thunarx/thunarx.symbols, thunarx/Makefile.am: Add new interface
+ ThunarxPreferencesProvider, which can be implemented to add custom
+ actions to the preferences section of the "Edit" menu.
+ * thunar/thunar-window-ui.xml, thunar/thunar-window.c: Query custom
+ preferences actions from the installed providers and add them to the
+ preferences section of the "Edit" menu. Actions are loaded in an idle
+ source to not delay folder loading when opening a new window, even if
+ a lot of preferences providers are installed.
+ * docs/reference/thunarx/: Update the thunarx reference documentation.
+ * thunar-uca/, configure.in.in, Makefile.am: Import the thunar-uca
+ module, which provides advanced users with an easy way to add custom
+ actions to Thunar's context menus. With this extension in place
+ there's no longer a need to add support G-Scripts (except maybe an
+ importer for thunar-uca).
+ * po/POTFILES.in: Add new translatable files.
+ * po/: Merge new strings.
+ * examples/tex-open-terminal/README: Add note to use thunar-uca, and
+ consider the tex-open-terminal as example for extension writers.
+
+2005-11-29 Benedikt Meurer <benny@xfce.org>
+
* configure.in.in, thunar-vfs/thunar-vfs-types.h: Add largefile support
for systems that don't support 64bit file offsets by default. This
fixes bug #1243.
# $Id$
+if ENABLE_UCA_PLUGIN
+SUBDIRS_THUNAR_UCA = thunar-uca
+endif
+
SUBDIRS = \
icons \
pixmaps \
po \
tdb \
- thunar-vfs \
thunarx \
+ thunar-vfs \
thunar \
tests \
docs \
- examples
+ examples \
+ $(SUBDIRS_THUNAR_UCA)
AUTOMAKE_OPTIONS = \
1.8 \
AC_SUBST([PLATFORM_CPPFLAGS])
AC_SUBST([PLATFORM_LDFLAGS])
+dnl *****************************************
+dnl *** Check whether to build UCA plugin ***
+dnl *****************************************
+AC_ARG_ENABLE([uca-plugin], AC_HELP_STRING([--disable-uca-plugin], [Don't build the thunar-uca plugin, see thunar-uca/README]),
+ [], [enable_uca_plugin=yes])
+AC_MSG_CHECKING([whether to build the thunar-uca plugin])
+AM_CONDITIONAL([ENABLE_UCA_PLUGIN], [test x"$enable_uca_plugin" = x"yes"])
+AC_MSG_RESULT([$enable_uca_plugin])
+
AC_OUTPUT([
Makefile
docs/Makefile
tests/Makefile
tests/data/Makefile
thunar/Makefile
+thunar-uca/Makefile
thunar-vfs/Makefile
thunar-vfs/thunar-vfs-1.pc
thunar-vfs/thunar-vfs-config.h
<!ENTITY ThunarxFileInfo SYSTEM "xml/thunarx-file-info.xml">
<!ENTITY ThunarxMenuProvider SYSTEM "xml/thunarx-menu-provider.xml">
+<!ENTITY ThunarxPreferencesProvider SYSTEM "xml/thunarx-preferences-provider.xml">
<!ENTITY ThunarxPropertyPage SYSTEM "xml/thunarx-property-page.xml">
<!ENTITY ThunarxPropertyPageProvider SYSTEM "xml/thunarx-property-page-provider.xml">
<!ENTITY ThunarxProviderFactory SYSTEM "xml/thunarx-provider-factory.xml">
<!ENTITY thunarx-version-information SYSTEM "xml/thunarx-version-information.xml">
<!ENTITY version SYSTEM "version.xml">
-<!ENTITY date "September 2005">
+<!ENTITY date "December 2005">
]>
<book id="index">
Providers implement one or more of the <link linkend="GInterface"><type>GInterface</type></link>s included with
the <systemitem class="library">thunarx</systemitem> library. The currently exported interfaces
include the <link linkend="ThunarxMenuProvider"><type>ThunarxMenuProvider</type></link> for adding context menu
- items to the file views and the <link
+ items to the file views, the <link
linkend="ThunarxPropertyPageProvider"><type>ThunarxPropertyPageProvider</type></link> for adding pages to the
- file properties dialog.
+ file properties dialog and the <link
+ linkend="ThunarxPreferencesProvider"><type>ThunarxPreferencesProvider</type></link> for adding actions to the
+ preferences section of the main menu.
</para>
</sect2>
&ThunarxMenuProvider;
&ThunarxPropertyPageProvider;
+ &ThunarxPreferencesProvider;
</part>
<part id="thunarx-using-extensions">
</SECTION>
<SECTION>
+<FILE>thunarx-preferences-provider</FILE>
+<TITLE>ThunarxPreferencesProvider</TITLE>
+ThunarxPreferencesProviderIface
+ThunarxPreferencesProvider
+thunarx_preferences_provider_get_actions
+<SUBSECTION Standard>
+THUNARX_TYPE_PREFERENCES_PROVIDER
+THUNARX_PREFERENCES_PROVIDER
+THUNARX_IS_PREFERENCES_PROVIDER
+THUNARX_PREFERENCES_PROVIDER_GET_IFACE
+<SUBSECTION Private>
+thunarx_preferences_provider_get_type
+</SECTION>
+
+<SECTION>
<FILE>thunarx-property-page</FILE>
<TITLE>ThunarxPropertyPage</TITLE>
ThunarxPropertyPage
thunarx_file_info_get_type
thunarx_menu_provider_get_type
+thunarx_preferences_provider_get_type
thunarx_property_page_get_type
thunarx_property_page_provider_get_type
thunarx_provider_factory_get_type
}
static void
-hello_activated (GtkAction *action,
- GtkWidget *window)
+hello_activated (GtkWidget *window)
{
GtkWidget *dialog;
GList *files)
{
GtkAction *action;
+ GClosure *closure;
- action = gtk_action_new ("Hello::say-hello",
- "Say hello", "Say hello",
- NULL);
- g_signal_connect (G_OBJECT (action), "activate",
- G_CALLBACK (hello_activated),
- window);
+ action = gtk_action_new ("Hello::say-hello", "Say hello", "Say hello", NULL);
+ closure = g_cclosure_object_new_swap (G_CALLBACK (hello_activated), G_OBJECT (window));
+ g_signal_connect_closure (G_OBJECT (action), "activate", closure, TRUE);
return g_list_append (NULL, action);
}</programlisting>
--- /dev/null
+<!-- ##### SECTION Title ##### -->
+ThunarxPreferencesProvider
+
+<!-- ##### SECTION Short_Description ##### -->
+The interface to extensions that provide preferences
+
+<!-- ##### SECTION Long_Description ##### -->
+<para>
+ The ThunarxPreferencesProvider interface is implemented by extensions that
+ want to register additional actions in the preferences menu of the file
+ manager. In general this should only be done by extensions that are closely
+ tied to the file manager (for example, the <literal>thunar-uca</literal> is
+ such an extension, while an extension that just adds <guimenuitem>Compress
+ file</guimenuitem> and <guimenuitem>Uncompress file</guimenuitem> to the
+ context menu of compressed files should not add their own preferences to
+ the file manager menu, because it should use desktop-wide settings for
+ archive managers instead).
+</para>
+
+<para>
+ The <link linkend="GtkAction"><type>GtkAction</type></link>s returned from the
+ thunarx_preferences_provider_get_actions() method must be namespaced with the
+ model to avoid collision with internal file manager actions and actions provided
+ by other extensions. For example, the preferences action provided by the
+ <literal>thunar-uca</literal> extension is called
+ <literal>ThunarUca::manage-actions</literal>.
+</para>
+
+<example>
+ <title>Preferences provider example</title>
+
+ <programlisting>
+static void hello_preferences_provider_init (ThunarxPreferencesProviderIface *iface);
+static void hello_get_actions (ThunarxPreferencesProvider *provider,
+ GtkWidget *window);
+
+THUNARX_DEFINE_TYPE_WITH_CODE (Hello, hello, G_TYPE_OBJECT,
+ THUNARX_IMPLEMENT_INTERFACE (THUNARX_TYPE_PREFERENCES_PROVIDER,
+ hello_preferences_provider_init));
+
+static void
+hello_preferences_provider_init (ThunarxPreferencesProviderIface *iface)
+{
+ iface->get_actions = hello_get_actions;
+}
+
+static void
+hello_activated (GtkWidget *window)
+{
+ GtkWidget *dialog;
+
+ dialog = gtk_message_dialog_new (GTK_WINDOW (window),
+ GTK_DIALOG_MODAL
+ | GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_OK,
+ "Hello World!");
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+}
+
+static GList*
+hello_get_actions (ThunarxPreferencesProvider *provider,
+ GtkWidget *window)
+{
+ GtkAction *action;
+ GClosure *closure;
+
+ action = gtk_action_new ("Hello::say-hello", "Say hello", "Say hello", NULL);
+ closure = g_cclosure_object_new_swap (G_CALLBACK (hello_activated), G_OBJECT (window));
+ g_signal_connect_closure (G_OBJECT (action), "activate", closure, TRUE);
+
+ return g_list_prepend (NULL, action);
+}
+ </programlisting>
+</example>
+
+<!-- ##### SECTION See_Also ##### -->
+<para>
+
+</para>
+
+
+<!-- ##### SECTION Stability_Level ##### -->
+Stable
+
+<!-- ##### STRUCT ThunarxPreferencesProviderIface ##### -->
+<para>
+ Interface with virtual methods implementation by extensions that
+ want to install preferences actions in the file managers menu.
+</para>
+
+<para>
+ Providers don't need to implement all of the virtual methods listed
+ in the interface.
+</para>
+
+@get_actions: See thunarx_preferences_provider_get_actions().
+
+<!-- ##### STRUCT ThunarxPreferencesProvider ##### -->
+<para>
+ Preferences provider type.
+</para>
+
+
+<!-- ##### FUNCTION thunarx_preferences_provider_get_actions ##### -->
+<para>
+
+</para>
+
+@provider:
+@window:
+@Returns:
+
+
make install-extensionsLTLIBRARIES
in this directory.
+
+Please note that this extension is not meant for daily use, but should just
+serve as an example of how to write a simple Thunar extension. If you want
+to be able to open a terminal in a specific folder, you should consider
+installing the thunar-uca extension (see thunar-uca/README) and adding an
+"Open Terminal Here" action there (there's already such an action available
+by default).
thunarx/thunarx-property-page.c
thunarx/thunarx-provider-plugin.c
+thunar-uca/thunar-uca-chooser.c
+thunar-uca/thunar-uca-chooser.h
+thunar-uca/thunar-uca-context.c
+thunar-uca/thunar-uca-context.h
+thunar-uca/thunar-uca-editor.c
+thunar-uca/thunar-uca-editor.h
+thunar-uca/thunar-uca-model.c
+thunar-uca/thunar-uca-model.h
+thunar-uca/thunar-uca-plugin.c
+thunar-uca/thunar-uca-provider.c
+thunar-uca/thunar-uca-provider.h
+thunar-uca/uca.xml.in
+
Thunar.desktop.in
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 23:30+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-10-06 22:03+0900\n"
"Last-Translator: Benedikt Meurer <benny@xfce.org>\n"
"Language-Team: German <de@li.org>\n"
msgstr ""
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr ""
msgstr ""
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
#, fuzzy
msgid "Select an Application"
msgstr "Andere Anwendung..."
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
msgid "All Files"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
msgid "Executable Files"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr ""
msgstr "Detailansicht"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr ""
msgstr ""
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr ""
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr ""
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr ""
msgstr[0] ""
msgstr[1] ""
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr ""
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr ""
msgid "_Location:"
msgstr ""
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr ""
msgid "The icon size for the path entry"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
#, fuzzy
msgid "File Manager Preferences"
msgstr "Dateimanager"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
msgid "Icon View"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
#, fuzzy
msgid "Detailed List View"
msgstr "Detailansicht"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
msgid "Show hidden and _backup files"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"backup filename is a tilde (~)."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
msgid "<b>Icon View</b>"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "Allgemein"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "Name:"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr ""
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr ""
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "Größe:"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u Byte)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, c-format
msgid "Failed to rename `%s'"
msgstr ""
#: ../thunar/thunar-standard-view.c:263
-msgid "Select _by Pattern"
+msgid "Select _by Pattern..."
msgstr ""
#: ../thunar/thunar-standard-view.c:263
msgid "Text to be displayed in the statusbar associated with this view"
msgstr ""
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr ""
msgid "UI manager of the surrounding window"
msgstr ""
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "_Datei"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "_Neues Fenster öffnen"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr ""
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr ""
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Alle Thunar Fenster schließen"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "_Schließen"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "Dieses Fenster schließen"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "_Bearbeiten"
-#: ../thunar/thunar-window.c:161
+#: ../thunar/thunar-window.c:171
#, fuzzy
-msgid "_Preferences"
+msgid "Pr_eferences..."
msgstr "_Eigenschaften"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
-msgstr ""
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
+msgstr "Dateimanager"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "_Anzeige"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
msgid "_Location Selector"
msgstr ""
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr ""
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "_Gehe"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr ""
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr ""
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "_Home"
msgstr ""
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "Open the home folder"
msgstr ""
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr ""
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr ""
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "_Hilfe"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "Ü_ber"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr ""
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Show _Hidden Files"
msgstr ""
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr ""
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr ""
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr ""
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr "Favouriten"
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr ""
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
msgid "_Pathbar Style"
msgstr ""
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr ""
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
msgid "_Toolbar Style"
msgstr ""
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr ""
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr ""
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr ""
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr ""
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr ""
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr ""
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
msgid "Failed to open home directory"
msgstr ""
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
msgstr ""
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr ""
msgid "Don't unload the plugin from memory"
msgstr ""
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+msgid "Edit the currently selected action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+msgid "Delete the currently selected action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "Andere Anwendung..."
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+msgid "Basic"
+msgstr "Allgemein"
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+msgid "_Name:"
+msgstr "Name:"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+msgid "The name of the action that will be displayed in the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+msgid "_Description:"
+msgstr "_Beschreibung:"
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr "_Befehl:"
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+msgid "_Icon:"
+msgstr ""
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+msgid "the path to the first selected file"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+msgid "the paths to all selected files"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "Dateimanager"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+msgid "_Directories"
+msgstr "_Verzeichnisse"
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+msgid "_Audio Files"
+msgstr "_Audiodateien"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+msgid "_Image Files"
+msgstr "_Bilddateien"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+msgid "_Text Files"
+msgstr "_Textdateien"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+msgid "_Video Files"
+msgstr "_Videodateien"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+msgid "_Other Files"
+msgstr "A_ndere Dateien"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "Andere Anwendung..."
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+msgid "Image Files"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+msgid "Failed to determine save location for uca.xml"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "Andere Anwendung..."
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr ""
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 23:30+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-11-15 22:07+0200\n"
"Last-Translator: Stavros Giannouris <stavrosg2002@freemail.gr>\n"
"Language-Team: Greek <nls@tux.hellug.gr>\n"
msgstr "αντίγραφο του %s"
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr "δεσμός προς το %s"
msgstr "Δεν είναι δυνατή η δημιουργία συμβολικού δεσμού `%s'"
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr "Άνοιγμα του <i>%s</i> και των άλλων αρχείων του τύπου \"%s\" με:"
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
msgid "Select an Application"
msgstr "Επιλογή Εφαρμογής"
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
msgid "All Files"
msgstr "Όλα τα Αρχεία"
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
msgid "Executable Files"
msgstr "Εκτελέσιμα Αρχεία"
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr ""
msgstr "Προβολή λεπτομεριών"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr ""
msgstr "Αριθμός ορατών αρχείων"
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr "Προβολή κρυφών"
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr "Αν θα προβάλλονται τα κρυφά αρχεία"
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr "σπασμένος δεσμός"
msgstr[0] "%d επιλεγμένο αντικείμενο"
msgstr[1] "%d επιλεγμένα αντικείμενα (%s)"
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr "Διάστιχο"
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr "Το μέγεθος του διαστήματος μεταξύ κουμπιών διαδρομής"
msgid "_Location:"
msgstr "_Τοποθεσία:"
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr "Τρέχον κατάλογος"
msgid "The icon size for the path entry"
msgstr "Μέγεθος εικονιδίου για τη διαδρομή"
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
#, fuzzy
msgid "File Manager Preferences"
msgstr "Επεξεργασία Προτιμήσεων Thunar"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
#, fuzzy
msgid "Icon View"
msgstr "Προβολή Εικονιδίων"
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
#, fuzzy
msgid "Detailed List View"
msgstr "Προβολή λεπτομεριών"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
#, fuzzy
msgid "Show hidden and _backup files"
msgstr "Εμφάνιση _Κρυφών Αρχείων"
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"backup filename is a tilde (~)."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
#, fuzzy
msgid "<b>Icon View</b>"
msgstr "Προβολή Εικονιδίων"
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr "Το αρχείο που απεικονίζεται από το διάλογο"
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "Γενικές"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "Όνομα:"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr "Είδος:"
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr "Τροποποιήθηκε:"
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr "Προσπελάστηκε:"
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr "Τόμος:"
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "Μέγεθος:"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr "Εμβλήματα"
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr "%s Πληροφορίες"
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u Bytes)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, c-format
msgid "Failed to rename `%s'"
msgstr "Επιλογή όλων των αρχείων σε αυτό το παράθυρο"
#: ../thunar/thunar-standard-view.c:263
-msgid "Select _by Pattern"
+#, fuzzy
+msgid "Select _by Pattern..."
msgstr "Επιλογή _βάσει μοτίβου"
#: ../thunar/thunar-standard-view.c:263
msgid "Text to be displayed in the statusbar associated with this view"
msgstr "Κείμενο που θα εμφανίζεται στην γραμμή κατάστασης σε αυτή την προβολή"
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr "Διαχειριστής UI"
msgid "UI manager of the surrounding window"
msgstr ""
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "_Αρχείο"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "Άνοιγμα νέου _παραθύρου"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr ""
"'Ανοιγμα ενός άλλου παράθυρου του Thunar για την προβαλλόμενη τοποθεσία"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr "Κλείσιμο _Όλων των Παραθύρων"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Κλείσιμο όλων των παραθύρων του Thunar"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "_Κλείσιμο"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "Κλείσιμο αυτού του παραθύρου"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "_Επεξεργασία"
-#: ../thunar/thunar-window.c:161
-msgid "_Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Pr_eferences..."
msgstr "_Προτιμήσεις"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
msgstr "Επεξεργασία Προτιμήσεων Thunar"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "_Προβολή"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
#, fuzzy
msgid "_Location Selector"
msgstr "Γραμμή _Τοποθεσίας"
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr "_Πλευρικό Ταμπλό"
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "_Μετάβαση"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr "Άνοιγμα _Γονικού"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr "Άνοιγμα του γονικού φακέλου"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "_Home"
msgstr "_Αρχή"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "Open the home folder"
msgstr "Άνοιγμα του αρχικού φακέλου"
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr "Άνοιγμα _Τοποθεσίας..."
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr "Καθορίστε μια τοποθεσία για άνοιγμα"
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "_Βοήθεια"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "_Περί"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr "Εμφάνιση πληροφοριών σχετικά με το Thunar"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Show _Hidden Files"
msgstr "Εμφάνιση _Κρυφών Αρχείων"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr "Εναλλάσσει την εμφάνιση κρυφών αρχείων στο τρέχον παράθυρο"
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr "Ο κατάλογος που εμφανίζεται τώρα σε αυτό το παράθυρο"
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr ""
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr "_Αγαπημένα"
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr "Κ_ρυφό"
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
#, fuzzy
msgid "_Pathbar Style"
msgstr "_Παραδοσιακό Στυλ"
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr ""
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
#, fuzzy
msgid "_Toolbar Style"
msgstr "_Παραδοσιακό Στυλ"
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr ""
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr ""
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr "Προβολή Ε_ικονιδίων"
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr ""
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr "Προβολή _Λεπτομερούς Λίστας"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr ""
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
msgid "Failed to open home directory"
msgstr "Αδυναμία ανοίγματος αρχικού καταλόγου"
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
"Ο Thunar είναι ένας γρήγορος και εύκολος διαχειριστής αρχείων\n"
"για το Περιβάλλον Εργασίας Xfce."
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr "Σταύρος Γιαννούρης <stavrosg2002@freemail.gr>"
msgid "Don't unload the plugin from memory"
msgstr ""
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+#, fuzzy
+msgid "Edit the currently selected action."
+msgstr "Το αρχείο που εμφανίζεται τώρα"
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+#, fuzzy
+msgid "Delete the currently selected action."
+msgstr "Διαγραφή των επιλεγμένων αρχείων"
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "Η φόρτωση της εφαρμογής από το αρχείο %s απέτυχε"
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+msgid "Basic"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+#, fuzzy
+msgid "_Name:"
+msgstr "Όνομα:"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+#, fuzzy
+msgid "The name of the action that will be displayed in the context menu."
+msgstr "Το κυρίως κείμενο που θα εμφανίζεται στη μπάρα κατάστασης"
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+#, fuzzy
+msgid "_Description:"
+msgstr "_Τοποθεσία:"
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+#, fuzzy
+msgid "_Icon:"
+msgstr "_Τοποθεσία:"
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+#, fuzzy
+msgid "the path to the first selected file"
+msgstr "Προβολή των ιδιοτήτων του επιλεγμένου αρχείου"
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+#, fuzzy
+msgid "the paths to all selected files"
+msgstr "Αποκοπή των επιλεγμένων αρχείων"
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "Μοτίβο:"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+#, fuzzy
+msgid "_Directories"
+msgstr "Διαγραφή καταλόγων..."
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+#, fuzzy
+msgid "_Audio Files"
+msgstr "_Αντιγραφή Αρχείων"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+#, fuzzy
+msgid "_Image Files"
+msgstr "_Επικόλληση Αρχείων"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+#, fuzzy
+msgid "_Text Files"
+msgstr "Α_ποκοπή Αρχείων"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+#, fuzzy
+msgid "_Video Files"
+msgstr "_Αντιγραφή Αρχείων"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+#, fuzzy
+msgid "_Other Files"
+msgstr "_Επικόλληση Αρχείων"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "Επιλογή Εφαρμογής"
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+#, fuzzy
+msgid "Image Files"
+msgstr "_Επικόλληση Αρχείων"
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+#, fuzzy
+msgid "Failed to determine save location for uca.xml"
+msgstr "Ο προσδιορισμός των πληροφοριών αρχείου για το `%s' απέτυχε"
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "Η εκκίνηση της ενέργειας απέτυχε"
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr "Περιήγηση του συστήματος αρχείων με τον διαχειριστή αρχείων"
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 23:30+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-10-14 23:57+0900\n"
"Last-Translator: Pablo Hernández-M. Saiz <homeless3d@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
msgstr ""
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr ""
msgstr "Imposible crear el enlace de %s."
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
#, fuzzy
msgid "Select an Application"
msgstr "Otra aplicación..."
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
#, fuzzy
msgid "All Files"
msgstr "Archivos"
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
#, fuzzy
msgid "Executable Files"
msgstr "Seleccionar _todos los archivos"
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr ""
msgstr "Vista detallada"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr ""
msgstr "Número de archivos visibles"
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr "Mostrar ocultos"
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr ""
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr ""
msgstr[0] "%d elemento seleccionado"
msgstr[1] "%d elementos seleccionados (%s)"
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr "Espaciado"
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr "Espacio entre los botones del path"
msgid "_Location:"
msgstr "_Dirección"
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr "Directorio actual"
msgid "The icon size for the path entry"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
#, fuzzy
msgid "File Manager Preferences"
msgstr "Gestor de archivos"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
#, fuzzy
msgid "Icon View"
msgstr "Vista de iconos"
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
#, fuzzy
msgid "Detailed List View"
msgstr "Vista detallada"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
#, fuzzy
msgid "Show hidden and _backup files"
msgstr "Mostrar los archivos _ocultos"
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"backup filename is a tilde (~)."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
#, fuzzy
msgid "<b>Icon View</b>"
msgstr "Vista de iconos"
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "General"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "Nombre:"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr "Tipo:"
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr "Modificado:"
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr "Accedido:"
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr "Volumen:"
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "Tamaño:"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u Bytes)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, fuzzy, c-format
msgid "Failed to rename `%s'"
#: ../thunar/thunar-standard-view.c:263
#, fuzzy
-msgid "Select _by Pattern"
+msgid "Select _by Pattern..."
msgstr "Patrón de selección"
#: ../thunar/thunar-standard-view.c:263
msgid "Text to be displayed in the statusbar associated with this view"
msgstr ""
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr ""
msgid "UI manager of the surrounding window"
msgstr ""
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "_Archivo"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "Nueva _ventana"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr ""
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr "Cerrar _todas las ventanas"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Cerrar todas las ventanas de Thunar"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "_Cerrar"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "Cerrar esta ventana"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "_Editar"
-#: ../thunar/thunar-window.c:161
+#: ../thunar/thunar-window.c:171
#, fuzzy
-msgid "_Preferences"
+msgid "Pr_eferences..."
msgstr "_Propiedades"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
-msgstr ""
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
+msgstr "Gestor de archivos"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "_Ver"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
#, fuzzy
msgid "_Location Selector"
msgstr "Barra de _dirección"
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr "Panel _lateral"
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "_Ir a"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr "Abrir _antecesor"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr "Abre la carpeta anterior"
# msgstr "Sistema de archivos"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
#, fuzzy
msgid "_Home"
msgstr "Casa"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
#, fuzzy
msgid "Open the home folder"
msgstr "Abre la carpeta anterior"
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr "Abrir _dirección..."
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr "Especificar una dirección para abrir"
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "A_yuda"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "_Acerca de"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr "Muestra información acerca de Thunar"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
#, fuzzy
msgid "Show _Hidden Files"
msgstr "Mostrar los archivos _ocultos"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr ""
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr ""
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr ""
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr "_Marcadores"
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr "_Oculto/a"
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
#, fuzzy
msgid "_Pathbar Style"
msgstr "Estilo _tradicional"
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr ""
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
#, fuzzy
msgid "_Toolbar Style"
msgstr "Estilo _tradicional"
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr ""
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr ""
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr "Ver como _Iconos"
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr ""
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr "Ver como _Lista"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr ""
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
#, fuzzy
msgid "Failed to open home directory"
msgstr "Imposible abrir el directorio %s."
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
"Thunar es un gestor de archivos rápido\n"
"y fácil de usar para el escritorio Xfce"
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr ""
msgid "Don't unload the plugin from memory"
msgstr ""
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+msgid "Edit the currently selected action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+#, fuzzy
+msgid "Delete the currently selected action."
+msgstr "Abrir el elemento seleccionado"
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "Imposible renombrar %s."
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+msgid "Basic"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+#, fuzzy
+msgid "_Name:"
+msgstr "Nombre:"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+msgid "The name of the action that will be displayed in the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+#, fuzzy
+msgid "_Description:"
+msgstr "_Dirección"
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+#, fuzzy
+msgid "_Icon:"
+msgstr "_Dirección"
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+#, fuzzy
+msgid "the path to the first selected file"
+msgstr "Ver las propiedades del elemento seleccionado"
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+#, fuzzy
+msgid "the paths to all selected files"
+msgstr "Abrir el elemento seleccionado"
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "Patrón:"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+#, fuzzy
+msgid "_Directories"
+msgstr "Borrando archivos..."
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+#, fuzzy
+msgid "_Audio Files"
+msgstr "_Copiar archivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+#, fuzzy
+msgid "_Image Files"
+msgstr "_Pegar archivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+#, fuzzy
+msgid "_Text Files"
+msgstr "Cor_tar archivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+#, fuzzy
+msgid "_Video Files"
+msgstr "_Copiar archivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+#, fuzzy
+msgid "_Other Files"
+msgstr "_Pegar archivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "Otra aplicación..."
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+#, fuzzy
+msgid "Image Files"
+msgstr "_Pegar archivos"
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+#, fuzzy
+msgid "Failed to determine save location for uca.xml"
+msgstr "Imposible renombrar %s."
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "Imposible renombrar %s."
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr "Explorar el sistema de archivos con el navegador"
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 23:30+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-11-17 09:20+0100\n"
"Last-Translator: Stephane Roy <sroy@j2n.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
msgstr "copie de %s"
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr "lien vers %s"
msgstr "Échec à la création du lien symbolique `%s'"
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr "Ouvrir <i>%s</i> et les autres fichiers de type \"%s\" avec :"
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
msgid "Select an Application"
msgstr "Sélectionner une application"
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
msgid "All Files"
msgstr "Tous les fichiers"
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
msgid "Executable Files"
msgstr "Fichiers exécutables"
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr "Scripts perl"
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr "Scripts python"
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr "Scripts ruby"
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr "Scripts shell"
msgstr "Vue détails"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr "%s."
msgstr "Nombre de fichiers visibles"
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr "Montrer cachés"
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr "Montrer ou non les fichiers cachés"
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr "lien cassé"
msgstr[0] ""
msgstr[1] ""
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr "Espace"
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr "Quantité d'espace entre les boutons du chemin"
msgid "_Location:"
msgstr ""
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr "Répertoire courant"
msgid "The icon size for the path entry"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
msgid "File Manager Preferences"
msgstr "Préférences du gestionnaire de fichier"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr "<b>Vue par défaut</b>"
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr "Voir un _nouveau dossier en utilisant :"
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
msgid "Icon View"
msgstr "vue d'icônes"
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
msgid "Detailed List View"
msgstr "liste détaillée"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr "Trier les _dossiers avant les fichiers"
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
"Sélectionner cette option pour lister les dossiers avant les fichiers quand "
"vous trier un dossier."
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
msgid "Show hidden and _backup files"
msgstr "Montrer les fichiers _cachés et de sauvegardes"
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"dans une nouvelle fenêtre. Le premier caractère d'un fichier caché est un "
"point (.). Le dernier caractère d'un fichier de sauvegarde est un tilde (~)."
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
msgid "<b>Icon View</b>"
msgstr "<b>Vue d'icônes</b>"
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr "_Texte à côté des icônes"
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr "La fichier affiché par la fenêtre de dialogue"
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "Général"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "Nom :"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr "Type :"
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr "Modifié :"
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr "Accédé :"
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr "Volume :"
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "Taille :"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr "Emblèmes"
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u octets)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, c-format
msgid "Failed to rename `%s'"
msgstr "Sélectionner tous les fichiers dans cette fenêtre"
#: ../thunar/thunar-standard-view.c:263
-msgid "Select _by Pattern"
+#, fuzzy
+msgid "Select _by Pattern..."
msgstr "Sélectionner par _motif"
#: ../thunar/thunar-standard-view.c:263
msgid "Text to be displayed in the statusbar associated with this view"
msgstr "Texte à afficher dans la barre de statut associée à cette vue"
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr ""
msgid "UI manager of the surrounding window"
msgstr ""
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "_Fichier"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "Ouvrir une _nouvelle fenêtre"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr "Ouvre une nouvelle fenêtre de Thunar pour l'endroit affiché"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr "Fermer _toutes les fenêtres"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Ferme toutes les fenêtres de Thunar"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "_Fermer"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "Fermer cette fenêtre"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "Édit_er"
-#: ../thunar/thunar-window.c:161
-msgid "_Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Pr_eferences..."
msgstr "_Préférences"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
msgstr "Éditer les préférences de Thunar"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "_Voir"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
msgid "_Location Selector"
msgstr ""
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr "_Panneau latéral"
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "_Aller"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr "Ouvrir le _père"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr "Ouvrir le dossier père"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "_Home"
msgstr "_Répertoire personnel"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "Open the home folder"
msgstr "Ouvrir le répertoire personnel"
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr "A_ller à..."
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr "Spécifier un chemin à ouvrir"
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "_Aide"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "À _propos"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr "Affiche des informations à propos de Thunar"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Show _Hidden Files"
msgstr "Montrer les fichiers _cachés"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr "Montrer/cache les fichiers cachés dans la fenêtre courante"
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr "Le répertoire actuellement affiché dans cette fenêtre"
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr ""
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr "_Favoris"
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr "_Caché"
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
msgid "_Pathbar Style"
msgstr "Style de la barre de _chemin"
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr "Approche moderne avec les boutons qui correspondent aux dossiers"
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
msgid "_Toolbar Style"
msgstr "Style de la barre d'_outils"
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr ""
"Approche traditionnelle avec les la barre de chemin et les boutons de "
"navigation"
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr ""
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr "Voir en _icônes"
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr "Affiche le contenu du dossier sous forme de vue d'icônes"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr "Voir en liste _détaillée"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr "Affiche le contenu du dossier sous forme de liste détaillée"
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
msgid "Failed to open home directory"
msgstr "Échec dans l'ouverture du répertoire personnel"
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
"Thunar est un gestionnaire de fichier rapide et facile\n"
"d'utilisation pour l'Environnement de Bureau Xfce."
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr "crédits-traducteur"
msgid "Don't unload the plugin from memory"
msgstr ""
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+#, fuzzy
+msgid "Edit the currently selected action."
+msgstr "Le fichier actuellement affiché"
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+#, fuzzy
+msgid "Delete the currently selected action."
+msgstr "Supprime les fichiers sélectionnés"
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "Échec à l'ajout de la nouvelle application `%s'"
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+msgid "Basic"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+#, fuzzy
+msgid "_Name:"
+msgstr "Nom :"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+#, fuzzy
+msgid "The name of the action that will be displayed in the context menu."
+msgstr "Le texte principal à afficher dans la barre de statut"
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+msgid "_Description:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+msgid "_Icon:"
+msgstr ""
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+#, fuzzy
+msgid "the path to the first selected file"
+msgstr "Affiche les propriétés du fichier sélectionné"
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+#, fuzzy
+msgid "the paths to all selected files"
+msgstr "Coupe les fichiers sélectionnés"
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "Motif :"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+#, fuzzy
+msgid "_Directories"
+msgstr "Suppression des répertoires..."
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+#, fuzzy
+msgid "_Audio Files"
+msgstr "_Copier les fichiers"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+#, fuzzy
+msgid "_Image Files"
+msgstr "Co_ller les fichiers"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+#, fuzzy
+msgid "_Text Files"
+msgstr "Cou_per les fichiers"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+#, fuzzy
+msgid "_Video Files"
+msgstr "_Copier les fichiers"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+#, fuzzy
+msgid "_Other Files"
+msgstr "Co_ller les fichiers"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "Sélectionner une application"
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+#, fuzzy
+msgid "Image Files"
+msgstr "Co_ller les fichiers"
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+#, fuzzy
+msgid "Failed to determine save location for uca.xml"
+msgstr "Échec à la détermination d'informations sur le fichier `%s'"
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "Échec à l'ajout de la nouvelle application `%s'"
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr "Explorer le système de fichiers avec le gestionnaire de fichiers"
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 23:30+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-10-06 22:02+0900\n"
"Last-Translator: SZERVÁC Attila <sas@321.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
msgstr ""
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr ""
msgstr "Nem hozható létre e szimlink: %s"
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
#, fuzzy
msgid "Select an Application"
msgstr "_Hely megnyitása..."
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
#, fuzzy
msgid "All Files"
msgstr "Fájlok"
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
#, fuzzy
msgid "Executable Files"
msgstr "Minden fájl kiválasztása"
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr ""
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr ""
msgstr "Részletes nézet"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr ""
msgstr "Látható fájlok száma"
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr "Rejtettek mutatása"
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr "Mutassuk-e a rejtett fájlokat"
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr ""
msgstr[0] "%d elem kijelölve"
msgstr[1] "%d elem kijelölve"
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr "Távolság"
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr "Ösvénygombok közti táv"
msgid "_Location:"
msgstr "_Hely:"
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr "Jelenlegi könyvtár"
msgid "The icon size for the path entry"
msgstr "Az ösvényelem ikonmérete"
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
#, fuzzy
msgid "File Manager Preferences"
msgstr "Fájlkezelő"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
#, fuzzy
msgid "Icon View"
msgstr "Ikonnézet"
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
#, fuzzy
msgid "Detailed List View"
msgstr "Részletes nézet"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
#, fuzzy
msgid "Show hidden and _backup files"
msgstr "Rejtett fájlok mutatása"
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"backup filename is a tilde (~)."
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
#, fuzzy
msgid "<b>Icon View</b>"
msgstr "Ikonnézet"
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr ""
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "Általános"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "Név"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr "Típus:"
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr "Módosítva:"
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr "Megnyitva:"
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr "Kötet:"
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "Méret:"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr ""
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr "%s Info"
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u bájt)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, fuzzy, c-format
msgid "Failed to rename `%s'"
#: ../thunar/thunar-standard-view.c:263
#, fuzzy
-msgid "Select _by Pattern"
+msgid "Select _by Pattern..."
msgstr "Kijelölés mintával"
#: ../thunar/thunar-standard-view.c:263
msgid "Text to be displayed in the statusbar associated with this view"
msgstr "E nézet állapotsorának szövege"
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr "UI kezelő"
msgid "UI manager of the surrounding window"
msgstr "Adot ablak felhasználói felület kezelője"
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "_Fájl"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "Új _Ablak"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr "Új Thunar ablak az adott helyhez"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr "_Minden ablak bezárása"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Bezár minden Thunar ablakot"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "_Bezárás"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "Bezárja ezt az ablakot"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "Sz_erkesztés"
-#: ../thunar/thunar-window.c:161
+#: ../thunar/thunar-window.c:171
#, fuzzy
-msgid "_Preferences"
+msgid "Pr_eferences..."
msgstr "Tulajdonságok"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
-msgstr ""
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
+msgstr "Fájlkezelő"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "_Nézet"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
#, fuzzy
msgid "_Location Selector"
msgstr "_Címsor"
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr ""
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "_Ugrás"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr "_Szülő megnyitása"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr "Szülőmappa megnyitása"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
#, fuzzy
msgid "_Home"
msgstr "Saját könyvtár"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
#, fuzzy
msgid "Open the home folder"
msgstr "Szülőmappa megnyitása"
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr "_Hely megnyitása..."
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr "Adott hely megnyitása"
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "_Súgó"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "_Névjegy"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr "A Thunar adatainak megjelenítése"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
#, fuzzy
msgid "Show _Hidden Files"
msgstr "Rejtett fájlok mutatása"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr "A rejtett fájlok mutatását váltja a jelen ablakban"
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr "Ezen ablakban megjelenített könyvtár"
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr "Ezen ablakban használt UI kezelő"
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr ""
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr "_Rejtett"
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
#, fuzzy
msgid "_Pathbar Style"
msgstr "_Hagyományos stílus"
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr ""
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
#, fuzzy
msgid "_Toolbar Style"
msgstr "_Hagyományos stílus"
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr ""
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr ""
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr ""
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr ""
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr ""
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr ""
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
#, fuzzy
msgid "Failed to open home directory"
msgstr "Nem megnyitható könyvtár: %s"
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
msgstr ""
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr ""
msgid "Don't unload the plugin from memory"
msgstr ""
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+#, fuzzy
+msgid "Edit the currently selected action."
+msgstr "A most megjelenített fájl"
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+#, fuzzy
+msgid "Delete the currently selected action."
+msgstr "A kijelölt elem tulajdonságai"
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "Nem törölhető: %s"
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+msgid "Basic"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+#, fuzzy
+msgid "_Name:"
+msgstr "Név"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+#, fuzzy
+msgid "The name of the action that will be displayed in the context menu."
+msgstr "Az állapotsor fő szövege"
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+#, fuzzy
+msgid "_Description:"
+msgstr "_Hely:"
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+#, fuzzy
+msgid "_Icon:"
+msgstr "_Hely:"
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+#, fuzzy
+msgid "the path to the first selected file"
+msgstr "A kijelölt elem tulajdonságai"
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+#, fuzzy
+msgid "the paths to all selected files"
+msgstr "A kijelölt elem tulajdonságai"
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "Minta:"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+#, fuzzy
+msgid "_Directories"
+msgstr "Fájlok gyűjtése..."
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+#, fuzzy
+msgid "_Audio Files"
+msgstr "Fájlok másolása"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+#, fuzzy
+msgid "_Image Files"
+msgstr "Fájlok beillesztése"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+#, fuzzy
+msgid "_Text Files"
+msgstr "Fájlok kivágása"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+#, fuzzy
+msgid "_Video Files"
+msgstr "Fájlok másolása"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+#, fuzzy
+msgid "_Other Files"
+msgstr "Fájlok beillesztése"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "_Hely megnyitása..."
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+#, fuzzy
+msgid "Image Files"
+msgstr "Fájlok beillesztése"
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+#, fuzzy
+msgid "Failed to determine save location for uca.xml"
+msgstr "Nem sikerült meghatározni a szülő URI-t ehhez: %s"
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "Nem törölhető: %s"
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr ""
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 19:07+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-11-28 22:00+0900\n"
"Last-Translator: Daichi Kawahata <daichi@xfce.org>\n"
"Language-Team: Japanese <xfce-users-jp@ml.fdiary.net>\n"
msgstr "%s のコピー"
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr "%s へのリンク"
msgstr "リンク `%s' の作成に失敗しました。"
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr "<i>%s</i> とタイプが \"%s\" の他のファイルを以下のアプリで開きます:"
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
msgid "Select an Application"
msgstr "アプリケーションを選択して下さい"
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
msgid "All Files"
msgstr "全てのファイル"
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
msgid "Executable Files"
msgstr "実行可能ファイル"
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr "Perl スクリプト"
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr "Python スクリプト"
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr "Ruby スクリプト"
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr "シェルスクリプト"
msgstr "詳細表示"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr "%s。"
msgstr "表示されるファイルの数です。"
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr "隠しファイルを表示"
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr "隠しファイルを表示するかを指定します。"
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr "壊れたリンク"
msgid_plural "%d items selected (%s)"
msgstr[0] "%d 個のアイテム (%s) が選択されています。"
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr "間隔"
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr "パスボタン同士の間のスペースです。"
msgid "_Location:"
msgstr "フォルダの位置(_L):"
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr "現在のフォルダ"
msgid "The icon size for the path entry"
msgstr "パス・エントリーのアイコン・サイズです"
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
msgid "File Manager Preferences"
msgstr "ファイルマネージャーの環境設定"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr "<b>標準の表示方法</b>"
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr "新規フォルダの表示方法(_N):"
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
msgid "Icon View"
msgstr "アイコン表示"
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
msgid "Detailed List View"
msgstr "詳細リスト表示"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr "最後に使用した表示方法"
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr "フォルダをファイルの前にする(_F)"
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
"フォルダを並べ替える時にフォルダをファイルの前に並べるなら、このオプションを"
"選択して下さい。"
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
msgid "Show hidden and _backup files"
msgstr "隠しファイルを表示(_B)"
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"選択して下さい。隠しファイル名の先頭につく文字はピリオド「.」、予備ファイルの"
"末尾にはチルダ「~」がついています。"
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
msgid "<b>Icon View</b>"
msgstr "<b>アイコン表示</b>"
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr "文字をアイコンの隣に置く(_T)"
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr "ダイアログに表示されているファイルです"
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "一般"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "名前:"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr "種類:"
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr "変更日時:"
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr "アクセス日時:"
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr "容量:"
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "サイズ:"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr "エンブレム"
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr "%s の情報"
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u バイト)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, c-format
msgid "Failed to rename `%s'"
msgstr "このウィンドウの全てのファイルを選択します。"
#: ../thunar/thunar-standard-view.c:263
-msgid "Select _by Pattern"
+#, fuzzy
+msgid "Select _by Pattern..."
msgstr "パターンで選択(_B)"
#: ../thunar/thunar-standard-view.c:263
msgid "Text to be displayed in the statusbar associated with this view"
msgstr "この表示に関連付けられたステータスバーで表示されるテキストです。"
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr "UI マネージャー"
msgid "UI manager of the surrounding window"
msgstr "ウィンドウを囲う UI マネージャーです。"
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "ファイル(_F)"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "新規ウィンドウを開く(_W)"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr "表示されている場所のウィンドウを新しく開きます。"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr "全ウィンドウを閉じる(_A)"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Thunar の全てのウィンドウを閉じます。"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "閉じる(_C)"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "このウィンドウを閉じます。"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "編集(_E)"
-#: ../thunar/thunar-window.c:161
-msgid "_Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Pr_eferences..."
msgstr "環境設定(_P)"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
msgstr "Thunar の環境設定を行います。"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "表示(_V)"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
msgid "_Location Selector"
msgstr "位置セレクター(_L)"
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr "サイドペイン(_S)"
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "移動(_G)"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr "上位フォルダを開く(_P)"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr "上の階層にあるフォルダを開きます。"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "_Home"
msgstr "ホーム(_H)"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "Open the home folder"
msgstr "ホームフォルダを開きます。"
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr "指定位置を開く(_L)..."
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr "フォルダの位置を指定して開きます。"
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "ヘルプ(_H)"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "このプログラムについて(_A)"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr "Thunar についての情報を表示します。"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Show _Hidden Files"
msgstr "隠しファイルを表示(_H)"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr "現在のウィンドウで隠しファイルの表示/非表示を切り替えます。"
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr "現在このウィンドウ内に表示されているフォルダです。"
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr "このウィンドウ内で使用されている UI マネージャーです。"
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr "お気に入り(_F)"
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr "表示しない(_H)"
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
msgid "_Pathbar Style"
msgstr "パスボタン方式(_T)"
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr "フォルダに対応するボタンを表示する今風の表示方式です。"
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
msgid "_Toolbar Style"
msgstr "ツールバー方式(_T)"
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr "位置バーおよびナビゲーションボタンを表示する旧来の表示方式です。"
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr "いずれの位置セレクターも表示しません。"
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr "アイコン表示(_I)"
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr "フォルダの内容をアイコンで表示します。"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr "詳細リスト表示(_D)"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr "フォルダの内容を詳細なリストで表示します。"
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
msgid "Failed to open home directory"
msgstr "ホームフォルダを開くのに失敗しました。"
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
"Thunar は Xfce デスクトップ環境向けの\n"
"使いやすい軽快なファイルマネージャーです。"
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr "Daichi Kawahata <daichi@xfce.org>"
msgid "Don't unload the plugin from memory"
msgstr "一度読み込まれたプラグインはメモリーに残しておきます。"
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+#, fuzzy
+msgid "Edit the currently selected action."
+msgstr "現在表示されているファイルです。"
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+#, fuzzy
+msgid "Delete the currently selected action."
+msgstr "選択したファイルを削除します。"
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "ファイル %s からアプリケーションを読み込むのに失敗しました。"
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+#, fuzzy
+msgid "Basic"
+msgstr "戻る"
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+#, fuzzy
+msgid "_Name:"
+msgstr "名前:"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+#, fuzzy
+msgid "The name of the action that will be displayed in the context menu."
+msgstr "ステータスバーに表示されるメインテキストです。"
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+#, fuzzy
+msgid "_Description:"
+msgstr "フォルダの位置(_L):"
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+#, fuzzy
+msgid "_Icon:"
+msgstr "フォルダの位置(_L):"
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+#, fuzzy
+msgid "the path to the first selected file"
+msgstr "選択したファイルのプロパティを表示します。"
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+#, fuzzy
+msgid "the paths to all selected files"
+msgstr "選択したファイルを切り取ります。"
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "パターン:"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+#, fuzzy
+msgid "_Directories"
+msgstr "フォルダを削除しています..."
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+#, fuzzy
+msgid "_Audio Files"
+msgstr "コピー(_C)"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+#, fuzzy
+msgid "_Image Files"
+msgstr "貼り付け(_P)"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+#, fuzzy
+msgid "_Text Files"
+msgstr "切り取り(_T)"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+#, fuzzy
+msgid "_Video Files"
+msgstr "コピー(_C)"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+#, fuzzy
+msgid "_Other Files"
+msgstr "貼り付け(_P)"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "アプリケーションを選択して下さい"
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+#, fuzzy
+msgid "Image Files"
+msgstr "貼り付け(_P)"
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+#, fuzzy
+msgid "Failed to determine save location for uca.xml"
+msgstr "`%s' のファイル情報を確定するのに失敗しました。"
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "操作の実行に失敗しました。"
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr "ファイルマネージャーでファイルシステムを閲覧します"
msgstr ""
"Project-Id-Version: Thunar 0.1.4svn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-28 23:30+0900\n"
+"POT-Creation-Date: 2005-11-29 18:22+0100\n"
"PO-Revision-Date: 2005-11-17 16:55+0900\n"
"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
"Language-Team: os-cillation <info@os-cillation.com>\n"
msgstr "cópia de %s"
#: ../thunar-vfs/thunar-vfs-xfer.c:158 ../thunar/thunar-list-model.c:703
-#: ../thunar/thunar-properties-dialog.c:617
+#: ../thunar/thunar-properties-dialog.c:629
#, c-format
msgid "link to %s"
msgstr "link para %s"
msgstr "Falha em criar simbólico `%s'"
#. setup application name
-#: ../thunar/main.c:47 ../thunar/thunar-window.c:391
+#: ../thunar/main.c:47 ../thunar/thunar-window.c:404
msgid "Thunar"
msgstr "Thunar"
msgid "Open <i>%s</i> and other files of type \"%s\" with:"
msgstr "Abrir <i>%s</i> e outros arquivos do tipo \"%s\" com:"
-#: ../thunar/thunar-chooser-dialog.c:634
+#: ../thunar/thunar-chooser-dialog.c:634 ../thunar-uca/thunar-uca-editor.c:491
msgid "Select an Application"
msgstr "Selecione uma Aplicação"
-#: ../thunar/thunar-chooser-dialog.c:644
+#: ../thunar/thunar-chooser-dialog.c:644 ../thunar-uca/thunar-uca-editor.c:501
+#: ../thunar-uca/thunar-uca-editor.c:640
msgid "All Files"
msgstr "Todos os Arquivos"
-#: ../thunar/thunar-chooser-dialog.c:649
+#: ../thunar/thunar-chooser-dialog.c:649 ../thunar-uca/thunar-uca-editor.c:506
msgid "Executable Files"
msgstr "Arquivos Executáveis"
-#: ../thunar/thunar-chooser-dialog.c:664
+#: ../thunar/thunar-chooser-dialog.c:664 ../thunar-uca/thunar-uca-editor.c:521
msgid "Perl Scripts"
msgstr "Scripts de Perl"
-#: ../thunar/thunar-chooser-dialog.c:670
+#: ../thunar/thunar-chooser-dialog.c:670 ../thunar-uca/thunar-uca-editor.c:527
msgid "Python Scripts"
msgstr "Scripts de Python"
-#: ../thunar/thunar-chooser-dialog.c:676
+#: ../thunar/thunar-chooser-dialog.c:676 ../thunar-uca/thunar-uca-editor.c:533
msgid "Ruby Scripts"
msgstr "Scripts de Ruby"
-#: ../thunar/thunar-chooser-dialog.c:682
+#: ../thunar/thunar-chooser-dialog.c:682 ../thunar-uca/thunar-uca-editor.c:539
msgid "Shell Scripts"
msgstr "Scripts de Shell"
msgstr "Visualização de detalhes"
#: ../thunar/thunar-dialogs.c:74 ../thunar/thunar-dialogs.c:78
+#: ../thunar-uca/thunar-uca-chooser.c:412
+#: ../thunar-uca/thunar-uca-provider.c:329
#, c-format
msgid "%s."
msgstr "%s."
msgstr "Número de arquivos visíveis"
#: ../thunar/thunar-list-model.c:342 ../thunar/thunar-view.c:108
-#: ../thunar/thunar-window.c:258
+#: ../thunar/thunar-window.c:268
msgid "Show hidden"
msgstr "Mostrar invisíveis"
#: ../thunar/thunar-list-model.c:343 ../thunar/thunar-view.c:109
-#: ../thunar/thunar-window.c:259
+#: ../thunar/thunar-window.c:269
msgid "Whether to display hidden files"
msgstr "Se deve-se mostrar arquivos invisíveis"
-#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:615
+#: ../thunar/thunar-list-model.c:701 ../thunar/thunar-properties-dialog.c:627
msgid "broken link"
msgstr "ligação quebrada"
msgstr[0] "%d item selecionado"
msgstr[1] "%d ítens selecionados"
-#: ../thunar/thunar-location-buttons.c:256
+#: ../thunar/thunar-location-buttons.c:258
msgid "Spacing"
msgstr "Espaçamento"
-#: ../thunar/thunar-location-buttons.c:257
+#: ../thunar/thunar-location-buttons.c:259
msgid "The amount of space between the path buttons"
msgstr "A quantidade de espaço entre os botões de caminho"
msgid "_Location:"
msgstr "_Endereço:"
-#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:245
+#: ../thunar/thunar-navigator.c:135 ../thunar/thunar-window.c:255
msgid "Current directory"
msgstr "Diretório atual"
msgid "The icon size for the path entry"
msgstr "O tamanho de ícone para a entrada de caminho"
-#: ../thunar/thunar-preferences-dialog.c:177
+#: ../thunar/thunar-preferences-dialog.c:185
msgid "File Manager Preferences"
msgstr "Preferências de Gerenciador de Arquivo"
-#: ../thunar/thunar-preferences-dialog.c:193
+#: ../thunar/thunar-preferences-dialog.c:201
msgid "<b>Default View</b>"
msgstr "<b>Visualização Padrão</b>"
-#: ../thunar/thunar-preferences-dialog.c:204
+#: ../thunar/thunar-preferences-dialog.c:212
msgid "View _new folders using:"
msgstr "Visualizar _novas pastas usando:"
-#: ../thunar/thunar-preferences-dialog.c:209
+#: ../thunar/thunar-preferences-dialog.c:217
msgid "Icon View"
msgstr "Visualização de Ícone"
-#: ../thunar/thunar-preferences-dialog.c:210
+#: ../thunar/thunar-preferences-dialog.c:218
msgid "Detailed List View"
msgstr "Visualização de Lista Detalhada"
-#: ../thunar/thunar-preferences-dialog.c:211
+#: ../thunar/thunar-preferences-dialog.c:219
msgid "Last Active View"
msgstr "Última Visualização Ativa"
-#: ../thunar/thunar-preferences-dialog.c:226
+#: ../thunar/thunar-preferences-dialog.c:234
msgid "Sort _folders before files"
msgstr "Ordenar _pastas antes dos arquivos"
-#: ../thunar/thunar-preferences-dialog.c:228
+#: ../thunar/thunar-preferences-dialog.c:236
msgid "Select this option to list folders before files when you sort a folder."
msgstr ""
"Selecione esta opção para listar pastas antes dos arquivos quando você "
"ordenar uma pasta."
-#: ../thunar/thunar-preferences-dialog.c:232
+#: ../thunar/thunar-preferences-dialog.c:240
msgid "Show hidden and _backup files"
msgstr "Mostrar arquivos de _backup e invisíveis"
-#: ../thunar/thunar-preferences-dialog.c:234
+#: ../thunar/thunar-preferences-dialog.c:242
msgid ""
"Select this option to show hidden and backup files in new windows. The first "
"character in a hidden filename is a period (.). The last character in a "
"janelas. O primeiro caractere em um arquivo invisível é um ponto (.). O "
"último caractere em um arquivo de backup é um tio (~)."
-#: ../thunar/thunar-preferences-dialog.c:244
+#: ../thunar/thunar-preferences-dialog.c:252
msgid "<b>Icon View</b>"
msgstr "<b>Visualização de Ícone</b>"
-#: ../thunar/thunar-preferences-dialog.c:255
+#: ../thunar/thunar-preferences-dialog.c:263
msgid "_Text beside icons"
msgstr "_Texto ao lado dos ícones"
-#: ../thunar/thunar-preferences-dialog.c:257
+#: ../thunar/thunar-preferences-dialog.c:265
msgid ""
"Select this option to place the icon captions for items beside the icon "
"rather than below the icon."
msgid "The file displayed by the dialog"
msgstr "O arquivo mostrado pelo diálogo"
-#: ../thunar/thunar-properties-dialog.c:209
+#: ../thunar/thunar-properties-dialog.c:217
msgid "General"
msgstr "Geral"
-#: ../thunar/thunar-properties-dialog.c:226
+#: ../thunar/thunar-properties-dialog.c:234
msgid "Name:"
msgstr "Nome:"
#.
#. Second box (kind)
#.
-#: ../thunar/thunar-properties-dialog.c:251
+#: ../thunar/thunar-properties-dialog.c:259
msgid "Kind:"
msgstr "Tipo:"
#.
#. Third box (modified, accessed)
#.
-#: ../thunar/thunar-properties-dialog.c:276
+#: ../thunar/thunar-properties-dialog.c:284
msgid "Modified:"
msgstr "Modificado:"
-#: ../thunar/thunar-properties-dialog.c:289
+#: ../thunar/thunar-properties-dialog.c:297
msgid "Accessed:"
msgstr "Acessado:"
#.
#. Fourth box (volume, size)
#.
-#: ../thunar/thunar-properties-dialog.c:313
+#: ../thunar/thunar-properties-dialog.c:321
msgid "Volume:"
msgstr "Volume:"
-#: ../thunar/thunar-properties-dialog.c:336
+#: ../thunar/thunar-properties-dialog.c:344
msgid "Size:"
msgstr "Tamanho:"
#.
#. Emblem chooser
#.
-#: ../thunar/thunar-properties-dialog.c:360
+#: ../thunar/thunar-properties-dialog.c:368
msgid "Emblems"
msgstr "Emblemas"
-#: ../thunar/thunar-properties-dialog.c:592
+#: ../thunar/thunar-properties-dialog.c:604
#, c-format
msgid "%s Info"
msgstr "Informação %s"
-#: ../thunar/thunar-properties-dialog.c:673
+#: ../thunar/thunar-properties-dialog.c:685
#, c-format
msgid "%s (%u Bytes)"
msgstr "%s (%u Bytes)"
#. display an error message
-#: ../thunar/thunar-properties-dialog.c:719
+#: ../thunar/thunar-properties-dialog.c:731
#: ../thunar/thunar-standard-view.c:2175
#, c-format
msgid "Failed to rename `%s'"
msgstr "Selecionar todos os arquivos nesta janela"
#: ../thunar/thunar-standard-view.c:263
-msgid "Select _by Pattern"
+#, fuzzy
+msgid "Select _by Pattern..."
msgstr "Selecionar por _Padrão"
#: ../thunar/thunar-standard-view.c:263
msgstr ""
"Texto a ser mostrado na barra de status associada com esta visualização"
-#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:273
+#: ../thunar/thunar-view.c:122 ../thunar/thunar-window.c:283
msgid "UI manager"
msgstr "Gerenciador de Interface de Usuário"
msgid "UI manager of the surrounding window"
msgstr "Gerenciador de Interface de Usuário da janela circundante"
-#: ../thunar/thunar-window.c:156
+#: ../thunar/thunar-window.c:166
msgid "_File"
msgstr "_Arquivo"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open New _Window"
msgstr "Abrir Nova _Janela"
-#: ../thunar/thunar-window.c:157
+#: ../thunar/thunar-window.c:167
msgid "Open a new Thunar window for the displayed location"
msgstr "Abrir uma nova janela Thunar para o endereço mostrado"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close _All Windows"
msgstr "Fechar Tod_as as Janelas"
-#: ../thunar/thunar-window.c:158
+#: ../thunar/thunar-window.c:168
msgid "Close all Thunar windows"
msgstr "Fechar todas as janelas Thunar"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "_Close"
msgstr "Fe_char"
-#: ../thunar/thunar-window.c:159
+#: ../thunar/thunar-window.c:169
msgid "Close this window"
msgstr "Fechar esta janela"
-#: ../thunar/thunar-window.c:160
+#: ../thunar/thunar-window.c:170
msgid "_Edit"
msgstr "_Editar"
-#: ../thunar/thunar-window.c:161
-msgid "_Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Pr_eferences..."
msgstr "_Preferências"
-#: ../thunar/thunar-window.c:161
-msgid "Edit Thunar Preferences"
+#: ../thunar/thunar-window.c:171
+#, fuzzy
+msgid "Edit Thunars Preferences"
msgstr "Editar Preferências do Thunar"
-#: ../thunar/thunar-window.c:162
+#: ../thunar/thunar-window.c:172
msgid "_View"
msgstr "_Visualização"
-#: ../thunar/thunar-window.c:163
+#: ../thunar/thunar-window.c:173
msgid "_Location Selector"
msgstr "_Seletor de Endereço"
-#: ../thunar/thunar-window.c:164
+#: ../thunar/thunar-window.c:174
msgid "_Side Pane"
msgstr "_Painel Lateral"
-#: ../thunar/thunar-window.c:165
+#: ../thunar/thunar-window.c:175
msgid "_Go"
msgstr "_Ir"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open _Parent"
msgstr "Abrir _Pai"
-#: ../thunar/thunar-window.c:166
+#: ../thunar/thunar-window.c:176
msgid "Open the parent folder"
msgstr "Abrir a pasta pai"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "_Home"
msgstr "_Pasta Inicial"
-#: ../thunar/thunar-window.c:167
+#: ../thunar/thunar-window.c:177
msgid "Open the home folder"
msgstr "Abrir a pasta inicial"
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Open _Location..."
msgstr "Abrir _Endereço..."
-#: ../thunar/thunar-window.c:168
+#: ../thunar/thunar-window.c:178
msgid "Specify a location to open"
msgstr "Especifique um endereço para abrir"
-#: ../thunar/thunar-window.c:169
+#: ../thunar/thunar-window.c:179
msgid "_Help"
msgstr "Aj_uda"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "_About"
msgstr "_Sobre"
-#: ../thunar/thunar-window.c:171 ../thunar/thunar-window.c:173
+#: ../thunar/thunar-window.c:181 ../thunar/thunar-window.c:183
msgid "Display information about Thunar"
msgstr "Mostrar informação sobre o Thunar"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Show _Hidden Files"
msgstr "Mostrar Arquivos Invisíveis"
-#: ../thunar/thunar-window.c:179
+#: ../thunar/thunar-window.c:189
msgid "Toggles the display of hidden files in the current window"
msgstr "Alterna a mostragem de arquivos invisíveis na janela atual"
-#: ../thunar/thunar-window.c:246
+#: ../thunar/thunar-window.c:256
msgid "The directory currently displayed within this window"
msgstr "O diretório atualmente mostrado dentro desta janela"
-#: ../thunar/thunar-window.c:274
+#: ../thunar/thunar-window.c:284
msgid "The UI manager used within this window"
msgstr "O gerenciador de interface de usuário usado dentro desta janela"
#.
#. * add the side pane options
#.
-#: ../thunar/thunar-window.c:329
+#: ../thunar/thunar-window.c:342
msgid "_Favourites"
msgstr "_Favoritos"
-#: ../thunar/thunar-window.c:335 ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:348 ../thunar/thunar-window.c:371
msgid "_Hidden"
msgstr "_Invisíveis"
#.
#. * add the location selector options
#.
-#: ../thunar/thunar-window.c:344
+#: ../thunar/thunar-window.c:357
msgid "_Pathbar Style"
msgstr "E_stilo da Barra de Caminho"
-#: ../thunar/thunar-window.c:345
+#: ../thunar/thunar-window.c:358
msgid "Modern approach with buttons that correspond to folders"
msgstr "Estilo moderno com botões que correspondem a pastas"
-#: ../thunar/thunar-window.c:351
+#: ../thunar/thunar-window.c:364
msgid "_Toolbar Style"
msgstr "Es_tilo Barra de Ferramentas"
-#: ../thunar/thunar-window.c:352
+#: ../thunar/thunar-window.c:365
msgid "Traditional approach with location bar and navigation buttons"
msgstr "Estilo tradicional com barra de endereço e botões de navegação"
-#: ../thunar/thunar-window.c:358
+#: ../thunar/thunar-window.c:371
msgid "Don't display any location selector"
msgstr "Não mostre qualquer seletor de endereço"
#.
#. * add view options
#.
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "View as _Icons"
msgstr "Visualizar como Ícones"
-#: ../thunar/thunar-window.c:367
+#: ../thunar/thunar-window.c:380
msgid "Display folder content in an icon view"
msgstr "Mostrar conteúdo de pasta em uma visualização de ícone"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "View as _Detailed List"
msgstr "Visualizar como Lista _Detalhada"
-#: ../thunar/thunar-window.c:374
+#: ../thunar/thunar-window.c:387
msgid "Display folder content in a detailed list view"
msgstr "Mostrar conteúdo de pasta em uma visualização de lista detalhada"
#. display an error to the user
-#: ../thunar/thunar-window.c:868
+#: ../thunar/thunar-window.c:951
msgid "Failed to open home directory"
msgstr "Falha em abrir diretório inicial"
-#: ../thunar/thunar-window.c:943
+#: ../thunar/thunar-window.c:1026
msgid ""
"Thunar is a fast and easy to use file manager\n"
"for the Xfce Desktop Environment."
"Thunar é um gerenciador de arquivos fácil de usar e rápido\n"
"para o Ambiente de Área de Trabalho Xfce."
-#: ../thunar/thunar-window.c:948
+#: ../thunar/thunar-window.c:1031
msgid "translator-credits"
msgstr "Créditos de tradutores"
msgid "Don't unload the plugin from memory"
msgstr ""
+#: ../thunar-uca/thunar-uca-chooser.c:125
+msgid "Custom Actions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:142
+msgid ""
+"You can configure custom actions that will appear in the\n"
+"file managers context menus for certain kinds of files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:192
+msgid "Add a new custom action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:202
+#, fuzzy
+msgid "Edit the currently selected action."
+msgstr "O arquivo mostrado atualmente"
+
+#: ../thunar-uca/thunar-uca-chooser.c:212
+#, fuzzy
+msgid "Delete the currently selected action."
+msgstr "Deletar os arquivos selecionados"
+
+#: ../thunar-uca/thunar-uca-chooser.c:222
+msgid "Move the currently selection action up by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:232
+msgid "Move the currently selection action down by one row."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Edit Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:362
+msgid "Create Action"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-chooser.c:411
+#, fuzzy
+msgid "Failed to save actions to disk."
+msgstr "Falha em carregar aplicação do arquivo %s"
+
+#.
+#. Basic
+#.
+#: ../thunar-uca/thunar-uca-editor.c:136
+msgid "Basic"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:145
+#, fuzzy
+msgid "_Name:"
+msgstr "Nome:"
+
+#: ../thunar-uca/thunar-uca-editor.c:150
+#, fuzzy
+msgid "The name of the action that will be displayed in the context menu."
+msgstr "O texto principal a ser mostrado na barra de status"
+
+#: ../thunar-uca/thunar-uca-editor.c:163
+#, fuzzy
+msgid "_Description:"
+msgstr "_Endereço:"
+
+#: ../thunar-uca/thunar-uca-editor.c:168
+msgid ""
+"The description of the action that will be displayed as tooltip in the "
+"statusbar when selecting the item from the context menu."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:181
+msgid "_Command:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:190
+msgid ""
+"The command (including the necessary parameters) to perform the action. See "
+"the command parameter legend below for a list of supported parameter "
+"variables, which will be substituted when launching the command. When upper-"
+"case letters (e.g. %F, %D, %N) are used, the action will be applicable even "
+"if more than one item is selected. Else the action will only be applicable "
+"if exactly one item is selected."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:201
+msgid "Browse the file system to select an application to use for this action."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:217
+#, fuzzy
+msgid "_Icon:"
+msgstr "_Endereço:"
+
+#. setup a label to tell that no icon was selected
+#: ../thunar-uca/thunar-uca-editor.c:225 ../thunar-uca/thunar-uca-editor.c:770
+msgid "No icon"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:226
+msgid ""
+"Click this button to select an icon file that will be displayed in the "
+"context menu in addition to the action name chosen above."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:257
+msgid ""
+"The following command parameters will be\n"
+"substituted when launching the action:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:295
+#, fuzzy
+msgid "the path to the first selected file"
+msgstr "Visualizar as propriedades do arquivo selecionado"
+
+#: ../thunar-uca/thunar-uca-editor.c:307
+#, fuzzy
+msgid "the paths to all selected files"
+msgstr "Recortar os arquivos selecionados"
+
+#: ../thunar-uca/thunar-uca-editor.c:319
+#, c-format
+msgid "directory containing the file that is passed in %f"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:331
+#, c-format
+msgid "directories containing the files that are passed in %F"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:343
+msgid "the first selected filename (without path)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:355
+msgid "the selected filenames (without paths)"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:369
+msgid "Appearance Conditions"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:377
+#, fuzzy
+msgid "_File Pattern:"
+msgstr "Padrão:"
+
+#: ../thunar-uca/thunar-uca-editor.c:382
+msgid ""
+"Enter a list of patterns that will be used to determine whether this action "
+"should be displayed for a selected file. If you specify more than one "
+"pattern here, the list items must be separated with semicolons (e.g. *.txt;*."
+"doc)."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:401
+msgid "Appears if selection contains:"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:414
+#, fuzzy
+msgid "_Directories"
+msgstr "Deletando diretórios..."
+
+#: ../thunar-uca/thunar-uca-editor.c:418
+#, fuzzy
+msgid "_Audio Files"
+msgstr "_Copiar Arquivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:422
+#, fuzzy
+msgid "_Image Files"
+msgstr "C_olar Arquivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:426
+#, fuzzy
+msgid "_Text Files"
+msgstr "Recor_tar Arquivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:431
+#, fuzzy
+msgid "_Video Files"
+msgstr "_Copiar Arquivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:435
+#, fuzzy
+msgid "_Other Files"
+msgstr "C_olar Arquivos"
+
+#: ../thunar-uca/thunar-uca-editor.c:452
+msgid ""
+"This page lists the conditions under which the\n"
+"action will appear in the file managers context\n"
+"menus. The file patterns are specified as a list\n"
+"of simple file patterns separated by semicolons\n"
+"(e.g. *.txt;*.doc). For an action to appear in the\n"
+"context menu of a file or folder, atleast one of\n"
+"these patterns must match the name of the file\n"
+"or folder. Additionally, you can specify that the\n"
+"action should only appear for certain kinds of\n"
+"files."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-editor.c:630
+#, fuzzy
+msgid "Select an Icon"
+msgstr "Selecione uma Aplicação"
+
+#: ../thunar-uca/thunar-uca-editor.c:645
+#, fuzzy
+msgid "Image Files"
+msgstr "C_olar Arquivos"
+
+#: ../thunar-uca/thunar-uca-model.c:762
+#, c-format
+msgid "Unknown element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:780
+msgid "End element handler called while in root context"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:868
+#, c-format
+msgid "Unknown closing element <%s>"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-model.c:1293
+#, fuzzy
+msgid "Failed to determine save location for uca.xml"
+msgstr "Falha em determinar informação de arquivo para `%s'"
+
+#: ../thunar-uca/thunar-uca-model.c:1409
+msgid "Command not configured"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:155
+msgid "Configure c_ustom actions..."
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:156
+msgid ""
+"Setup custom actions that will appear in the file managers context menus"
+msgstr ""
+
+#: ../thunar-uca/thunar-uca-provider.c:328
+#, fuzzy, c-format
+msgid "Failed to launch action `%s'."
+msgstr "Falha em lançar operação"
+
+#: ../thunar-uca/uca.xml.in.h:1
+msgid "Example for a custom action"
+msgstr ""
+
+#: ../thunar-uca/uca.xml.in.h:2
+msgid "Open Terminal Here"
+msgstr ""
+
#: ../Thunar.desktop.in.h:1
msgid "Browse the filesystem with the file manager"
msgstr "Navegar o sistema de arquivos com o gerenciar de arquivos"
--- /dev/null
+# $Id$
+
+INCLUDES = \
+ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ -DBINDIR=\"$(bindir)\" \
+ -DDATADIR=\"$(datadir)\" \
+ -DEXO_API_SUBJECT_TO_CHANGE \
+ -DG_LOG_DOMAIN=\"thunar-uca\" \
+ $(PLATFORM_CPPFLAGS)
+
+extensionsdir = $(libdir)/thunarx-$(THUNAR_VERSION_API)
+extensions_LTLIBRARIES = \
+ thunar-uca.la
+
+thunar_uca_la_SOURCES = \
+ thunar-uca-chooser.c \
+ thunar-uca-chooser.h \
+ thunar-uca-context.c \
+ thunar-uca-context.h \
+ thunar-uca-editor.c \
+ thunar-uca-editor.h \
+ thunar-uca-model.c \
+ thunar-uca-model.h \
+ thunar-uca-plugin.c \
+ thunar-uca-provider.c \
+ thunar-uca-provider.h
+
+thunar_uca_la_CFLAGS = \
+ $(EXO_CFLAGS) \
+ $(PLATFORM_CFLAGS)
+
+thunar_uca_la_LDFLAGS = \
+ -avoid-version \
+ -export-dynamic \
+ -module \
+ $(PLATFORM_LDFLAGS)
+
+defaultsdir = $(sysconfdir)/xdg/Thunar
+defaults_in_files = uca.xml.in
+defaults_DATA = $(defaults_in_files:.xml.in=.xml)
+@INTLTOOL_XML_RULE@
+
+EXTRA_DIST = \
+ README \
+ $(defaults_in_files)
+
+CLEANFILES = \
+ $(defaults_DATA)
+
+# vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
--- /dev/null
+Thunar User Customizable Actions (thunar-uca)
+=============================================
+
+Thunar-uca is an extension to Thunar, which enables sophisticated users to add
+additional actions to the file managers context menus, without having to write
+their own extensions for each and every action they want to use.
+
+By default the thunar-uca extension will be installed, but as with every
+extension, it will slightly increase the resource usage of Thunar (this
+shouldn't be a real problem unless your targeting an embedded system), and
+so you pass `--disable-uca-plugin' to configure and the plugin won't be built
+and installed. Since it is an extension, you can also easily uninstall it
+afterwards by removing the thunar-uca.so file from the lib/thunarx-1/ directory
+of your installation (be sure to quit Thunar before removing files though).
+
+To actually manage the actions open the "Edit" menu in the menu bar of a
+Thunar window and select "Configure Custom Actions...". A dialog will appear
+which lists the currently configured actions.
+
+
+List of valid command parameter variables
+=========================================
+
+ %f The path of the first selected file.
+
+ %F The paths to all selected files.
+
+ %u The URI of the first selected file (using the file:-URI scheme).
+
+ %U The URIs of all selected files (using the file:-URI scheme).
+
+ %d The directory of the first selected file.
+
+ %D The directories to all selected files.
+
+ %n The name of the first selected file (without the path).
+
+ %N The names of all selected files (without the paths).
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+
+#include <gdk/gdkkeysyms.h>
+
+#include <thunar-uca/thunar-uca-chooser.h>
+#include <thunar-uca/thunar-uca-editor.h>
+#include <thunar-uca/thunar-uca-model.h>
+
+
+
+static void thunar_uca_chooser_class_init (ThunarUcaChooserClass *klass);
+static void thunar_uca_chooser_init (ThunarUcaChooser *uca_chooser);
+static void thunar_uca_chooser_finalize (GObject *object);
+static gboolean thunar_uca_chooser_key_press_event (GtkWidget *widget,
+ GdkEventKey *event);
+static void thunar_uca_chooser_response (GtkDialog *dialog,
+ gint response);
+static void thunar_uca_chooser_exchange (ThunarUcaChooser *uca_chooser,
+ GtkTreeSelection *selection,
+ GtkTreeModel *model,
+ GtkTreeIter *iter_a,
+ GtkTreeIter *iter_b);
+static void thunar_uca_chooser_open_editor (ThunarUcaChooser *uca_chooser,
+ gboolean edit);
+static void thunar_uca_chooser_save (ThunarUcaChooser *uca_chooser,
+ ThunarUcaModel *uca_model);
+static void thunar_uca_chooser_selection_changed (ThunarUcaChooser *uca_chooser,
+ GtkTreeSelection *selection);
+static void thunar_uca_chooser_add_clicked (ThunarUcaChooser *uca_chooser);
+static void thunar_uca_chooser_edit_clicked (ThunarUcaChooser *uca_chooser);
+static void thunar_uca_chooser_delete_clicked (ThunarUcaChooser *uca_chooser);
+static void thunar_uca_chooser_up_clicked (ThunarUcaChooser *uca_chooser);
+static void thunar_uca_chooser_down_clicked (ThunarUcaChooser *uca_chooser);
+
+
+
+struct _ThunarUcaChooserClass
+{
+ GtkDialogClass __parent__;
+};
+
+struct _ThunarUcaChooser
+{
+ GtkDialog __parent__;
+
+ GtkTooltips *tooltips;
+
+ GtkWidget *treeview;
+ GtkWidget *add_button;
+ GtkWidget *edit_button;
+ GtkWidget *delete_button;
+ GtkWidget *up_button;
+ GtkWidget *down_button;
+};
+
+
+
+THUNARX_DEFINE_TYPE (ThunarUcaChooser, thunar_uca_chooser, GTK_TYPE_DIALOG);
+
+
+
+static void
+thunar_uca_chooser_class_init (ThunarUcaChooserClass *klass)
+{
+ GtkDialogClass *gtkdialog_class;
+ GtkWidgetClass *gtkwidget_class;
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = thunar_uca_chooser_finalize;
+
+ gtkwidget_class = GTK_WIDGET_CLASS (klass);
+ gtkwidget_class->key_press_event = thunar_uca_chooser_key_press_event;
+
+ gtkdialog_class = GTK_DIALOG_CLASS (klass);
+ gtkdialog_class->response = thunar_uca_chooser_response;
+}
+
+
+
+static void
+thunar_uca_chooser_init (ThunarUcaChooser *uca_chooser)
+{
+ GtkTreeViewColumn *column;
+ GtkTreeSelection *selection;
+ GtkCellRenderer *renderer;
+ ThunarUcaModel *uca_model;
+ GtkWidget *image;
+ GtkWidget *label;
+ GtkWidget *hbox;
+ GtkWidget *swin;
+ GtkWidget *vbox;
+
+ /* configure the dialog window */
+ gtk_dialog_add_button (GTK_DIALOG (uca_chooser), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
+ gtk_dialog_add_button (GTK_DIALOG (uca_chooser), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE);
+ gtk_dialog_set_default_response (GTK_DIALOG (uca_chooser), GTK_RESPONSE_CLOSE);
+ gtk_dialog_set_has_separator (GTK_DIALOG (uca_chooser), FALSE);
+ gtk_window_set_default_size (GTK_WINDOW (uca_chooser), 500, 350);
+ gtk_window_set_destroy_with_parent (GTK_WINDOW (uca_chooser), TRUE);
+ gtk_window_set_title (GTK_WINDOW (uca_chooser), _("Custom Actions"));
+
+ /* allocate shared tooltips object */
+ uca_chooser->tooltips = gtk_tooltips_new ();
+ g_object_ref (G_OBJECT (uca_chooser->tooltips));
+ gtk_object_sink (GTK_OBJECT (uca_chooser->tooltips));
+
+ hbox = gtk_hbox_new (FALSE, 3);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (uca_chooser)->vbox), hbox, FALSE, TRUE, 0);
+ gtk_widget_show (hbox);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DND);
+ gtk_misc_set_alignment (GTK_MISC (image), 0.5f, 0.0f);
+ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
+ gtk_widget_show (image);
+
+ label = gtk_label_new (_("You can configure custom actions that will appear in the\n"
+ "file managers context menus for certain kinds of files."));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.5f);
+ gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
+ gtk_widget_show (label);
+
+ hbox = gtk_hbox_new (FALSE, 3);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox), 6);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (uca_chooser)->vbox), hbox, TRUE, TRUE, 0);
+ gtk_widget_show (hbox);
+
+ swin = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (swin), GTK_SHADOW_IN);
+ gtk_box_pack_start (GTK_BOX (hbox), swin, TRUE, TRUE, 0);
+ gtk_widget_show (swin);
+
+ uca_chooser->treeview = gtk_tree_view_new ();
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (uca_chooser->treeview), FALSE);
+ gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (uca_chooser->treeview), TRUE);
+ gtk_container_add (GTK_CONTAINER (swin), uca_chooser->treeview);
+ g_signal_connect_swapped (G_OBJECT (uca_chooser->treeview), "row-activated", G_CALLBACK (thunar_uca_chooser_edit_clicked), uca_chooser);
+ gtk_widget_show (uca_chooser->treeview);
+
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (uca_chooser->treeview));
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+ g_signal_connect_swapped (G_OBJECT (selection), "changed", G_CALLBACK (thunar_uca_chooser_selection_changed), uca_chooser);
+
+ uca_model = thunar_uca_model_get_default ();
+ gtk_tree_view_set_model (GTK_TREE_VIEW (uca_chooser->treeview), GTK_TREE_MODEL (uca_model));
+ g_object_unref (G_OBJECT (uca_model));
+
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_expand (column, TRUE);
+ gtk_tree_view_column_set_resizable (column, FALSE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (uca_chooser->treeview), column);
+
+ renderer = g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF, "stock-size", GTK_ICON_SIZE_DND, "xpad", 2, "ypad", 2, NULL);
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ gtk_tree_view_column_set_attributes (column, renderer, "stock-id", THUNAR_UCA_MODEL_COLUMN_STOCK_ID, NULL);
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ gtk_tree_view_column_set_attributes (column, renderer, "markup", THUNAR_UCA_MODEL_COLUMN_STOCK_LABEL, NULL);
+
+ vbox = gtk_vbox_new (FALSE, 3);
+ gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
+ gtk_widget_show (vbox);
+
+ uca_chooser->add_button = gtk_button_new ();
+ gtk_tooltips_set_tip (uca_chooser->tooltips, uca_chooser->add_button, _("Add a new custom action."), NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), uca_chooser->add_button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (G_OBJECT (uca_chooser->add_button), "clicked", G_CALLBACK (thunar_uca_chooser_add_clicked), uca_chooser);
+ gtk_widget_show (uca_chooser->add_button);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (uca_chooser->add_button), image);
+ gtk_widget_show (image);
+
+ uca_chooser->edit_button = gtk_button_new ();
+ gtk_tooltips_set_tip (uca_chooser->tooltips, uca_chooser->edit_button, _("Edit the currently selected action."), NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), uca_chooser->edit_button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (G_OBJECT (uca_chooser->edit_button), "clicked", G_CALLBACK (thunar_uca_chooser_edit_clicked), uca_chooser);
+ gtk_widget_show (uca_chooser->edit_button);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (uca_chooser->edit_button), image);
+ gtk_widget_show (image);
+
+ uca_chooser->delete_button = gtk_button_new ();
+ gtk_tooltips_set_tip (uca_chooser->tooltips, uca_chooser->delete_button, _("Delete the currently selected action."), NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), uca_chooser->delete_button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (G_OBJECT (uca_chooser->delete_button), "clicked", G_CALLBACK (thunar_uca_chooser_delete_clicked), uca_chooser);
+ gtk_widget_show (uca_chooser->delete_button);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (uca_chooser->delete_button), image);
+ gtk_widget_show (image);
+
+ uca_chooser->up_button = gtk_button_new ();
+ gtk_tooltips_set_tip (uca_chooser->tooltips, uca_chooser->up_button, _("Move the currently selection action up by one row."), NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), uca_chooser->up_button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (G_OBJECT (uca_chooser->up_button), "clicked", G_CALLBACK (thunar_uca_chooser_up_clicked), uca_chooser);
+ gtk_widget_show (uca_chooser->up_button);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_GO_UP, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (uca_chooser->up_button), image);
+ gtk_widget_show (image);
+
+ uca_chooser->down_button = gtk_button_new ();
+ gtk_tooltips_set_tip (uca_chooser->tooltips, uca_chooser->down_button, _("Move the currently selection action down by one row."), NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), uca_chooser->down_button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (G_OBJECT (uca_chooser->down_button), "clicked", G_CALLBACK (thunar_uca_chooser_down_clicked), uca_chooser);
+ gtk_widget_show (uca_chooser->down_button);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_GO_DOWN, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (uca_chooser->down_button), image);
+ gtk_widget_show (image);
+}
+
+
+
+static void
+thunar_uca_chooser_finalize (GObject *object)
+{
+ ThunarUcaChooser *uca_chooser = THUNAR_UCA_CHOOSER (object);
+
+ /* release the tooltips */
+ g_object_unref (G_OBJECT (uca_chooser->tooltips));
+
+ (*G_OBJECT_CLASS (thunar_uca_chooser_parent_class)->finalize) (object);
+}
+
+
+
+static gboolean
+thunar_uca_chooser_key_press_event (GtkWidget *widget,
+ GdkEventKey *event)
+{
+ /* close chooser window on Esc key press */
+ if (G_UNLIKELY (event->keyval == GDK_Escape))
+ {
+ gtk_dialog_response (GTK_DIALOG (widget), GTK_RESPONSE_CLOSE);
+ return TRUE;
+ }
+
+ return (*GTK_WIDGET_CLASS (thunar_uca_chooser_parent_class)->key_press_event) (widget, event);
+}
+
+
+
+static void
+thunar_uca_chooser_response (GtkDialog *dialog,
+ gint response)
+{
+ if (response == GTK_RESPONSE_CLOSE)
+ {
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ }
+ else if (GTK_DIALOG_CLASS (thunar_uca_chooser_parent_class)->response != NULL)
+ {
+ (*GTK_DIALOG_CLASS (thunar_uca_chooser_parent_class)->response) (dialog, response);
+ }
+}
+
+
+
+static void
+thunar_uca_chooser_selection_changed (ThunarUcaChooser *uca_chooser,
+ GtkTreeSelection *selection)
+{
+ GtkTreeModel *model;
+ GtkTreePath *path = NULL;
+ GtkTreeIter iter;
+ gboolean selected;
+
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+ g_return_if_fail (GTK_IS_TREE_SELECTION (selection));
+
+ /* check if we have currently selected an item */
+ selected = gtk_tree_selection_get_selected (selection, &model, &iter);
+ if (G_LIKELY (selected))
+ {
+ /* determine the path for the selected iter */
+ path = gtk_tree_model_get_path (model, &iter);
+ }
+
+ /* change sensitivity of "Edit" and "Delete" appropritately */
+ gtk_widget_set_sensitive (uca_chooser->edit_button, selected);
+ gtk_widget_set_sensitive (uca_chooser->delete_button, selected);
+
+ /* change sensitivity of "Move Up" and "Move Down" appropritately */
+ gtk_widget_set_sensitive (uca_chooser->up_button, selected && gtk_tree_path_get_indices (path)[0] > 0);
+ gtk_widget_set_sensitive (uca_chooser->down_button, selected && gtk_tree_path_get_indices (path)[0] < gtk_tree_model_iter_n_children (model, NULL) - 1);
+
+ /* release path (if any) */
+ if (G_LIKELY (path != NULL))
+ gtk_tree_path_free (path);
+}
+
+
+
+static void
+thunar_uca_chooser_exchange (ThunarUcaChooser *uca_chooser,
+ GtkTreeSelection *selection,
+ GtkTreeModel *model,
+ GtkTreeIter *iter_a,
+ GtkTreeIter *iter_b)
+{
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+ g_return_if_fail (GTK_IS_TREE_SELECTION (selection));
+ g_return_if_fail (GTK_IS_TREE_MODEL (model));
+ g_return_if_fail (iter_a != NULL);
+ g_return_if_fail (iter_b != NULL);
+
+ /* perform the move */
+ thunar_uca_model_exchange (THUNAR_UCA_MODEL (model), iter_a, iter_b);
+
+ /* tell the chooser that the selection may have changed */
+ thunar_uca_chooser_selection_changed (uca_chooser, selection);
+
+ /* sync the model to persistent storage */
+ thunar_uca_chooser_save (uca_chooser, THUNAR_UCA_MODEL (model));
+}
+
+
+
+static void
+thunar_uca_chooser_open_editor (ThunarUcaChooser *uca_chooser,
+ gboolean edit)
+{
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ GtkWidget *editor;
+
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+
+ /* allocate the new editor */
+ editor = g_object_new (THUNAR_UCA_TYPE_EDITOR, NULL);
+ gtk_window_set_title (GTK_WINDOW (editor), edit ? _("Edit Action") : _("Create Action"));
+ gtk_window_set_transient_for (GTK_WINDOW (editor), GTK_WINDOW (uca_chooser));
+
+ /* load the editor with the currently selected item (when editing) */
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (uca_chooser->treeview));
+ if (gtk_tree_selection_get_selected (selection, &model, &iter) && edit)
+ thunar_uca_editor_load (THUNAR_UCA_EDITOR (editor), THUNAR_UCA_MODEL (model), &iter);
+
+ /* run the editor */
+ if (gtk_dialog_run (GTK_DIALOG (editor)) == GTK_RESPONSE_OK)
+ {
+ /* append a new iter (when not editing) */
+ if (G_UNLIKELY (!edit))
+ thunar_uca_model_append (THUNAR_UCA_MODEL (model), &iter);
+
+ /* save the editor values to the model */
+ thunar_uca_editor_save (THUNAR_UCA_EDITOR (editor), THUNAR_UCA_MODEL (model), &iter);
+
+ /* hide the editor window */
+ gtk_widget_hide (editor);
+
+ /* sync the model to persistent storage */
+ thunar_uca_chooser_save (uca_chooser, THUNAR_UCA_MODEL (model));
+ }
+
+ /* destroy the editor */
+ gtk_widget_destroy (editor);
+}
+
+
+
+static void
+thunar_uca_chooser_save (ThunarUcaChooser *uca_chooser,
+ ThunarUcaModel *uca_model)
+{
+ GtkWidget *dialog;
+ GError *error = NULL;
+
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+
+ /* sync the model to persistent storage */
+ if (!thunar_uca_model_save (uca_model, &error))
+ {
+ dialog = gtk_message_dialog_new (GTK_WINDOW (uca_chooser),
+ GTK_DIALOG_DESTROY_WITH_PARENT
+ | GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ _("Failed to save actions to disk."));
+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("%s."), error->message);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ g_error_free (error);
+ }
+}
+
+
+
+static void
+thunar_uca_chooser_add_clicked (ThunarUcaChooser *uca_chooser)
+{
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+ thunar_uca_chooser_open_editor (uca_chooser, FALSE);
+}
+
+
+
+static void
+thunar_uca_chooser_edit_clicked (ThunarUcaChooser *uca_chooser)
+{
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+ thunar_uca_chooser_open_editor (uca_chooser, TRUE);
+}
+
+
+
+static void
+thunar_uca_chooser_delete_clicked (ThunarUcaChooser *uca_chooser)
+{
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+
+ /* verify that we have an item selected and determine the iter for that item */
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (uca_chooser->treeview));
+ if (gtk_tree_selection_get_selected (selection, &model, &iter))
+ thunar_uca_model_remove (THUNAR_UCA_MODEL (model), &iter);
+}
+
+
+
+static void
+thunar_uca_chooser_up_clicked (ThunarUcaChooser *uca_chooser)
+{
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreePath *path;
+ GtkTreeIter iter_a;
+ GtkTreeIter iter_b;
+
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+
+ /* determine the currently selected item */
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (uca_chooser->treeview));
+ if (gtk_tree_selection_get_selected (selection, &model, &iter_a))
+ {
+ /* determine the tree path to the iter */
+ path = gtk_tree_model_get_path (model, &iter_a);
+ if (gtk_tree_path_prev (path))
+ {
+ /* determine the iter for the previous item */
+ gtk_tree_model_get_iter (model, &iter_b, path);
+
+ /* perform the exchange operation */
+ thunar_uca_chooser_exchange (uca_chooser, selection, model, &iter_a, &iter_b);
+ }
+
+ /* release the path */
+ gtk_tree_path_free (path);
+ }
+}
+
+
+
+static void
+thunar_uca_chooser_down_clicked (ThunarUcaChooser *uca_chooser)
+{
+ GtkTreeSelection *selection;
+ GtkTreeModel *model;
+ GtkTreeIter iter_a;
+ GtkTreeIter iter_b;
+
+ g_return_if_fail (THUNAR_UCA_IS_CHOOSER (uca_chooser));
+
+ /* determine the currently selected item */
+ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (uca_chooser->treeview));
+ if (gtk_tree_selection_get_selected (selection, &model, &iter_a))
+ {
+ /* determine the iter to the next item */
+ iter_b = iter_a;
+ if (gtk_tree_model_iter_next (model, &iter_b))
+ thunar_uca_chooser_exchange (uca_chooser, selection, model, &iter_a, &iter_b);
+ }
+}
+
+
+
+
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __THUNAR_UCA_CHOOSER_H__
+#define __THUNAR_UCA_CHOOSER_H__
+
+#include <thunarx/thunarx.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarUcaChooserClass ThunarUcaChooserClass;
+typedef struct _ThunarUcaChooser ThunarUcaChooser;
+
+#define THUNAR_UCA_TYPE_CHOOSER (thunar_uca_chooser_get_type ())
+#define THUNAR_UCA_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_UCA_TYPE_CHOOSER, ThunarUcaChooser))
+#define THUNAR_UCA_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_UCA_TYPE_CHOOSER, ThunarUcaChooserClass))
+#define THUNAR_UCA_IS_CHOOSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_UCA_TYPE_CHOOSER))
+#define THUNAR_UCA_IS_CHOOSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_UCA_TYPE_CHOOSER))
+#define THUNAR_UCA_CHOOSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_UCA_TYPE_CHOOSER, ThunarUcaChooserClass))
+
+GType thunar_uca_chooser_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
+void thunar_uca_chooser_register_type (ThunarxProviderPlugin *plugin) G_GNUC_INTERNAL;
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_UCA_CHOOSER_H__ */
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <thunarx/thunarx.h>
+
+#include <thunar-uca/thunar-uca-context.h>
+
+
+
+struct _ThunarUcaContext
+{
+ gint ref_count;
+ GList *files;
+ GtkWidget *window;
+};
+
+
+
+/**
+ * thunar_uca_context_new:
+ * @window : a #GtkWindow.
+ * @files : a #GList of #ThunarxFileInfo<!---->s.
+ *
+ * Allocates a new #ThunarUcaContext with the given @window and
+ * @files.
+ *
+ * The caller is responsible to free the returned context
+ * using thunar_uca_context_unref().
+ *
+ * Return value: the newly allocated #ThunarUcaContext.
+ **/
+ThunarUcaContext*
+thunar_uca_context_new (GtkWidget *window,
+ GList *files)
+{
+ ThunarUcaContext *context;
+
+ context = g_new (ThunarUcaContext, 1);
+ context->ref_count = 1;
+ context->window = window;
+ context->files = thunarx_file_info_list_copy (files);
+
+ /* add a weak reference on the window */
+ if (G_LIKELY (context->window != NULL))
+ g_object_add_weak_pointer (G_OBJECT (context->window), (gpointer) &context->window);
+
+ return context;
+}
+
+
+
+/**
+ * thunar_uca_context_ref:
+ * @context : a #ThunarUcaContext.
+ *
+ * Increases the reference count on @context.
+ *
+ * Return value: reference to @context.
+ **/
+ThunarUcaContext*
+thunar_uca_context_ref (ThunarUcaContext *context)
+{
+ context->ref_count += 1;
+ return context;
+}
+
+
+
+/**
+ * thunar_uca_context_unref:
+ * @context : a #ThunarUcaContext.
+ *
+ * Decreases the reference count on @context
+ * and frees @context once the reference count
+ * drops to zero.
+ **/
+void
+thunar_uca_context_unref (ThunarUcaContext *context)
+{
+ if (--context->ref_count == 0)
+ {
+ /* drop the weak ref on the window */
+ if (G_LIKELY (context->window != NULL))
+ g_object_remove_weak_pointer (G_OBJECT (context->window), (gpointer) &context->window);
+
+ /* release the file infos */
+ thunarx_file_info_list_free (context->files);
+
+ /* remove the context data */
+ g_free (context);
+ }
+}
+
+
+
+/**
+ * thunar_uca_context_get_files:
+ * @context : a #ThunarUcaContext.
+ *
+ * Return value: the #ThunarxFileInfo<!---->s for @context.
+ **/
+GList*
+thunar_uca_context_get_files (const ThunarUcaContext *context)
+{
+ return context->files;
+}
+
+
+
+/**
+ * thunar_uca_context_get_window:
+ * @context : a #ThunarUcaContext.
+ *
+ * Returns the #GtkWindow for @context or %NULL if the
+ * window was destroyed in the meantime.
+ *
+ * Return value: the #GtkWindow for @context.
+ **/
+GtkWidget*
+thunar_uca_context_get_window (const ThunarUcaContext *context)
+{
+ return context->window;
+}
+
+
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __THUNAR_UCA_CONTEXT_H__
+#define __THUNAR_UCA_CONTEXT_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarUcaContext ThunarUcaContext;
+
+ThunarUcaContext *thunar_uca_context_new (GtkWidget *window,
+ GList *files) G_GNUC_INTERNAL;
+
+ThunarUcaContext *thunar_uca_context_ref (ThunarUcaContext *context) G_GNUC_INTERNAL;
+void thunar_uca_context_unref (ThunarUcaContext *context) G_GNUC_INTERNAL;
+
+GList *thunar_uca_context_get_files (const ThunarUcaContext *context) G_GNUC_INTERNAL;
+GtkWidget *thunar_uca_context_get_window (const ThunarUcaContext *context) G_GNUC_INTERNAL;
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_UCA_CONTEXT_H__ */
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+
+#include <exo/exo.h>
+
+#include <thunar-uca/thunar-uca-editor.h>
+
+
+
+static void thunar_uca_editor_class_init (ThunarUcaEditorClass *klass);
+static void thunar_uca_editor_init (ThunarUcaEditor *uca_editor);
+static void thunar_uca_editor_finalize (GObject *object);
+static const gchar *thunar_uca_editor_get_icon_name (const ThunarUcaEditor *uca_editor);
+static void thunar_uca_editor_set_icon_name (ThunarUcaEditor *uca_editor,
+ const gchar *icon_name);
+static ThunarUcaTypes thunar_uca_editor_get_types (const ThunarUcaEditor *uca_editor);
+static void thunar_uca_editor_set_types (ThunarUcaEditor *uca_editor,
+ ThunarUcaTypes types);
+static void thunar_uca_editor_command_clicked (ThunarUcaEditor *uca_editor);
+static void thunar_uca_editor_icon_clicked (ThunarUcaEditor *uca_editor);
+
+
+
+struct _ThunarUcaEditorClass
+{
+ GtkDialogClass __parent__;
+};
+
+struct _ThunarUcaEditor
+{
+ GtkDialog __parent__;
+
+ GtkTooltips *tooltips;
+
+ GtkWidget *name_entry;
+ GtkWidget *description_entry;
+ GtkWidget *icon_button;
+ GtkWidget *command_entry;
+ GtkWidget *parameter_entry;
+ GtkWidget *patterns_entry;
+ GtkWidget *directories_button;
+ GtkWidget *audio_files_button;
+ GtkWidget *image_files_button;
+ GtkWidget *text_files_button;
+ GtkWidget *video_files_button;
+ GtkWidget *other_files_button;
+};
+
+
+
+THUNARX_DEFINE_TYPE (ThunarUcaEditor, thunar_uca_editor, GTK_TYPE_DIALOG);
+
+
+
+static void
+thunar_uca_editor_class_init (ThunarUcaEditorClass *klass)
+{
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = thunar_uca_editor_finalize;
+}
+
+
+
+static void
+thunar_uca_editor_init (ThunarUcaEditor *uca_editor)
+{
+ AtkRelationSet *relations;
+ PangoAttribute *attribute;
+ PangoAttrList *attrs_small_bold;
+ PangoAttrList *attrs_small;
+ AtkRelation *relation;
+ AtkObject *object;
+ GtkWidget *notebook;
+ GtkWidget *button;
+ GtkWidget *itable;
+ GtkWidget *align;
+ GtkWidget *image;
+ GtkWidget *label;
+ GtkWidget *table;
+ GtkWidget *hbox;
+ GtkWidget *vbox;
+
+ /* configure the dialog properties */
+ gtk_dialog_add_button (GTK_DIALOG (uca_editor), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+ gtk_dialog_add_button (GTK_DIALOG (uca_editor), GTK_STOCK_OK, GTK_RESPONSE_OK);
+ gtk_dialog_set_default_response (GTK_DIALOG (uca_editor), GTK_RESPONSE_OK);
+ gtk_dialog_set_has_separator (GTK_DIALOG (uca_editor), FALSE);
+ gtk_window_set_destroy_with_parent (GTK_WINDOW (uca_editor), TRUE);
+ gtk_window_set_resizable (GTK_WINDOW (uca_editor), FALSE);
+
+ /* allocate shared tooltips object */
+ uca_editor->tooltips = gtk_tooltips_new ();
+ g_object_ref (G_OBJECT (uca_editor->tooltips));
+ gtk_object_sink (GTK_OBJECT (uca_editor->tooltips));
+
+ notebook = gtk_notebook_new ();
+ gtk_container_set_border_width (GTK_CONTAINER (notebook), 6);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (uca_editor)->vbox), notebook, TRUE, TRUE, 0);
+ gtk_widget_show (notebook);
+
+ /*
+ Basic
+ */
+ label = gtk_label_new (_("Basic"));
+ table = gtk_table_new (6, 2, FALSE);
+ gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+ gtk_table_set_row_spacings (GTK_TABLE (table), 6);
+ gtk_container_set_border_width (GTK_CONTAINER (table), 12);
+ gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, label);
+ gtk_widget_show (label);
+ gtk_widget_show (table);
+
+ label = g_object_new (GTK_TYPE_LABEL, "label", _("_Name:"), "use-underline", TRUE, "xalign", 0.0f, NULL);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ uca_editor->name_entry = g_object_new (GTK_TYPE_ENTRY, "activates-default", TRUE, NULL);
+ gtk_tooltips_set_tip (uca_editor->tooltips, uca_editor->name_entry, _("The name of the action that will be displayed in the context menu."), NULL);
+ gtk_table_attach (GTK_TABLE (table), uca_editor->name_entry, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), uca_editor->name_entry);
+ gtk_widget_grab_focus (uca_editor->name_entry);
+ gtk_widget_show (uca_editor->name_entry);
+
+ /* set Atk label relation for the entry */
+ object = gtk_widget_get_accessible (uca_editor->name_entry);
+ relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
+ relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR);
+ atk_relation_set_add (relations, relation);
+ g_object_unref (G_OBJECT (relation));
+
+ label = g_object_new (GTK_TYPE_LABEL, "label", _("_Description:"), "use-underline", TRUE, "xalign", 0.0f, NULL);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ uca_editor->description_entry = g_object_new (GTK_TYPE_ENTRY, "activates-default", TRUE, NULL);
+ gtk_tooltips_set_tip (uca_editor->tooltips, uca_editor->description_entry, _("The description of the action that will be displayed as tooltip "
+ "in the statusbar when selecting the item from the context menu."), NULL);
+ gtk_table_attach (GTK_TABLE (table), uca_editor->description_entry, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), uca_editor->description_entry);
+ gtk_widget_show (uca_editor->description_entry);
+
+ /* set Atk label relation for the entry */
+ object = gtk_widget_get_accessible (uca_editor->description_entry);
+ relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
+ relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR);
+ atk_relation_set_add (relations, relation);
+ g_object_unref (G_OBJECT (relation));
+
+ label = g_object_new (GTK_TYPE_LABEL, "label", _("_Command:"), "use-underline", TRUE, "xalign", 0.0f, NULL);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ hbox = gtk_hbox_new (FALSE, 2);
+ gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (hbox);
+
+ uca_editor->command_entry = g_object_new (GTK_TYPE_ENTRY, "activates-default", TRUE, NULL);
+ gtk_tooltips_set_tip (uca_editor->tooltips, uca_editor->command_entry, _("The command (including the necessary parameters) to perform the action. "
+ "See the command parameter legend below for a list of supported parameter "
+ "variables, which will be substituted when launching the command. When "
+ "upper-case letters (e.g. %F, %D, %N) are used, the action will be applicable "
+ "even if more than one item is selected. Else the action will only be "
+ "applicable if exactly one item is selected."), NULL);
+ gtk_box_pack_start (GTK_BOX (hbox), uca_editor->command_entry, TRUE, TRUE, 0);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), uca_editor->command_entry);
+ gtk_widget_show (uca_editor->command_entry);
+
+ button = gtk_button_new ();
+ gtk_tooltips_set_tip (uca_editor->tooltips, button, _("Browse the file system to select an application to use for this action."), NULL);
+ gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
+ g_signal_connect_swapped (G_OBJECT (button), "clicked", G_CALLBACK (thunar_uca_editor_command_clicked), uca_editor);
+ gtk_widget_show (button);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON);
+ gtk_container_add (GTK_CONTAINER (button), image);
+ gtk_widget_show (image);
+
+ /* set Atk label relation for the entry */
+ object = gtk_widget_get_accessible (uca_editor->command_entry);
+ relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
+ relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR);
+ atk_relation_set_add (relations, relation);
+ g_object_unref (G_OBJECT (relation));
+
+ label = g_object_new (GTK_TYPE_LABEL, "label", _("_Icon:"), "use-underline", TRUE, "xalign", 0.0f, NULL);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ align = gtk_alignment_new (0.0f, 0.5f, 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), align, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (align);
+
+ uca_editor->icon_button = gtk_button_new_with_label (_("No icon"));
+ gtk_tooltips_set_tip (uca_editor->tooltips, uca_editor->icon_button, _("Click this button to select an icon file that will be displayed "
+ "in the context menu in addition to the action name chosen above."), NULL);
+ gtk_container_add (GTK_CONTAINER (align), uca_editor->icon_button);
+ g_signal_connect_swapped (G_OBJECT (uca_editor->icon_button), "clicked", G_CALLBACK (thunar_uca_editor_icon_clicked), uca_editor);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), uca_editor->icon_button);
+ gtk_widget_show (uca_editor->icon_button);
+
+ /* set Atk label relation for the button */
+ object = gtk_widget_get_accessible (uca_editor->icon_button);
+ relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
+ relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR);
+ atk_relation_set_add (relations, relation);
+ g_object_unref (G_OBJECT (relation));
+
+ align = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL);
+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (align);
+
+ hbox = gtk_hbox_new (FALSE, 6);
+ gtk_table_attach (GTK_TABLE (table), hbox, 0, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (hbox);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DND);
+ gtk_misc_set_alignment (GTK_MISC (image), 0.5f, 0.0f);
+ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
+ gtk_widget_show (image);
+
+ vbox = gtk_vbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
+ gtk_widget_show (vbox);
+
+ label = gtk_label_new (_("The following command parameters will be\n"
+ "substituted when launching the action:"));
+ gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+ gtk_widget_show (label);
+
+ table = gtk_table_new (2, 2, FALSE);
+ gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+ gtk_table_set_row_spacings (GTK_TABLE (table), 3);
+ gtk_container_set_border_width (GTK_CONTAINER (table), 6);
+ gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
+ gtk_widget_show (table);
+
+ /* setup the small+bold attribute list */
+ attrs_small_bold = pango_attr_list_new ();
+ attribute = pango_attr_weight_new (PANGO_WEIGHT_BOLD);
+ attribute->start_index = 0;
+ attribute->end_index = -1;
+ pango_attr_list_insert (attrs_small_bold, attribute);
+ attribute = pango_attr_scale_new (PANGO_SCALE_SMALL);
+ attribute->start_index = 0;
+ attribute->end_index = -1;
+ pango_attr_list_insert (attrs_small_bold, attribute);
+
+ /* setup the small attribute list */
+ attrs_small = pango_attr_list_new ();
+ attribute = pango_attr_scale_new (PANGO_SCALE_SMALL);
+ attribute->start_index = 0;
+ attribute->end_index = -1;
+ pango_attr_list_insert (attrs_small, attribute);
+
+ label = gtk_label_new ("%f");
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small_bold);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new (_("the path to the first selected file"));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new ("%F");
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small_bold);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new (_("the paths to all selected files"));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new ("%d");
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small_bold);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new (_("directory containing the file that is passed in %f"));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new ("%D");
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small_bold);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new (_("directories containing the files that are passed in %F"));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new ("%n");
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small_bold);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 4, 5, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new (_("the first selected filename (without path)"));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new ("%N");
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small_bold);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 5, 6, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ label = gtk_label_new (_("the selected filenames (without paths)"));
+ gtk_label_set_attributes (GTK_LABEL (label), attrs_small);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_table_attach (GTK_TABLE (table), label, 1, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ /* release the pango attribute lists */
+ pango_attr_list_unref (attrs_small_bold);
+ pango_attr_list_unref (attrs_small);
+
+ /*
+ Appearance Conditions
+ */
+ table = gtk_table_new (3, 2, FALSE);
+ label = gtk_label_new (_("Appearance Conditions"));
+ gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+ gtk_table_set_row_spacings (GTK_TABLE (table), 6);
+ gtk_container_set_border_width (GTK_CONTAINER (table), 12);
+ gtk_notebook_append_page (GTK_NOTEBOOK (notebook), table, label);
+ gtk_widget_show (label);
+ gtk_widget_show (table);
+
+ label = g_object_new (GTK_TYPE_LABEL, "label", _("_File Pattern:"), "use-underline", TRUE, "xalign", 0.0f, NULL);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ uca_editor->patterns_entry = g_object_new (GTK_TYPE_ENTRY, "activates-default", TRUE, "text", "*", NULL);
+ gtk_tooltips_set_tip (uca_editor->tooltips, uca_editor->patterns_entry, _("Enter a list of patterns that will be used to determine "
+ "whether this action should be displayed for a selected "
+ "file. If you specify more than one pattern here, the list "
+ "items must be separated with semicolons (e.g. *.txt;*.doc)."), NULL);
+ gtk_table_attach (GTK_TABLE (table), uca_editor->patterns_entry, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), uca_editor->patterns_entry);
+ gtk_widget_show (uca_editor->patterns_entry);
+
+ /* set Atk label relation for the entry */
+ object = gtk_widget_get_accessible (uca_editor->patterns_entry);
+ relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
+ relation = atk_relation_new (&object, 1, ATK_RELATION_LABEL_FOR);
+ atk_relation_set_add (relations, relation);
+ g_object_unref (G_OBJECT (relation));
+
+ align = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 0, NULL);
+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (align);
+
+ label = g_object_new (GTK_TYPE_LABEL, "label", _("Appears if selection contains:"), "xalign", 0.0f, NULL);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (label);
+
+ align = g_object_new (GTK_TYPE_ALIGNMENT, "left-padding", 18, NULL);
+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (align);
+
+ itable = gtk_table_new (3, 2, TRUE);
+ gtk_table_set_col_spacings (GTK_TABLE (itable), 12);
+ gtk_container_add (GTK_CONTAINER (align), itable);
+ gtk_widget_show (itable);
+
+ uca_editor->directories_button = gtk_check_button_new_with_mnemonic (_("_Directories"));
+ gtk_table_attach (GTK_TABLE (itable), uca_editor->directories_button, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (uca_editor->directories_button);
+
+ uca_editor->audio_files_button = gtk_check_button_new_with_mnemonic (_("_Audio Files"));
+ gtk_table_attach (GTK_TABLE (itable), uca_editor->audio_files_button, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (uca_editor->audio_files_button);
+
+ uca_editor->image_files_button = gtk_check_button_new_with_mnemonic (_("_Image Files"));
+ gtk_table_attach (GTK_TABLE (itable), uca_editor->image_files_button, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (uca_editor->image_files_button);
+
+ uca_editor->text_files_button = gtk_check_button_new_with_mnemonic (_("_Text Files"));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->text_files_button), TRUE);
+ gtk_table_attach (GTK_TABLE (itable), uca_editor->text_files_button, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (uca_editor->text_files_button);
+
+ uca_editor->video_files_button = gtk_check_button_new_with_mnemonic (_("_Video Files"));
+ gtk_table_attach (GTK_TABLE (itable), uca_editor->video_files_button, 1, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (uca_editor->video_files_button);
+
+ uca_editor->other_files_button = gtk_check_button_new_with_mnemonic (_("_Other Files"));
+ gtk_table_attach (GTK_TABLE (itable), uca_editor->other_files_button, 1, 2, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (uca_editor->other_files_button);
+
+ align = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL);
+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (align);
+
+ hbox = gtk_hbox_new (FALSE, 6);
+ gtk_table_attach (GTK_TABLE (table), hbox, 0, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
+ gtk_widget_show (hbox);
+
+ image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DND);
+ gtk_misc_set_alignment (GTK_MISC (image), 0.5f, 0.0f);
+ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
+ gtk_widget_show (image);
+
+ label = gtk_label_new (_("This page lists the conditions under which the\n"
+ "action will appear in the file managers context\n"
+ "menus. The file patterns are specified as a list\n"
+ "of simple file patterns separated by semicolons\n"
+ "(e.g. *.txt;*.doc). For an action to appear in the\n"
+ "context menu of a file or folder, atleast one of\n"
+ "these patterns must match the name of the file\n"
+ "or folder. Additionally, you can specify that the\n"
+ "action should only appear for certain kinds of\nfiles."));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.0f);
+ gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
+ gtk_widget_show (label);
+}
+
+
+
+static void
+thunar_uca_editor_finalize (GObject *object)
+{
+ ThunarUcaEditor *uca_editor = THUNAR_UCA_EDITOR (object);
+
+ /* release the tooltips */
+ g_object_unref (G_OBJECT (uca_editor->tooltips));
+
+ (*G_OBJECT_CLASS (thunar_uca_editor_parent_class)->finalize) (object);
+}
+
+
+
+static void
+thunar_uca_editor_command_clicked (ThunarUcaEditor *uca_editor)
+{
+ GtkFileFilter *filter;
+ GtkWidget *chooser;
+ gchar *filename;
+ gchar *s;
+
+ g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
+
+ chooser = gtk_file_chooser_dialog_new (_("Select an Application"),
+ GTK_WINDOW (uca_editor),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), TRUE);
+
+ /* add file chooser filters */
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("All Files"));
+ gtk_file_filter_add_pattern (filter, "*");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Executable Files"));
+ gtk_file_filter_add_mime_type (filter, "application/x-csh");
+ gtk_file_filter_add_mime_type (filter, "application/x-executable");
+ gtk_file_filter_add_mime_type (filter, "application/x-perl");
+ gtk_file_filter_add_mime_type (filter, "application/x-python");
+ gtk_file_filter_add_mime_type (filter, "application/x-ruby");
+ gtk_file_filter_add_mime_type (filter, "application/x-shellscript");
+ gtk_file_filter_add_pattern (filter, "*.pl");
+ gtk_file_filter_add_pattern (filter, "*.py");
+ gtk_file_filter_add_pattern (filter, "*.rb");
+ gtk_file_filter_add_pattern (filter, "*.sh");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Perl Scripts"));
+ gtk_file_filter_add_mime_type (filter, "application/x-perl");
+ gtk_file_filter_add_pattern (filter, "*.pl");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Python Scripts"));
+ gtk_file_filter_add_mime_type (filter, "application/x-python");
+ gtk_file_filter_add_pattern (filter, "*.py");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Ruby Scripts"));
+ gtk_file_filter_add_mime_type (filter, "application/x-ruby");
+ gtk_file_filter_add_pattern (filter, "*.rb");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Shell Scripts"));
+ gtk_file_filter_add_mime_type (filter, "application/x-csh");
+ gtk_file_filter_add_mime_type (filter, "application/x-shellscript");
+ gtk_file_filter_add_pattern (filter, "*.sh");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ /* use the bindir as default folder */
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), BINDIR);
+
+ /* setup the currently selected file */
+ filename = gtk_editable_get_chars (GTK_EDITABLE (uca_editor->command_entry), 0, -1);
+ if (G_LIKELY (filename != NULL))
+ {
+ /* use only the first argument */
+ s = strchr (filename, ' ');
+ if (G_UNLIKELY (s != NULL))
+ *s = '\0';
+
+ if (G_LIKELY (*filename != '\0'))
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (chooser), filename);
+ g_free (filename);
+ }
+
+ /* run the chooser dialog */
+ if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT)
+ {
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
+ s = g_strconcat (filename, " %f", NULL);
+ gtk_entry_set_text (GTK_ENTRY (uca_editor->command_entry), s);
+ g_free (filename);
+ g_free (s);
+ }
+
+ gtk_widget_destroy (chooser);
+}
+
+
+
+static void
+update_preview (GtkFileChooser *chooser,
+ GtkWidget *image)
+{
+ GdkPixbuf *pixbuf;
+ GdkPixbuf *scaled;
+ gchar *filename;
+ gint height;
+ gint width;
+
+ filename = gtk_file_chooser_get_filename (chooser);
+ pixbuf = (filename != NULL) ? gdk_pixbuf_new_from_file (filename, NULL) : NULL;
+ if (G_LIKELY (pixbuf != NULL))
+ {
+ width = gdk_pixbuf_get_width (pixbuf);
+ height = gdk_pixbuf_get_height (pixbuf);
+ if (G_UNLIKELY (width > 128 || height > 128))
+ {
+ scaled = exo_gdk_pixbuf_scale_ratio (pixbuf, 128);
+ g_object_unref (G_OBJECT (pixbuf));
+ pixbuf = scaled;
+ }
+
+ gtk_file_chooser_set_preview_widget_active (chooser, TRUE);
+ gtk_image_set_from_pixbuf (GTK_IMAGE (image), pixbuf);
+ g_object_unref (G_OBJECT (pixbuf));
+ }
+ else
+ {
+ gtk_file_chooser_set_preview_widget_active (chooser, FALSE);
+ }
+
+ g_free (filename);
+}
+
+
+
+static void
+thunar_uca_editor_icon_clicked (ThunarUcaEditor *uca_editor)
+{
+ GtkFileFilter *filter;
+ GtkWidget *chooser;
+ GtkWidget *image;
+ gchar **extensions;
+ gchar **mime_types;
+ gchar *filename;
+ gchar *pattern;
+ GSList *formats;
+ GSList *lp;
+ gint n;
+
+ g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
+
+ chooser = gtk_file_chooser_dialog_new (_("Select an Icon"),
+ GTK_WINDOW (uca_editor),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+ NULL);
+ gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), TRUE);
+
+ /* add file chooser filters */
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("All Files"));
+ gtk_file_filter_add_pattern (filter, "*");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("Image Files"));
+ formats = gdk_pixbuf_get_formats ();
+ for (lp = formats; lp != NULL; lp = lp->next)
+ {
+ extensions = gdk_pixbuf_format_get_extensions (lp->data);
+ for (n = 0; extensions[n] != NULL; ++n)
+ {
+ pattern = g_strconcat ("*.", extensions[n], NULL);
+ gtk_file_filter_add_pattern (filter, pattern);
+ g_free (pattern);
+ }
+ g_strfreev (extensions);
+
+ mime_types = gdk_pixbuf_format_get_mime_types (lp->data);
+ for (n = 0; mime_types[n] != NULL; ++n)
+ gtk_file_filter_add_mime_type (filter, mime_types[n]);
+ g_strfreev (mime_types);
+ }
+ g_slist_free (formats);
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
+ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), filter);
+
+ image = g_object_new (GTK_TYPE_IMAGE, "height-request", 128 + 2 * 12, "width-request", 128 + 2 * 12, NULL);
+ g_signal_connect (G_OBJECT (chooser), "update-preview", G_CALLBACK (update_preview), image);
+ gtk_file_chooser_set_preview_widget_active (GTK_FILE_CHOOSER (chooser), FALSE);
+ gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (chooser), image);
+ gtk_widget_show (image);
+
+ /* use the datadir/pixmaps as default folder */
+ gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser), DATADIR "/pixmaps");
+
+ /* setup the currently selected icon file */
+ filename = g_object_get_data (G_OBJECT (uca_editor->icon_button), "thunar-uca-icon-filename");
+ if (G_LIKELY (filename != NULL && *filename != '\0'))
+ gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (chooser), filename);
+
+ /* run the chooser dialog */
+ if (gtk_dialog_run (GTK_DIALOG (chooser)) == GTK_RESPONSE_ACCEPT)
+ {
+ /* remember the selected file for the icon */
+ filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));
+ thunar_uca_editor_set_icon_name (uca_editor, filename);
+ g_free (filename);
+ }
+
+ gtk_widget_destroy (chooser);
+}
+
+
+
+static const gchar*
+thunar_uca_editor_get_icon_name (const ThunarUcaEditor *uca_editor)
+{
+ g_return_val_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor), NULL);
+ return g_object_get_data (G_OBJECT (uca_editor->icon_button), "thunar-uca-icon-name");
+}
+
+
+
+static void
+thunar_uca_editor_set_icon_name (ThunarUcaEditor *uca_editor,
+ const gchar *icon_name)
+{
+ GtkIconTheme *icon_theme;
+ GdkPixbuf *icon_scaled;
+ GdkPixbuf *icon = NULL;
+ GtkWidget *image;
+ GtkWidget *label;
+ gint icon_height;
+ gint icon_width;
+
+ g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
+
+ /* drop the previous button child */
+ if (GTK_BIN (uca_editor->icon_button)->child != NULL)
+ gtk_widget_destroy (GTK_BIN (uca_editor->icon_button)->child);
+
+ /* try to load the icon */
+ if (G_LIKELY (icon_name != NULL && g_path_is_absolute (icon_name)))
+ {
+ /* load the icon from the file */
+ icon = gdk_pixbuf_new_from_file (icon_name, NULL);
+
+ /* scale down the icon if required */
+ icon_width = gdk_pixbuf_get_width (icon);
+ icon_height = gdk_pixbuf_get_height (icon);
+ if (G_UNLIKELY (icon_width > 48 || icon_height > 48))
+ {
+ icon_scaled = exo_gdk_pixbuf_scale_ratio (icon, 48);
+ g_object_unref (G_OBJECT (icon));
+ icon = icon_scaled;
+ }
+ }
+ else if (icon_name != NULL)
+ {
+ /* determine the appropriate icon theme */
+ if (G_LIKELY (gtk_widget_has_screen (GTK_WIDGET (uca_editor))))
+ icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (uca_editor)));
+ else
+ icon_theme = gtk_icon_theme_get_default ();
+
+ /* try to load the named icon */
+ icon = gtk_icon_theme_load_icon (icon_theme, icon_name, 48, 0, NULL);
+ }
+
+ /* setup the icon button */
+ if (G_LIKELY (icon != NULL))
+ {
+ /* setup an image for the icon */
+ image = gtk_image_new_from_pixbuf (icon);
+ gtk_container_add (GTK_CONTAINER (uca_editor->icon_button), image);
+ gtk_widget_show (image);
+
+ /* remember the name for the icon */
+ g_object_set_data_full (G_OBJECT (uca_editor->icon_button), "thunar-uca-icon-name", g_strdup (icon_name), g_free);
+
+ /* release the icon */
+ g_object_unref (G_OBJECT (icon));
+ }
+ else
+ {
+ /* reset the remembered icon name */
+ g_object_set_data (G_OBJECT (uca_editor->icon_button), "thunar-uca-icon-name", NULL);
+
+ /* setup a label to tell that no icon was selected */
+ label = gtk_label_new (_("No icon"));
+ gtk_container_add (GTK_CONTAINER (uca_editor->icon_button), label);
+ gtk_widget_show (label);
+ }
+}
+
+
+
+static ThunarUcaTypes
+thunar_uca_editor_get_types (const ThunarUcaEditor *uca_editor)
+{
+ ThunarUcaTypes types = 0;
+
+ g_return_val_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor), 0);
+
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->directories_button)))
+ types |= THUNAR_UCA_TYPE_DIRECTORIES;
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->audio_files_button)))
+ types |= THUNAR_UCA_TYPE_AUDIO_FILES;
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->image_files_button)))
+ types |= THUNAR_UCA_TYPE_IMAGE_FILES;
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->text_files_button)))
+ types |= THUNAR_UCA_TYPE_TEXT_FILES;
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->video_files_button)))
+ types |= THUNAR_UCA_TYPE_VIDEO_FILES;
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->other_files_button)))
+ types |= THUNAR_UCA_TYPE_OTHER_FILES;
+
+ return types;
+}
+
+
+
+static void
+thunar_uca_editor_set_types (ThunarUcaEditor *uca_editor,
+ ThunarUcaTypes types)
+{
+ g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->directories_button), (types & THUNAR_UCA_TYPE_DIRECTORIES));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->audio_files_button), (types & THUNAR_UCA_TYPE_AUDIO_FILES));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->image_files_button), (types & THUNAR_UCA_TYPE_IMAGE_FILES));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->text_files_button), (types & THUNAR_UCA_TYPE_TEXT_FILES));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->video_files_button), (types & THUNAR_UCA_TYPE_VIDEO_FILES));
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->other_files_button), (types & THUNAR_UCA_TYPE_OTHER_FILES));
+}
+
+
+
+/**
+ * thunar_uca_editor_load:
+ * @uca_editor : a #ThunarUcaEditor.
+ * @uca_model : a #ThunarUcaModel.
+ * @iter : a #GtkTreeIter.
+ *
+ * Loads @uca_editor with the data from @uca_model
+ * at the specified @iter.
+ **/
+void
+thunar_uca_editor_load (ThunarUcaEditor *uca_editor,
+ ThunarUcaModel *uca_model,
+ GtkTreeIter *iter)
+{
+ ThunarUcaTypes types;
+ gchar *description;
+ gchar *patterns;
+ gchar *command;
+ gchar *icon;
+ gchar *name;
+
+ g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter != NULL);
+
+ /* determine the current values from the model */
+ gtk_tree_model_get (GTK_TREE_MODEL (uca_model), iter,
+ THUNAR_UCA_MODEL_COLUMN_DESCRIPTION, &description,
+ THUNAR_UCA_MODEL_COLUMN_PATTERNS, &patterns,
+ THUNAR_UCA_MODEL_COLUMN_COMMAND, &command,
+ THUNAR_UCA_MODEL_COLUMN_TYPES, &types,
+ THUNAR_UCA_MODEL_COLUMN_ICON, &icon,
+ THUNAR_UCA_MODEL_COLUMN_NAME, &name,
+ -1);
+
+ /* setup the new selection */
+ thunar_uca_editor_set_types (uca_editor, types);
+
+ /* setup the new icon */
+ thunar_uca_editor_set_icon_name (uca_editor, icon);
+
+ /* apply the new values */
+ gtk_entry_set_text (GTK_ENTRY (uca_editor->description_entry), (description != NULL) ? description : "");
+ gtk_entry_set_text (GTK_ENTRY (uca_editor->patterns_entry), (patterns != NULL) ? patterns : "");
+ gtk_entry_set_text (GTK_ENTRY (uca_editor->command_entry), (command != NULL) ? command : "");
+ gtk_entry_set_text (GTK_ENTRY (uca_editor->name_entry), (name != NULL) ? name : "");
+
+ /* cleanup */
+ g_free (description);
+ g_free (patterns);
+ g_free (command);
+ g_free (icon);
+ g_free (name);
+}
+
+
+
+/**
+ * thunar_uca_editor_save:
+ * @uca_editor : a #ThunarUcaEditor.
+ * @uca_model : a #ThunarUcaModel.
+ * @iter : a #GtkTreeIter.
+ *
+ * Stores the current values from the @uca_editor in
+ * the @uca_model at the item specified by @iter.
+ **/
+void
+thunar_uca_editor_save (ThunarUcaEditor *uca_editor,
+ ThunarUcaModel *uca_model,
+ GtkTreeIter *iter)
+{
+ g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter != NULL);
+
+ thunar_uca_model_update (uca_model, iter,
+ gtk_entry_get_text (GTK_ENTRY (uca_editor->name_entry)),
+ gtk_entry_get_text (GTK_ENTRY (uca_editor->description_entry)),
+ thunar_uca_editor_get_icon_name (uca_editor),
+ gtk_entry_get_text (GTK_ENTRY (uca_editor->command_entry)),
+ gtk_entry_get_text (GTK_ENTRY (uca_editor->patterns_entry)),
+ thunar_uca_editor_get_types (uca_editor));
+}
+
+
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __THUNAR_UCA_EDITOR_H__
+#define __THUNAR_UCA_EDITOR_H__
+
+#include <thunar-uca/thunar-uca-model.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarUcaEditorClass ThunarUcaEditorClass;
+typedef struct _ThunarUcaEditor ThunarUcaEditor;
+
+#define THUNAR_UCA_TYPE_EDITOR (thunar_uca_editor_get_type ())
+#define THUNAR_UCA_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_UCA_TYPE_EDITOR, ThunarUcaEditor))
+#define THUNAR_UCA_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_UCA_TYPE_EDITOR, ThunarUcaEditorwClass))
+#define THUNAR_UCA_IS_EDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_UCA_TYPE_EDITOR))
+#define THUNAR_UCA_IS_EDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_UCA_TYPE_EDITOR))
+#define THUNAR_UCA_EDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_UCA_TYPE_EDITOR, ThunarUcaEditorwClass))
+
+GType thunar_uca_editor_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
+void thunar_uca_editor_register_type (ThunarxProviderPlugin *plugin) G_GNUC_INTERNAL;
+
+void thunar_uca_editor_load (ThunarUcaEditor *uca_editor,
+ ThunarUcaModel *uca_model,
+ GtkTreeIter *iter) G_GNUC_INTERNAL;
+void thunar_uca_editor_save (ThunarUcaEditor *uca_editor,
+ ThunarUcaModel *uca_model,
+ GtkTreeIter *iter) G_GNUC_INTERNAL;
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_UCA_EDITOR_H__ */
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+#include <glib/gstdio.h>
+
+#include <thunar-uca/thunar-uca-model.h>
+#include <thunar-vfs/thunar-vfs.h>
+
+
+
+typedef struct _ThunarUcaModelItem ThunarUcaModelItem;
+
+
+
+typedef enum
+{
+ PARSER_START,
+ PARSER_ACTIONS,
+ PARSER_ACTION,
+ PARSER_ICON,
+ PARSER_NAME,
+ PARSER_COMMAND,
+ PARSER_PATTERNS,
+ PARSER_DESCRIPTION,
+ PARSER_DIRECTORIES,
+ PARSER_AUDIO_FILES,
+ PARSER_IMAGE_FILES,
+ PARSER_OTHER_FILES,
+ PARSER_TEXT_FILES,
+ PARSER_VIDEO_FILES,
+} ParserState;
+
+
+
+static void thunar_uca_model_class_init (ThunarUcaModelClass *klass);
+static void thunar_uca_model_tree_model_init (GtkTreeModelIface *iface);
+static void thunar_uca_model_init (ThunarUcaModel *uca_model);
+static void thunar_uca_model_finalize (GObject *object);
+static GtkTreeModelFlags thunar_uca_model_get_flags (GtkTreeModel *tree_model);
+static gint thunar_uca_model_get_n_columns (GtkTreeModel *tree_model);
+static GType thunar_uca_model_get_column_type (GtkTreeModel *tree_model,
+ gint column);
+static gboolean thunar_uca_model_get_iter (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreePath *path);
+static GtkTreePath *thunar_uca_model_get_path (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static void thunar_uca_model_get_value (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gint column,
+ GValue *value);
+static gboolean thunar_uca_model_iter_next (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static gboolean thunar_uca_model_iter_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent);
+static gboolean thunar_uca_model_iter_has_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static gint thunar_uca_model_iter_n_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter);
+static gboolean thunar_uca_model_iter_nth_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ gint n);
+static gboolean thunar_uca_model_iter_parent (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *child);
+static gboolean thunar_uca_model_load_from_file (ThunarUcaModel *uca_model,
+ const gchar *filename,
+ GError **error);
+static void thunar_uca_model_item_reset (ThunarUcaModelItem *item);
+static void thunar_uca_model_item_free (ThunarUcaModelItem *item);
+static void start_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error);
+static void end_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error);
+static void text_handler (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error);
+
+
+
+struct _ThunarUcaModelClass
+{
+ GObjectClass __parent__;
+};
+
+struct _ThunarUcaModel
+{
+ GObject __parent__;
+
+ GtkIconFactory *icon_factory;
+
+ GList *items;
+ gint stamp;
+};
+
+struct _ThunarUcaModelItem
+{
+ gchar *name;
+ gchar *description;
+ gchar *icon;
+ gchar *command;
+ gchar **patterns;
+ ThunarUcaTypes types;
+
+ /* derived attributes */
+ gchar *stock_id;
+ gboolean multiple_selection : 1;
+};
+
+typedef XFCE_GENERIC_STACK(ParserState) ParserStack;
+
+typedef struct
+{
+ ParserStack *stack;
+ ThunarUcaModel *model;
+ const gchar *locale;
+ GString *name;
+ gboolean name_use;
+ guint name_match;
+ GString *icon;
+ GString *command;
+ GString *patterns;
+ GString *description;
+ gboolean description_use;
+ guint description_match;
+ ThunarUcaTypes types;
+} Parser;
+
+
+
+static const GMarkupParser markup_parser =
+{
+ start_element_handler,
+ end_element_handler,
+ text_handler,
+ NULL,
+ NULL,
+};
+
+
+
+THUNARX_DEFINE_TYPE_WITH_CODE (ThunarUcaModel,
+ thunar_uca_model,
+ G_TYPE_OBJECT,
+ THUNARX_IMPLEMENT_INTERFACE (GTK_TYPE_TREE_MODEL,
+ thunar_uca_model_tree_model_init));
+
+
+
+static void
+thunar_uca_model_class_init (ThunarUcaModelClass *klass)
+{
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = thunar_uca_model_finalize;
+}
+
+
+
+static void
+thunar_uca_model_tree_model_init (GtkTreeModelIface *iface)
+{
+ iface->get_flags = thunar_uca_model_get_flags;
+ iface->get_n_columns = thunar_uca_model_get_n_columns;
+ iface->get_column_type = thunar_uca_model_get_column_type;
+ iface->get_iter = thunar_uca_model_get_iter;
+ iface->get_path = thunar_uca_model_get_path;
+ iface->get_value = thunar_uca_model_get_value;
+ iface->iter_next = thunar_uca_model_iter_next;
+ iface->iter_children = thunar_uca_model_iter_children;
+ iface->iter_has_child = thunar_uca_model_iter_has_child;
+ iface->iter_n_children = thunar_uca_model_iter_n_children;
+ iface->iter_nth_child = thunar_uca_model_iter_nth_child;
+ iface->iter_parent = thunar_uca_model_iter_parent;
+}
+
+
+
+static void
+thunar_uca_model_init (ThunarUcaModel *uca_model)
+{
+ GError *error = NULL;
+ gchar *filename;
+
+ /* allocate a new icon factory for our action icons
+ * and add it to the default icon factories
+ */
+ uca_model->icon_factory = gtk_icon_factory_new ();
+ gtk_icon_factory_add_default (uca_model->icon_factory);
+
+ /* generate a unique stamp */
+ uca_model->stamp = g_random_int ();
+
+ /* determine the path to the uca.xml config */
+ filename = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "Thunar/uca.xml");
+ if (G_LIKELY (filename != NULL))
+ {
+ /* try to load the file */
+ if (!thunar_uca_model_load_from_file (uca_model, filename, &error))
+ {
+ g_warning ("Failed to load `%s': %s", filename, error->message);
+ g_error_free (error);
+ }
+
+ /* release the filename */
+ g_free (filename);
+ }
+}
+
+
+
+static void
+thunar_uca_model_finalize (GObject *object)
+{
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (object);
+
+ /* drop our icon factory */
+ gtk_icon_factory_remove_default (uca_model->icon_factory);
+ g_object_unref (G_OBJECT (uca_model->icon_factory));
+
+ /* release all items */
+ g_list_foreach (uca_model->items, (GFunc) thunar_uca_model_item_free, NULL);
+ g_list_free (uca_model->items);
+
+ (*G_OBJECT_CLASS (thunar_uca_model_parent_class)->finalize) (object);
+}
+
+
+
+static GtkTreeModelFlags
+thunar_uca_model_get_flags (GtkTreeModel *tree_model)
+{
+ return GTK_TREE_MODEL_LIST_ONLY;
+}
+
+
+
+static gint
+thunar_uca_model_get_n_columns (GtkTreeModel *tree_model)
+{
+ return THUNAR_UCA_MODEL_N_COLUMNS;
+}
+
+
+
+static GType
+thunar_uca_model_get_column_type (GtkTreeModel *tree_model,
+ gint column)
+{
+ switch (column)
+ {
+ case THUNAR_UCA_MODEL_COLUMN_NAME:
+ return G_TYPE_STRING;
+
+ case THUNAR_UCA_MODEL_COLUMN_DESCRIPTION:
+ return G_TYPE_STRING;
+
+ case THUNAR_UCA_MODEL_COLUMN_ICON:
+ return G_TYPE_STRING;
+
+ case THUNAR_UCA_MODEL_COLUMN_COMMAND:
+ return G_TYPE_STRING;
+
+ case THUNAR_UCA_MODEL_COLUMN_PATTERNS:
+ return G_TYPE_STRING;
+
+ case THUNAR_UCA_MODEL_COLUMN_TYPES:
+ return G_TYPE_UINT;
+
+ case THUNAR_UCA_MODEL_COLUMN_STOCK_ID:
+ return G_TYPE_STRING;
+
+ case THUNAR_UCA_MODEL_COLUMN_STOCK_LABEL:
+ return G_TYPE_STRING;
+
+ default:
+ g_assert_not_reached ();
+ return G_TYPE_INVALID;
+ }
+}
+
+
+
+static gboolean
+thunar_uca_model_get_iter (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreePath *path)
+{
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (tree_model);
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), FALSE);
+ g_return_val_if_fail (gtk_tree_path_get_depth (path) > 0, FALSE);
+
+ iter->stamp = uca_model->stamp;
+ iter->user_data = g_list_nth (uca_model->items, gtk_tree_path_get_indices (path)[0]);
+
+ return (iter->user_data != NULL);
+}
+
+
+
+static GtkTreePath*
+thunar_uca_model_get_path (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (tree_model);
+ gint index;
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), NULL);
+ g_return_val_if_fail (iter->stamp == uca_model->stamp, NULL);
+
+ /* determine the index of the iter */
+ index = g_list_position (uca_model->items, iter->user_data);
+ if (G_UNLIKELY (index < 0))
+ return NULL;
+
+ return gtk_tree_path_new_from_indices (index, -1);
+}
+
+
+
+static void
+thunar_uca_model_get_value (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ gint column,
+ GValue *value)
+{
+ ThunarUcaModelItem *item = ((GList *) iter->user_data)->data;
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (tree_model);
+ GtkIconSource *icon_source;
+ GtkIconSet *icon_set;
+ gchar *str;
+
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter->stamp == uca_model->stamp);
+
+ /* initialize the value with the proper type */
+ g_value_init (value, gtk_tree_model_get_column_type (tree_model, column));
+
+ switch (column)
+ {
+ case THUNAR_UCA_MODEL_COLUMN_NAME:
+ g_value_set_static_string (value, item->name);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_DESCRIPTION:
+ g_value_set_static_string (value, item->description);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_ICON:
+ g_value_set_static_string (value, item->icon);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_COMMAND:
+ g_value_set_static_string (value, item->command);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_PATTERNS:
+ str = g_strjoinv (";", item->patterns);
+ g_value_take_string (value, str);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_TYPES:
+ g_value_set_uint (value, item->types);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_STOCK_ID:
+ if (item->stock_id == NULL && item->icon != NULL)
+ {
+ /* allocate a new icon set for the item */
+ icon_set = gtk_icon_set_new ();
+ icon_source = gtk_icon_source_new ();
+ if (g_path_is_absolute (item->icon))
+ gtk_icon_source_set_filename (icon_source, item->icon);
+ else
+ gtk_icon_source_set_icon_name (icon_source, item->icon);
+ gtk_icon_set_add_source (icon_set, icon_source);
+ gtk_icon_source_free (icon_source);
+
+ /* generate a unique stock-id for the icon */
+ item->stock_id = g_strdup_printf ("thunar-uca-%p", item);
+
+ /* register the icon set */
+ gtk_icon_factory_add (uca_model->icon_factory, item->stock_id, icon_set);
+
+ /* cleanup */
+ gtk_icon_set_unref (icon_set);
+ }
+ g_value_set_static_string (value, item->stock_id);
+ break;
+
+ case THUNAR_UCA_MODEL_COLUMN_STOCK_LABEL:
+ str = g_markup_printf_escaped ("<b>%s</b>\n%s", (item->name != NULL) ? item->name : "", (item->description != NULL) ? item->description : "");
+ g_value_take_string (value, str);
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+
+
+static gboolean
+thunar_uca_model_iter_next (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (tree_model), FALSE);
+ g_return_val_if_fail (iter->stamp == THUNAR_UCA_MODEL (tree_model)->stamp, FALSE);
+
+ iter->user_data = g_list_next (iter->user_data);
+ return (iter->user_data != NULL);
+}
+
+
+
+static gboolean
+thunar_uca_model_iter_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent)
+{
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (tree_model);
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), FALSE);
+
+ if (G_LIKELY (parent == NULL && uca_model->items != NULL))
+ {
+ iter->stamp = uca_model->stamp;
+ iter->user_data = uca_model->items;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+
+static gboolean
+thunar_uca_model_iter_has_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ return FALSE;
+}
+
+
+
+static gint
+thunar_uca_model_iter_n_children (GtkTreeModel *tree_model,
+ GtkTreeIter *iter)
+{
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (tree_model);
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), 0);
+
+ return (iter == NULL) ? g_list_length (uca_model->items) : 0;
+}
+
+
+
+static gboolean
+thunar_uca_model_iter_nth_child (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *parent,
+ gint n)
+{
+ ThunarUcaModel *uca_model = THUNAR_UCA_MODEL (tree_model);
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), FALSE);
+
+ if (G_LIKELY (parent != NULL))
+ {
+ iter->stamp = uca_model->stamp;
+ iter->user_data = g_list_nth (uca_model->items, n);
+ return (iter->user_data != NULL);
+ }
+
+ return FALSE;
+}
+
+
+
+static gboolean
+thunar_uca_model_iter_parent (GtkTreeModel *tree_model,
+ GtkTreeIter *iter,
+ GtkTreeIter *child)
+{
+ return FALSE;
+}
+
+
+
+static gboolean
+thunar_uca_model_load_from_file (ThunarUcaModel *uca_model,
+ const gchar *filename,
+ GError **error)
+{
+ GMarkupParseContext *context;
+ gboolean succeed;
+ Parser parser;
+ gchar *content;
+ gsize content_len;
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ g_return_val_if_fail (g_path_is_absolute (filename), FALSE);
+
+ /* read the file info memory */
+ if (!g_file_get_contents (filename, &content, &content_len, error))
+ return FALSE;
+
+ /* initialize the parser */
+ parser.stack = xfce_stack_new (ParserStack);
+ parser.model = uca_model;
+ parser.locale = setlocale (LC_MESSAGES, NULL);
+ parser.name = g_string_new (NULL);
+ parser.icon = g_string_new (NULL);
+ parser.command = g_string_new (NULL);
+ parser.patterns = g_string_new (NULL);
+ parser.description = g_string_new (NULL);
+ xfce_stack_push (parser.stack, PARSER_START);
+
+ /* parse the file */
+ context = g_markup_parse_context_new (&markup_parser, 0, &parser, NULL);
+ succeed = g_markup_parse_context_parse (context, content, content_len, error)
+ && g_markup_parse_context_end_parse (context, error);
+
+ /* cleanup */
+ g_markup_parse_context_free (context);
+ g_string_free (parser.description, TRUE);
+ g_string_free (parser.patterns, TRUE);
+ g_string_free (parser.command, TRUE);
+ g_string_free (parser.icon, TRUE);
+ g_string_free (parser.name, TRUE);
+ xfce_stack_free (parser.stack);
+ g_free (content);
+
+ return succeed;
+}
+
+
+
+static void
+thunar_uca_model_item_reset (ThunarUcaModelItem *item)
+{
+ /* release the previous values... */
+ g_strfreev (item->patterns);
+ g_free (item->description);
+ g_free (item->stock_id);
+ g_free (item->command);
+ g_free (item->name);
+ g_free (item->icon);
+
+ /* ...and reset the item memory */
+ bzero (item, sizeof (*item));
+}
+
+
+
+static void
+thunar_uca_model_item_free (ThunarUcaModelItem *item)
+{
+ thunar_uca_model_item_reset (item);
+ g_free (item);
+}
+
+
+
+static void
+start_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ const gchar **attribute_names,
+ const gchar **attribute_values,
+ gpointer user_data,
+ GError **error)
+{
+ Parser *parser = user_data;
+ guint match, n;
+
+ switch (xfce_stack_top (parser->stack))
+ {
+ case PARSER_START:
+ if (strcmp (element_name, "actions") == 0)
+ xfce_stack_push (parser->stack, PARSER_ACTIONS);
+ else
+ goto unknown_element;
+ break;
+
+ case PARSER_ACTIONS:
+ if (strcmp (element_name, "action") == 0)
+ {
+ parser->name_match = XFCE_LOCALE_NO_MATCH;
+ parser->description_match = XFCE_LOCALE_NO_MATCH;
+ parser->types = 0;
+ xfce_stack_push (parser->stack, PARSER_ACTION);
+ }
+ else
+ goto unknown_element;
+ break;
+
+ case PARSER_ACTION:
+ if (strcmp (element_name, "name") == 0)
+ {
+ for (n = 0; attribute_names[n] != NULL; ++n)
+ if (strcmp (attribute_names[n], "xml:lang") == 0)
+ break;
+
+ if (G_LIKELY (attribute_names[n] == NULL))
+ {
+ parser->name_use = (parser->name_match <= XFCE_LOCALE_NO_MATCH);
+ }
+ else
+ {
+ match = xfce_locale_match (parser->locale, attribute_values[n]);
+ if (parser->name_match < match)
+ {
+ parser->name_match = match;
+ parser->name_use = TRUE;
+ }
+ else
+ {
+ parser->name_use = FALSE;
+ }
+ }
+
+ if (parser->name_use)
+ g_string_truncate (parser->name, 0);
+
+ xfce_stack_push (parser->stack, PARSER_NAME);
+ }
+ else if (strcmp (element_name, "icon") == 0)
+ {
+ g_string_truncate (parser->icon, 0);
+ xfce_stack_push (parser->stack, PARSER_ICON);
+ }
+ else if (strcmp (element_name, "command") == 0)
+ {
+ g_string_truncate (parser->command, 0);
+ xfce_stack_push (parser->stack, PARSER_COMMAND);
+ }
+ else if (strcmp (element_name, "patterns") == 0)
+ {
+ g_string_truncate (parser->patterns, 0);
+ xfce_stack_push (parser->stack, PARSER_PATTERNS);
+ }
+ else if (strcmp (element_name, "description") == 0)
+ {
+ for (n = 0; attribute_names[n] != NULL; ++n)
+ if (strcmp (attribute_names[n], "xml:lang") == 0)
+ break;
+
+ if (G_LIKELY (attribute_names[n] == NULL))
+ {
+ parser->description_use = (parser->description_match <= XFCE_LOCALE_NO_MATCH);
+ }
+ else
+ {
+ match = xfce_locale_match (parser->locale, attribute_values[n]);
+ if (parser->description_match < match)
+ {
+ parser->description_match = match;
+ parser->description_use = TRUE;
+ }
+ else
+ {
+ parser->description_use = FALSE;
+ }
+ }
+
+ if (parser->description_use)
+ g_string_truncate (parser->description, 0);
+
+ xfce_stack_push (parser->stack, PARSER_DESCRIPTION);
+ }
+ else if (strcmp (element_name, "directories") == 0)
+ {
+ parser->types |= THUNAR_UCA_TYPE_DIRECTORIES;
+ xfce_stack_push (parser->stack, PARSER_DIRECTORIES);
+ }
+ else if (strcmp (element_name, "audio-files") == 0)
+ {
+ parser->types |= THUNAR_UCA_TYPE_AUDIO_FILES;
+ xfce_stack_push (parser->stack, PARSER_AUDIO_FILES);
+ }
+ else if (strcmp (element_name, "image-files") == 0)
+ {
+ parser->types |= THUNAR_UCA_TYPE_IMAGE_FILES;
+ xfce_stack_push (parser->stack, PARSER_IMAGE_FILES);
+ }
+ else if (strcmp (element_name, "other-files") == 0)
+ {
+ parser->types |= THUNAR_UCA_TYPE_OTHER_FILES;
+ xfce_stack_push (parser->stack, PARSER_OTHER_FILES);
+ }
+ else if (strcmp (element_name, "text-files") == 0)
+ {
+ parser->types |= THUNAR_UCA_TYPE_TEXT_FILES;
+ xfce_stack_push (parser->stack, PARSER_TEXT_FILES);
+ }
+ else if (strcmp (element_name, "video-files") == 0)
+ {
+ parser->types |= THUNAR_UCA_TYPE_VIDEO_FILES;
+ xfce_stack_push (parser->stack, PARSER_VIDEO_FILES);
+ }
+ else
+ goto unknown_element;
+ break;
+
+ default:
+ goto unknown_element;
+ }
+
+ return;
+
+unknown_element:
+ g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
+ _("Unknown element <%s>"), element_name);
+}
+
+
+
+static void
+end_element_handler (GMarkupParseContext *context,
+ const gchar *element_name,
+ gpointer user_data,
+ GError **error)
+{
+ GtkTreeIter iter;
+ Parser *parser = user_data;
+
+ switch (xfce_stack_top (parser->stack))
+ {
+ case PARSER_START:
+ g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT,
+ _("End element handler called while in root context"));
+ return;
+
+ case PARSER_ACTIONS:
+ if (strcmp (element_name, "actions") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_ACTION:
+ if (strcmp (element_name, "action") == 0)
+ {
+ thunar_uca_model_append (parser->model, &iter);
+ thunar_uca_model_update (parser->model, &iter,
+ parser->name->str,
+ parser->description->str,
+ parser->icon->str,
+ parser->command->str,
+ parser->patterns->str,
+ parser->types);
+ }
+ else
+ goto unknown_element;
+ break;
+
+ case PARSER_NAME:
+ if (strcmp (element_name, "name") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_ICON:
+ if (strcmp (element_name, "icon") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_COMMAND:
+ if (strcmp (element_name, "command") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_PATTERNS:
+ if (strcmp (element_name, "patterns") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_DESCRIPTION:
+ if (strcmp (element_name, "description") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_DIRECTORIES:
+ if (strcmp (element_name, "directories") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_AUDIO_FILES:
+ if (strcmp (element_name, "audio-files") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_IMAGE_FILES:
+ if (strcmp (element_name, "image-files") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_OTHER_FILES:
+ if (strcmp (element_name, "other-files") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_TEXT_FILES:
+ if (strcmp (element_name, "text-files") != 0)
+ goto unknown_element;
+ break;
+
+ case PARSER_VIDEO_FILES:
+ if (strcmp (element_name, "video-files") != 0)
+ goto unknown_element;
+ break;
+
+ default:
+ goto unknown_element;
+ }
+
+ xfce_stack_pop (parser->stack);
+ return;
+
+unknown_element:
+ g_set_error (error, G_MARKUP_ERROR, G_MARKUP_ERROR_UNKNOWN_ELEMENT,
+ _("Unknown closing element <%s>"), element_name);
+}
+
+
+
+static void
+text_handler (GMarkupParseContext *context,
+ const gchar *text,
+ gsize text_len,
+ gpointer user_data,
+ GError **error)
+{
+ Parser *parser = user_data;
+
+ switch (xfce_stack_top (parser->stack))
+ {
+ case PARSER_NAME:
+ if (parser->name_use)
+ g_string_append_len (parser->name, text, text_len);
+ break;
+
+ case PARSER_ICON:
+ g_string_append_len (parser->icon, text, text_len);
+ break;
+
+ case PARSER_COMMAND:
+ g_string_append_len (parser->command, text, text_len);
+ break;
+
+ case PARSER_PATTERNS:
+ g_string_append_len (parser->patterns, text, text_len);
+ break;
+
+ case PARSER_DESCRIPTION:
+ if (parser->description_use)
+ g_string_append_len (parser->description, text, text_len);
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+
+/**
+ * thunar_uca_model_get_default:
+ *
+ * Returns a reference to the default shared
+ * #ThunarUcaModel instance. The caller is
+ * responsible to free the returned instance
+ * using g_object_unref() when no longer
+ * needed.
+ *
+ * Return value: a reference to the default
+ * #ThunarUcaModel instance.
+ **/
+ThunarUcaModel*
+thunar_uca_model_get_default (void)
+{
+ static ThunarUcaModel *model = NULL;
+
+ if (model == NULL)
+ {
+ model = g_object_new (THUNAR_UCA_TYPE_MODEL, NULL);
+ g_object_add_weak_pointer (G_OBJECT (model), (gpointer) &model);
+ }
+ else
+ {
+ g_object_ref (G_OBJECT (model));
+ }
+
+ return model;
+}
+
+
+
+static inline ThunarUcaTypes
+types_from_mime_type (const gchar *mime_type)
+{
+ if (strcmp (mime_type, "inode/directory") == 0)
+ return THUNAR_UCA_TYPE_DIRECTORIES;
+ else if (strncmp (mime_type, "audio/", 6) == 0)
+ return THUNAR_UCA_TYPE_AUDIO_FILES;
+ else if (strncmp (mime_type, "image/", 6) == 0)
+ return THUNAR_UCA_TYPE_IMAGE_FILES;
+ else if (strncmp (mime_type, "text/", 5) == 0)
+ return THUNAR_UCA_TYPE_TEXT_FILES;
+ else if (strncmp (mime_type, "video/", 6) == 0)
+ return THUNAR_UCA_TYPE_VIDEO_FILES;
+ else
+ return 0;
+}
+
+
+
+/**
+ * thunar_uca_model_match:
+ * @uca_model : a #ThunarUcaModel.
+ * @file_infos : a #GList of #ThunarxFileInfo<!---->s.
+ *
+ * Returns the #GtkTreePath<!---->s for the items in @uca_model,
+ * that are defined for the #ThunarxFileInfo<!---->s in the
+ * @file_infos.
+ *
+ * The caller is responsible to free the returned list using
+ * <informalexample><programlisting>
+ * g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
+ * g_list_free (list);
+ * </programlisting></informalexample>
+ *
+ * Return value: the list of #GtkTreePath<!---->s to items
+ * that match @file_infos.
+ **/
+GList*
+thunar_uca_model_match (ThunarUcaModel *uca_model,
+ GList *file_infos)
+{
+ typedef struct
+ {
+ const gchar *name;
+ ThunarUcaTypes types;
+ } ThunarUcaFile;
+
+ ThunarVfsMimeDatabase *mime_database;
+ ThunarUcaModelItem *item;
+ ThunarUcaFile *files;
+ ThunarVfsInfo *info;
+ const gchar *mime_type;
+ gboolean matches;
+ GList *mime_infos;
+ GList *paths = NULL;
+ GList *lp, *mp;
+ gint n_files;
+ gint i, m, n;
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), NULL);
+
+ /* special case to avoid overhead */
+ if (G_UNLIKELY (uca_model->items == NULL))
+ return NULL;
+
+ /* determine the ThunarUcaFile's for the given file_infos */
+ n_files = g_list_length (file_infos);
+ files = g_new (ThunarUcaFile, n_files);
+ for (lp = file_infos, n = 0; lp != NULL; lp = lp->next, ++n)
+ {
+ info = thunarx_file_info_get_vfs_info (lp->data);
+ mime_type = thunar_vfs_mime_info_get_name (info->mime_info);
+ files[n].name = thunar_vfs_path_get_name (info->path);
+ files[n].types = types_from_mime_type (mime_type);
+ if (G_UNLIKELY (files[n].types == 0))
+ {
+ mime_database = thunar_vfs_mime_database_get_default ();
+ mime_infos = thunar_vfs_mime_database_get_infos_for_info (mime_database, info->mime_info);
+ for (mp = mime_infos; mp != NULL; mp = mp->next)
+ {
+ mime_type = thunar_vfs_mime_info_get_name (mp->data);
+ files[n].types |= types_from_mime_type (mime_type);
+ thunar_vfs_mime_info_unref (mp->data);
+ }
+ g_object_unref (G_OBJECT (mime_database));
+ g_list_free (mime_infos);
+ }
+ if (G_UNLIKELY (files[n].types == 0))
+ files[n].types = THUNAR_UCA_TYPE_OTHER_FILES;
+ thunar_vfs_info_unref (info);
+ }
+
+ /* lookup the matching items */
+ for (i = 0, lp = uca_model->items; lp != NULL; ++i, lp = lp->next)
+ {
+ /* check if we can just ignore this item */
+ item = (ThunarUcaModelItem *) lp->data;
+ if (!item->multiple_selection && n_files > 1)
+ continue;
+
+ /* match the specified files */
+ for (n = 0; n < n_files; ++n)
+ {
+ /* verify that we support this type of file */
+ if ((files[n].types & item->types) == 0)
+ break;
+
+ /* atleast on pattern must match the file name */
+ for (m = 0, matches = FALSE; item->patterns[m] != NULL && !matches; ++m)
+ matches = g_pattern_match_simple (item->patterns[m], files[n].name);
+
+ /* no need to continue if none of the patterns match */
+ if (!matches)
+ break;
+ }
+
+ /* add the path if all files match one of the patterns */
+ if (G_UNLIKELY (n == n_files))
+ paths = g_list_append (paths, gtk_tree_path_new_from_indices (i, -1));
+ }
+
+ /* cleanup */
+ g_free (files);
+
+ return paths;
+}
+
+
+
+/**
+ * thunar_uca_model_append:
+ * @uca_model : a #ThunarUcaModel.
+ * @iter : return location for the new #GtkTreeIter.
+ *
+ * Appends a new item to the @uca_model and returns the
+ * @iter of the new item.
+ **/
+void
+thunar_uca_model_append (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter)
+{
+ ThunarUcaModelItem *item;
+ GtkTreePath *path;
+
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter != NULL);
+
+ /* append the new item */
+ item = g_new0 (ThunarUcaModelItem, 1);
+ uca_model->items = g_list_append (uca_model->items, item);
+
+ /* determine the tree iter of the new item */
+ iter->stamp = uca_model->stamp;
+ iter->user_data = g_list_last (uca_model->items);
+
+ /* notify listeners about the new item */
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (uca_model), iter);
+ gtk_tree_model_row_inserted (GTK_TREE_MODEL (uca_model), path, iter);
+ gtk_tree_path_free (path);
+}
+
+
+
+/**
+ * thunar_uca_model_exchange:
+ * @uca_model : a #ThunarUcaModel.
+ * @iter_a : a #GtkTreeIter.
+ * @iter_b : a #GtkTreeIter.
+ *
+ * Exchanges the items at @iter_a and @iter_b in
+ * @uca_model.
+ **/
+void
+thunar_uca_model_exchange (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter_a,
+ GtkTreeIter *iter_b)
+{
+ ThunarUcaModelItem *item;
+ GtkTreePath *path;
+ GList *list_a = iter_a->user_data;
+ GList *list_b = iter_b->user_data;
+ gint *new_order;
+ gint n_items;
+ gint n;
+
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter_a->stamp == uca_model->stamp);
+ g_return_if_fail (iter_b->stamp == uca_model->stamp);
+
+ /* allocate and initialize the new order array */
+ n_items = g_list_length (uca_model->items);
+ new_order = g_newa (gint, n_items);
+ for (n = 0; n < n_items; ++n)
+ new_order[n] = n;
+
+ /* change new_order appropriately */
+ new_order[g_list_position (uca_model->items, list_a)] = g_list_position (uca_model->items, list_b);
+ new_order[g_list_position (uca_model->items, list_b)] = g_list_position (uca_model->items, list_a);
+
+ /* perform the exchange */
+ item = list_a->data;
+ list_a->data = list_b->data;
+ list_b->data = item;
+
+ /* notify listeners about the new order */
+ path = gtk_tree_path_new ();
+ gtk_tree_model_rows_reordered (GTK_TREE_MODEL (uca_model), path, NULL, new_order);
+ gtk_tree_path_free (path);
+}
+
+
+
+/**
+ * thunar_uca_model_remove:
+ * @uca_model : a #ThunarUcaModel.
+ * @iter : a #GtkTreeIter.
+ *
+ * Removes the item at the given @iter from the
+ * @uca_model.
+ **/
+void
+thunar_uca_model_remove (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter)
+{
+ ThunarUcaModelItem *item;
+ GtkTreePath *path;
+
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter->stamp == uca_model->stamp);
+
+ /* determine the path for the item to remove */
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (uca_model), iter);
+
+ /* remove the node from the list */
+ item = ((GList *) iter->user_data)->data;
+ uca_model->items = g_list_delete_link (uca_model->items, iter->user_data);
+ thunar_uca_model_item_free (item);
+
+ /* notify listeners */
+ gtk_tree_model_row_deleted (GTK_TREE_MODEL (uca_model), path);
+
+ /* cleanup */
+ gtk_tree_path_free (path);
+}
+
+
+
+/**
+ * thunar_uca_model_update:
+ * @uca_model : a #ThunarUcaModel.
+ * @iter : the #GtkTreeIter of the item to update.
+ * @name : the name of the item.
+ * @description : the description of the item.
+ * @icon : the icon for the item.
+ * @command : the command of the item.
+ * @patterns : the patterns to match files for this item.
+ * @types : where to apply this item.
+ *
+ * Updates the @uca_model item at @iter with the given values.
+ **/
+void
+thunar_uca_model_update (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter,
+ const gchar *name,
+ const gchar *description,
+ const gchar *icon,
+ const gchar *command,
+ const gchar *patterns,
+ ThunarUcaTypes types)
+{
+ ThunarUcaModelItem *item;
+ GtkTreePath *path;
+ guint n, m;
+
+ g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
+ g_return_if_fail (iter->stamp == uca_model->stamp);
+
+ /* reset the previous item values */
+ item = ((GList *) iter->user_data)->data;
+ thunar_uca_model_item_reset (item);
+
+ /* setup the new item values */
+ if (G_LIKELY (name != NULL && *name != '\0'))
+ item->name = g_strdup (name);
+ if (G_LIKELY (icon != NULL && *icon != '\0'))
+ item->icon = g_strdup (icon);
+ if (G_LIKELY (command != NULL && *command != '\0'))
+ item->command = g_strdup (command);
+ if (G_LIKELY (description != NULL && *description != '\0'))
+ item->description = g_strdup (description);
+ item->types = types;
+
+ /* setup the patterns */
+ item->patterns = g_strsplit ((patterns != NULL && *patterns != '\0') ? patterns : "*", ";", -1);
+ for (m = n = 0; item->patterns[m] != NULL; ++m)
+ {
+ if (G_UNLIKELY (item->patterns[m][0] == '\0'))
+ g_free (item->patterns[m]);
+ else
+ item->patterns[n++] = g_strstrip (item->patterns[m]);
+ }
+ item->patterns[n] = NULL;
+
+ /* check if this item will work for multiple files */
+ item->multiple_selection = (command != NULL && (strstr (command, "%F") != NULL
+ || strstr (command, "%D") != NULL
+ || strstr (command, "%N") != NULL
+ || strstr (command, "%U") != NULL));
+
+ /* notify listeners about the changed item */
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (uca_model), iter);
+ gtk_tree_model_row_changed (GTK_TREE_MODEL (uca_model), path, iter);
+ gtk_tree_path_free (path);
+}
+
+
+
+/**
+ * thunar_uca_model_save:
+ * @uca_model : a #ThunarUcaModel.
+ * @error : return location for errors or %NULL.
+ *
+ * Instructs @uca_model to sync its current state to
+ * persistent storage.
+ *
+ * Return value: %TRUE on success, %FALSE if @error is set.
+ **/
+gboolean
+thunar_uca_model_save (ThunarUcaModel *uca_model,
+ GError **error)
+{
+ ThunarUcaModelItem *item;
+ gboolean result = FALSE;
+ gchar *tmp_path;
+ gchar *patterns;
+ gchar *escaped;
+ gchar *path;
+ GList *lp;
+ FILE *fp;
+ gint fd;
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* determine the save location */
+ path = xfce_resource_save_location (XFCE_RESOURCE_CONFIG, "Thunar/uca.xml", TRUE);
+ if (G_UNLIKELY (path == NULL))
+ {
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_IO, _("Failed to determine save location for uca.xml"));
+ return FALSE;
+ }
+
+ /* try to open a temporary file */
+ tmp_path = g_strconcat (path, ".XXXXXX", NULL);
+ fd = g_mkstemp (tmp_path);
+ if (G_UNLIKELY (fd < 0))
+ {
+ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno), g_strerror (errno));
+ goto done;
+ }
+
+ /* wrap the file descriptor into a file pointer */
+ fp = fdopen (fd, "w");
+
+ /* write the header */
+ fprintf (fp, "<?xml encoding=\"UTF-8\" version=\"1.0\"?>\n<actions>");
+
+ /* write the model items */
+ for (lp = uca_model->items; lp != NULL; lp = lp->next)
+ {
+ item = (ThunarUcaModelItem *) lp->data;
+ fprintf (fp, "<action>");
+ patterns = g_strjoinv (";", item->patterns);
+ escaped = g_markup_printf_escaped ("<icon>%s</icon>"
+ "<name>%s</name>"
+ "<command>%s</command>"
+ "<description>%s</description>"
+ "<patterns>%s</patterns>",
+ (item->icon != NULL) ? item->icon : "",
+ (item->name != NULL) ? item->name : "",
+ (item->command != NULL) ? item->command : "",
+ (item->description != NULL) ? item->description : "",
+ patterns);
+ fprintf (fp, "%s", escaped);
+ g_free (patterns);
+ g_free (escaped);
+ if ((item->types & THUNAR_UCA_TYPE_DIRECTORIES) != 0)
+ fprintf (fp, "<directories/>");
+ if ((item->types & THUNAR_UCA_TYPE_AUDIO_FILES) != 0)
+ fprintf (fp, "<audio-files/>");
+ if ((item->types & THUNAR_UCA_TYPE_IMAGE_FILES) != 0)
+ fprintf (fp, "<image-files/>");
+ if ((item->types & THUNAR_UCA_TYPE_OTHER_FILES) != 0)
+ fprintf (fp, "<other-files/>");
+ if ((item->types & THUNAR_UCA_TYPE_TEXT_FILES) != 0)
+ fprintf (fp, "<text-files/>");
+ if ((item->types & THUNAR_UCA_TYPE_VIDEO_FILES) != 0)
+ fprintf (fp, "<video-files/>");
+ fprintf (fp, "</action>");
+ }
+
+ /* write the footer and close the tmp file */
+ fprintf (fp, "</actions>\n");
+ fclose (fp);
+
+ /* rename the file (atomic) */
+ if (g_rename (tmp_path, path) < 0)
+ {
+ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno), g_strerror (errno));
+ g_unlink (tmp_path);
+ }
+ else
+ {
+ /* yeppa, successful */
+ result = TRUE;
+ }
+
+done:
+ /* cleanup */
+ g_free (tmp_path);
+ g_free (path);
+
+ return result;
+}
+
+
+
+/**
+ * thunar_uca_model_parse_argv:
+ * @uca_model : a #ThunarUcaModel.
+ * @iter : the #GtkTreeIter of the item.
+ * @file_infos : the #GList of #ThunarxFileInfo<!---->s to pass to the item.
+ * @argcp : return location for number of args.
+ * @argvp : return location for array of args.
+ * @error : return location for errors or %NULL.
+ *
+ * Return value: %TRUE on success, %FALSE if @error is set.
+ **/
+gboolean
+thunar_uca_model_parse_argv (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter,
+ GList *file_infos,
+ gint *argcp,
+ gchar ***argvp,
+ GError **error)
+{
+ ThunarUcaModelItem *item;
+ const gchar *p;
+ gboolean result = FALSE;
+ GString *command_line = g_string_new (NULL);
+ GList *lp;
+ gchar *dirname;
+ gchar *quoted;
+ gchar *path;
+ gchar *uri;
+
+ g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), FALSE);
+ g_return_val_if_fail (iter->stamp == uca_model->stamp, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* verify that a command is set for the item */
+ item = (ThunarUcaModelItem *) ((GList *) iter->user_data)->data;
+ if (item->command == NULL || *item->command == '\0')
+ {
+ g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_INVAL, _("Command not configured"));
+ goto done;
+ }
+
+ /* generate the command line */
+ for (p = item->command; *p != '\0'; ++p)
+ {
+ if (p[0] == '%' && p[1] != '\0')
+ {
+ switch (*++p)
+ {
+ case 'f':
+ if (G_LIKELY (file_infos != NULL))
+ {
+ uri = thunarx_file_info_get_uri (file_infos->data);
+ path = g_filename_from_uri (uri, NULL, error);
+ g_free (uri);
+
+ if (G_UNLIKELY (path == NULL))
+ goto done;
+
+ quoted = g_shell_quote (path);
+ g_string_append (command_line, quoted);
+ g_free (quoted);
+ g_free (path);
+ }
+ break;
+
+ case 'F':
+ for (lp = file_infos; lp != NULL; lp = lp->next)
+ {
+ if (G_LIKELY (lp != file_infos))
+ g_string_append_c (command_line, ' ');
+
+ uri = thunarx_file_info_get_uri (lp->data);
+ path = g_filename_from_uri (uri, NULL, error);
+ g_free (uri);
+
+ if (G_UNLIKELY (path == NULL))
+ goto done;
+
+ quoted = g_shell_quote (path);
+ g_string_append (command_line, quoted);
+ g_free (quoted);
+ g_free (path);
+ }
+ break;
+
+ case 'u':
+ if (G_LIKELY (file_infos != NULL))
+ {
+ uri = thunarx_file_info_get_uri (file_infos->data);
+ quoted = g_shell_quote (uri);
+ g_string_append (command_line, quoted);
+ g_free (quoted);
+ g_free (uri);
+ }
+ break;
+
+ case 'U':
+ for (lp = file_infos; lp != NULL; lp = lp->next)
+ {
+ if (G_LIKELY (lp != file_infos))
+ g_string_append_c (command_line, ' ');
+
+ uri = thunarx_file_info_get_uri (lp->data);
+ quoted = g_shell_quote (uri);
+ g_string_append (command_line, quoted);
+ g_free (quoted);
+ g_free (uri);
+ }
+ break;
+
+ case 'd':
+ if (G_LIKELY (file_infos != NULL))
+ {
+ uri = thunarx_file_info_get_uri (file_infos->data);
+ path = g_filename_from_uri (uri, NULL, error);
+ g_free (uri);
+
+ if (G_UNLIKELY (path == NULL))
+ goto done;
+
+ dirname = g_path_get_dirname (path);
+ quoted = g_shell_quote (path);
+ g_string_append (command_line, quoted);
+ g_free (dirname);
+ g_free (quoted);
+ g_free (path);
+ }
+ break;
+
+ case 'D':
+ for (lp = file_infos; lp != NULL; lp = lp->next)
+ {
+ if (G_LIKELY (lp != file_infos))
+ g_string_append_c (command_line, ' ');
+
+ uri = thunarx_file_info_get_uri (lp->data);
+ path = g_filename_from_uri (uri, NULL, error);
+ g_free (uri);
+
+ if (G_UNLIKELY (path == NULL))
+ goto done;
+
+ dirname = g_path_get_dirname (path);
+ quoted = g_shell_quote (path);
+ g_string_append (command_line, quoted);
+ g_free (dirname);
+ g_free (quoted);
+ g_free (path);
+ }
+ break;
+
+ case 'n':
+ if (G_LIKELY (file_infos != NULL))
+ {
+ path = thunarx_file_info_get_name (file_infos->data);
+ quoted = g_shell_quote (path);
+ g_string_append (command_line, quoted);
+ g_free (quoted);
+ g_free (path);
+ }
+ break;
+
+ case 'N':
+ for (lp = file_infos; lp != NULL; lp = lp->next)
+ {
+ if (G_LIKELY (lp != file_infos))
+ g_string_append_c (command_line, ' ');
+
+ path = thunarx_file_info_get_name (lp->data);
+ quoted = g_shell_quote (path);
+ g_string_append (command_line, quoted);
+ g_free (quoted);
+ g_free (path);
+ }
+ break;
+
+ case '%':
+ g_string_append_c (command_line, '%');
+ break;
+ }
+ }
+ else
+ {
+ g_string_append_c (command_line, *p);
+ }
+ }
+
+ result = g_shell_parse_argv (command_line->str, argcp, argvp, error);
+
+done:
+ g_string_free (command_line, TRUE);
+ return result;
+}
+
+
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __THUNAR_UCA_MODEL_H__
+#define __THUNAR_UCA_MODEL_H__
+
+#include <thunarx/thunarx.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarUcaModelClass ThunarUcaModelClass;
+typedef struct _ThunarUcaModel ThunarUcaModel;
+
+#define THUNAR_UCA_TYPE_MODEL (thunar_uca_model_get_type ())
+#define THUNAR_UCA_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_UCA_TYPE_MODEL, ThunarUcaModel))
+#define THUNAR_UCA_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_UCA_TYPE_MODEL, ThunarUcaModelClass))
+#define THUNAR_UCA_IS_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_UCA_TYPE_MODEL))
+#define THUNAR_UCA_IS_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_UCA_TYPE_MODEL))
+#define THUNAR_UCA_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_UCA_TYPE_MODEL, ThunarUcaModelClass))
+
+typedef enum
+{
+ THUNAR_UCA_MODEL_COLUMN_NAME,
+ THUNAR_UCA_MODEL_COLUMN_DESCRIPTION,
+ THUNAR_UCA_MODEL_COLUMN_ICON,
+ THUNAR_UCA_MODEL_COLUMN_COMMAND,
+ THUNAR_UCA_MODEL_COLUMN_PATTERNS,
+ THUNAR_UCA_MODEL_COLUMN_TYPES,
+ THUNAR_UCA_MODEL_COLUMN_STOCK_ID,
+ THUNAR_UCA_MODEL_COLUMN_STOCK_LABEL,
+ THUNAR_UCA_MODEL_N_COLUMNS,
+} ThunarUcaModelColumn;
+
+/**
+ * ThunarUcaTypes:
+ * @THUNAR_UCA_TYPE_DIRECTORIES : directories.
+ * @THUNAR_UCA_TYPE_AUDIO_FILES : audio files.
+ * @THUNAR_UCA_TYPE_IMAGE_FILES : image files.
+ * @THUNAR_UCA_TYPE_OTHER_FILES : other files.
+ * @THUNAR_UCA_TYPE_TEXT_FILES : text files.
+ * @THUNAR_UCA_TYPE_VIDEO_FILES : video files.
+ **/
+typedef enum /*< flags >*/
+{
+ THUNAR_UCA_TYPE_DIRECTORIES = 1 << 0,
+ THUNAR_UCA_TYPE_AUDIO_FILES = 1 << 1,
+ THUNAR_UCA_TYPE_IMAGE_FILES = 1 << 2,
+ THUNAR_UCA_TYPE_OTHER_FILES = 1 << 3,
+ THUNAR_UCA_TYPE_TEXT_FILES = 1 << 4,
+ THUNAR_UCA_TYPE_VIDEO_FILES = 1 << 5,
+} ThunarUcaTypes;
+
+GType thunar_uca_model_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
+void thunar_uca_model_register_type (ThunarxProviderPlugin *plugin) G_GNUC_INTERNAL;
+
+ThunarUcaModel *thunar_uca_model_get_default (void) G_GNUC_INTERNAL;
+
+GList *thunar_uca_model_match (ThunarUcaModel *uca_model,
+ GList *file_infos) G_GNUC_INTERNAL;
+
+void thunar_uca_model_append (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter) G_GNUC_INTERNAL;
+
+void thunar_uca_model_exchange (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter_a,
+ GtkTreeIter *iter_b) G_GNUC_INTERNAL;
+
+void thunar_uca_model_remove (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter) G_GNUC_INTERNAL;
+
+void thunar_uca_model_update (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter,
+ const gchar *name,
+ const gchar *description,
+ const gchar *icon,
+ const gchar *command,
+ const gchar *patterns,
+ ThunarUcaTypes types) G_GNUC_INTERNAL;
+
+gboolean thunar_uca_model_save (ThunarUcaModel *uca_model,
+ GError **error) G_GNUC_INTERNAL;
+
+gboolean thunar_uca_model_parse_argv (ThunarUcaModel *uca_model,
+ GtkTreeIter *iter,
+ GList *file_infos,
+ gint *argcp,
+ gchar ***argvp,
+ GError **error) G_GNUC_INTERNAL;
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_UCA_MODEL_H__ */
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <thunar-uca/thunar-uca-chooser.h>
+#include <thunar-uca/thunar-uca-editor.h>
+#include <thunar-uca/thunar-uca-model.h>
+#include <thunar-uca/thunar-uca-provider.h>
+
+
+
+static GType type_list[1];
+
+
+
+G_MODULE_EXPORT void
+thunar_extension_initialize (ThunarxProviderPlugin *plugin)
+{
+ const gchar *mismatch;
+
+ /* verify that the thunarx versions are compatible */
+ mismatch = thunarx_check_version (THUNARX_MAJOR_VERSION, THUNARX_MINOR_VERSION, THUNARX_MICRO_VERSION); if (G_UNLIKELY (mismatch != NULL))
+ {
+ g_warning ("Version mismatch: %s", mismatch);
+ return;
+ }
+
+#ifndef G_DISABLE_CHECKS
+ g_message ("Initializing ThunarUca extension");
+#endif
+
+ /* register the types provided by this plugin */
+ thunar_uca_chooser_register_type (plugin);
+ thunar_uca_editor_register_type (plugin);
+ thunar_uca_model_register_type (plugin);
+ thunar_uca_provider_register_type (plugin);
+
+ /* setup the plugin provider type list */
+ type_list[0] = THUNAR_UCA_TYPE_PROVIDER;
+}
+
+
+
+G_MODULE_EXPORT void
+thunar_extension_shutdown (void)
+{
+#ifndef G_DISABLE_CHECKS
+ g_message ("Shutting down ThunarUca extension");
+#endif
+}
+
+
+
+G_MODULE_EXPORT void
+thunar_extension_list_types (const GType **types,
+ gint *n_types)
+{
+ *types = type_list;
+ *n_types = G_N_ELEMENTS (type_list);
+}
+
+
+
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+
+#include <thunar-uca/thunar-uca-chooser.h>
+#include <thunar-uca/thunar-uca-context.h>
+#include <thunar-uca/thunar-uca-model.h>
+#include <thunar-uca/thunar-uca-provider.h>
+
+
+
+static void thunar_uca_provider_class_init (ThunarUcaProviderClass *klass);
+static void thunar_uca_provider_menu_provider_init (ThunarxMenuProviderIface *iface);
+static void thunar_uca_provider_preferences_provider_init (ThunarxPreferencesProviderIface *iface);
+static void thunar_uca_provider_init (ThunarUcaProvider *uca_provider);
+static void thunar_uca_provider_finalize (GObject *object);
+static GList *thunar_uca_provider_get_actions (ThunarxPreferencesProvider *preferences_provider,
+ GtkWidget *window);
+static GList *thunar_uca_provider_get_file_actions (ThunarxMenuProvider *menu_provider,
+ GtkWidget *window,
+ GList *files);
+static GList *thunar_uca_provider_get_folder_actions (ThunarxMenuProvider *menu_provider,
+ GtkWidget *window,
+ ThunarxFileInfo *folder);
+static void thunar_uca_provider_activated (ThunarUcaProvider *uca_provider,
+ GtkAction *action);
+
+
+
+struct _ThunarUcaProviderClass
+{
+ GObjectClass __parent__;
+};
+
+struct _ThunarUcaProvider
+{
+ GObject __parent__;
+
+ ThunarUcaModel *model;
+ gint last_action_id; /* used to generate unique action names */
+};
+
+
+
+static GQuark thunar_uca_context_quark;
+static GQuark thunar_uca_row_quark;
+
+
+
+THUNARX_DEFINE_TYPE_WITH_CODE (ThunarUcaProvider,
+ thunar_uca_provider,
+ G_TYPE_OBJECT,
+ THUNARX_IMPLEMENT_INTERFACE (THUNARX_TYPE_MENU_PROVIDER,
+ thunar_uca_provider_menu_provider_init)
+ THUNARX_IMPLEMENT_INTERFACE (THUNARX_TYPE_PREFERENCES_PROVIDER,
+ thunar_uca_provider_preferences_provider_init));
+
+
+
+static void
+thunar_uca_provider_class_init (ThunarUcaProviderClass *klass)
+{
+ GObjectClass *gobject_class;
+
+ /* setup the "thunar-uca-context" and "thunar-uca-row" quarks */
+ thunar_uca_context_quark = g_quark_from_string ("thunar-uca-context");
+ thunar_uca_row_quark = g_quark_from_string ("thunar-uca-row");
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = thunar_uca_provider_finalize;
+}
+
+
+
+static void
+thunar_uca_provider_menu_provider_init (ThunarxMenuProviderIface *iface)
+{
+ iface->get_file_actions = thunar_uca_provider_get_file_actions;
+ iface->get_folder_actions = thunar_uca_provider_get_folder_actions;
+}
+
+
+
+static void
+thunar_uca_provider_preferences_provider_init (ThunarxPreferencesProviderIface *iface)
+{
+ iface->get_actions = thunar_uca_provider_get_actions;
+}
+
+
+
+static void
+thunar_uca_provider_init (ThunarUcaProvider *uca_provider)
+{
+ /* grab a reference on the default model */
+ uca_provider->model = thunar_uca_model_get_default ();
+}
+
+
+
+static void
+thunar_uca_provider_finalize (GObject *object)
+{
+ ThunarUcaProvider *uca_provider = THUNAR_UCA_PROVIDER (object);
+
+ /* drop our reference on the model */
+ g_object_unref (G_OBJECT (uca_provider->model));
+
+ (*G_OBJECT_CLASS (thunar_uca_provider_parent_class)->finalize) (object);
+}
+
+
+
+static void
+manage_actions (GtkWindow *window)
+{
+ GtkWidget *dialog;
+
+ dialog = g_object_new (THUNAR_UCA_TYPE_CHOOSER, NULL);
+ gtk_window_set_transient_for (GTK_WINDOW (dialog), window);
+ gtk_widget_show (dialog);
+}
+
+
+
+static GList*
+thunar_uca_provider_get_actions (ThunarxPreferencesProvider *preferences_provider,
+ GtkWidget *window)
+{
+ GtkAction *action;
+ GClosure *closure;
+
+ action = gtk_action_new ("ThunarUca::manage-actions", _("Configure c_ustom actions..."),
+ _("Setup custom actions that will appear in the file managers context menus"), NULL);
+ closure = g_cclosure_new_object_swap (G_CALLBACK (manage_actions), G_OBJECT (window));
+ g_signal_connect_closure (G_OBJECT (action), "activate", closure, TRUE);
+
+ return g_list_prepend (NULL, action);
+}
+
+
+
+static GList*
+thunar_uca_provider_get_file_actions (ThunarxMenuProvider *menu_provider,
+ GtkWidget *window,
+ GList *files)
+{
+ GtkTreeRowReference *row;
+ ThunarUcaProvider *uca_provider = THUNAR_UCA_PROVIDER (menu_provider);
+ ThunarUcaContext *uca_context = NULL;
+ GtkTreeIter iter;
+ GtkAction *action;
+ GList *actions = NULL;
+ GList *paths;
+ GList *lp;
+ gchar *stock_id;
+ gchar *tooltip;
+ gchar *label;
+ gchar *name;
+
+ paths = thunar_uca_model_match (uca_provider->model, files);
+ for (lp = g_list_last (paths); lp != NULL; lp = lp->prev)
+ {
+ /* try to lookup the tree iter for the specified tree path */
+ if (gtk_tree_model_get_iter (GTK_TREE_MODEL (uca_provider->model), &iter, lp->data))
+ {
+ /* determine the label, tooltip and stock-id for the item */
+ gtk_tree_model_get (GTK_TREE_MODEL (uca_provider->model), &iter,
+ THUNAR_UCA_MODEL_COLUMN_NAME, &label,
+ THUNAR_UCA_MODEL_COLUMN_STOCK_ID, &stock_id,
+ THUNAR_UCA_MODEL_COLUMN_DESCRIPTION, &tooltip,
+ -1);
+
+ /* generate a unique action name */
+ name = g_strdup_printf ("ThunarUca::action-%d", ++uca_provider->last_action_id);
+
+ /* create the new action with the given parameters */
+ action = gtk_action_new (name, label, tooltip, stock_id);
+
+ /* grab a tree row reference on the given path */
+ row = gtk_tree_row_reference_new (GTK_TREE_MODEL (uca_provider->model), lp->data);
+ g_object_set_qdata_full (G_OBJECT (action), thunar_uca_row_quark, row,
+ (GDestroyNotify) gtk_tree_row_reference_free);
+
+ /* allocate a new context on-demand */
+ if (G_LIKELY (uca_context == NULL))
+ uca_context = thunar_uca_context_new (window, files);
+ else
+ uca_context = thunar_uca_context_ref (uca_context);
+ g_object_set_qdata_full (G_OBJECT (action), thunar_uca_context_quark, uca_context, (GDestroyNotify) thunar_uca_context_unref);
+
+ /* connect the "activate" signal */
+ g_signal_connect_data (G_OBJECT (action), "activate", G_CALLBACK (thunar_uca_provider_activated),
+ g_object_ref (G_OBJECT (uca_provider)), (GClosureNotify) g_object_unref,
+ G_CONNECT_SWAPPED);
+
+ /* add the action to the return list */
+ actions = g_list_prepend (actions, action);
+
+ /* cleanup */
+ g_free (stock_id);
+ g_free (tooltip);
+ g_free (label);
+ g_free (name);
+ }
+
+ /* release the tree path */
+ gtk_tree_path_free (lp->data);
+ }
+ g_list_free (paths);
+
+ return actions;
+}
+
+
+
+static GList*
+thunar_uca_provider_get_folder_actions (ThunarxMenuProvider *menu_provider,
+ GtkWidget *window,
+ ThunarxFileInfo *folder)
+{
+ GList files;
+
+ /* fake a file list... */
+ files.data = folder;
+ files.next = NULL;
+ files.prev = NULL;
+
+ /* ...and use the get_file_actions() method */
+ return thunarx_menu_provider_get_file_actions (menu_provider, window, &files);
+}
+
+
+
+static void
+thunar_uca_provider_activated (ThunarUcaProvider *uca_provider,
+ GtkAction *action)
+{
+ GtkTreeRowReference *row;
+ ThunarUcaContext *uca_context;
+ GtkTreePath *path;
+ GtkTreeIter iter;
+ GtkWidget *dialog;
+ GtkWidget *window;
+ gboolean succeed;
+ GError *error = NULL;
+ GList *files;
+ gchar **argv;
+ gchar *working_directory = NULL;
+ gchar *filename;
+ gchar *label;
+ gchar *uri;
+ gint argc;
+
+ g_return_if_fail (THUNAR_UCA_IS_PROVIDER (uca_provider));
+ g_return_if_fail (GTK_IS_ACTION (action));
+
+ /* check if the row reference is still valid */
+ row = g_object_get_qdata (G_OBJECT (action), thunar_uca_row_quark);
+ if (G_UNLIKELY (!gtk_tree_row_reference_valid (row)))
+ return;
+
+ /* determine the iterator for the item */
+ path = gtk_tree_row_reference_get_path (row);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (uca_provider->model), &iter, path);
+ gtk_tree_path_free (path);
+
+ /* determine the files and the window for the action */
+ uca_context = g_object_get_qdata (G_OBJECT (action), thunar_uca_context_quark);
+ window = thunar_uca_context_get_window (uca_context);
+ files = thunar_uca_context_get_files (uca_context);
+
+ /* determine the argc/argv for the item */
+ succeed = thunar_uca_model_parse_argv (uca_provider->model, &iter, files, &argc, &argv, &error);
+ if (G_LIKELY (succeed))
+ {
+ /* determine the working from the first file */
+ if (G_LIKELY (files != NULL))
+ {
+ uri = thunarx_file_info_get_uri (files->data);
+ filename = g_filename_from_uri (uri, NULL, NULL);
+ if (G_LIKELY (filename != NULL))
+ working_directory = g_path_get_dirname (filename);
+ g_free (filename);
+ g_free (uri);
+ }
+
+ /* spawn the command on the window's screen */
+ succeed = gdk_spawn_on_screen (gtk_widget_get_screen (GTK_WIDGET (window)), working_directory,
+ argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &error);
+
+ /* cleanup */
+ g_free (working_directory);
+ g_strfreev (argv);
+ }
+
+ /* present error message to the user */
+ if (G_UNLIKELY (!succeed))
+ {
+ g_object_get (G_OBJECT (action), "label", &label, NULL);
+ dialog = gtk_message_dialog_new ((GtkWindow *) window,
+ GTK_DIALOG_DESTROY_WITH_PARENT
+ | GTK_DIALOG_MODAL,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE,
+ _("Failed to launch action `%s'."), label);
+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("%s."), error->message);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
+ g_error_free (error);
+ g_free (label);
+ }
+}
+
+
+
+
--- /dev/null
+/* $Id$ */
+/*-
+ * Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __THUNAR_UCA_PROVIDER_H__
+#define __THUNAR_UCA_PROVIDER_H__
+
+#include <thunarx/thunarx.h>
+
+G_BEGIN_DECLS;
+
+typedef struct _ThunarUcaProviderClass ThunarUcaProviderClass;
+typedef struct _ThunarUcaProvider ThunarUcaProvider;
+
+#define THUNAR_UCA_TYPE_PROVIDER (thunar_uca_provider_get_type ())
+#define THUNAR_UCA_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_UCA_TYPE_PROVIDER, ThunarUcaProvider))
+#define THUNAR_UCA_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_UCA_TYPE_PROVIDER, ThunarUcaProviderClass))
+#define THUNAR_UCA_IS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_UCA_TYPE_PROVIDER))
+#define THUNAR_UCA_IS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_UCA_TYPE_PROVIDER))
+#define THUNAR_UCA_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_UCA_TYPE_PROVIDER, ThunarUcaProviderClass))
+
+GType thunar_uca_provider_get_type (void) G_GNUC_CONST G_GNUC_INTERNAL;
+void thunar_uca_provider_register_type (ThunarxProviderPlugin *plugin) G_GNUC_INTERNAL;
+
+G_END_DECLS;
+
+#endif /* !__THUNAR_UCA_PROVIDER_H__ */
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE actions [
+ <!ELEMENT actions (action)+>
+
+ <!ELEMENT action (icon|patterns|name|command|description|directories|audio-files|image-files|other-files|text-files|video-files)*>
+
+ <!ELEMENT icon (#PCDATA)>
+ <!ELEMENT command (#PCDATA)>
+ <!ELEMENT patterns (#PCDATA)>
+
+ <!ELEMENT name (#PCDATA)>
+ <!ATTLIST name xml:lang CDATA #IMPLIED>
+
+ <!ELEMENT description (#PCDATA)>
+ <!ATTLIST description xml:lang CDATA #IMPLIED>
+
+ <!ELEMENT directories EMPTY>
+ <!ELEMENT audio-files EMPTY>
+ <!ELEMENT image-files EMPTY>
+ <!ELEMENT other-files EMPTY>
+ <!ELEMENT text-files EMPTY>
+ <!ELEMENT video-files EMPTY>
+]>
+
+<!--
+ $Id$
+
+ Copyright (c) 2005 Benedikt Meurer <benny@xfce.org>
+
+ Default thunar-uca configuration file, which gets installed system-wide.
+ This should act more like an example, and is therefore kept simple.
+-->
+
+<actions>
+
+ <action>
+ <icon>Terminal</icon>
+ <patterns>*</patterns>
+ <_name>Open Terminal Here</_name>
+ <command>Terminal --working-directory %f</command>
+ <_description>Example for a custom action</_description>
+
+ <directories/>
+ </action>
+
+</actions>
#include <config.h>
#endif
+#include <gdk/gdkkeysyms.h>
+
#include <exo/exo.h>
#include <thunar/thunar-details-view.h>
-static void thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass);
-static void thunar_preferences_dialog_init (ThunarPreferencesDialog *dialog);
-static void thunar_preferences_dialog_finalize (GObject *object);
-static void thunar_preferences_dialog_response (GtkDialog *dialog,
- gint response);
+static void thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass);
+static void thunar_preferences_dialog_init (ThunarPreferencesDialog *dialog);
+static void thunar_preferences_dialog_finalize (GObject *object);
+static gboolean thunar_preferences_dialog_key_press_event (GtkWidget *widget,
+ GdkEventKey *event);
+static void thunar_preferences_dialog_response (GtkDialog *dialog,
+ gint response);
thunar_preferences_dialog_class_init (ThunarPreferencesDialogClass *klass)
{
GtkDialogClass *gtkdialog_class;
+ GtkWidgetClass *gtkwidget_class;
GObjectClass *gobject_class;
/* determine the parent type class */
gobject_class = G_OBJECT_CLASS (klass);
gobject_class->finalize = thunar_preferences_dialog_finalize;
+ gtkwidget_class = GTK_WIDGET_CLASS (klass);
+ gtkwidget_class->key_press_event = thunar_preferences_dialog_key_press_event;
+
gtkdialog_class = GTK_DIALOG_CLASS (klass);
gtkdialog_class->response = thunar_preferences_dialog_response;
}
+static gboolean
+thunar_preferences_dialog_key_press_event (GtkWidget *widget,
+ GdkEventKey *event)
+{
+ /* close the dialog on Esc */
+ if (G_UNLIKELY (event->keyval == GDK_Escape))
+ {
+ gtk_dialog_response (GTK_DIALOG (widget), GTK_RESPONSE_CLOSE);
+ return TRUE;
+ }
+
+ return (*GTK_WIDGET_CLASS (thunar_preferences_dialog_parent_class)->key_press_event) (widget, event);
+}
+
+
+
static void
thunar_preferences_dialog_response (GtkDialog *dialog,
gint response)
{ "delete", GTK_STOCK_DELETE, N_ ("_Delete Files"), NULL, N_ ("Delete the selected files"), G_CALLBACK (thunar_standard_view_action_delete), },
{ "paste-into-folder", GTK_STOCK_PASTE, N_ ("Paste Files into Folder"), NULL, N_ ("Paste files into the selected folder"), G_CALLBACK (thunar_standard_view_action_paste_into_folder), },
{ "select-all-files", NULL, N_ ("Select _all Files"), "<control>A", N_ ("Select all files in this window"), G_CALLBACK (thunar_standard_view_action_select_all_files), },
- { "select-by-pattern", NULL, N_ ("Select _by Pattern"), "<control>S", N_ ("Select all files that match a certain pattern"), G_CALLBACK (thunar_standard_view_action_select_by_pattern), },
+ { "select-by-pattern", NULL, N_ ("Select _by Pattern..."), "<control>S", N_ ("Select all files that match a certain pattern"), G_CALLBACK (thunar_standard_view_action_select_by_pattern), },
{ "duplicate", NULL, N_ ("Du_plicate File"), NULL, N_ ("Duplicate each selected file"), G_CALLBACK (thunar_standard_view_action_duplicate), },
{ "make-link", NULL, N_ ("Ma_ke Link"), NULL, N_ ("Create a symbolic link for each selected file"), G_CALLBACK (thunar_standard_view_action_make_link), },
{ "rename", NULL, N_ ("_Rename"), "F2", N_ ("Rename the selected file"), G_CALLBACK (thunar_standard_view_action_rename), },
}
/* remove the previously determined menu actions from the UI manager */
- if (G_LIKELY (standard_view->priv->custom_actions != 0))
+ if (G_LIKELY (standard_view->priv->custom_merge_id != 0))
{
gtk_ui_manager_remove_ui (standard_view->ui_manager, standard_view->priv->custom_merge_id);
gtk_ui_manager_ensure_update (standard_view->ui_manager);
<separator />
<placeholder name="placeholder-edit-alter-actions" />
<separator />
+ <placeholder name="placeholder-custom-preferences" />
<menuitem action="preferences" name="preferences" />
</menu>
GParamSpec *pspec);
static void thunar_window_realize (GtkWidget *widget);
static void thunar_window_unrealize (GtkWidget *widget);
+static void thunar_window_merge_custom_preferences (ThunarWindow *window);
static void thunar_window_action_open_new_window (GtkAction *action,
ThunarWindow *window);
static void thunar_window_action_close_all_windows (GtkAction *action,
static void thunar_window_notify_loading (ThunarView *view,
GParamSpec *pspec,
ThunarWindow *window);
+static gboolean thunar_window_merge_idle (gpointer user_data);
+static void thunar_window_merge_idle_destroy (gpointer user_data);
{
GtkWindow __parent__;
+ /* support for custom preferences actions */
+ ThunarxProviderFactory *provider_factory;
+ gint custom_preferences_merge_id;
+
ThunarClipboardManager *clipboard;
ThunarPreferences *preferences;
ThunarHistory *history;
ThunarFile *current_directory;
+
+ /* menu merge idle source */
+ gint merge_idle_id;
};
{ "close-all-windows", NULL, N_ ("Close _All Windows"), "<control><shift>W", N_ ("Close all Thunar windows"), G_CALLBACK (thunar_window_action_close_all_windows), },
{ "close", GTK_STOCK_CLOSE, N_ ("_Close&quo