Skip to content

Commit 9d538e8

Browse files
appaKappaKclaude
andcommitted
Add rename list option in Library tab
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 0d86c7a commit 9d538e8

2 files changed

Lines changed: 28 additions & 2 deletions

File tree

src/piholecombinelist/database.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ def get_list(self, list_id: int) -> Optional[dict]:
134134
).fetchone()
135135
return dict(row) if row else None
136136

137+
def rename_list(self, list_id: int, name: str) -> None:
138+
self._conn.execute(
139+
"UPDATE lists SET name = ? WHERE id = ?", (name, list_id)
140+
)
141+
self._conn.commit()
142+
137143
def delete_list(self, list_id: int) -> None:
138144
self._conn.execute("DELETE FROM lists WHERE id = ?", (list_id,))
139145
self._conn.commit()

src/piholecombinelist/gui/library_tab.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,21 @@ def _build_ui(self) -> None:
8585
self._lists_frame.grid(row=4, column=0, sticky="nsew", padx=10)
8686
left.rowconfigure(4, weight=1)
8787

88+
list_btn_row = ctk.CTkFrame(left, fg_color="transparent")
89+
list_btn_row.grid(row=5, column=0, sticky="ew", padx=10, pady=(4, 10))
90+
list_btn_row.columnconfigure(0, weight=1)
91+
list_btn_row.columnconfigure(1, weight=1)
92+
93+
rename_list_btn = ctk.CTkButton(
94+
list_btn_row, text="Rename", command=self._rename_list
95+
)
96+
rename_list_btn.grid(row=0, column=0, sticky="ew", padx=(0, 4))
97+
Tooltip(rename_list_btn, "Rename the selected list.")
98+
8899
del_list_btn = ctk.CTkButton(
89-
left, text="Delete Selected List", command=self._delete_list
100+
list_btn_row, text="Delete", command=self._delete_list
90101
)
91-
del_list_btn.grid(row=5, column=0, sticky="ew", padx=10, pady=(4, 10))
102+
del_list_btn.grid(row=0, column=1, sticky="ew")
92103
Tooltip(del_list_btn, "Permanently delete the selected list from the library.")
93104

94105
# ── Right panel (content viewer) ────────────────────────────
@@ -295,6 +306,15 @@ def _select_list(self, list_id: int) -> None:
295306
self._lib_serve_url_entry.pack_forget()
296307
self._lib_serve_copy_btn.pack_forget()
297308

309+
def _rename_list(self) -> None:
310+
if self._selected_list_id is None:
311+
messagebox.showinfo("Select a list", "Select a list to rename.")
312+
return
313+
new_name = simpledialog.askstring("Rename List", "New name:", parent=self)
314+
if new_name and new_name.strip():
315+
self._db.rename_list(self._selected_list_id, new_name.strip())
316+
self._refresh_lists()
317+
298318
def _delete_list(self) -> None:
299319
if self._selected_list_id is None:
300320
messagebox.showinfo("Select a list", "Select a list to delete.")

0 commit comments

Comments
 (0)