diff options
author | Antenore Gatta <antenore@simbiosi.org> | 2015-04-14 23:40:24 +0300 |
---|---|---|
committer | Antenore Gatta <antenore@simbiosi.org> | 2015-04-14 23:40:24 +0300 |
commit | 0b190a0a62127bf381f809c535fd378e681c8555 (patch) | |
tree | d3f69d887f24e58fbadf29d4f61c5422f82e66f2 | |
parent | e9e5ae3f4e1a455e7c73044c5f3572e0bdb2ba78 (diff) | |
parent | e6071864c9690b2b27ed1c31084bed259a08ee02 (diff) |
Merge pull request #552 from FreeRDP/commandsv1.2.0-rcgit.3
Added an option to execute commands just before to connect to a remote server closes #520
-rw-r--r-- | remmina-plugins/rdp/rdp_file.c | 1 | ||||
-rw-r--r-- | remmina.doap | 29 | ||||
-rw-r--r-- | remmina/desktop/remmina.appdata.xml | 22 | ||||
-rw-r--r-- | remmina/src/remmina_connection_window.c | 13 | ||||
-rw-r--r-- | remmina/src/remmina_file_editor.c | 20 | ||||
-rw-r--r-- | remmina/ui/remmina_about.glade | 2 |
6 files changed, 85 insertions, 2 deletions
diff --git a/remmina-plugins/rdp/rdp_file.c b/remmina-plugins/rdp/rdp_file.c index 3d327d7bd..a9aae2895 100644 --- a/remmina-plugins/rdp/rdp_file.c +++ b/remmina-plugins/rdp/rdp_file.c @@ -314,6 +314,7 @@ gboolean remmina_rdp_file_export_channel(RemminaFile* remminafile, FILE* fp) fprintf(fp, "gatewayusagemethod:i:4\r\n"); fprintf(fp, "gatewaycredentialssource:i:4\r\n"); fprintf(fp, "gatewayprofileusagemethod:i:0\r\n"); + fprintf(fp, "precommand:s:\r\n"); fprintf(fp, "promptcredentialonce:i:1\r\n"); fprintf(fp, "drivestoredirect:s:\r\n"); diff --git a/remmina.doap b/remmina.doap new file mode 100644 index 000000000..cfd792260 --- /dev/null +++ b/remmina.doap @@ -0,0 +1,29 @@ +<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" + xmlns:foaf="http://xmlns.com/foaf/0.1/" + xmlns:gnome="http://api.gnome.org/doap-extensions#" + xmlns="http://usefulinc.com/ns/doap#"> + + <name xml:lang="en">Remmina</name> + <shortdesc xml:lang="en">Remote Desktop Client</shortdesc> + <shortdesc xml:lang="it">Client di connessione a desktop remoti</shortdesc> + <shortdesc xml:lang="fr">Client de contrôle de bureau à distance</shortdesc> + <homepage rdf:resource="https://github.com/FreeRDP/Remmina/wiki" /> + <mailing-list rdf:resource="https://lists.sourceforge.net/mailman/listinfo/remmina-common" /> + <download-page rdf:resource="https://github.com/FreeRDP/Remmina" /> + <bug-database rdf:resource="https://bugzilla.gnome.org/browse.cgi?product=gnome-terminal" /> + <category rdf:resource="http://api.gnome.org/doap-extensions#core" /> + <programming-language>C</programming-language> + + <maintainer> + <foaf:Person> + <foaf:name>Antenore Gatta</foaf:name> + <foaf:mbox rdf:resource="mailto:antenore@simbiosi.org" /> + </foaf:Person> + </maintainer> + <maintainer> + <foaf:Person> + <foaf:name>Giovanni Panozzo</foaf:name> + </foaf:Person> + </maintainer> +</Project> diff --git a/remmina/desktop/remmina.appdata.xml b/remmina/desktop/remmina.appdata.xml index 628cbf3b6..11f2fe1b7 100644 --- a/remmina/desktop/remmina.appdata.xml +++ b/remmina/desktop/remmina.appdata.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2014 Fabio Castelli (Muflone) <muflone@vbsimple.net> --> +<!-- + Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli (Muflone), Giovanni Panozzo. + Copyright (C) 2009-2014 Vic Lee +--> <component type="desktop"> <id>remmina.desktop</id> <metadata_license>CC0-1.0</metadata_license> @@ -7,6 +10,7 @@ <name>Remmina</name> <summary>Remote Desktop Client</summary> <summary xml:lang="it">Client di connessione a desktop remoti</summary> + <summary xml:lang="fr">Client de contrôle de bureau à distance</summary> <description> <p> Remmina is a remote desktop client written in GTK+, aiming to be useful @@ -19,6 +23,13 @@ numerosi computer remoti davanti a grandi monitor oppure a minuscoli netbook. </p> + <p xml:lang="fr"> + Remmina est un client graphique de connexion et de prise de contrôle de + bureau multi-protocoles pour les systèmes d'exploitation basés sur le + noyau Linux. Il s'appuie sur la bibliothèque GTK+ pour l'affichage et + permet de se connecter à distance sur les bureaux de nombreux systèmes + d'exploitation : GNU/Linux, Unix, Windows, Mac OS, Android, etc. + </p> <p> Remmina supports multiple network protocols in an integrated and @@ -34,6 +45,12 @@ NX (NoMachine NX / FreeNX), XDMCP (X Display Manager Control Protocol) e SSH (Secure Shell / Open SSH). </p> + <p xml:lang="fr"> + Dans sa dernière version, Remmina prend en charge les technologies NX, + RDP, SFTP, SSH, VNC et XDMCP. Les connexions peuvent se faire en clair + (pas sécurisé du tout) ou à travers un tunnel SSH chiffré (recommandé) + par mot de passe ou par échange de clés. + </p> <p> External plugins are also supported to add new protocols and features. @@ -42,6 +59,9 @@ Sono anche supportati plugin esterni per aggiungere nuovi protocolli e funzionalità. </p> + <p xml:lang="fr"> + Ajout possible de greffons pour la gestion de nouveaux protocoles + </p> </description> <screenshots> <screenshot type="default">https://freerdp.github.io/Remmina/images/appdata/main-en.png</screenshot> diff --git a/remmina/src/remmina_connection_window.c b/remmina/src/remmina_connection_window.c index 0d42a2043..92995b002 100644 --- a/remmina/src/remmina_connection_window.c +++ b/remmina/src/remmina_connection_window.c @@ -2154,6 +2154,7 @@ static void remmina_connection_window_initialize_notebook(GtkNotebook* to, GtkNo GtkWidget* widget; RemminaConnectionObject* tc; + /* Init connection */ if (cnnobj) { /* Initial connection for a newly created window */ @@ -3035,11 +3036,23 @@ remmina_connection_window_open_from_file_full(RemminaFile* remminafile, GCallbac TRACE_CALL("remmina_connection_window_open_from_file_full"); RemminaConnectionObject* cnnobj; + GAppInfo *appinfo = NULL; + gboolean ret = FALSE; + char const *cmd = NULL; + remmina_file_update_screen_resolution(remminafile); cnnobj = g_new0(RemminaConnectionObject, 1); cnnobj->remmina_file = remminafile; + /* Exec precommand before everything else */ + cmd = remmina_file_get_string(cnnobj->remmina_file, "precommand"); + if (cmd) + { + appinfo = g_app_info_create_from_commandline(cmd, NULL, G_APP_INFO_CREATE_NEEDS_TERMINAL, NULL); + ret = g_app_info_launch(appinfo, NULL, NULL, NULL); + /* TODO error handling */ + } /* Create the RemminaProtocolWidget */ cnnobj->proto = remmina_protocol_widget_new(); diff --git a/remmina/src/remmina_file_editor.c b/remmina/src/remmina_file_editor.c index f5184bd0e..40d49fca7 100644 --- a/remmina/src/remmina_file_editor.c +++ b/remmina/src/remmina_file_editor.c @@ -96,6 +96,7 @@ struct _RemminaFileEditorPriv GtkWidget* name_entry; GtkWidget* group_combo; GtkWidget* protocol_combo; + GtkWidget* precommand_entry; GtkWidget* save_button; GtkWidget* config_box; @@ -1100,6 +1101,8 @@ static void remmina_file_editor_update(RemminaFileEditor* gfe) remmina_file_set_string_ref(priv->remmina_file, "protocol", remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->protocol_combo))); + remmina_file_set_string(priv->remmina_file, "precommand", gtk_entry_get_text(GTK_ENTRY(priv->precommand_entry))); + remmina_file_set_string_ref(priv->remmina_file, "server", (priv->server_combo ? remmina_public_combo_get_active_text(GTK_COMBO_BOX(priv->server_combo)) : NULL)); @@ -1143,6 +1146,7 @@ static void remmina_file_editor_on_default(GtkWidget* button, RemminaFileEditor* remmina_file_set_string(gf, "name", NULL); remmina_file_set_string(gf, "server", NULL); remmina_file_set_string(gf, "password", NULL); + remmina_file_set_string(gf, "precommand", NULL); remmina_file_save_all(gf); remmina_file_free(gf); @@ -1376,6 +1380,22 @@ GtkWidget* remmina_file_editor_new_from_file(RemminaFile* remminafile) remmina_plugin_manager_for_each_plugin(REMMINA_PLUGIN_TYPE_PROTOCOL, remmina_file_editor_iterate_protocol, gfe); g_signal_connect(G_OBJECT(widget), "changed", G_CALLBACK(remmina_file_editor_protocol_combo_on_changed), gfe); + /* Pre command */ + widget = gtk_label_new(_("Command")); + gtk_widget_show(widget); + gtk_widget_set_valign (widget, GTK_ALIGN_START); + gtk_widget_set_halign (widget, GTK_ALIGN_START); + gtk_grid_attach(GTK_GRID(grid), widget, 0, 12, 3, 1); + gtk_grid_set_column_spacing (GTK_GRID(grid), 10); + + widget = gtk_entry_new(); + gtk_widget_show(widget); + gtk_grid_attach(GTK_GRID(grid), widget, 1, 12, 3, 1); + gtk_entry_set_max_length(GTK_ENTRY(widget), 100); + priv->precommand_entry = widget; + cs = remmina_file_get_string(remminafile, "precommand"); + gtk_entry_set_text(GTK_ENTRY(widget), cs ? cs : ""); + /* Create the Preference frame */ widget = gtk_event_box_new(); gtk_widget_show(widget); diff --git a/remmina/ui/remmina_about.glade b/remmina/ui/remmina_about.glade index cd425270b..e440236d9 100644 --- a/remmina/ui/remmina_about.glade +++ b/remmina/ui/remmina_about.glade @@ -15,11 +15,11 @@ Copyright (C) 2009-2014 Vic Lee</property> <property name="authors">Maintainers: Vic Lee <llyzs@163.com> Antenore Gatta <antenore@simbiosi.org> -Fabio Castelli (Muflone) <muflone@vbsimple.net> Giovanni Panozzo <giovanni@panozzo.it> Contributors: Alex Chateau <ash@zednet.lv> Alexander Logvinov <avl@logvinov.com> +Fabio Castelli (Muflone) <muflone@vbsimple.net> Harun Trefry <aihtdikh@gmail.com> Nikolay Botev <bono8106@gmail.com></property> <property name="documenters">Dario Cavedon <dcavedon@gmail.com></property> |