@@ -75,9 +75,18 @@ def create(self):
7575 self .passwd = self .add (TitlePassword , name = '- Password:' , value = None , ** widget_defaults )
7676
7777 def adjust_widgets (self ):
78- # hide host, port, database, user, and password field if DSN selected
7978 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
8190
8291 try : # try to set database type field to database type from DSN label
8392 # ['...', '1. MSSQL: name = arguments', '2. <...>'] -> '1. MSSQL: name' ->
@@ -93,10 +102,6 @@ def adjust_widgets(self):
93102 # field
94103 self .dbtype .editable = False
95104
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-
100105 self .display ()
101106
102107 def on_cancel (self ):
@@ -108,7 +113,7 @@ def on_ok(self): # NOSONAR
108113 notify_confirm ('Database type is mandatory!' , title = 'ERROR' , editw = True )
109114 return
110115
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
112117 notify_confirm ('User is mandatory!' , title = 'ERROR' , editw = True )
113118 return
114119
0 commit comments