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