|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing the IRC configuration page. |
|
8 """ |
|
9 |
|
10 from __future__ import unicode_literals |
|
11 |
|
12 from .ConfigurationPageBase import ConfigurationPageBase |
|
13 from .Ui_IrcPage import Ui_IrcPage |
|
14 |
|
15 import Preferences |
|
16 |
|
17 |
|
18 class IrcPage(ConfigurationPageBase, Ui_IrcPage): |
|
19 """ |
|
20 Class implementing the IRC configuration page. |
|
21 """ |
|
22 TimeFormats = ["hh:mm", "hh:mm:ss", "h:mm ap", "h:mm:ss ap"] |
|
23 DateFormats = ["yyyy-MM-dd", "dd.MM.yyyy", "MM/dd/yyyy", |
|
24 "yyyy MMM. dd", "dd MMM. yyyy", "MMM. dd, yyyy"] |
|
25 |
|
26 def __init__(self): |
|
27 """ |
|
28 Constructor |
|
29 """ |
|
30 super(IrcPage, self).__init__() |
|
31 self.setupUi(self) |
|
32 self.setObjectName("IrcPage") |
|
33 |
|
34 self.timeFormatCombo.addItems(IrcPage.TimeFormats) |
|
35 self.dateFormatCombo.addItems(IrcPage.DateFormats) |
|
36 |
|
37 # set initial values |
|
38 # timestamps |
|
39 self.timestampGroup.setChecked(Preferences.getIrc("ShowTimestamps")) |
|
40 self.showDateCheckBox.setChecked( |
|
41 Preferences.getIrc("TimestampIncludeDate")) |
|
42 self.timeFormatCombo.setCurrentIndex( |
|
43 self.timeFormatCombo.findText(Preferences.getIrc("TimeFormat"))) |
|
44 self.dateFormatCombo.setCurrentIndex( |
|
45 self.dateFormatCombo.findText(Preferences.getIrc("DateFormat"))) |
|
46 |
|
47 # colours |
|
48 self.initColour("NetworkMessageColour", self.networkButton, |
|
49 Preferences.getIrc, byName=True) |
|
50 self.initColour("ServerMessageColour", self.serverButton, |
|
51 Preferences.getIrc, byName=True) |
|
52 self.initColour("ErrorMessageColour", self.errorButton, |
|
53 Preferences.getIrc, byName=True) |
|
54 self.initColour("TimestampColour", self.timestampButton, |
|
55 Preferences.getIrc, byName=True) |
|
56 self.initColour("HyperlinkColour", self.hyperlinkButton, |
|
57 Preferences.getIrc, byName=True) |
|
58 self.initColour("ChannelMessageColour", self.channelButton, |
|
59 Preferences.getIrc, byName=True) |
|
60 self.initColour("OwnNickColour", self.ownNickButton, |
|
61 Preferences.getIrc, byName=True) |
|
62 self.initColour("NickColour", self.nickButton, |
|
63 Preferences.getIrc, byName=True) |
|
64 self.initColour("JoinChannelColour", self.joinButton, |
|
65 Preferences.getIrc, byName=True) |
|
66 self.initColour("LeaveChannelColour", self.leaveButton, |
|
67 Preferences.getIrc, byName=True) |
|
68 self.initColour("ChannelInfoColour", self.infoButton, |
|
69 Preferences.getIrc, byName=True) |
|
70 |
|
71 # notifications |
|
72 self.notificationsGroup.setChecked( |
|
73 Preferences.getIrc("ShowNotifications")) |
|
74 self.joinLeaveCheckBox.setChecked(Preferences.getIrc("NotifyJoinPart")) |
|
75 self.messageCheckBox.setChecked(Preferences.getIrc("NotifyMessage")) |
|
76 self.ownNickCheckBox.setChecked(Preferences.getIrc("NotifyNick")) |
|
77 |
|
78 # IRC text colors |
|
79 self.initColour("IrcColor0", self.ircColor0Button, |
|
80 Preferences.getIrc, byName=True) |
|
81 self.initColour("IrcColor1", self.ircColor1Button, |
|
82 Preferences.getIrc, byName=True) |
|
83 self.initColour("IrcColor2", self.ircColor2Button, |
|
84 Preferences.getIrc, byName=True) |
|
85 self.initColour("IrcColor3", self.ircColor3Button, |
|
86 Preferences.getIrc, byName=True) |
|
87 self.initColour("IrcColor4", self.ircColor4Button, |
|
88 Preferences.getIrc, byName=True) |
|
89 self.initColour("IrcColor5", self.ircColor5Button, |
|
90 Preferences.getIrc, byName=True) |
|
91 self.initColour("IrcColor6", self.ircColor6Button, |
|
92 Preferences.getIrc, byName=True) |
|
93 self.initColour("IrcColor7", self.ircColor7Button, |
|
94 Preferences.getIrc, byName=True) |
|
95 self.initColour("IrcColor8", self.ircColor8Button, |
|
96 Preferences.getIrc, byName=True) |
|
97 self.initColour("IrcColor9", self.ircColor9Button, |
|
98 Preferences.getIrc, byName=True) |
|
99 self.initColour("IrcColor10", self.ircColor10Button, |
|
100 Preferences.getIrc, byName=True) |
|
101 self.initColour("IrcColor11", self.ircColor11Button, |
|
102 Preferences.getIrc, byName=True) |
|
103 self.initColour("IrcColor12", self.ircColor12Button, |
|
104 Preferences.getIrc, byName=True) |
|
105 self.initColour("IrcColor13", self.ircColor13Button, |
|
106 Preferences.getIrc, byName=True) |
|
107 self.initColour("IrcColor14", self.ircColor14Button, |
|
108 Preferences.getIrc, byName=True) |
|
109 self.initColour("IrcColor15", self.ircColor15Button, |
|
110 Preferences.getIrc, byName=True) |
|
111 |
|
112 # Automatic User Information Lookup |
|
113 self.whoGroup.setChecked(Preferences.getIrc("AutoUserInfoLookup")) |
|
114 self.whoUsersSpinBox.setValue(Preferences.getIrc("AutoUserInfoMax")) |
|
115 self.whoIntervalSpinBox.setValue( |
|
116 Preferences.getIrc("AutoUserInfoInterval")) |
|
117 |
|
118 # Markers |
|
119 self.markWhenHiddenCheckBox.setChecked( |
|
120 Preferences.getIrc("MarkPositionWhenHidden")) |
|
121 self.initColour("MarkerLineForegroundColour", |
|
122 self.markerForegroundButton, |
|
123 Preferences.getIrc, byName=True) |
|
124 self.initColour("MarkerLineBackgroundColour", |
|
125 self.markerBackgroundButton, |
|
126 Preferences.getIrc, byName=True) |
|
127 |
|
128 # Shutdown |
|
129 self.confirmShutdownCheckBox.setChecked( |
|
130 Preferences.getIrc("AskOnShutdown")) |
|
131 |
|
132 def save(self): |
|
133 """ |
|
134 Public slot to save the IRC configuration. |
|
135 """ |
|
136 # timestamps |
|
137 Preferences.setIrc("ShowTimestamps", self.timestampGroup.isChecked()) |
|
138 Preferences.setIrc( |
|
139 "TimestampIncludeDate", self.showDateCheckBox.isChecked()) |
|
140 Preferences.setIrc("TimeFormat", self.timeFormatCombo.currentText()) |
|
141 Preferences.setIrc("DateFormat", self.dateFormatCombo.currentText()) |
|
142 |
|
143 # notifications |
|
144 Preferences.setIrc( |
|
145 "ShowNotifications", self.notificationsGroup.isChecked()) |
|
146 Preferences.setIrc( |
|
147 "NotifyJoinPart", self.joinLeaveCheckBox.isChecked()) |
|
148 Preferences.setIrc("NotifyMessage", self.messageCheckBox.isChecked()) |
|
149 Preferences.setIrc("NotifyNick", self.ownNickCheckBox.isChecked()) |
|
150 |
|
151 # Automatic User Information Lookup |
|
152 Preferences.setIrc("AutoUserInfoLookup", self.whoGroup.isChecked()) |
|
153 Preferences.setIrc("AutoUserInfoMax", self.whoUsersSpinBox.value()) |
|
154 Preferences.setIrc( |
|
155 "AutoUserInfoInterval", self.whoIntervalSpinBox.value()) |
|
156 |
|
157 # Markers |
|
158 Preferences.setIrc( |
|
159 "MarkPositionWhenHidden", |
|
160 self.markWhenHiddenCheckBox.isChecked()) |
|
161 |
|
162 # Shutdown |
|
163 Preferences.setIrc( |
|
164 "AskOnShutdown", self.confirmShutdownCheckBox.isChecked()) |
|
165 |
|
166 # colours |
|
167 self.saveColours(Preferences.setIrc) |
|
168 |
|
169 |
|
170 def create(dlg): |
|
171 """ |
|
172 Module function to create the configuration page. |
|
173 |
|
174 @param dlg reference to the configuration dialog |
|
175 @return reference to the instantiated page (ConfigurationPageBase) |
|
176 """ |
|
177 page = IrcPage() |
|
178 return page |