1 module ircclient.ui.settings; 2 3 import dlangui.core.settings; 4 5 class IRCSettings : SettingsFile { 6 this(string filename) { 7 super(filename); 8 } 9 10 IRCSettings clone() { 11 IRCSettings res = new IRCSettings(filename); 12 res.applySettings(setting); 13 return res; 14 } 15 16 override void updateDefaults() { 17 // def server 18 serverSettings.setStringDef("host", "irc.freenode.net"); 19 serverSettings.setUintegerDef("port", 6667); 20 // def user 21 userSettings.setStringDef("username", "user"); 22 userSettings.setStringDef("realname", "User"); 23 userSettings.setStringDef("nick", "dlanguiIRC"); 24 userSettings.setStringDef("alternick", "d_IRC_client"); 25 // channel settings 26 channelSettings.setStringDef("channelName", "#d"); 27 channelSettings.setBooleanDef("joinOnConnect", true); 28 } 29 30 @property Setting serverSettings() { return _setting.objectByPath("server", true); } 31 32 @property string host() { return serverSettings.getString("host", "irc.freenode.net"); } 33 @property void host(string s) { serverSettings.setString("host", s); } 34 @property ushort port() { return cast(ushort)serverSettings.getUinteger("port", 6667); } 35 @property void port(ushort v) { serverSettings.setUinteger("port", v); } 36 37 @property Setting channelSettings() { return _setting.objectByPath("channels/startup", true); } 38 39 @property string defChannel() { return channelSettings.getString("channelName", ""); } 40 @property void defChannel(string s) { channelSettings.setString("channelName", s); } 41 @property bool joinOnConnect() { return channelSettings.getBoolean("joinOnConnect", true); } 42 @property void joinOnConnect(bool v) { channelSettings.setBoolean("joinOnConnect", v); } 43 44 @property Setting userSettings() { return _setting.objectByPath("user", true); } 45 46 @property string nick() { return userSettings.getString("nick", ""); } 47 @property void nick(string s) { userSettings.setString("nick", s); } 48 @property string alternateNick() { return userSettings.getString("alternick", ""); } 49 @property void alternateNick(string s) { userSettings.setString("alternick", s); } 50 @property string userName() { return userSettings.getString("username", "user"); } 51 @property void userName(string s) { userSettings.setString("username", s); } 52 @property string userRealName() { return userSettings.getString("realname", "User"); } 53 @property void userRealName(string s) { userSettings.setString("realname", s); } 54 55 } 56 57