From d4f09bc564f236f2bcd0fc51370a526d8e4ccc51 Mon Sep 17 00:00:00 2001
From: cschen <camillo.schenone@gmail.com>
Date: Mon, 17 Feb 2025 22:32:29 +0100
Subject: [PATCH] fix connection workflow

---
 plugin/commands/client.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/plugin/commands/client.py b/plugin/commands/client.py
index 102c84e..2250fd4 100644
--- a/plugin/commands/client.py
+++ b/plugin/commands/client.py
@@ -16,9 +16,11 @@ from ..input_handlers import SimpleListInput
 
 logger = logging.getLogger(__name__)
 
+
 def valid_profiles(profiles):
     return [p for p in profiles if "name" in p]
 
+
 def get_profile_index_by_name(profiles, name):
     return next((index for (index, d) in enumerate(profiles) if d["name"] == name))
 
@@ -27,11 +29,11 @@ def get_default_profile(profiles):
     i = get_profile_index_by_name(profiles, "Default")
     return profiles[i]
 
+
 class CodempConnectCommand(sublime_plugin.WindowCommand):
     def __init__(self, window):
         super().__init__(window)
         self.connprofile = {}
-        self.selectedprofile = 0
 
     def is_enabled(self) -> bool:
         return not session.is_active()
@@ -70,7 +72,7 @@ class CodempConnectCommand(sublime_plugin.WindowCommand):
             self.connprofile["password"] = pwd
             self.update_config_and_connect()
 
-        panel = self.window.show_input_panel("Password:", "" , __, None, None)
+        panel = self.window.show_input_panel("Password:", "", __, None, None)
         # Very undocumented feature, the input panel if has the setting 'password' set to true
         # will hide the input.
         panel.settings().set("password", True)
@@ -80,13 +82,12 @@ class CodempConnectCommand(sublime_plugin.WindowCommand):
             self.connprofile["username"] = usr
             self.maybe_get_password()
 
-        panel = self.window.show_input_panel("username:", "" , __, None, None)
+        panel = self.window.show_input_panel("Username:", "", __, None, None)
         panel.settings().set("password", False)
 
     def run(self):  # pyright: ignore[reportIncompatibleMethodOverride]
 
         def _run(index):
-            self.selectedprofile = index
             profile = profiles[index]
             default_profile = get_default_profile(profiles)
             self.connprofile = {**default_profile, **profile}
@@ -94,10 +95,10 @@ class CodempConnectCommand(sublime_plugin.WindowCommand):
             if self.connprofile["username"] and self.connprofile["password"]:
                 self.update_config_and_connect()
 
-            if not self.connprofile["username"]:
+            if not self.connprofile["username"] and not self.connprofile["password"]:
                 self.maybe_get_user()
 
-            if not self.connprofile["password"]:
+            if self.connprofile["username"] and not self.connprofile["password"]:
                 self.maybe_get_password()
 
         profiles = valid_profiles(get_setting("profiles"))