|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de> |
|
4 # |
|
5 |
|
6 """ |
|
7 Module implementing a dialog for editing the IRC server configuration. |
|
8 """ |
|
9 |
|
10 from PyQt4.QtCore import pyqtSlot |
|
11 from PyQt4.QtGui import QDialog, QDialogButtonBox |
|
12 |
|
13 from .Ui_IrcServerEditDialog import Ui_IrcServerEditDialog |
|
14 |
|
15 from .IrcNetworkManager import IrcServer |
|
16 |
|
17 |
|
18 class IrcServerEditDialog(QDialog, Ui_IrcServerEditDialog): |
|
19 """ |
|
20 Class implementing a dialog for editing the IRC server configuration. |
|
21 """ |
|
22 def __init__(self, server, parent=None): |
|
23 """ |
|
24 Constructor |
|
25 |
|
26 @param server reference to the IRC server object (IrcServer) |
|
27 @param parent reference to the parent widget (QWidget) |
|
28 """ |
|
29 super().__init__(parent) |
|
30 self.setupUi(self) |
|
31 |
|
32 self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok) |
|
33 |
|
34 self.serverEdit.setText(server.getName()) |
|
35 self.portSpinBox.setValue(server.getPort()) |
|
36 self.passwordEdit.setText(server.getPassword()) |
|
37 self.sslCheckBox.setChecked(server.useSSL()) |
|
38 |
|
39 self.__updateOkButton() |
|
40 |
|
41 def __updateOkButton(self): |
|
42 """ |
|
43 Private method to update the OK button state. |
|
44 """ |
|
45 self.__okButton.setEnabled(self.serverEdit.text() != "") |
|
46 |
|
47 @pyqtSlot(str) |
|
48 def on_serverEdit_textChanged(self, name): |
|
49 """ |
|
50 Private slot handling changes of the server name. |
|
51 |
|
52 @param name current name of the server (string) |
|
53 """ |
|
54 self.__updateOkButton() |
|
55 |
|
56 def getServer(self): |
|
57 """ |
|
58 Public method to create a server object from the data entered into |
|
59 the dialog. |
|
60 |
|
61 @return server object (IrcServer) |
|
62 """ |
|
63 server = IrcServer(self.serverEdit.text()) |
|
64 server.setPort(self.portSpinBox.value()) |
|
65 server.setPassword(self.passwordEdit.text()) |
|
66 server.setUseSSL(self.sslCheckBox.isChecked()) |
|
67 |
|
68 return server |