Commit 36cb5f9d authored by pierre's avatar pierre Committed by Pierre Wieser

Implement %m and %M parameters for mimetypes

Also review the example generation to not duplicate the parsing of the parameters.
parent 287069c7
2010-08-05 Pierre Wieser <pwieser@trychlos.org>
* po/POTFILES.in: Add src/core/na-tokens.c file.
* src/core/na-tokens.c:
* src/core/na-tokens.h (na_tokens_new_for_example): New function.
* src/core/na-tokens.c (parse_singular):
Implement %m and %M parameters for mimetypes.
* src/nact/nact-icommand-tab.c (parse_parameters):
Use a fake NATokens object to print an example of the command.
* src/nact/nautilus-actions-config-tool.ui: Fix some labels.
2010-08-04 Pierre Wieser <pwieser@trychlos.org>
* src/core/na-tokens.c (is_singular_exec):
......
......@@ -13,6 +13,7 @@ src/core/na-object-item-factory.c
src/core/na-object-menu.c
src/core/na-object-profile.c
src/core/na-object-profile-factory.c
src/core/na-tokens.c
src/io-desktop/nadp-desktop-provider.c
src/io-gconf/nagp-gconf-provider.c
src/io-xml/naxml-reader.c
......
......@@ -32,6 +32,7 @@
#include <config.h>
#endif
#include <glib/gi18n.h>
#include <string.h>
#include <api/na-core-utils.h>
......@@ -66,6 +67,8 @@ struct NATokensPrivate {
gchar *basenames_woext_str;
GSList *exts;
gchar *exts_str;
GSList *mimetypes;
gchar *mimetypes_str;
gchar *hostname;
gchar *username;
......@@ -75,15 +78,16 @@ struct NATokensPrivate {
static GObjectClass *st_parent_class = NULL;
static GType register_type( void );
static void class_init( NATokensClass *klass );
static void instance_init( GTypeInstance *instance, gpointer klass );
static void instance_dispose( GObject *object );
static void instance_finalize( GObject *object );
static GType register_type( void );
static void class_init( NATokensClass *klass );
static void instance_init( GTypeInstance *instance, gpointer klass );
static void instance_dispose( GObject *object );
static void instance_finalize( GObject *object );
static void execute_action_command( const gchar *command, const NAObjectProfile *profile );
static gboolean is_singular_exec( const NATokens *tokens, const gchar *exec );
static gchar *parse_singular( const NATokens *tokens, const gchar *input, guint i, gboolean utf8 );
static NATokens *build_string_lists( NATokens *tokens );
static void execute_action_command( const gchar *command, const NAObjectProfile *profile );
static gboolean is_singular_exec( const NATokens *tokens, const gchar *exec );
static gchar *parse_singular( const NATokens *tokens, const gchar *input, guint i, gboolean utf8 );
GType
na_tokens_get_type( void )
......@@ -165,6 +169,8 @@ instance_init( GTypeInstance *instance, gpointer klass )
self->private->basenames_woext_str = NULL;
self->private->exts = NULL;
self->private->exts_str = NULL;
self->private->mimetypes = NULL;
self->private->mimetypes_str = NULL;
self->private->hostname = NULL;
self->private->username = NULL;
......@@ -210,6 +216,8 @@ instance_finalize( GObject *object )
g_free( self->private->username );
g_free( self->private->hostname );
g_free( self->private->mimetypes_str );
na_core_utils_slist_free( self->private->mimetypes );
g_free( self->private->exts_str );
na_core_utils_slist_free( self->private->exts );
g_free( self->private->basenames_woext_str );
......@@ -231,6 +239,67 @@ instance_finalize( GObject *object )
}
}
/**
* na_tokens_new_for_example:
*
* Returns: a new #NATokens object initialized with fake values for two
* regular files, in order to be used as an example of an expanded command
* line.
*/
NATokens *
na_tokens_new_for_example( void )
{
NATokens *tokens;
const gchar *ex_uri1 = _( "file:///path/to/file1.mid" );
const gchar *ex_uri2 = _( "file:///path/to/file2.jpeg" );
const gchar *ex_mimetype1 = _( "audio/x-midi" );
const gchar *ex_mimetype2 = _( "image/jpeg" );
const guint ex_port = 8080;
const gchar *ex_host = _( "test.example.net" );
const gchar *ex_user = _( "user" );
NAGnomeVFSURI *vfs;
gchar *dirname, *bname, *bname_woext, *ext;
GSList *is;
gboolean first;
tokens = g_object_new( NA_TOKENS_TYPE, NULL );
first = TRUE;
tokens->private->count = 2;
tokens->private->uris = g_slist_append( tokens->private->uris, g_strdup( ex_uri1 ));
tokens->private->uris = g_slist_append( tokens->private->uris, g_strdup( ex_uri2 ));
for( is = tokens->private->uris ; is ; is = is->next ){
vfs = g_new0( NAGnomeVFSURI, 1 );
na_gnome_vfs_uri_parse( vfs, is->data );
tokens->private->filenames = g_slist_append( tokens->private->filenames, g_strdup( vfs->path ));
dirname = g_path_get_dirname( vfs->path );
tokens->private->basedirs = g_slist_append( tokens->private->basedirs, dirname );
bname = g_path_get_basename( vfs->path );
tokens->private->basenames = g_slist_append( tokens->private->basenames, bname );
na_core_utils_dir_split_ext( bname, &bname_woext, &ext );
tokens->private->basenames_woext = g_slist_append( tokens->private->basenames_woext, bname_woext );
tokens->private->exts = g_slist_append( tokens->private->exts, ext );
if( first ){
tokens->private->scheme = g_strdup( vfs->scheme );
first = FALSE;
}
na_gnome_vfs_uri_free( vfs );
}
tokens->private->mimetypes = g_slist_append( tokens->private->mimetypes, g_strdup( ex_mimetype1 ));
tokens->private->mimetypes = g_slist_append( tokens->private->mimetypes, g_strdup( ex_mimetype2 ));
tokens->private->hostname = g_strdup( ex_host );
tokens->private->username = g_strdup( ex_user );
tokens->private->port = ex_port;
return( build_string_lists( tokens ));
}
/**
* na_tokens_new_from_selection:
* @selection: a #GList list of #NASelectedInfo objects.
......@@ -243,7 +312,7 @@ na_tokens_new_from_selection( GList *selection )
static const gchar *thisfn = "na_tokens_new_from_selection";
NATokens *tokens;
GList *it;
gchar *uri, *filename, *basedir, *basename, *bname_woext, *ext;
gchar *uri, *filename, *basedir, *basename, *bname_woext, *ext, *mimetype;
GFile *location;
gboolean first;
NAGnomeVFSURI *vfs;
......@@ -257,6 +326,7 @@ na_tokens_new_from_selection( GList *selection )
for( it = selection ; it ; it = it->next ){
location = na_selected_info_get_location( NA_SELECTED_INFO( it->data ));
mimetype = na_selected_info_get_mime_type( NA_SELECTED_INFO( it->data ));
uri = na_selected_info_get_uri( NA_SELECTED_INFO( it->data ));
filename = g_file_get_path( location );
......@@ -283,18 +353,12 @@ na_tokens_new_from_selection( GList *selection )
tokens->private->basenames = g_slist_prepend( tokens->private->basenames, basename );
tokens->private->basenames_woext = g_slist_prepend( tokens->private->basenames_woext, bname_woext );
tokens->private->exts = g_slist_prepend( tokens->private->exts, ext );
tokens->private->mimetypes = g_slist_prepend( tokens->private->mimetypes, mimetype );
g_object_unref( location );
}
tokens->private->uris_str = na_core_utils_slist_join_at_end( tokens->private->uris, " " );
tokens->private->filenames_str = na_core_utils_slist_join_at_end( tokens->private->filenames, " " );
tokens->private->basedirs_str = na_core_utils_slist_join_at_end( tokens->private->basedirs, " " );
tokens->private->basenames_str = na_core_utils_slist_join_at_end( tokens->private->basenames, " " );
tokens->private->basenames_woext_str = na_core_utils_slist_join_at_end( tokens->private->basenames_woext, " " );
tokens->private->exts_str = na_core_utils_slist_join_at_end( tokens->private->exts, " " );
return( tokens );
return( build_string_lists( tokens ));
}
/**
......@@ -305,27 +369,6 @@ na_tokens_new_from_selection( GList *selection )
*
* Expands the parameters in the given string.
*
* Valid parameters are :
*
* %b: (first) basename
* %B: space-separated list of basenames
* %c: count of selected items
* %d: (first) base directory
* %D: space-separated list of base directory of each selected items
* %f: (first) file name
* %F: space-separated list of selected file names
* %h: hostname of the (first) URI
* %n: username of the (first) URI
* %p: port number of the (first) URI
* %s: scheme of the (first) URI
* %u: (first) URI
* %U: space-separated list of selected URIs
* %w: (first) basename without the extension
* %W: space-separated list of basenames without their extension
* %x: (first) extension
* %X: space-separated list of extensions
* %%: the « % » character
*
* Returns: a copy of @input string with tokens expanded, as a newly
* allocated string which should be g_free() by the caller.
*/
......@@ -374,6 +417,20 @@ na_tokens_execute_action( const NATokens *tokens, const NAObjectProfile *profile
g_free( exec );
}
static NATokens *
build_string_lists( NATokens *tokens )
{
tokens->private->uris_str = na_core_utils_slist_join_at_end( tokens->private->uris, " " );
tokens->private->filenames_str = na_core_utils_slist_join_at_end( tokens->private->filenames, " " );
tokens->private->basedirs_str = na_core_utils_slist_join_at_end( tokens->private->basedirs, " " );
tokens->private->basenames_str = na_core_utils_slist_join_at_end( tokens->private->basenames, " " );
tokens->private->basenames_woext_str = na_core_utils_slist_join_at_end( tokens->private->basenames_woext, " " );
tokens->private->exts_str = na_core_utils_slist_join_at_end( tokens->private->exts, " " );
tokens->private->mimetypes_str = na_core_utils_slist_join_at_end( tokens->private->mimetypes, " " );
return( tokens );
}
static void
execute_action_command( const gchar *command, const NAObjectProfile *profile )
{
......@@ -543,6 +600,20 @@ parse_singular( const NATokens *tokens, const gchar *input, guint i, gboolean ut
}
break;
case 'm':
if( tokens->private->mimetypes ){
tmp = g_shell_quote( g_slist_nth_data( tokens->private->mimetypes, i ));
output = g_string_append( output, tmp );
g_free( tmp );
}
break;
case 'M':
if( tokens->private->mimetypes ){
output = g_string_append( output, tokens->private->mimetypes_str );
}
break;
case 'n':
if( tokens->private->username ){
tmp = g_shell_quote( tokens->private->username );
......
......@@ -48,10 +48,32 @@
* plugin, attaching the result to each item in the context menu.
*
* Adding a parameter requires updating of :
* - src/core/na-tokens.c::na_tokens_is_singular_exec()
* - src/core/na-tokens.c::na_tokens_parse_parameters()
* - nautilus-actions/nact/nact-icommand-tab.c:parse_parameters()
* - src/core/na-tokens.c::is_singular_exec()
* - src/core/na-tokens.c::parse_singular()
* - src/nact/nautilus-actions-config-tool.ui:LegendDialog
*
* Valid parameters are :
*
* %b: (first) basename
* %B: space-separated list of basenames
* %c: count of selected items
* %d: (first) base directory
* %D: space-separated list of base directory of each selected items
* %f: (first) file name
* %F: space-separated list of selected file names
* %h: hostname of the (first) URI
* %m: (first) mimetype
* %M: space-separated list of mimetypes
* %n: username of the (first) URI
* %p: port number of the (first) URI
* %s: scheme of the (first) URI
* %u: (first) URI
* %U: space-separated list of selected URIs
* %w: (first) basename without the extension
* %W: space-separated list of basenames without their extension
* %x: (first) extension
* %X: space-separated list of extensions
* %%: the « % » character
*/
#include <api/na-object-profile.h>
......@@ -83,6 +105,7 @@ typedef struct {
GType na_tokens_get_type( void );
NATokens *na_tokens_new_for_example ( void );
NATokens *na_tokens_new_from_selection( GList *selection );
gchar *na_tokens_parse_parameters( const NATokens *tokens, const gchar *string, gboolean utf8 );
......
......@@ -40,6 +40,7 @@
#include <core/na-iprefs.h>
#include <core/na-factory-object.h>
#include <core/na-tokens.h>
#include "base-window.h"
#include "base-iprefs.h"
......@@ -71,9 +72,10 @@ struct NactICommandTabInterfacePrivate {
#define ICOMMAND_TAB_LEGEND_VISIBLE "nact-icommand-tab-legend-dialog-visible"
#define ICOMMAND_TAB_STATUSBAR_CONTEXT "nact-icommand-tab-statusbar-context"
static gboolean st_initialized = FALSE;
static gboolean st_finalized = FALSE;
static gboolean st_on_selection_change = FALSE;
static gboolean st_initialized = FALSE;
static gboolean st_finalized = FALSE;
static gboolean st_on_selection_change = FALSE;
static NATokens *st_tokens = NULL;
static GType register_type( void );
static void interface_base_init( NactICommandTabInterface *klass );
......@@ -287,6 +289,13 @@ nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance )
G_OBJECT( instance ),
IACTIONS_LIST_SIGNAL_COLUMN_EDITED,
G_CALLBACK( on_iactions_list_column_edited ));
/* allocate a static fake NATokens object which will be user to build
* the example label - this object will be unreffed on dispose
*/
if( !st_tokens ){
st_tokens = na_tokens_new_for_example();
}
}
}
......@@ -321,6 +330,10 @@ nact_icommand_tab_dispose( NactICommandTab *instance )
g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
legend_dialog_hide( instance );
if( st_tokens ){
g_object_unref( st_tokens );
}
}
}
......@@ -657,6 +670,7 @@ on_wdir_changed( GtkEntry *entry, NactICommandTab *instance )
static gchar *
parse_parameters( NactICommandTab *instance )
{
#if 0
GString *tmp_string = g_string_new( "" );
NAObjectItem *item;
NAObjectProfile *profile;
......@@ -837,6 +851,17 @@ parse_parameters( NactICommandTab *instance )
g_free( iter );
return( g_string_free( tmp_string, FALSE ));
#endif
const gchar *command = gtk_entry_get_text( GTK_ENTRY( get_path_entry( instance )));
const gchar *param_template = gtk_entry_get_text( GTK_ENTRY( get_parameters_entry( instance )));
gchar *exec, *returned;
exec = g_strdup_printf( "%s %s", command, param_template );
returned = na_tokens_parse_parameters( st_tokens, exec, FALSE );
g_free( exec );
return( returned );
}
static void
......
......@@ -2503,7 +2503,7 @@ If the command is not found, or does not display the correct result, your item w
</child>
<child>
<object class="GtkCheckButton" id="ActionReadonlyButton">
<property name="label" translatable="yes">Read-only</property>
<property name="label" translatable="yes">Read-only item</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
......@@ -2745,6 +2745,12 @@ If the command is not found, or does not display the correct result, your item w
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
......@@ -2762,9 +2768,9 @@ If the command is not found, or does not display the correct result, your item w
<object class="GtkFileChooserWidget" id="ImportFileChooser">
<property name="visible">True</property>
<property name="select_multiple">True</property>
<property name="preview_widget_active">False</property>
<property name="local_only">False</property>
<property name="use_preview_label">False</property>
<property name="preview_widget_active">False</property>
</object>
<packing>
<property name="position">0</property>
......@@ -3110,7 +3116,7 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<child>
<object class="GtkTable" id="table5">
<property name="visible">True</property>
<property name="n_rows">18</property>
<property name="n_rows">20</property>
<property name="n_columns">2</property>
<property name="column_spacing">2</property>
<property name="row_spacing">6</property>
......@@ -3191,8 +3197,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">9</property>
<property name="bottom_attach">10</property>
<property name="top_attach">11</property>
<property name="bottom_attach">12</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
</packing>
</child>
......@@ -3205,8 +3211,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">10</property>
<property name="bottom_attach">11</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
</packing>
</child>
......@@ -3219,8 +3225,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">11</property>
<property name="bottom_attach">12</property>
<property name="top_attach">13</property>
<property name="bottom_attach">14</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
</packing>
</child>
......@@ -3233,8 +3239,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
</packing>
</child>
......@@ -3247,8 +3253,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">17</property>
<property name="bottom_attach">18</property>
<property name="top_attach">19</property>
<property name="bottom_attach">20</property>
<property name="x_options">GTK_SHRINK | GTK_FILL</property>
</packing>
</child>
......@@ -3315,7 +3321,7 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="label" translatable="yes">space-separated list of the base directory of the selected file(s)/folder(s).</property>
<property name="label" translatable="yes">space-separated list of the base directories of the selected file(s)/folder(s).</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -3335,8 +3341,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">9</property>
<property name="bottom_attach">10</property>
<property name="top_attach">11</property>
<property name="bottom_attach">12</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
......@@ -3345,13 +3351,13 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="label" translatable="yes">scheme of the (first) URI.</property>
<property name="label" translatable="yes">scheme of the (first) selected URI.</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">10</property>
<property name="bottom_attach">11</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
......@@ -3365,8 +3371,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">11</property>
<property name="bottom_attach">12</property>
<property name="top_attach">13</property>
<property name="bottom_attach">14</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
......@@ -3375,13 +3381,13 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="yalign">0</property>
<property name="label" translatable="yes">space-separated list of selected URIs.</property>
<property name="label" translatable="yes">space-separated list of the URIs of the selected file(s)/folder(s).</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">12</property>
<property name="bottom_attach">13</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
......@@ -3395,8 +3401,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">17</property>
<property name="bottom_attach">18</property>
<property name="top_attach">19</property>
<property name="bottom_attach">20</property>
<property name="x_options">GTK_FILL</property>
</packing>
</child>
......@@ -3441,7 +3447,7 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<object class="GtkLabel" id="label63">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">space-separated list of the selected filename(s).</property>
<property name="label" translatable="yes">space-separated list of the filenames of the selected file(s)/folder(s).</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -3483,8 +3489,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">8</property>
<property name="bottom_attach">9</property>
<property name="top_attach">10</property>
<property name="bottom_attach">11</property>
</packing>
</child>
<child>
......@@ -3496,8 +3502,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">8</property>
<property name="bottom_attach">9</property>
<property name="top_attach">10</property>
<property name="bottom_attach">11</property>
</packing>
</child>
<child>
......@@ -3509,8 +3515,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">13</property>
<property name="bottom_attach">14</property>
<property name="top_attach">15</property>
<property name="bottom_attach">16</property>
</packing>
</child>
<child>
......@@ -3522,8 +3528,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="top_attach">16</property>
<property name="bottom_attach">17</property>
</packing>
</child>
<child>
......@@ -3535,21 +3541,21 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">15</property>
<property name="bottom_attach">16</property>
<property name="top_attach">17</property>
<property name="bottom_attach">18</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label79">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">space-separated list of the extension of the selected file(s)/folder(s).</property>
<property name="label" translatable="yes">space-separated list of the extensions of the selected file(s)/folder(s).</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">16</property>
<property name="bottom_attach">17</property>
<property name="top_attach">18</property>
<property name="bottom_attach">19</property>
</packing>
</child>
<child>
......@@ -3560,8 +3566,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">13</property>
<property name="bottom_attach">14</property>
<property name="top_attach">15</property>
<property name="bottom_attach">16</property>
</packing>
</child>
<child>
......@@ -3572,8 +3578,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">14</property>
<property name="bottom_attach">15</property>
<property name="top_attach">16</property>
<property name="bottom_attach">17</property>
</packing>
</child>
<child>
......@@ -3584,8 +3590,8 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">15</property>
<property name="bottom_attach">16</property>
<property name="top_attach">17</property>
<property name="bottom_attach">18</property>
</packing>
</child>
<child>
......@@ -3596,8 +3602,58 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">16</property>
<property name="bottom_attach">17</property>
<property name="top_attach">18</property>
<property name="bottom_attach">19</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label83">
<property name="visible">True</property>
<property name="xalign">1</property>
<property name="label" translatable="yes">&lt;b&gt;%m&lt;/b&gt; :</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">8</property>
<property name="bottom_attach">9</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label85">
<property name="visible">True</property>
<property name="xalign">1</property>
<property name="label" translatable="yes">&lt;b&gt;%M&lt;/b&gt; :</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="top_attach">9</property>
<property name="bottom_attach">10</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label84">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">(first) mimetype.</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">8</property>
<property name="bottom_attach">9</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label86">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">space-separated list of the mimetypes of the selected file(s)/folder(s).</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">9</property>
<property name="bottom_attach">10</property>
</packing>
</child>
</object>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment