New feature: Keep most recent chat on top
This commit is contained in:
parent
c98eac246d
commit
18bd8f48be
@ -198,6 +198,13 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
|
|
||||||
if self.bot_message: return
|
if self.bot_message: return
|
||||||
if not self.message_text_view.get_buffer().get_text(self.message_text_view.get_buffer().get_start_iter(), self.message_text_view.get_buffer().get_end_iter(), False): return
|
if not self.message_text_view.get_buffer().get_text(self.message_text_view.get_buffer().get_start_iter(), self.message_text_view.get_buffer().get_end_iter(), False): return
|
||||||
|
current_chat_row = self.chat_list_box.get_selected_row()
|
||||||
|
self.chat_list_box.unselect_all()
|
||||||
|
self.chat_list_box.remove(current_chat_row)
|
||||||
|
self.chat_list_box.prepend(current_chat_row)
|
||||||
|
self.chat_list_box.select_row(self.chat_list_box.get_row_at_index(0))
|
||||||
|
self.chats['order'].remove(self.chats['selected_chat'])
|
||||||
|
self.chats['order'].insert(0, self.chats['selected_chat'])
|
||||||
current_model = self.model_drop_down.get_selected_item().get_string()
|
current_model = self.model_drop_down.get_selected_item().get_string()
|
||||||
current_model = current_model.replace(' (', ':')[:-1].lower()
|
current_model = current_model.replace(' (', ':')[:-1].lower()
|
||||||
if current_model is None:
|
if current_model is None:
|
||||||
@ -282,8 +289,8 @@ class AlpacaWindow(Adw.ApplicationWindow):
|
|||||||
|
|
||||||
@Gtk.Template.Callback()
|
@Gtk.Template.Callback()
|
||||||
def chat_changed(self, listbox, row):
|
def chat_changed(self, listbox, row):
|
||||||
if row and row.get_name() != self.chats["selected_chat"]:
|
if row and row.get_child().get_name() != self.chats["selected_chat"]:
|
||||||
self.chats["selected_chat"] = row.get_name()
|
self.chats["selected_chat"] = row.get_child().get_name()
|
||||||
self.load_history_into_chat()
|
self.load_history_into_chat()
|
||||||
if len(self.chats["chats"][self.chats["selected_chat"]]["messages"].keys()) > 0:
|
if len(self.chats["chats"][self.chats["selected_chat"]]["messages"].keys()) > 0:
|
||||||
for i in range(self.model_string_list.get_n_items()):
|
for i in range(self.model_string_list.get_n_items()):
|
||||||
@ -550,7 +557,7 @@ Generate a title following these rules:
|
|||||||
if 'images' in message: data["images"] = message['images']
|
if 'images' in message: data["images"] = message['images']
|
||||||
response = connection_handler.simple_post(f"{connection_handler.url}/api/generate", data=json.dumps(data))
|
response = connection_handler.simple_post(f"{connection_handler.url}/api/generate", data=json.dumps(data))
|
||||||
new_chat_name = json.loads(response['text'])["response"].lstrip().rstrip().replace('"', '').replace("'", "").title()
|
new_chat_name = json.loads(response['text'])["response"].lstrip().rstrip().replace('"', '').replace("'", "").title()
|
||||||
self.rename_chat(label_element.get_parent().get_name(), new_chat_name, label_element)
|
self.rename_chat(label_element.get_name(), new_chat_name, label_element)
|
||||||
|
|
||||||
def show_message(self, msg:str, bot:bool, footer:str=None, images:list=None, files:dict=None, id:str=None):
|
def show_message(self, msg:str, bot:bool, footer:str=None, images:list=None, files:dict=None, id:str=None):
|
||||||
message_text = Gtk.TextView(
|
message_text = Gtk.TextView(
|
||||||
@ -1089,7 +1096,7 @@ Generate a title following these rules:
|
|||||||
shutil.move(os.path.join(self.data_dir, "chats", old_chat_name), os.path.join(self.data_dir, "chats", new_chat_name))
|
shutil.move(os.path.join(self.data_dir, "chats", old_chat_name), os.path.join(self.data_dir, "chats", new_chat_name))
|
||||||
label_element.set_tooltip_text(new_chat_name)
|
label_element.set_tooltip_text(new_chat_name)
|
||||||
label_element.set_label(new_chat_name)
|
label_element.set_label(new_chat_name)
|
||||||
label_element.get_parent().get_parent().set_name(new_chat_name)
|
label_element.set_name(new_chat_name)
|
||||||
self.save_history()
|
self.save_history()
|
||||||
|
|
||||||
def new_chat(self):
|
def new_chat(self):
|
||||||
@ -1131,6 +1138,7 @@ Generate a title following these rules:
|
|||||||
chat_label = Gtk.Label(
|
chat_label = Gtk.Label(
|
||||||
label=chat_name,
|
label=chat_name,
|
||||||
tooltip_text=chat_name,
|
tooltip_text=chat_name,
|
||||||
|
name=chat_name,
|
||||||
hexpand=True,
|
hexpand=True,
|
||||||
halign=0,
|
halign=0,
|
||||||
wrap=True,
|
wrap=True,
|
||||||
@ -1141,8 +1149,7 @@ Generate a title following these rules:
|
|||||||
chat_row = Gtk.ListBoxRow(
|
chat_row = Gtk.ListBoxRow(
|
||||||
css_classes = ["chat_row"],
|
css_classes = ["chat_row"],
|
||||||
height_request = 45,
|
height_request = 45,
|
||||||
child = chat_label,
|
child = chat_label
|
||||||
name = chat_name
|
|
||||||
)
|
)
|
||||||
|
|
||||||
gesture = Gtk.GestureClick(button=3)
|
gesture = Gtk.GestureClick(button=3)
|
||||||
@ -1343,7 +1350,7 @@ Generate a title following these rules:
|
|||||||
|
|
||||||
def chat_actions(self, action, user_data):
|
def chat_actions(self, action, user_data):
|
||||||
chat_row = self.selected_chat_row
|
chat_row = self.selected_chat_row
|
||||||
chat_name = chat_row.get_name()
|
chat_name = chat_row.get_child().get_name()
|
||||||
action_name = action.get_name()
|
action_name = action.get_name()
|
||||||
if action_name == 'delete_chat':
|
if action_name == 'delete_chat':
|
||||||
dialogs.delete_chat(self, chat_name)
|
dialogs.delete_chat(self, chat_name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user