diff --git a/src/window.py b/src/window.py index 144dfb8..64767b3 100644 --- a/src/window.py +++ b/src/window.py @@ -246,7 +246,7 @@ class AlpacaWindow(Adw.ApplicationWindow): part['text'] = '\n'.join(part['text'].split("\n")[:-1]) part['text'] = part['text'].replace("\n* ", "\n• ") - part['text'] = GLib.markup_escape_text(part['text']) + #part['text'] = GLib.markup_escape_text(part['text']) part['text'] = code_pattern.sub(r'\1', part['text']) part['text'] = bold_pattern.sub(r'\1', part['text']) part['text'] = h1_pattern.sub(r'\1', part['text']) @@ -562,7 +562,7 @@ class AlpacaWindow(Adw.ApplicationWindow): if "selected_chat" not in self.chats or self.chats["selected_chat"] not in self.chats["chats"]: self.chats["selected_chat"] = list(self.chats["chats"].keys())[0] if len(list(self.chats["chats"].keys())) == 0: self.chats["chats"]["New chat"] = {"messages": []} except Exception as e: - self.chats = {"chats": {"New chat": {"messages": [], "current_model": None}}, "selected_chat": "New chat"} + self.chats = {"chats": {"New chat": {"messages": []}}, "selected_chat": "New chat"} self.load_history_into_chat() def closing_connection_dialog_response(self, dialog, task): @@ -774,22 +774,18 @@ class AlpacaWindow(Adw.ApplicationWindow): if name==self.chats["selected_chat"]: self.chat_list_box.select_row(chat) def chat_changed(self, listbox, row): - if row and row.get_title() != self.chats["selected_chat"]: + if row or row.get_title() != self.chats["selected_chat"]: self.chats["selected_chat"] = row.get_title() - if "current_model" not in self.chats["chats"][self.chats["selected_chat"]] or self.chats["chats"][self.chats["selected_chat"]]["current_model"] not in self.local_models: - self.chats["chats"][self.chats["selected_chat"]]["current_model"] = self.model_drop_down.get_selected_item().get_string() - self.save_history() - else: - for i in range(self.model_string_list.get_n_items()): - if self.model_string_list.get_string(i) == self.chats["chats"][self.chats["selected_chat"]]["current_model"]: - self.model_drop_down.set_selected(i) - break self.load_history_into_chat() + if len(self.chats["chats"][self.chats["selected_chat"]]["messages"]) > 0: + for i in range(self.model_string_list.get_n_items()): + if self.model_string_list.get_string(i) == self.chats["chats"][self.chats["selected_chat"]]["messages"][-1]["model"]: + self.model_drop_down.set_selected(i) + break + def selected_model_changed(self, pspec=None, user_data=None): self.verify_if_image_can_be_used() - self.chats["chats"][self.chats["selected_chat"]]["current_model"] = self.model_drop_down.get_selected_item().get_string() - self.save_history() def __init__(self, **kwargs): super().__init__(**kwargs) @@ -808,9 +804,9 @@ class AlpacaWindow(Adw.ApplicationWindow): self.connection_url_entry.connect("changed", lambda entry: entry.set_css_classes([])) self.connection_dialog.connect("close-attempt", self.closing_connection_dialog) self.load_history() - self.update_chat_list() if os.path.exists(os.path.join(self.config_dir, "server.conf")): with open(os.path.join(self.config_dir, "server.conf"), "r") as f: self.ollama_url = f.read() if self.verify_connection() is False: self.show_connection_dialog(True) else: self.connection_dialog.present(self) + self.update_chat_list()