Commit 8fbe4d19 authored by Eugen Dedu's avatar Eugen Dedu

Add tooltip parameter to forms and add tooltips to various fields in the GUI

Tooltips are added only to text and private_text in forms.
parent 9f5039ef
......@@ -232,7 +232,7 @@ Local::Heap::new_presentity (const std::string name,
request->title (_("Add to local roster"));
request->instructions (_("Please fill in this form to add a new contact "
"to ekiga's internal roster"));
request->text ("name", _("Name:"), name);
request->text ("name", _("Name:"), name, _("Name of the contact, as shown in your roster"));
if (presence_core->is_supported_uri (uri)) {
request->hidden ("good-uri", "yes");
......@@ -241,9 +241,9 @@ Local::Heap::new_presentity (const std::string name,
request->hidden ("good-uri", "no");
if ( !uri.empty ())
request->text ("uri", _("Address:"), uri);
request->text ("uri", _("Address:"), uri, _("Address, e.g. sip:xyz@ekiga.net"));
else
request->text ("uri", _("Address:"), "sip:"); // let's put a default
request->text ("uri", _("Address:"), "sip:", _("Address, e.g. sip:xyz@ekiga.net")); // let's put a default
}
request->editable_set ("groups",
......@@ -424,7 +424,7 @@ Local::Heap::on_rename_group (std::string name)
request->title (_("Rename group"));
request->instructions (_("Please edit this group name"));
request->text ("name", _("Name:"), name);
request->text ("name", _("Name:"), name, std::string ());
questions (request);
}
......
......@@ -247,8 +247,8 @@ Local::Presentity::edit_presentity ()
request->title (_("Edit roster element"));
request->instructions (_("Please fill in this form to change an existing "
"element of ekiga's internal roster"));
request->text ("name", _("Name:"), name);
request->text ("uri", _("Address:"), uri);
request->text ("name", _("Name:"), name, std::string ());
request->text ("uri", _("Address:"), uri, std::string ());
request->boolean ("preferred", _("Is a preferred contact"), is_preferred ());
request->editable_set ("groups", _("Choose groups:"),
......
......@@ -392,19 +392,19 @@ void Opal::Account::edit ()
request->instructions (_("Please update the following fields:"));
request->text ("name", _("Name:"), get_name ());
request->text ("name", _("Name:"), get_name (), _("Account name, e.g. MyAccount"));
if (get_protocol_name () == "SIP")
request->text ("host", _("Registrar:"), get_host ());
request->text ("host", _("Registrar:"), get_host (), _("The registrar, e.g. ekiga.net"));
else
request->text ("host", _("Gatekeeper:"), get_host ());
request->text ("user", _("User:"), get_username ());
request->text ("host", _("Gatekeeper:"), get_host (), _("The gatekeeper, e.g. ekiga.net"));
request->text ("user", _("User:"), get_username (), _("The user name, e.g. jim"));
if (get_protocol_name () == "SIP")
/* Translators:
* SIP knows two usernames: The name for the client ("User") and the name
* for the authentication procedure ("Authentication User") */
request->text ("authentication_user", _("Authentication User:"), get_authentication_username ());
request->private_text ("password", _("Password:"), get_password ());
request->text ("timeout", _("Timeout:"), str.str ());
request->text ("authentication_user", _("Authentication User:"), get_authentication_username (), _("The user name used during authentication, if different than the user name; leave empty if you do not have one"));
request->private_text ("password", _("Password:"), get_password (), _("Password associated to the user"));
request->text ("timeout", _("Timeout:"), str.str (), _("Time in seconds after which the account registration is automatically retried"));
request->boolean ("enabled", _("Enable Account"), enabled);
questions (request);
......@@ -437,7 +437,7 @@ void Opal::Account::on_edit_form_submitted (bool submitted,
else if (new_user.empty ())
error = _("You did not supply a user name for that account.");
else if (new_timeout < 10)
error = _("The timeout should have a bigger value.");
error = _("The timeout should be at least 10 seconds.");
if (!error.empty ()) {
......
......@@ -100,9 +100,9 @@ Opal::Bank::new_account (Account::Type acc_type,
request->link (_("Get an Ekiga.net SIP account"), "http://www.ekiga.net");
request->hidden ("name", "Ekiga.net");
request->hidden ("host", "ekiga.net");
request->text ("user", _("_User:"), username);
request->text ("user", _("_User:"), username, _("The user name, e.g. jim"));
request->hidden ("authentication_user", username);
request->private_text ("password", _("_Password:"), password);
request->private_text ("password", _("_Password:"), password, _("Password associated to the user"));
request->hidden ("timeout", "3600");
break;
......@@ -111,29 +111,29 @@ Opal::Bank::new_account (Account::Type acc_type,
"https://www.diamondcard.us/exec/voip-login?act=sgn&spo=ekiga");
request->hidden ("name", "Ekiga Call Out");
request->hidden ("host", "sip.diamondcard.us");
request->text ("user", _("_Account ID:"), username);
request->text ("user", _("_Account ID:"), username, _("The user name, e.g. jim"));
request->hidden ("authentication_user", username);
request->private_text ("password", _("_PIN Code:"), password);
request->private_text ("password", _("_PIN Code:"), password, _("Password associated to the user"));
request->hidden ("timeout", "3600");
break;
case Opal::Account::H323:
request->text ("name", _("_Name:"), std::string ());
request->text ("host", _("_Gatekeeper:"), std::string ());
request->text ("user", _("_User:"), username);
request->text ("name", _("_Name:"), std::string (), _("Account name, e.g. MyAccount"));
request->text ("host", _("_Gatekeeper:"), std::string (), _("The gatekeeper, e.g. ekiga.net"));
request->text ("user", _("_User:"), username, _("The user name, e.g. jim"));
request->hidden ("authentication_user", username);
request->private_text ("password", _("_Password:"), password);
request->text ("timeout", _("_Timeout:"), "3600");
request->private_text ("password", _("_Password:"), password, _("Password associated to the user"));
request->text ("timeout", _("_Timeout:"), "3600", _("Time in seconds after which the account registration is automatically retried"));
break;
case Opal::Account::SIP:
default:
request->text ("name", _("_Name:"), std::string ());
request->text ("host", _("_Registrar:"), std::string ());
request->text ("user", _("_User:"), username);
request->text ("authentication_user", _("_Authentication User:"), std::string ());
request->private_text ("password", _("_Password:"), password);
request->text ("timeout", _("_Timeout:"), "3600");
request->text ("name", _("_Name:"), std::string (), _("Account name, e.g. MyAccount"));
request->text ("host", _("_Registrar:"), std::string (), _("The registrar, e.g. ekiga.net"));
request->text ("user", _("_User:"), username, _("The user name, e.g. jim"));
request->text ("authentication_user", _("_Authentication User:"), std::string (), _("The user name used during authentication, if different than the user name; leave empty if you do not have one"));
request->private_text ("password", _("_Password:"), password, _("Password associated to the user"));
request->text ("timeout", _("_Timeout:"), "3600", _("Time in seconds after which the account registration is automatically retried"));
break;
}
request->boolean ("enabled", _("Enable Account"), true);
......@@ -176,7 +176,7 @@ void Opal::Bank::on_new_account_form_submitted (bool submitted,
else if (new_user.empty ())
error = _("You did not supply a user name for that account.");
else if (new_timeout < 10)
error = _("The timeout should have a bigger value.");
error = _("The timeout should be at least 10 seconds.");
if (!error.empty ()) {
request->error (error);
......
......@@ -82,7 +82,7 @@ Ekiga::FormBuilder::visit (Ekiga::FormVisitor &visitor) const
case TEXT:
visitor.text (iter_text->name, iter_text->description,
iter_text->value, iter_text->advanced);
iter_text->value, iter_text->tooltip, iter_text->advanced);
iter_text++;
break;
......@@ -91,6 +91,7 @@ Ekiga::FormBuilder::visit (Ekiga::FormVisitor &visitor) const
visitor.private_text (iter_private_text->name,
iter_private_text->description,
iter_private_text->value,
iter_private_text->tooltip,
iter_private_text->advanced);
iter_private_text++;
break;
......@@ -283,9 +284,10 @@ void
Ekiga::FormBuilder::text (const std::string name,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced)
{
texts.push_back (TextField (name, description, value, advanced));
texts.push_back (TextField (name, description, value, tooltip, advanced));
ordering.push_back (TEXT);
}
......@@ -293,9 +295,10 @@ void
Ekiga::FormBuilder::private_text (const std::string name,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced)
{
private_texts.push_back (TextField (name, description, value, advanced));
private_texts.push_back (TextField (name, description, value, tooltip, advanced));
ordering.push_back (PRIVATE_TEXT);
}
......
......@@ -96,11 +96,13 @@ namespace Ekiga
void text (const std::string text,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced = false);
void private_text (const std::string text,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced = false);
void multi_text (const std::string text,
......@@ -158,14 +160,16 @@ namespace Ekiga
TextField (const std::string _name,
const std::string _description,
const std::string _value,
const std::string _tooltip,
bool _advanced): name(_name),
description(_description),
value(_value), advanced(_advanced)
value(_value), tooltip (_tooltip), advanced(_advanced)
{}
const std::string name;
const std::string description;
const std::string value;
const std::string tooltip;
bool advanced;
};
......
......@@ -74,10 +74,12 @@ namespace Ekiga
virtual void text (const std::string name,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced) = 0;
virtual void private_text (const std::string name,
const std::string description,
const std::string tooltip,
const std::string value,
bool advanced) = 0;
......
......@@ -220,9 +220,11 @@ public:
TextSubmitter (const std::string _name,
const std::string _description,
const std::string _tooltip,
bool _advanced,
GtkWidget *_widget): name(_name),
description(_description),
tooltip(_tooltip),
advanced(_advanced),
widget(_widget)
{ }
......@@ -233,7 +235,7 @@ public:
void submit (Ekiga::FormBuilder &builder)
{
builder.text (name, description,
gtk_entry_get_text (GTK_ENTRY (widget)),
gtk_entry_get_text (GTK_ENTRY (widget)), tooltip,
advanced);
}
......@@ -241,6 +243,7 @@ private:
const std::string name;
const std::string description;
const std::string tooltip;
bool advanced;
GtkWidget *widget;
};
......@@ -264,7 +267,7 @@ public:
void submit (Ekiga::FormBuilder &builder)
{
builder.private_text (name, description,
builder.private_text (name, description, tooltip,
gtk_entry_get_text (GTK_ENTRY (widget)),
advanced);
}
......@@ -273,6 +276,7 @@ private:
const std::string name;
const std::string description;
const std::string tooltip;
bool advanced;
GtkWidget *widget;
};
......@@ -818,6 +822,7 @@ void
FormDialog::text (const std::string name,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced)
{
GtkWidget *label = NULL;
......@@ -836,6 +841,7 @@ FormDialog::text (const std::string name,
g_free (label_text);
widget = gtk_entry_new ();
gtk_widget_set_tooltip_text (widget, tooltip.c_str ());
gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
gtk_entry_set_activates_default (GTK_ENTRY (widget), true);
gtk_size_group_add_widget (options_group, widget);
......@@ -867,7 +873,7 @@ FormDialog::text (const std::string name,
0, 0);
}
submitter = new TextSubmitter (name, description, advanced, widget);
submitter = new TextSubmitter (name, description, tooltip, advanced, widget);
submitters.push_back (submitter);
}
......@@ -875,6 +881,7 @@ FormDialog::text (const std::string name,
void
FormDialog::private_text (const std::string name,
const std::string description,
const std::string tooltip,
const std::string value,
bool advanced)
{
......@@ -894,6 +901,7 @@ FormDialog::private_text (const std::string name,
g_free (label_text);
widget = gtk_entry_new ();
gtk_widget_set_tooltip_text (widget, tooltip.c_str ());
gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
gtk_entry_set_activates_default (GTK_ENTRY (widget), true);
gtk_entry_set_visibility (GTK_ENTRY (widget), FALSE);
......
......@@ -84,11 +84,13 @@ public:
void text (const std::string name,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced);
void private_text (const std::string name,
const std::string description,
const std::string value,
const std::string tooltip,
bool advanced);
void multi_text (const std::string name,
......
......@@ -340,12 +340,12 @@ Evolution::Book::new_contact_action ()
request->instructions (_("Please update the following fields:"));
request->text ("name", _("_Name:"), "");
request->text ("video", _("VoIP _URI:"), "");
request->text ("home", _("_Home phone:"), "");
request->text ("work", _("_Office phone:"), "");
request->text ("cell", _("_Cell phone:"), "");
request->text ("pager", _("_Pager:"), "");
request->text ("name", _("_Name:"), "", std::string ());
request->text ("video", _("VoIP _URI:"), "", std::string ());
request->text ("home", _("_Home phone:"), "", std::string ());
request->text ("work", _("_Office phone:"), "", std::string ());
request->text ("cell", _("_Cell phone:"), "", std::string ());
request->text ("pager", _("_Pager:"), "", std::string ());
questions (request);
}
......
......@@ -321,7 +321,7 @@ Evolution::Contact::edit_action ()
request->instructions (_("Please update the following fields:"));
request->text ("name", _("Name:"), get_name ());
request->text ("name", _("Name:"), get_name (), std::string ());
{
std::string home_uri = get_attribute_value (ATTR_HOME);
......@@ -330,11 +330,11 @@ Evolution::Contact::edit_action ()
std::string pager_uri = get_attribute_value (ATTR_PAGER);
std::string video_uri = get_attribute_value (ATTR_VIDEO);
request->text ("video", _("VoIP _URI:"), video_uri);
request->text ("home", _("_Home phone:"), home_uri);
request->text ("work", _("_Office phone:"), work_uri);
request->text ("cell", _("_Cell phone:"), cell_phone_uri);
request->text ("pager", _("_Pager:"), pager_uri);
request->text ("video", _("VoIP _URI:"), video_uri, std::string ());
request->text ("home", _("_Home phone:"), home_uri, std::string ());
request->text ("work", _("_Office phone:"), work_uri, std::string ());
request->text ("cell", _("_Cell phone:"), cell_phone_uri, std::string ());
request->text ("pager", _("_Pager:"), pager_uri, std::string ());
}
questions (request);
......
......@@ -600,14 +600,14 @@ extern "C" {
/* private text or not? */
if (noecho) {
request->private_text (std::string (resbuf), prompt, "");
request->private_text (std::string (resbuf), prompt, "", std::string ());
} else {
std::string dflt;
if (in->defresult)
dflt = std::string (in->defresult);
else
dflt = "";
request->text (std::string(resbuf), prompt, dflt);
request->text (std::string(resbuf), prompt, dflt, std::string ());
}
}
......@@ -927,9 +927,9 @@ OPENLDAP::BookForm (boost::shared_ptr<Ekiga::FormRequestSimple> request,
request->instructions (_("Please edit the following fields"));
request->text ("name", _("Book _Name"), info.name);
request->text ("uri", _("Server _URI"), info.uri_host);
request->text ("base", _("_Base DN"), info.urld->lud_dn);
request->text ("name", _("Book _Name"), info.name, _("Book name, as shown in your dialog box"));
request->text ("uri", _("Server _URI"), info.uri_host, _("Name of LDAP server, prefixed by ldap://"));
request->text ("base", _("_Base DN"), info.urld->lud_dn, std::string ());
{
std::map<std::string, std::string> choices;
......@@ -952,12 +952,12 @@ OPENLDAP::BookForm (boost::shared_ptr<Ekiga::FormRequestSimple> request,
* "DisplayName" (i.e., "the name that will be displayed") but on
* most LDAP servers it's "CommonName".
*/
request->text ("nameAttr", _("_DisplayName Attribute"), info.urld->lud_attrs[0]);
request->text ("callAttr", _("Call _Attributes"), callAttr);
request->text ("nameAttr", _("_DisplayName Attribute"), info.urld->lud_attrs[0], std::string ());
request->text ("callAttr", _("Call _Attributes"), callAttr, _("The field you are searching for"));
if (info.urld->lud_filter != NULL)
request->text ("filter", _("_Filter Template"), info.urld->lud_filter);
request->text ("filter", _("_Filter Template"), info.urld->lud_filter, _("Here, a \"$\" is replaced by the search string"));
else
request->text ("filter", _("_Filter Template"), "");
request->text ("filter", _("_Filter Template"), "", _("Here, a \"$\" is replaced by the search string"));
/* Translators: Bind ID - In LDAP, the operation that begins an LDAP
* session and authenticates the user to the directory is called a
......@@ -968,8 +968,8 @@ OPENLDAP::BookForm (boost::shared_ptr<Ekiga::FormRequestSimple> request,
* course, the Bind ID can be left blank, in which case the session
* is anonymous / unauthenticated.)
*/
request->text ("authcID", _("Bind _ID"), info.authcID);
request->private_text ("password", _("_Password"), info.password);
request->text ("authcID", _("Bind _ID"), info.authcID, _("User ID; leave blank for anonymous / nonauthenticated"));
request->private_text ("password", _("_Password"), info.password, _("The password for the user ID above, if any"));
request->boolean ("startTLS", _("Use TLS"), info.starttls);
request->boolean ("sasl", _("Use SASL"), info.sasl);
{
......
......@@ -264,23 +264,23 @@ LM::Account::edit ()
request->instructions (_("Please update the following fields:"));
xml_str = xmlGetProp (node, BAD_CAST "name");
request->text ("name", _("Name:"), (const char*)xml_str);
request->text ("name", _("Name:"), (const char*)xml_str, std::string ());
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "user");
request->text ("user", _("User:"), (const char*)xml_str);
request->text ("user", _("User:"), (const char*)xml_str, std::string ());
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "server");
request->text ("server", _("Server:"), (const char*)xml_str);
request->text ("server", _("Server:"), (const char*)xml_str, std::string ());
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "resource");
request->text ("resource", _("Resource:"), (const char*)xml_str);
request->text ("resource", _("Resource:"), (const char*)xml_str, std::string ());
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "password");
request->private_text ("password", _("Password:"), (const char*)xml_str);
request->private_text ("password", _("Password:"), (const char*)xml_str, std::string ());
xmlFree (xml_str);
xml_str = xmlGetProp (node, BAD_CAST "startup");
......
......@@ -315,7 +315,7 @@ LM::Heap::add_item ()
request->title (_("Add a roster element"));
request->instructions (_("Please fill in this form to add a new"
" element to the remote roster"));
request->text ("jid", _("Identifier:"), _("identifier@server"));
request->text ("jid", _("Identifier:"), _("identifier@server"), std::string ());
questions (request);
}
......
......@@ -275,7 +275,7 @@ LM::Presentity::edit_presentity ()
request->title (_("Edit roster element"));
request->instructions (_("Please fill in this form to change an existing "
"element of the remote roster"));
request->text ("name", _("Name:"), get_name ());
request->text ("name", _("Name:"), get_name (), std::string ());
request->editable_set ("groups", _("Choose groups:"),
get_groups (), get_groups ());
......
......@@ -166,12 +166,12 @@ RL::Cluster::new_heap (const std::string name,
request->title (_("Add new resource-list"));
request->instructions (_("Please fill in this form to add a new "
"contact list to ekiga's remote roster"));
request->text ("name", _("Name:"), name);
request->text ("uri", _("Address:"), uri);
request->text ("name", _("Name:"), name, std::string ());
request->text ("uri", _("Address:"), uri, std::string ());
request->boolean ("writable", _("Writable:"), writable);
request->text ("username", _("Username:"), username);
request->private_text ("password", _("Password:"), password);
request->text ("user", _("User:"), user);
request->text ("username", _("Username:"), username, std::string ());
request->private_text ("password", _("Password:"), password, std::string ());
request->text ("user", _("User:"), user, std::string ());
questions (request);
}
......
......@@ -464,13 +464,13 @@ RL::Heap::edit ()
request->instructions (_("Please edit the following fields (no identifier"
" means global)"));
request->text ("name", _("Contact list's name"), get_name ());
request->text ("name", _("Contact list's name"), get_name (), std::string ());
/* "Document" used as a name -- uri point to the root of a document tree */
request->text ("root", _("Document root"), root_str);
request->text ("user", _("Identifier"), user_str);
request->text ("root", _("Document root"), root_str, std::string ());
request->text ("user", _("Identifier"), user_str, std::string ());
request->boolean ("writable", _("Writable"), writable);
request->text ("username", _("Server username"), username_str);
request->private_text ("password", _("Server password"), password_str);
request->text ("username", _("Server username"), username_str, std::string ());
request->private_text ("password", _("Server password"), password_str, std::string ());
questions (request);
}
......@@ -523,8 +523,8 @@ RL::Heap::new_entry ()
all_groups.insert (groups.begin (), groups.end ());
}
request->text ("name", _("Name:"), "");
request->text ("uri", _("Address:"), "");
request->text ("name", _("Name:"), "", std::string ());
request->text ("uri", _("Address:"), "", std::string ());
request->editable_set ("groups", _("Choose groups:"),
std::set<std::string>(), all_groups);
......
......@@ -230,8 +230,8 @@ RL::Presentity::edit_presentity ()
request->title (_("Edit remote contact"));
request->instructions (_("Please fill in this form to change an existing "
"contact on a remote server"));
request->text ("name", _("Name:"), get_name ());
request->text ("uri", _("Address:"), uri);
request->text ("name", _("Name:"), get_name (), std::string ());
request->text ("uri", _("Address:"), uri, std::string ());
request->editable_set ("groups", _("Choose groups:"),
groups, all_groups);
......
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