2
2
3
3
from PyQt6 .QtCore import Qt
4
4
from PyQt6 .QtWidgets import QDialog , QLabel , QLineEdit , QApplication , QHBoxLayout , QVBoxLayout , \
5
- QPushButton
5
+ QPushButton , QListWidget
6
6
7
7
if TYPE_CHECKING :
8
8
from gui .gui import Gui
@@ -20,16 +20,22 @@ def __init__(self, parent=None):
20
20
21
21
self .resize (self .width , self .height )
22
22
23
- self .key_name_text = QLabel ("Key Name:" , self )
23
+ self .access_key_selection_text = QLabel ("Select existing access-key:" , self )
24
+ self .access_key_selection = QListWidget ()
25
+ self .deselect_button = QPushButton ("Deselect" )
26
+ self .deselect_button .clicked .connect (self .deselect )
27
+
28
+ self .key_name_text = QLabel ("New Key name:" , self )
24
29
self .key_name_input = QLineEdit (self )
25
30
self .key_name_input .setStyleSheet ("color: black; background-color: white;" )
26
31
self .key_name_input .textChanged .connect (self .check_access_key_name )
32
+ self .key_name_input .setPlaceholderText ('access-key-<name>' )
27
33
28
34
self .key_id_text = QLabel ("Key ID:" , self )
29
35
self .key_id_input = QLineEdit (self )
30
36
self .key_id_input .setStyleSheet ("color: black; background-color: white;" )
31
37
32
- self .access_key_text = QLabel ("Secret Access Key:" , self )
38
+ self .access_key_text = QLabel ("Key secret :" , self )
33
39
self .access_key_input = QLineEdit (self )
34
40
self .access_key_input .setStyleSheet ("color: black; background-color: white;" )
35
41
self .access_key_input .setEchoMode (QLineEdit .EchoMode .Password )
@@ -49,6 +55,9 @@ def __init__(self, parent=None):
49
55
hbox .addStretch (1 )
50
56
51
57
vbox = QVBoxLayout ()
58
+ vbox .addWidget (self .access_key_selection_text )
59
+ vbox .addWidget (self .access_key_selection )
60
+ vbox .addWidget (self .deselect_button )
52
61
vbox .addWidget (self .key_name_text )
53
62
vbox .addWidget (self .key_name_input )
54
63
vbox .addWidget (self .key_id_text )
@@ -63,14 +72,28 @@ def __init__(self, parent=None):
63
72
def check_access_key_name (self , new_value : str ):
64
73
if new_value in self .existing_access_key_list :
65
74
self .set_error_text ('access key name already exists and will be overwritten' )
66
- if not new_value .startswith ('access-key' ):
67
- self .set_error_text ('access key name must start with \' access-key\' ' )
75
+ elif new_value != '' and not new_value .startswith ('access-key' ):
76
+ self .set_error_text ('new key names must start with \' access-key\' ' )
68
77
else :
69
78
self .set_error_text ('' )
79
+ self .access_key_selection .clearSelection ()
80
+
81
+ def deselect (self ):
82
+ self .access_key_selection .clearSelection ()
70
83
71
84
def ok (self ):
72
- key_name = self .key_name_input .text ()
73
- key_name = key_name .strip ()
85
+ if self .access_key_selection .selectedItems ():
86
+ selected_key = self .access_key_selection .currentItem ().text ()
87
+ else :
88
+ selected_key = ''
89
+ new_key_name = self .key_name_input .text ()
90
+ new_key_name = new_key_name .strip ()
91
+
92
+ if selected_key != '' :
93
+ key_name = selected_key
94
+ else :
95
+ key_name = new_key_name
96
+
74
97
key_id = self .key_id_input .text ()
75
98
key_id = key_id .strip ()
76
99
access_key = self .access_key_input .text ()
@@ -85,10 +108,11 @@ def ok(self):
85
108
if not access_key :
86
109
self .set_error_text ('missing access key' )
87
110
return
88
- if not key_name .startswith ('access-key' ):
89
- self .set_error_text ('key name must start with \' access-key\' ' )
111
+ if key_name != '' and not key_name .startswith ('access-key' ):
112
+ self .set_error_text ('new key names must start with \' access-key\' ' )
90
113
return
91
- self .gui .set_access_key (key_name = key_name , key_id = key_id , access_key = access_key )
114
+ print (f'key_name={ key_name } , key_id={ key_id } , access_key={ access_key } ' )
115
+ # self.gui.set_access_key(key_name=key_name, key_id=key_id, access_key=access_key)
92
116
self .hide ()
93
117
94
118
def cancel (self ):
@@ -111,7 +135,9 @@ def set_error_text(self, message):
111
135
self .error_text .repaint ()
112
136
113
137
def show_dialog (self , access_key_list : List [str ]):
114
- self .key_name_input .setText ('access-key' )
138
+ self .access_key_selection .clear ()
139
+ self .access_key_selection .addItems (access_key_list )
140
+ self .key_name_input .setText ('' )
115
141
self .key_name_input .repaint ()
116
142
self .key_id_input .setText ('' )
117
143
self .key_id_input .repaint ()
0 commit comments