|
1 # -*- coding: utf-8 -*- |
|
2 |
|
3 # Copyright (c) 2012 - 2025 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 |
|
21 def __init__(self, server, parent=None): |
|
22 """ |
|
23 Constructor |
|
24 |
|
25 @param server reference to the IRC server object |
|
26 @type IrcServer |
|
27 @param parent reference to the parent widget |
|
28 @type QWidget |
|
29 """ |
|
30 super().__init__(parent) |
|
31 self.setupUi(self) |
|
32 |
|
33 self.__okButton = self.buttonBox.button(QDialogButtonBox.StandardButton.Ok) |
|
34 |
|
35 if server: |
|
36 self.serverEdit.setText(server.getName()) |
|
37 self.portSpinBox.setValue(server.getPort()) |
|
38 self.passwordEdit.setText(server.getPassword()) |
|
39 self.sslCheckBox.setChecked(server.useSSL()) |
|
40 |
|
41 self.__updateOkButton() |
|
42 |
|
43 msh = self.minimumSizeHint() |
|
44 self.resize(max(self.width(), msh.width()), msh.height()) |
|
45 |
|
46 def __updateOkButton(self): |
|
47 """ |
|
48 Private method to update the OK button state. |
|
49 """ |
|
50 self.__okButton.setEnabled(self.serverEdit.text() != "") |
|
51 |
|
52 @pyqtSlot(str) |
|
53 def on_serverEdit_textChanged(self, _name): |
|
54 """ |
|
55 Private slot handling changes of the server name. |
|
56 |
|
57 @param _name current name of the server (unused) |
|
58 @type str |
|
59 """ |
|
60 self.__updateOkButton() |
|
61 |
|
62 def getServer(self): |
|
63 """ |
|
64 Public method to create a server object from the data entered into |
|
65 the dialog. |
|
66 |
|
67 @return server object |
|
68 @rtype IrcServer |
|
69 """ |
|
70 from .IrcNetworkManager import IrcServer |
|
71 |
|
72 server = IrcServer(self.serverEdit.text()) |
|
73 server.setPort(self.portSpinBox.value()) |
|
74 server.setPassword(self.passwordEdit.text()) |
|
75 server.setUseSSL(self.sslCheckBox.isChecked()) |
|
76 |
|
77 return server |