@@ -75,9 +75,18 @@ def create(self):
75
75
self .passwd = self .add (TitlePassword , name = '- Password:' , value = None , ** widget_defaults )
76
76
77
77
def adjust_widgets (self ):
78
- # hide host, port, database, user, and password field if DSN selected
79
78
for field in self .host , self .port , self .db , self .user , self .passwd :
80
- field .hidden = self .dsn .value
79
+ field .hidden = False
80
+
81
+ # hide host, port, database, user, and password field if DSN selected
82
+ if self .dsn .value :
83
+ for field in self .host , self .port , self .db , self .user , self .passwd :
84
+ field .hidden = True
85
+
86
+ # disable editing host, port, user, and password field if SQLite selected
87
+ elif self .dbtype .value == 5 :
88
+ for field in self .host , self .port , self .user , self .passwd :
89
+ field .hidden = True
81
90
82
91
try : # try to set database type field to database type from DSN label
83
92
# ['...', '1. MSSQL: name = arguments', '2. <...>'] -> '1. MSSQL: name' ->
@@ -93,10 +102,6 @@ def adjust_widgets(self):
93
102
# field
94
103
self .dbtype .editable = False
95
104
96
- # disable editing host, port, user, and password field if SQLite selected
97
- for field in self .host , self .port , self .user , self .passwd :
98
- field .editable = self .dbtype .value != 5 # `5` is SQLite
99
-
100
105
self .display ()
101
106
102
107
def on_cancel (self ):
@@ -108,7 +113,7 @@ def on_ok(self): # NOSONAR
108
113
notify_confirm ('Database type is mandatory!' , title = 'ERROR' , editw = True )
109
114
return
110
115
111
- if not (self .user .value or self .dbtype .value == 5 ): # `5` is SQLite
116
+ if not (self .user .value or self .dsn . value or self . dbtype .value == 5 ): # `5` is SQLite
112
117
notify_confirm ('User is mandatory!' , title = 'ERROR' , editw = True )
113
118
return
114
119
0 commit comments