[smuxi/experiments/configurable_message_patterns: 1/7] Engine(-IRC|-XMPP), Frontend-GNOME: implemented multi identity support (closes: #428)
- From: Mirco M. M. Bauer <mmmbauer src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [smuxi/experiments/configurable_message_patterns: 1/7] Engine(-IRC|-XMPP), Frontend-GNOME: implemented multi identity support (closes: #428)
- Date: Sat, 15 Feb 2014 14:00:57 +0000 (UTC)
commit 823c66815eef41600c4683aff056cf78d0b83e34
Author: Mirco Bauer <meebey meebey net>
Date: Sun Feb 9 20:26:46 2014 +0100
Engine(-IRC|-XMPP), Frontend-GNOME: implemented multi identity support (closes: #428)
src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs | 22 ++-
.../Protocols/Xmpp/XmppProtocolManager.cs | 8 +-
src/Engine/Config/Config.cs | 28 ++-
src/Engine/Config/ServerModel.cs | 20 ++-
src/Frontend-GNOME/Views/MenuWidget.cs | 4 +-
src/Frontend-GNOME/Views/ServerWidget.cs | 73 +++++++-
.../gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs | 194 +++++++++++++-------
src/Frontend-GNOME/gtk-gui/gui.stetic | 108 ++++++++++-
8 files changed, 356 insertions(+), 101 deletions(-)
---
diff --git a/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
b/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
index e8812f9..fa27aa5 100644
--- a/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
+++ b/src/Engine-IRC/Protocols/Irc/IrcProtocolManager.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2013 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2014 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -48,6 +48,7 @@ namespace Smuxi.Engine
private int _Port;
private string _Network;
private string[] _Nicknames;
+ string _Realname;
private int _CurrentNickname;
private string _Username;
private string _Password;
@@ -396,8 +397,8 @@ namespace Smuxi.Engine
builder.AppendEventPrefix().AppendText(_("Logging in..."));
Session.AddMessageToChat(Chat, builder.ToMessage());
- string realname = (string) Session.UserConfig["Connection/Realname"];
- if (realname.Trim().Length == 0) {
+ string realname = _Realname;
+ if (realname == null || realname.Trim().Length == 0) {
realname = "unset";
}
if (!Regex.IsMatch(_Username, "^[a-z0-9]+$", RegexOptions.IgnoreCase)) {
@@ -2459,6 +2460,16 @@ namespace Smuxi.Engine
} else {
_Network = server.Network;
}
+ if (String.IsNullOrEmpty(server.Nickname)) {
+ _Nicknames = (string[]) config["Connection/Nicknames"];
+ } else {
+ _Nicknames = server.Nickname.Split(' ');
+ }
+ if (String.IsNullOrEmpty(server.Realname)) {
+ _Realname = (string) config["Connection/Realname"];
+ } else {
+ _Realname = server.Realname;
+ }
if (String.IsNullOrEmpty(server.Username)) {
_Username = (string) config["Connection/Username"];
} else {
@@ -2479,11 +2490,6 @@ namespace Smuxi.Engine
}
}
- // global fallbacks
- if (_Nicknames == null) {
- _Nicknames = (string[]) config["Connection/Nicknames"];
- }
-
// add fallbacks if only one nick was specified, else we get random
// number nicks when nick collisions happen
if (_Nicknames.Length == 1) {
diff --git a/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
b/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
index 707d360..a9084fc 100644
--- a/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
+++ b/src/Engine-XMPP/Protocols/Xmpp/XmppProtocolManager.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2013 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2014 Mirco Bauer <meebey meebey net>
* Copyright (c) 2011 Tuukka Hastrup <Tuukka Hastrup iki fi>
* Copyright (c) 2013-2014 Oliver Schneider <smuxi oli-obk de>
*
@@ -2487,7 +2487,11 @@ namespace Smuxi.Engine
[MethodImpl(MethodImplOptions.Synchronized)]
void ApplyConfig(UserConfig config, XmppServerModel server)
{
- Nicknames = (string[]) config["Connection/Nicknames"];
+ if (String.IsNullOrEmpty(server.Nickname)) {
+ Nicknames = (string[]) config["Connection/Nicknames"];
+ } else {
+ Nicknames = new string[] { server.Nickname };
+ }
if (server.Username.Contains("@")) {
var jid_user = server.Username.Split('@')[0];
diff --git a/src/Engine/Config/Config.cs b/src/Engine/Config/Config.cs
index b02f6dd..4ab2a86 100644
--- a/src/Engine/Config/Config.cs
+++ b/src/Engine/Config/Config.cs
@@ -1,13 +1,7 @@
/*
- * $Id$
- * $URL$
- * $Rev$
- * $Author$
- * $Date$
- *
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2005-2006 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2005-2014 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -325,6 +319,8 @@ namespace Smuxi.Engine
Get(prefix + "Hostname", "irc.oftc.net");
Get(prefix + "Port", 6667);
Get(prefix + "Network", "OFTC");
+ Get(prefix + "Nickname", String.Empty);
+ Get(prefix + "Realname", String.Empty);
Get(prefix + "Username", String.Empty);
Get(prefix + "Password", String.Empty);
Get(prefix + "UseEncryption", false);
@@ -340,6 +336,8 @@ namespace Smuxi.Engine
Get(prefix + "Hostname", "irc.gimp.org");
Get(prefix + "Port", 6667);
Get(prefix + "Network", "GIMPNet");
+ Get(prefix + "Nickname", String.Empty);
+ Get(prefix + "Realname", String.Empty);
Get(prefix + "Username", String.Empty);
Get(prefix + "Password", String.Empty);
Get(prefix + "UseEncryption", false);
@@ -349,6 +347,8 @@ namespace Smuxi.Engine
Get(prefix + "Hostname", "irc.geekshed.net");
Get(prefix + "Port", 6667);
Get(prefix + "Network", "GeekShed");
+ Get(prefix + "Nickname", String.Empty);
+ Get(prefix + "Realname", String.Empty);
Get(prefix + "Username", String.Empty);
Get(prefix + "Password", String.Empty);
Get(prefix + "UseEncryption", false);
@@ -358,6 +358,8 @@ namespace Smuxi.Engine
Get(prefix + "Hostname", "irc.efnet.org");
Get(prefix + "Port", 6667);
Get(prefix + "Network", "EFnet");
+ Get(prefix + "Nickname", String.Empty);
+ Get(prefix + "Realname", String.Empty);
Get(prefix + "Username", String.Empty);
Get(prefix + "Password", String.Empty);
Get(prefix + "UseEncryption", false);
@@ -367,6 +369,8 @@ namespace Smuxi.Engine
Get(prefix + "Hostname", "irc.ircnet.org");
Get(prefix + "Port", 6667);
Get(prefix + "Network", "IRCnet");
+ Get(prefix + "Nickname", String.Empty);
+ Get(prefix + "Realname", String.Empty);
Get(prefix + "Username", String.Empty);
Get(prefix + "Password", String.Empty);
Get(prefix + "UseEncryption", false);
@@ -376,6 +380,8 @@ namespace Smuxi.Engine
Get(prefix + "Hostname", "irc.freenode.net");
Get(prefix + "Port", 6667);
Get(prefix + "Network", "freenode");
+ Get(prefix + "Nickname", String.Empty);
+ Get(prefix + "Realname", String.Empty);
Get(prefix + "Username", String.Empty);
Get(prefix + "Password", String.Empty);
Get(prefix + "UseEncryption", false);
@@ -446,7 +452,7 @@ namespace Smuxi.Engine
#endif
}
if (String.IsNullOrEmpty(realname)) {
- realname = "http://www.smuxi.org/";
+ realname = "Your Name";
}
LoadUserEntry(user, "Connection/Realname", realname);
LoadUserEntry(user, "Connection/Encoding", String.Empty);
@@ -545,6 +551,10 @@ namespace Smuxi.Engine
Get(dprefix + server + "/Encoding", null));
LoadEntry(sprefix + server + "/AutoConvertUTF8",
Get(dprefix + server + "/AutoConvertUTF8", null));
+ LoadEntry(sprefix + server + "/Nickname",
+ Get(dprefix + server + "/Nickname", null));
+ LoadEntry(sprefix + server + "/Realname",
+ Get(dprefix + server + "/Realname", null));
LoadEntry(sprefix + server + "/Username",
Get(dprefix + server + "/Username", null));
LoadEntry(sprefix + server + "/Password",
@@ -571,6 +581,8 @@ namespace Smuxi.Engine
LoadEntry(sprefix+"Network", String.Empty);
LoadEntry(sprefix+"Encoding", null);
LoadEntry(sprefix+"AutoConvertUTF8", null);
+ LoadEntry(sprefix+"Nickname", String.Empty);
+ LoadEntry(sprefix+"Realname", String.Empty);
LoadEntry(sprefix+"Username", String.Empty);
LoadEntry(sprefix+"Password", String.Empty);
LoadEntry(sprefix+"UseEncryption", false);
diff --git a/src/Engine/Config/ServerModel.cs b/src/Engine/Config/ServerModel.cs
index d8994b5..ca1d9c1 100644
--- a/src/Engine/Config/ServerModel.cs
+++ b/src/Engine/Config/ServerModel.cs
@@ -1,7 +1,7 @@
/*
* Smuxi - Smart MUltipleXed Irc
*
- * Copyright (c) 2007, 2010 Mirco Bauer <meebey meebey net>
+ * Copyright (c) 2007, 2010, 2012-2014 Mirco Bauer <meebey meebey net>
*
* Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
*
@@ -36,6 +36,8 @@ namespace Smuxi.Engine
public string Hostname { get; set; }
public int Port { get; set; }
public string Network { get; set; }
+ public string Nickname { get; set; }
+ public string Realname { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public bool OnStartupConnect { get; set; }
@@ -77,6 +79,12 @@ namespace Smuxi.Engine
ServerID = (string)e.Value;
foundServerID = true;
break;
+ case "_Username":
+ Username = (string) e.Value;
+ break;
+ case "_Realname":
+ Realname = (string) e.Value;
+ break;
// UseEncryption and ValidateServerCertificate were forgotten
// when moving from autoserialization to manual serialization.
// To prevent crashes when git users' updated engines receive a ServerModel
@@ -115,6 +123,12 @@ namespace Smuxi.Engine
if (ServerID != null) {
info.AddValue("_ServerID", ServerID);
}
+ if (Nickname != null) {
+ info.AddValue("_Nickname", Nickname);
+ }
+ if (Realname != null) {
+ info.AddValue("_Realname", Realname);
+ }
info.AddValue("_Protocol", Protocol);
info.AddValue("_Hostname", Hostname);
info.AddValue("_Port", Port);
@@ -151,6 +165,8 @@ namespace Smuxi.Engine
Hostname = (string) config[ConfigKeyPrefix + "Hostname"];
Port = (int) config[ConfigKeyPrefix + "Port"];
Network = (string) config[ConfigKeyPrefix + "Network"];
+ Nickname = (string) config[ConfigKeyPrefix + "Nickname"];
+ Realname = (string) config[ConfigKeyPrefix + "Realname"];
Username = (string) config[ConfigKeyPrefix + "Username"];
Password = (string) config[ConfigKeyPrefix + "Password"];
UseEncryption = (bool) config[ConfigKeyPrefix + "UseEncryption"];
@@ -170,6 +186,8 @@ namespace Smuxi.Engine
config[ConfigKeyPrefix + "Hostname"] = Hostname;
config[ConfigKeyPrefix + "Port"] = Port;
config[ConfigKeyPrefix + "Network"] = Network;
+ config[ConfigKeyPrefix + "Nickname"] = Nickname;
+ config[ConfigKeyPrefix + "Realname"] = Realname;
config[ConfigKeyPrefix + "Username"] = Username;
config[ConfigKeyPrefix + "Password"] = Password;
config[ConfigKeyPrefix + "UseEncryption"] = UseEncryption;
diff --git a/src/Frontend-GNOME/Views/MenuWidget.cs b/src/Frontend-GNOME/Views/MenuWidget.cs
index 1e6106d..e40bf66 100644
--- a/src/Frontend-GNOME/Views/MenuWidget.cs
+++ b/src/Frontend-GNOME/Views/MenuWidget.cs
@@ -1,6 +1,6 @@
// Smuxi - Smart MUltipleXed Irc
//
-// Copyright (c) 2012 Mirco Bauer <meebey meebey net>
+// Copyright (c) 2012-2014 Mirco Bauer <meebey meebey net>
//
// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
//
@@ -225,6 +225,8 @@ namespace Smuxi.Frontend.Gnome
// which we skip by setting this to null, see:
// ServerModel.GetObjectData()
server.ServerID = null;
+ server.Nickname = null;
+ server.Realname = null;
}
Frontend.Session.Connect(server, Frontend.FrontendManager);
} catch (Exception ex) {
diff --git a/src/Frontend-GNOME/Views/ServerWidget.cs b/src/Frontend-GNOME/Views/ServerWidget.cs
index 37e78ca..b464a97 100644
--- a/src/Frontend-GNOME/Views/ServerWidget.cs
+++ b/src/Frontend-GNOME/Views/ServerWidget.cs
@@ -1,6 +1,6 @@
// Smuxi - Smart MUltipleXed Irc
//
-// Copyright (c) 2010-2013 Mirco Bauer <meebey meebey net>
+// Copyright (c) 2010-2014 Mirco Bauer <meebey meebey net>
//
// Full GPL License: <http://www.gnu.org/licenses/gpl.txt>
//
@@ -72,6 +72,18 @@ namespace Smuxi.Frontend.Gnome
}
}
+ public Gtk.Entry NicknameEntry {
+ get {
+ return f_NicknameEntry;
+ }
+ }
+
+ public Gtk.Entry RealnameEntry {
+ get {
+ return f_RealnameEntry;
+ }
+ }
+
public Gtk.CheckButton OnStartupConnectCheckButton {
get {
return f_OnStartupConnectCheckButton;
@@ -94,7 +106,29 @@ namespace Smuxi.Frontend.Gnome
}
}
- public bool ShowPassword {
+ public bool ShowNickname {
+ set {
+ // Smuxi < 0.11 does not support server specific nickname
+ if (Frontend.EngineVersion < new Version(0, 11)) {
+ value = false;
+ }
+ f_NicknameLabel.Visible = value;
+ f_NicknameEntry.Visible = value;
+ }
+ }
+
+ public bool ShowRealname {
+ set {
+ // Smuxi < 0.11 does not support server specific realname
+ if (Frontend.EngineVersion < new Version(0, 11)) {
+ value = false;
+ }
+ f_RealnameLabel.Visible = value;
+ f_RealnameEntry.Visible = value;
+ }
+ }
+
+ public bool ShowPassword {
set {
f_PasswordLabel.Visible = value;
f_PasswordEntry.Visible = value;
@@ -135,6 +169,18 @@ namespace Smuxi.Frontend.Gnome
ServerID = server.ServerID;
f_HostnameEntry.Text = server.Hostname;
f_NetworkComboBoxEntry.Entry.Text = server.Network;
+ if (String.IsNullOrEmpty(server.Nickname)) {
+ var defaultNicknames = (string[]) Frontend.UserConfig["Connection/Nicknames"];
+ f_NicknameEntry.Text = String.Join(" ", defaultNicknames);
+ } else {
+ f_NicknameEntry.Text = server.Nickname;
+ }
+ if (String.IsNullOrEmpty(server.Realname)) {
+ var defaultRealname = (string) Frontend.UserConfig["Connection/Realname"];
+ f_RealnameEntry.Text = defaultRealname;
+ } else {
+ f_RealnameEntry.Text = server.Realname;
+ }
f_UsernameEntry.Text = server.Username;
// HACK: Twitter username is part of the PKEY, not allowed to change
if (server.Protocol == "Twitter") {
@@ -173,6 +219,8 @@ namespace Smuxi.Frontend.Gnome
server.Hostname = server.Username;
}
server.Password = f_PasswordEntry.Text;
+ server.Nickname = f_NicknameEntry.Text.Trim();
+ server.Realname = f_RealnameEntry.Text.Trim();
server.UseEncryption = f_UseEncryptionCheckButton.Active;
server.ValidateServerCertificate =
f_ValidateServerCertificateCheckButton.Active;
@@ -247,6 +295,11 @@ namespace Smuxi.Frontend.Gnome
f_UseEncryptionCheckButton.Clicked += delegate {
CheckUseEncryptionCheckButton();
};
+
+ var defaultNicknames = (string[]) Frontend.UserConfig["Connection/Nicknames"];
+ f_NicknameEntry.Text = String.Join(" ", defaultNicknames);
+ var defaultRealname = (string) Frontend.UserConfig["Connection/Realname"];
+ f_RealnameEntry.Text = defaultRealname;
}
protected virtual void CheckIgnoreOnConnectCommandsCheckButton()
@@ -301,6 +354,8 @@ namespace Smuxi.Frontend.Gnome
case "IRC":
ShowHostname = true;
ShowNetwork = true;
+ ShowNickname = true;
+ ShowRealname = true;
ShowPassword = true;
SupportUseEncryption = true;
@@ -313,6 +368,8 @@ namespace Smuxi.Frontend.Gnome
case "Facebook":
ShowHostname = false;
ShowNetwork = false;
+ ShowNickname = false;
+ ShowRealname = false;
ShowPassword = true;
SupportUseEncryption = true;
f_HostnameEntry.Text = "chat.facebook.com";
@@ -321,6 +378,8 @@ namespace Smuxi.Frontend.Gnome
case "XMPP":
ShowHostname = true;
ShowNetwork = false;
+ ShowNickname = false;
+ ShowRealname = false;
ShowPassword = true;
SupportUseEncryption = true;
@@ -337,6 +396,8 @@ namespace Smuxi.Frontend.Gnome
case "MSNP":
ShowHostname = false;
ShowNetwork = false;
+ ShowNickname = false;
+ ShowRealname = false;
ShowPassword = true;
SupportUseEncryption = false;
@@ -351,6 +412,8 @@ namespace Smuxi.Frontend.Gnome
case "Twitter":
ShowHostname = false;
ShowNetwork = false;
+ ShowNickname = false;
+ ShowRealname = false;
ShowPassword = false;
SupportUseEncryption = true;
// engine always uses https
@@ -366,6 +429,8 @@ namespace Smuxi.Frontend.Gnome
case "Campfire":
ShowHostname = true;
ShowNetwork = false;
+ ShowNickname = false;
+ ShowRealname = false;
ShowPassword = true;
SupportUseEncryption = true;
// engine always uses https
@@ -382,6 +447,8 @@ namespace Smuxi.Frontend.Gnome
case "JabbR":
ShowHostname = true;
ShowNetwork = false;
+ ShowNickname = false;
+ ShowRealname = false;
ShowPassword = true;
SupportUseEncryption = true;
@@ -398,6 +465,8 @@ namespace Smuxi.Frontend.Gnome
default:
ShowHostname = true;
ShowNetwork = true;
+ ShowNickname = true;
+ ShowRealname = true;
ShowPassword = true;
SupportUseEncryption = true;
diff --git a/src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs
b/src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs
index 887016f..af5cdd5 100644
--- a/src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs
+++ b/src/Frontend-GNOME/gtk-gui/Smuxi.Frontend.Gnome.ServerWidget.cs
@@ -9,8 +9,12 @@ namespace Smuxi.Frontend.Gnome
private global::Gtk.Label f_HostnameLabel;
private global::Gtk.ComboBoxEntry f_NetworkComboBoxEntry;
private global::Gtk.Label f_NetworkLabel;
+ private global::Gtk.Entry f_NicknameEntry;
+ private global::Gtk.Label f_NicknameLabel;
private global::Gtk.Label f_PasswordLabel;
private global::Gtk.ComboBox f_ProtocolComboBox;
+ private global::Gtk.Entry f_RealnameEntry;
+ private global::Gtk.Label f_RealnameLabel;
private global::Gtk.Entry f_UsernameEntry;
private global::Gtk.HBox hbox10;
private global::Gtk.Entry f_HostnameEntry;
@@ -31,7 +35,7 @@ namespace Smuxi.Frontend.Gnome
private global::Gtk.CheckButton f_IgnoreOnConnectCommandsCheckButton;
private global::Gtk.ScrolledWindow scrolledwindow1;
private global::Gtk.TextView f_OnConnectCommandsTextView;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
@@ -43,7 +47,7 @@ namespace Smuxi.Frontend.Gnome
this.vbox16.Name = "vbox16";
this.vbox16.Spacing = 5;
// Container child vbox16.Gtk.Box+BoxChild
- this.table2 = new global::Gtk.Table (((uint)(5)), ((uint)(2)), false);
+ this.table2 = new global::Gtk.Table (((uint)(7)), ((uint)(2)), false);
this.table2.Name = "table2";
this.table2.RowSpacing = ((uint)(5));
this.table2.ColumnSpacing = ((uint)(5));
@@ -81,33 +85,83 @@ namespace Smuxi.Frontend.Gnome
w3.XOptions = ((global::Gtk.AttachOptions)(4));
w3.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table2.Gtk.Table+TableChild
+ this.f_NicknameEntry = new global::Gtk.Entry ();
+ this.f_NicknameEntry.CanFocus = true;
+ this.f_NicknameEntry.Name = "f_NicknameEntry";
+ this.f_NicknameEntry.IsEditable = true;
+ this.f_NicknameEntry.InvisibleChar = '●';
+ this.table2.Add (this.f_NicknameEntry);
+ global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_NicknameEntry]));
+ w4.TopAttach = ((uint)(3));
+ w4.BottomAttach = ((uint)(4));
+ w4.LeftAttach = ((uint)(1));
+ w4.RightAttach = ((uint)(2));
+ w4.XOptions = ((global::Gtk.AttachOptions)(4));
+ w4.YOptions = ((global::Gtk.AttachOptions)(4));
+ // Container child table2.Gtk.Table+TableChild
+ this.f_NicknameLabel = new global::Gtk.Label ();
+ this.f_NicknameLabel.Name = "f_NicknameLabel";
+ this.f_NicknameLabel.Xalign = 0F;
+ this.f_NicknameLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Nickname:");
+ this.table2.Add (this.f_NicknameLabel);
+ global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_NicknameLabel]));
+ w5.TopAttach = ((uint)(3));
+ w5.BottomAttach = ((uint)(4));
+ w5.XOptions = ((global::Gtk.AttachOptions)(4));
+ w5.YOptions = ((global::Gtk.AttachOptions)(4));
+ // Container child table2.Gtk.Table+TableChild
this.f_PasswordLabel = new global::Gtk.Label ();
this.f_PasswordLabel.Name = "f_PasswordLabel";
this.f_PasswordLabel.Xalign = 0F;
this.f_PasswordLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("_Password:");
this.f_PasswordLabel.UseUnderline = true;
this.table2.Add (this.f_PasswordLabel);
- global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_PasswordLabel]));
- w4.TopAttach = ((uint)(4));
- w4.BottomAttach = ((uint)(5));
+ global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_PasswordLabel]));
+ w6.TopAttach = ((uint)(6));
+ w6.BottomAttach = ((uint)(7));
// Container child table2.Gtk.Table+TableChild
this.f_ProtocolComboBox = new global::Gtk.ComboBox ();
this.f_ProtocolComboBox.Name = "f_ProtocolComboBox";
this.table2.Add (this.f_ProtocolComboBox);
- global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_ProtocolComboBox]));
- w5.LeftAttach = ((uint)(1));
- w5.RightAttach = ((uint)(2));
+ global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_ProtocolComboBox]));
+ w7.LeftAttach = ((uint)(1));
+ w7.RightAttach = ((uint)(2));
+ // Container child table2.Gtk.Table+TableChild
+ this.f_RealnameEntry = new global::Gtk.Entry ();
+ this.f_RealnameEntry.CanFocus = true;
+ this.f_RealnameEntry.Name = "f_RealnameEntry";
+ this.f_RealnameEntry.IsEditable = true;
+ this.f_RealnameEntry.InvisibleChar = '●';
+ this.table2.Add (this.f_RealnameEntry);
+ global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_RealnameEntry]));
+ w8.TopAttach = ((uint)(4));
+ w8.BottomAttach = ((uint)(5));
+ w8.LeftAttach = ((uint)(1));
+ w8.RightAttach = ((uint)(2));
+ w8.XOptions = ((global::Gtk.AttachOptions)(4));
+ w8.YOptions = ((global::Gtk.AttachOptions)(4));
+ // Container child table2.Gtk.Table+TableChild
+ this.f_RealnameLabel = new global::Gtk.Label ();
+ this.f_RealnameLabel.Name = "f_RealnameLabel";
+ this.f_RealnameLabel.Xalign = 0F;
+ this.f_RealnameLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("Realname:");
+ this.table2.Add (this.f_RealnameLabel);
+ global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_RealnameLabel]));
+ w9.TopAttach = ((uint)(4));
+ w9.BottomAttach = ((uint)(5));
+ w9.XOptions = ((global::Gtk.AttachOptions)(4));
+ w9.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table2.Gtk.Table+TableChild
this.f_UsernameEntry = new global::Gtk.Entry ();
this.f_UsernameEntry.Name = "f_UsernameEntry";
this.f_UsernameEntry.IsEditable = true;
this.f_UsernameEntry.InvisibleChar = '●';
this.table2.Add (this.f_UsernameEntry);
- global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_UsernameEntry]));
- w6.TopAttach = ((uint)(3));
- w6.BottomAttach = ((uint)(4));
- w6.LeftAttach = ((uint)(1));
- w6.RightAttach = ((uint)(2));
+ global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.table2
[this.f_UsernameEntry]));
+ w10.TopAttach = ((uint)(5));
+ w10.BottomAttach = ((uint)(6));
+ w10.LeftAttach = ((uint)(1));
+ w10.RightAttach = ((uint)(2));
// Container child table2.Gtk.Table+TableChild
this.hbox10 = new global::Gtk.HBox ();
this.hbox10.Name = "hbox10";
@@ -117,8 +171,8 @@ namespace Smuxi.Frontend.Gnome
this.f_HostnameEntry.IsEditable = true;
this.f_HostnameEntry.InvisibleChar = '●';
this.hbox10.Add (this.f_HostnameEntry);
- global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox10
[this.f_HostnameEntry]));
- w7.Position = 0;
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox10
[this.f_HostnameEntry]));
+ w11.Position = 0;
// Container child hbox10.Gtk.Box+BoxChild
this.hbox11 = new global::Gtk.HBox ();
this.hbox11.Name = "hbox11";
@@ -129,8 +183,8 @@ namespace Smuxi.Frontend.Gnome
this.f_PortLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("_Port:");
this.f_PortLabel.UseUnderline = true;
this.hbox11.Add (this.f_PortLabel);
- global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox11
[this.f_PortLabel]));
- w8.Position = 0;
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox11
[this.f_PortLabel]));
+ w12.Position = 0;
// Container child hbox11.Gtk.Box+BoxChild
this.f_PortSpinButton = new global::Gtk.SpinButton (0, 65535, 1);
this.f_PortSpinButton.Name = "f_PortSpinButton";
@@ -139,17 +193,17 @@ namespace Smuxi.Frontend.Gnome
this.f_PortSpinButton.ClimbRate = 1;
this.f_PortSpinButton.Numeric = true;
this.hbox11.Add (this.f_PortSpinButton);
- global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox11
[this.f_PortSpinButton]));
- w9.Position = 1;
+ global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox11
[this.f_PortSpinButton]));
+ w13.Position = 1;
this.hbox10.Add (this.hbox11);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox10
[this.hbox11]));
- w10.Position = 1;
+ global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox10
[this.hbox11]));
+ w14.Position = 1;
this.table2.Add (this.hbox10);
- global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table2
[this.hbox10]));
- w11.TopAttach = ((uint)(1));
- w11.BottomAttach = ((uint)(2));
- w11.LeftAttach = ((uint)(1));
- w11.RightAttach = ((uint)(2));
+ global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table2
[this.hbox10]));
+ w15.TopAttach = ((uint)(1));
+ w15.BottomAttach = ((uint)(2));
+ w15.LeftAttach = ((uint)(1));
+ w15.RightAttach = ((uint)(2));
// Container child table2.Gtk.Table+TableChild
this.hbox2 = new global::Gtk.HBox ();
this.hbox2.Name = "hbox2";
@@ -161,8 +215,8 @@ namespace Smuxi.Frontend.Gnome
this.f_PasswordEntry.Visibility = false;
this.f_PasswordEntry.InvisibleChar = '●';
this.hbox2.Add (this.f_PasswordEntry);
- global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.hbox2
[this.f_PasswordEntry]));
- w12.Position = 0;
+ global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox2
[this.f_PasswordEntry]));
+ w16.Position = 0;
// Container child hbox2.Gtk.Box+BoxChild
this.f_ShowPasswordCheckButton = new global::Gtk.CheckButton ();
this.f_ShowPasswordCheckButton.CanFocus = true;
@@ -171,16 +225,16 @@ namespace Smuxi.Frontend.Gnome
this.f_ShowPasswordCheckButton.DrawIndicator = true;
this.f_ShowPasswordCheckButton.UseUnderline = true;
this.hbox2.Add (this.f_ShowPasswordCheckButton);
- global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.hbox2
[this.f_ShowPasswordCheckButton]));
- w13.Position = 1;
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox2
[this.f_ShowPasswordCheckButton]));
+ w17.Position = 1;
this.table2.Add (this.hbox2);
- global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table2
[this.hbox2]));
- w14.TopAttach = ((uint)(4));
- w14.BottomAttach = ((uint)(5));
- w14.LeftAttach = ((uint)(1));
- w14.RightAttach = ((uint)(2));
- w14.XOptions = ((global::Gtk.AttachOptions)(4));
- w14.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w18 = ((global::Gtk.Table.TableChild)(this.table2
[this.hbox2]));
+ w18.TopAttach = ((uint)(6));
+ w18.BottomAttach = ((uint)(7));
+ w18.LeftAttach = ((uint)(1));
+ w18.RightAttach = ((uint)(2));
+ w18.XOptions = ((global::Gtk.AttachOptions)(4));
+ w18.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table2.Gtk.Table+TableChild
this.label21 = new global::Gtk.Label ();
this.label21.Name = "label21";
@@ -188,9 +242,9 @@ namespace Smuxi.Frontend.Gnome
this.label21.LabelProp = global::Mono.Unix.Catalog.GetString ("_Username:");
this.label21.UseUnderline = true;
this.table2.Add (this.label21);
- global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table2
[this.label21]));
- w15.TopAttach = ((uint)(3));
- w15.BottomAttach = ((uint)(4));
+ global::Gtk.Table.TableChild w19 = ((global::Gtk.Table.TableChild)(this.table2
[this.label21]));
+ w19.TopAttach = ((uint)(5));
+ w19.BottomAttach = ((uint)(6));
// Container child table2.Gtk.Table+TableChild
this.label5 = new global::Gtk.Label ();
this.label5.Name = "label5";
@@ -199,9 +253,9 @@ namespace Smuxi.Frontend.Gnome
this.label5.UseUnderline = true;
this.table2.Add (this.label5);
this.vbox16.Add (this.table2);
- global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.table2]));
- w17.Position = 0;
- w17.Expand = false;
+ global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.table2]));
+ w21.Position = 0;
+ w21.Expand = false;
// Container child vbox16.Gtk.Box+BoxChild
this.f_OnStartupConnectCheckButton = new global::Gtk.CheckButton ();
this.f_OnStartupConnectCheckButton.CanFocus = true;
@@ -211,10 +265,10 @@ namespace Smuxi.Frontend.Gnome
this.f_OnStartupConnectCheckButton.UseUnderline = true;
this.f_OnStartupConnectCheckButton.Xalign = 0F;
this.vbox16.Add (this.f_OnStartupConnectCheckButton);
- global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.f_OnStartupConnectCheckButton]));
- w18.Position = 1;
- w18.Expand = false;
- w18.Fill = false;
+ global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.f_OnStartupConnectCheckButton]));
+ w22.Position = 1;
+ w22.Expand = false;
+ w22.Fill = false;
// Container child vbox16.Gtk.Box+BoxChild
this.f_UseEncryptionCheckButton = new global::Gtk.CheckButton ();
this.f_UseEncryptionCheckButton.CanFocus = true;
@@ -223,10 +277,10 @@ namespace Smuxi.Frontend.Gnome
this.f_UseEncryptionCheckButton.DrawIndicator = true;
this.f_UseEncryptionCheckButton.UseUnderline = true;
this.vbox16.Add (this.f_UseEncryptionCheckButton);
- global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.f_UseEncryptionCheckButton]));
- w19.Position = 2;
- w19.Expand = false;
- w19.Fill = false;
+ global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.f_UseEncryptionCheckButton]));
+ w23.Position = 2;
+ w23.Expand = false;
+ w23.Fill = false;
// Container child vbox16.Gtk.Box+BoxChild
this.f_ValidateServerCertificateCheckButton = new global::Gtk.CheckButton ();
this.f_ValidateServerCertificateCheckButton.CanFocus = true;
@@ -235,10 +289,10 @@ namespace Smuxi.Frontend.Gnome
this.f_ValidateServerCertificateCheckButton.DrawIndicator = true;
this.f_ValidateServerCertificateCheckButton.UseUnderline = true;
this.vbox16.Add (this.f_ValidateServerCertificateCheckButton);
- global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.f_ValidateServerCertificateCheckButton]));
- w20.Position = 3;
- w20.Expand = false;
- w20.Fill = false;
+ global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox16
[this.f_ValidateServerCertificateCheckButton]));
+ w24.Position = 3;
+ w24.Expand = false;
+ w24.Fill = false;
// Container child vbox16.Gtk.Box+BoxChild
this.vbox2 = new global::Gtk.VBox ();
this.vbox2.Name = "vbox2";
@@ -254,10 +308,10 @@ namespace Smuxi.Frontend.Gnome
this.label37.LabelProp = global::Mono.Unix.Catalog.GetString ("_On Connect
Commands:");
this.label37.UseUnderline = true;
this.hbox3.Add (this.label37);
- global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.label37]));
- w21.Position = 0;
- w21.Expand = false;
- w21.Fill = false;
+ global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.label37]));
+ w25.Position = 0;
+ w25.Expand = false;
+ w25.Fill = false;
// Container child hbox3.Gtk.Box+BoxChild
this.f_IgnoreOnConnectCommandsCheckButton = new global::Gtk.CheckButton ();
this.f_IgnoreOnConnectCommandsCheckButton.CanFocus = true;
@@ -266,13 +320,13 @@ namespace Smuxi.Frontend.Gnome
this.f_IgnoreOnConnectCommandsCheckButton.DrawIndicator = true;
this.f_IgnoreOnConnectCommandsCheckButton.UseUnderline = true;
this.hbox3.Add (this.f_IgnoreOnConnectCommandsCheckButton);
- global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.f_IgnoreOnConnectCommandsCheckButton]));
- w22.Position = 1;
+ global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.hbox3
[this.f_IgnoreOnConnectCommandsCheckButton]));
+ w26.Position = 1;
this.vbox2.Add (this.hbox3);
- global::Gtk.Box.BoxChild w23 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox3]));
- w23.Position = 0;
- w23.Expand = false;
- w23.Fill = false;
+ global::Gtk.Box.BoxChild w27 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox3]));
+ w27.Position = 0;
+ w27.Expand = false;
+ w27.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
this.scrolledwindow1.WidthRequest = 350;
@@ -287,18 +341,20 @@ namespace Smuxi.Frontend.Gnome
this.f_OnConnectCommandsTextView.WrapMode = ((global::Gtk.WrapMode)(2));
this.scrolledwindow1.Add (this.f_OnConnectCommandsTextView);
this.vbox2.Add (this.scrolledwindow1);
- global::Gtk.Box.BoxChild w25 = ((global::Gtk.Box.BoxChild)(this.vbox2
[this.scrolledwindow1]));
- w25.Position = 1;
+ global::Gtk.Box.BoxChild w29 = ((global::Gtk.Box.BoxChild)(this.vbox2
[this.scrolledwindow1]));
+ w29.Position = 1;
this.vbox16.Add (this.vbox2);
- global::Gtk.Box.BoxChild w26 = ((global::Gtk.Box.BoxChild)(this.vbox16 [this.vbox2]));
- w26.Position = 4;
+ global::Gtk.Box.BoxChild w30 = ((global::Gtk.Box.BoxChild)(this.vbox16 [this.vbox2]));
+ w30.Position = 4;
this.Add (this.vbox16);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
this.f_HostnameLabel.MnemonicWidget = this.f_HostnameEntry;
this.f_NetworkLabel.MnemonicWidget = this.f_NetworkComboBoxEntry;
+ this.f_NicknameLabel.MnemonicWidget = this.f_NicknameEntry;
this.f_PasswordLabel.MnemonicWidget = this.f_PasswordEntry;
+ this.f_RealnameLabel.MnemonicWidget = this.f_RealnameEntry;
this.f_PortLabel.MnemonicWidget = this.f_PortSpinButton;
this.label21.MnemonicWidget = this.f_UsernameEntry;
this.label5.MnemonicWidget = this.f_ProtocolComboBox;
diff --git a/src/Frontend-GNOME/gtk-gui/gui.stetic b/src/Frontend-GNOME/gtk-gui/gui.stetic
index ecb1367..837beed 100644
--- a/src/Frontend-GNOME/gtk-gui/gui.stetic
+++ b/src/Frontend-GNOME/gtk-gui/gui.stetic
@@ -3772,7 +3772,7 @@ Click "Forward" to begin.</property>
</widget>
</child>
</widget>
- <widget class="Gtk.Bin" id="Smuxi.Frontend.Gnome.ServerWidget" design-size="380 374">
+ <widget class="Gtk.Bin" id="Smuxi.Frontend.Gnome.ServerWidget" design-size="380 466">
<property name="MemberName" />
<property name="Visible">False</property>
<child>
@@ -3782,7 +3782,7 @@ Click "Forward" to begin.</property>
<child>
<widget class="Gtk.Table" id="table2">
<property name="MemberName" />
- <property name="NRows">5</property>
+ <property name="NRows">7</property>
<property name="NColumns">2</property>
<property name="RowSpacing">5</property>
<property name="ColumnSpacing">5</property>
@@ -3851,6 +3851,50 @@ Click "Forward" to begin.</property>
</packing>
</child>
<child>
+ <widget class="Gtk.Entry" id="f_NicknameEntry">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="IsEditable">True</property>
+ <property name="InvisibleChar">●</property>
+ </widget>
+ <packing>
+ <property name="TopAttach">3</property>
+ <property name="BottomAttach">4</property>
+ <property name="LeftAttach">1</property>
+ <property name="RightAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="XOptions">Fill</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">False</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="f_NicknameLabel">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes">Nickname:</property>
+ <property name="MnemonicWidget">f_NicknameEntry</property>
+ </widget>
+ <packing>
+ <property name="TopAttach">3</property>
+ <property name="BottomAttach">4</property>
+ <property name="AutoSize">True</property>
+ <property name="XOptions">Fill</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">False</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
<widget class="Gtk.Label" id="f_PasswordLabel">
<property name="MemberName" />
<property name="Xalign">0</property>
@@ -3859,8 +3903,8 @@ Click "Forward" to begin.</property>
<property name="MnemonicWidget">f_PasswordEntry</property>
</widget>
<packing>
- <property name="TopAttach">4</property>
- <property name="BottomAttach">5</property>
+ <property name="TopAttach">6</property>
+ <property name="BottomAttach">7</property>
<property name="AutoSize">False</property>
<property name="XExpand">True</property>
<property name="XFill">True</property>
@@ -3889,14 +3933,58 @@ Click "Forward" to begin.</property>
</packing>
</child>
<child>
+ <widget class="Gtk.Entry" id="f_RealnameEntry">
+ <property name="MemberName" />
+ <property name="CanFocus">True</property>
+ <property name="IsEditable">True</property>
+ <property name="InvisibleChar">●</property>
+ </widget>
+ <packing>
+ <property name="TopAttach">4</property>
+ <property name="BottomAttach">5</property>
+ <property name="LeftAttach">1</property>
+ <property name="RightAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="XOptions">Fill</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">False</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.Label" id="f_RealnameLabel">
+ <property name="MemberName" />
+ <property name="Xalign">0</property>
+ <property name="LabelProp" translatable="yes">Realname:</property>
+ <property name="MnemonicWidget">f_RealnameEntry</property>
+ </widget>
+ <packing>
+ <property name="TopAttach">4</property>
+ <property name="BottomAttach">5</property>
+ <property name="AutoSize">True</property>
+ <property name="XOptions">Fill</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">False</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
<widget class="Gtk.Entry" id="f_UsernameEntry">
<property name="MemberName" />
<property name="IsEditable">True</property>
<property name="InvisibleChar">●</property>
</widget>
<packing>
- <property name="TopAttach">3</property>
- <property name="BottomAttach">4</property>
+ <property name="TopAttach">5</property>
+ <property name="BottomAttach">6</property>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">False</property>
@@ -4006,8 +4094,8 @@ Click "Forward" to begin.</property>
</child>
</widget>
<packing>
- <property name="TopAttach">4</property>
- <property name="BottomAttach">5</property>
+ <property name="TopAttach">6</property>
+ <property name="BottomAttach">7</property>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">True</property>
@@ -4030,8 +4118,8 @@ Click "Forward" to begin.</property>
<property name="MnemonicWidget">f_UsernameEntry</property>
</widget>
<packing>
- <property name="TopAttach">3</property>
- <property name="BottomAttach">4</property>
+ <property name="TopAttach">5</property>
+ <property name="BottomAttach">6</property>
<property name="AutoSize">False</property>
<property name="XExpand">True</property>
<property name="XFill">True</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]