Compare commits

..
Author SHA1 Message Date
aclist 4e5fadf928 chore: drop old comments 2026-11-10 03:04:44 +09:00
aclist fa2f86b03e chore: abstract string literals 2026-11-10 02:41:24 +09:00
aclist c8fe6ec056 chore: update strings files 2026-11-10 02:37:22 +09:00
aclist 6901e5456e drop: unused dataclass 2026-11-10 02:36:18 +09:00
24 changed files with 95 additions and 95 deletions

No files matched your search

-8
View File
@@ -24,14 +24,6 @@ from typing import Any
logger = logging.getLogger(APP_NAME) logger = logging.getLogger(APP_NAME)
@dataclass
class ModMeta:
protocol: str
published_id: str
name: str
timestamp: str
def get_local_mod_ids(steam_path: Path) -> list[int]: def get_local_mod_ids(steam_path: Path) -> list[int]:
workshop_path = get_local_mod_path(steam_path) workshop_path = get_local_mod_path(steam_path)
mods = get_local_mods(workshop_path) mods = get_local_mods(workshop_path)
+6 -6
View File
@@ -31,10 +31,10 @@ from dzgui.const.constants import (
VDF_PATH, VDF_PATH,
) )
from dzgui.const.endpoints import ( from dzgui.const.endpoints import (
STEAM_APP_DETAILS, APP_DETAILS,
SUB_ENDPOINT,
STEAM_PUBLISHED_FILES, STEAM_PUBLISHED_FILES,
STEAM_SUB, UNSUB_ENDPOINT,
STEAM_UNSUB,
) )
from dzgui.strings import wizard from dzgui.strings import wizard
from dzgui.strings.errors import api_validation_error, workshop_endpoint_error from dzgui.strings.errors import api_validation_error, workshop_endpoint_error
@@ -310,11 +310,11 @@ def update_workshop(key: str, mod: int, endpoint: str) -> None:
def subscribe(key: str, mod: int) -> None: def subscribe(key: str, mod: int) -> None:
update_workshop(key, mod, STEAM_SUB) update_workshop(key, mod, SUB_ENDPOINT)
def unsubscribe(key: str, mod: int) -> None: def unsubscribe(key: str, mod: int) -> None:
update_workshop(key, mod, STEAM_UNSUB) update_workshop(key, mod, UNSUB_ENDPOINT)
def validate_mod(client: str, mod: str) -> None: def validate_mod(client: str, mod: str) -> None:
@@ -512,7 +512,7 @@ def get_app_path(folders_path: Path, appid: int) -> Path:
def get_app_name(appid: int) -> str | None: def get_app_name(appid: int) -> str | None:
payload = {"appids": [appid]} payload = {"appids": [appid]}
res = requests.get(STEAM_APP_DETAILS, params=payload) res = requests.get(APP_DETAILS, params=payload)
if res.status_code != 200: if res.status_code != 200:
return None return None
try: try:
-3
View File
@@ -158,9 +158,6 @@ def build_gui(version: str, is_debug: bool) -> App | None:
f.truncate(0) f.truncate(0)
if _is_steam_deck is False: if _is_steam_deck is False:
# TODO: sudo escalation dialog
# count = get_map_count()
# TODO: move into module
if FLATPAK_ROOT_PATH in lookup(XDG.config, Preferences.DEFAULT): if FLATPAK_ROOT_PATH in lookup(XDG.config, Preferences.DEFAULT):
has_client = has_flatpak_client() has_client = has_flatpak_client()
else: else:
+3 -3
View File
@@ -3,9 +3,9 @@ STEAM_PUBLISHED_FILES = (
"https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1" "https://api.steampowered.com/ISteamRemoteStorage/GetPublishedFileDetails/v1"
) )
STEAM_SERVERS = "https://api.steampowered.com/IGameServersService/GetServerList/v1" STEAM_SERVERS = "https://api.steampowered.com/IGameServersService/GetServerList/v1"
STEAM_SUB = "https://api.steampowered.com/IPublishedFileService/Subscribe/v1" SUB_ENDPOINT = "https://api.steampowered.com/IPublishedFileService/Subscribe/v1"
STEAM_UNSUB = "https://api.steampowered.com/IPublishedFileService/Unsubscribe/v1" UNSUB_ENDPOINT = "https://api.steampowered.com/IPublishedFileService/Unsubscribe/v1"
STEAM_APP_DETAILS = "https://store.steampowered.com/api/appdetails?" APP_DETAILS = "https://store.steampowered.com/api/appdetails?"
GITHUB = "https://github.com/aclist" GITHUB = "https://github.com/aclist"
GITHUB_RELEASES = "https://api.github.com/repos/aclist/dztui/releases/latest" GITHUB_RELEASES = "https://api.github.com/repos/aclist/dztui/releases/latest"
+3 -5
View File
@@ -48,7 +48,7 @@ from dzgui.strings.dialogs import (
waiting_for_directories, waiting_for_directories,
) )
from dzgui.strings import kb from dzgui.strings import kb
from dzgui.strings.server_mods import checkmark, resync from dzgui.strings.server_mods import checkmark, resync, invalid_mod
from dzgui.util.format import format_exception, format_mib from dzgui.util.format import format_exception, format_mib
from dzgui.util.strings import dialog, server_timeout from dzgui.util.strings import dialog, server_timeout
from dzgui.util.symlink import rebuild_symlinks from dzgui.util.symlink import rebuild_symlinks
@@ -197,9 +197,8 @@ class ConnectionManager:
is_last = self.is_last_server() is_last = self.is_last_server()
# TODO: strings
invalid_mods = [ invalid_mods = [
(mod[0], mod[1]) for mod in remote_mods if mod[2] == "Invalid mod" (mod[0], mod[1]) for mod in remote_mods if mod[2] == invalid_mod
] ]
prereqs = Prerequisites( prereqs = Prerequisites(
@@ -277,8 +276,7 @@ class ConnectionManager:
for mod in alpha_mods: for mod in alpha_mods:
# NOTE: if the mod is neither synched or out of date, it is a malformed mod # NOTE: if the mod is neither synched or out of date, it is a malformed mod
if mod[2] == "": if mod[2] == "":
# TODO: strings mod[2] = invalid_mod
mod[2] = "Invalid mod"
return alpha_mods, missing_mods return alpha_mods, missing_mods
+3 -9
View File
@@ -2,7 +2,7 @@ from typing import TYPE_CHECKING
from dzgui.model.model_factory import ModelFactory from dzgui.model.model_factory import ModelFactory
from dzgui.util import strings from dzgui.util import strings
from dzgui.util.strings import all_maps from dzgui.strings.filters import all_maps
if TYPE_CHECKING: if TYPE_CHECKING:
from dzgui.model.model_factory import FastInsertListStore from dzgui.model.model_factory import FastInsertListStore
@@ -106,16 +106,10 @@ class FilterManager:
self.reinit_map_store() self.reinit_map_store()
maps.sort() maps.sort()
for m in maps: clean = [m for m in maps if m != all_maps]
# TODO: strings for m in clean:
if m == "All maps":
continue
self.append_map([m]) self.append_map([m])
# TODO: currently unused
def get_unique_maps(self) -> list[str]:
return [row[0] for row in self.map_store if row[0] != "All maps"]
def get_all_filters(self) -> tuple: def get_all_filters(self) -> tuple:
map_name = self.get_active_map_name() map_name = self.get_active_map_name()
enabled = self.get_filters() enabled = self.get_filters()
+2 -1
View File
@@ -5,6 +5,7 @@ from typing import Any, TYPE_CHECKING, Union
from dzgui.const.enum import FilterMode from dzgui.const.enum import FilterMode
from dzgui.model.model_factory import ModelFactory from dzgui.model.model_factory import ModelFactory
from dzgui.util import strings from dzgui.util import strings
from dzgui.strings import filters as str_filters
if TYPE_CHECKING: if TYPE_CHECKING:
from dzgui.managers.filter import FilterManager from dzgui.managers.filter import FilterManager
@@ -175,7 +176,7 @@ class ProxyModelManager:
rows = self.filtered rows = self.filtered
sel_map = self.filter_man.get_active_map_name() sel_map = self.filter_man.get_active_map_name()
if sel_map == strings.all_maps: if sel_map == str_filters.all_maps:
return rows return rows
rows = [row for row in rows if row[1] == sel_map] rows = [row for row in rows if row[1] == sel_map]
+14
View File
@@ -1,2 +1,16 @@
clipboard_button = "Copy to clipboard"
clipboard_ip_button = "Copy IP to clipboard"
dock_button_collapse = "Collapse the connection panel"
dock_button_expand = "Expand the connection panel"
workshop = "Steam Workshop" workshop = "Steam Workshop"
workshop_tooltip = "Open your Workshop subscriptions" workshop_tooltip = "Open your Workshop subscriptions"
version_notifier = "Copied!"
version_tooltip = "Click to copy to clipboard"
update_button = "Updates available"
unset_button_label = "Unset"
unset_button_tooltip = "Unset this server as favorite"
+2
View File
@@ -29,3 +29,5 @@ toggle_calc = "Toggle calculator"
server_details = "Server details" server_details = "Server details"
server_message = "Server message" server_message = "Server message"
caught_cancel_signal = "Caught cancel signal, cleaning up"
+4
View File
@@ -0,0 +1,4 @@
all_maps = "All maps"
filters_heading = "Filters"
keyword_placeholder = "Filter by keyword"
map_placeholder = "Filter by map"
+1
View File
@@ -1 +1,2 @@
tab_changed_label = "*"
selectable_tree = "Ctrl-click to select multiple; Shift-click to select a range." selectable_tree = "Ctrl-click to select multiple; Shift-click to select a range."
+5
View File
@@ -0,0 +1,5 @@
dialog_title = "Add a short note/reminder"
dialog_subtitle = "Limit 30 chars"
delete_button = "Delete note"
ok_button = "Update note"
current_note = "Current note: '{0}'"
+2
View File
@@ -16,7 +16,9 @@ lan_combo = "LAN"
fullscreen_eventbox = "This option is not available on Steam Deck." fullscreen_eventbox = "This option is not available on Steam Deck."
save_button = "Save" save_button = "Save"
api_placeholder = "Enter API key"
api_failed = "API validation failed" api_failed = "API validation failed"
api_validate = "Validate"
flatpak_label = "Flatpak client" flatpak_label = "Flatpak client"
flatpak_standard = "Standard" flatpak_standard = "Standard"
+2 -1
View File
@@ -3,4 +3,5 @@ mod_id = "ID"
up_to_date = "Up to date" up_to_date = "Up to date"
modlist = "Modlist" modlist = "Modlist"
checkmark = "✓" checkmark = "✓"
resync="⟳" resync = "⟳"
invalid_mod = "Invalid mod"
-3
View File
@@ -159,9 +159,6 @@ filter_unofficial = "Unofficial"
filter_modded = "Modded" filter_modded = "Modded"
filter_unmodded = "Unmodded" filter_unmodded = "Unmodded"
# maps
all_maps = "All maps"
# state # state
unknown = "Unknown" unknown = "Unknown"
none_provided = "None provided" none_provided = "None provided"
+4 -6
View File
@@ -106,8 +106,7 @@ class ClipboardButton(IconTextButton):
self.controller = controller self.controller = controller
self.connect("clicked", self._on_button_clicked, func) self.connect("clicked", self._on_button_clicked, func)
# TODO: strings self.set_tooltip_text(buttons.clipboard_button)
self.set_tooltip_text("Copy to clipboard")
def _on_button_clicked(self, button: Self, func: Callable) -> None: def _on_button_clicked(self, button: Self, func: Callable) -> None:
def revert() -> Literal[False]: def revert() -> Literal[False]:
@@ -125,16 +124,14 @@ class CopyIpButton(ClipboardButton):
def __init__(self, controller: Union["Controller", None], func: Callable) -> None: def __init__(self, controller: Union["Controller", None], func: Callable) -> None:
super().__init__(controller, func) super().__init__(controller, func)
# TODO: strings self.set_tooltip_text(buttons.clipboard_ip_button)
self.set_tooltip_text("Copy IP to clipboard")
class CloseButton(IconTextButton): class CloseButton(IconTextButton):
def __init__(self, label: str) -> None: def __init__(self, label: str) -> None:
super().__init__(icon=CLOSE, label=label) super().__init__(icon=CLOSE, label=label)
# TODO: strings self.set_tooltip_text(buttons.unset_button_tooltip)
self.set_tooltip_text("Unset this server as favorite")
class WebButton(IconTextButton): class WebButton(IconTextButton):
@@ -252,6 +249,7 @@ class AddButton(IconTextButton):
self.set_tooltip_text(connect_panel.add_tooltip) self.set_tooltip_text(connect_panel.add_tooltip)
# TODO: drop
class LoggerAlertsButton(IconTextButton): class LoggerAlertsButton(IconTextButton):
def __init__(self, warnings: int, errors: int) -> None: def __init__(self, warnings: int, errors: int) -> None:
warnings_text = "" warnings_text = ""
+9 -9
View File
@@ -3,6 +3,11 @@ from typing import Self, TYPE_CHECKING
from dzgui.const.constants import CARET_DOWN, CARET_UP, UDP_PORT from dzgui.const.constants import CARET_DOWN, CARET_UP, UDP_PORT
from dzgui.model.servers import ServerModelManager from dzgui.model.servers import ServerModelManager
from dzgui.strings import connect_panel from dzgui.strings import connect_panel
from dzgui.strings.buttons import (
dock_button_collapse,
dock_button_expand,
unset_button_label,
)
from dzgui.util.keys import is_ctrl_mask from dzgui.util.keys import is_ctrl_mask
from dzgui.views.components.buttons import ( from dzgui.views.components.buttons import (
AddButton, AddButton,
@@ -36,21 +41,18 @@ class DockButton(IconButton):
self.child = child self.child = child
self.connect("clicked", self._on_click) self.connect("clicked", self._on_click)
self.collapse_text = "Collapse the connection panel"
self.expand_text = "Expand the connection panel"
self.set_margin_top(10) self.set_margin_top(10)
self.set_tooltip_text(self.collapse_text) self.set_tooltip_text(dock_button_collapse)
def collapse(self) -> None: def collapse(self) -> None:
self.set_image(Icon(CARET_UP)) self.set_image(Icon(CARET_UP))
self.child.hide() self.child.hide()
self.set_tooltip_text(self.expand_text) self.set_tooltip_text(dock_button_expand)
def expand(self) -> None: def expand(self) -> None:
self.set_image(Icon(CARET_DOWN)) self.set_image(Icon(CARET_DOWN))
self.child.show() self.child.show()
self.set_tooltip_text(self.collapse_text) self.set_tooltip_text(dock_button_collapse)
def _on_click(self, button: Self) -> None: def _on_click(self, button: Self) -> None:
if self.expanded: if self.expanded:
@@ -81,7 +83,6 @@ class LanPanel(Gtk.Frame):
self.scan = Gtk.Button(label=connect_panel.lan_scan_button) self.scan = Gtk.Button(label=connect_panel.lan_scan_button)
self.scan.connect("clicked", self._on_scan_clicked) self.scan.connect("clicked", self._on_scan_clicked)
# TODO: strings
self.early_abort = Gtk.CheckButton(label=connect_panel.lan_checkbox) self.early_abort = Gtk.CheckButton(label=connect_panel.lan_checkbox)
self.early_abort.set_active(True) self.early_abort.set_active(True)
self.early_abort.set_tooltip_text(connect_panel.lan_abort_tooltip) self.early_abort.set_tooltip_text(connect_panel.lan_abort_tooltip)
@@ -189,8 +190,7 @@ class FavPanel(Gtk.Frame):
self.fav_button.connect("clicked", self._on_connect_clicked) self.fav_button.connect("clicked", self._on_connect_clicked)
self.copy_button = CopyIpButton(self.controller, self.get_fav_ip) self.copy_button = CopyIpButton(self.controller, self.get_fav_ip)
# TODO: strings self.unset_button = CloseButton(unset_button_label)
self.unset_button = CloseButton("Unset")
self.unset_button.connect("clicked", self._on_unset_clicked) self.unset_button.connect("clicked", self._on_unset_clicked)
if favorite is None: if favorite is None:
+3 -4
View File
@@ -4,6 +4,7 @@ from dzgui.api.servers import validate_ip
from dzgui.const.constants import VIEW_CONCEAL, VIEW_REVEAL from dzgui.const.constants import VIEW_CONCEAL, VIEW_REVEAL
from dzgui.util.css import add_class, remove_class from dzgui.util.css import add_class, remove_class
from dzgui.strings import connect_panel from dzgui.strings import connect_panel
from dzgui.strings.options import api_placeholder, api_validate
from dzgui.strings.errors import api_popover from dzgui.strings.errors import api_popover
import gi import gi
@@ -143,9 +144,8 @@ class APIEntry(Gtk.Box):
self.func: Callable | None = None self.func: Callable | None = None
# TODO: strings
self.entry = Gtk.Entry( self.entry = Gtk.Entry(
width_chars=60, hexpand=True, placeholder_text="Enter API key" width_chars=60, hexpand=True, placeholder_text=api_placeholder
) )
self.entry.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, VIEW_REVEAL) self.entry.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, VIEW_REVEAL)
self.entry.set_icon_activatable(Gtk.EntryIconPosition.SECONDARY, True) self.entry.set_icon_activatable(Gtk.EntryIconPosition.SECONDARY, True)
@@ -154,8 +154,7 @@ class APIEntry(Gtk.Box):
self.entry.connect("icon-release", self._on_icon_release) self.entry.connect("icon-release", self._on_icon_release)
self.entry.connect("activate", self._on_field_activated) self.entry.connect("activate", self._on_field_activated)
# TODO: strings self.submit = Gtk.Button(label=api_validate)
self.submit = Gtk.Button(label="Validate")
self.submit.set_sensitive(False) self.submit.set_sensitive(False)
self.submit.connect("clicked", self._on_submit) self.submit.connect("clicked", self._on_submit)
+13 -8
View File
@@ -10,7 +10,12 @@ from dzgui.const.constants import (
SEARCH_ICON, SEARCH_ICON,
) )
from dzgui.util.format import format_exception from dzgui.util.format import format_exception
from dzgui.util.strings import all_maps from dzgui.strings.filters import (
all_maps,
filters_heading,
keyword_placeholder,
map_placeholder,
)
from dzgui.views.components.maps_combo import MapsCombo from dzgui.views.components.maps_combo import MapsCombo
from dzgui.views.components.labels import BoldLabel from dzgui.views.components.labels import BoldLabel
@@ -42,7 +47,10 @@ class ButtonGrid(Gtk.Grid):
self.checks: list[Gtk.CheckButton] = [] self.checks: list[Gtk.CheckButton] = []
flowbox = Gtk.FlowBox( flowbox = Gtk.FlowBox(
halign=Gtk.Align.CENTER, min_children_per_line=3, max_children_per_line=3, selection_mode=Gtk.SelectionMode.NONE halign=Gtk.Align.CENTER,
min_children_per_line=3,
max_children_per_line=3,
selection_mode=Gtk.SelectionMode.NONE,
) )
for check in defaults.keys(): for check in defaults.keys():
@@ -99,8 +107,7 @@ class ButtonGrid(Gtk.Grid):
class KeywordEntry(Gtk.Entry): class KeywordEntry(Gtk.Entry):
def __init__(self, controller: "Controller") -> None: def __init__(self, controller: "Controller") -> None:
# TODO :strings super().__init__(placeholder_text=keyword_placeholder)
super().__init__(placeholder_text="Filter by keyword")
self.keyword = "" self.keyword = ""
self.controller = controller self.controller = controller
@@ -174,8 +181,7 @@ class FilterPanel(Gtk.Box):
self.keyword_entry = KeywordEntry(self.controller) self.keyword_entry = KeywordEntry(self.controller)
self.button_grid = ButtonGrid(self.controller, defaults, tooltips) self.button_grid = ButtonGrid(self.controller, defaults, tooltips)
# TODO: strings self.filters_label = BoldLabel(filters_heading)
self.filters_label = BoldLabel("Filters")
self.emitter.connect( self.emitter.connect(
"request_keyword_focus", lambda _: self.keyword_entry.grab_focus() "request_keyword_focus", lambda _: self.keyword_entry.grab_focus()
@@ -195,8 +201,7 @@ class FilterPanel(Gtk.Box):
self.maps_entry: Gtk.Entry = self.maps_combo.get_child() # type: ignore self.maps_entry: Gtk.Entry = self.maps_combo.get_child() # type: ignore
self.maps_entry.set_completion(completion) self.maps_entry.set_completion(completion)
# TODO: strings self.maps_entry.set_placeholder_text(map_placeholder)
self.maps_entry.set_placeholder_text("Filter by map")
self.maps_entry.connect("changed", self._on_map_completion, True) self.maps_entry.connect("changed", self._on_map_completion, True)
self.maps_entry.connect("key-press-event", self._on_map_entry_keypress) self.maps_entry.connect("key-press-event", self._on_map_entry_keypress)
self.maps_entry.connect("activate", self._on_maps_activated) self.maps_entry.connect("activate", self._on_maps_activated)
+4 -5
View File
@@ -13,6 +13,7 @@ from dzgui.const.constants import (
) )
from dzgui.const.enum import ServerTab from dzgui.const.enum import ServerTab
from dzgui.managers.update import UpdateManager from dzgui.managers.update import UpdateManager
from dzgui.strings.buttons import update_button, version_notifier, version_tooltip
from dzgui.util.clip import copy_clipboard from dzgui.util.clip import copy_clipboard
from dzgui.util.file import is_writeable from dzgui.util.file import is_writeable
from dzgui.views.components.buttonbox import ButtonBox from dzgui.views.components.buttonbox import ButtonBox
@@ -65,8 +66,7 @@ class RightPanel(Gtk.Box):
vexpand=True, vexpand=True,
halign=Gtk.Align.END, halign=Gtk.Align.END,
valign=Gtk.Align.END, valign=Gtk.Align.END,
# TODO: strings tooltip_text=version_tooltip,
tooltip_text="Click to copy to clipboard",
) )
eb = Gtk.EventBox(halign=Gtk.Align.END, valign=Gtk.Align.END) eb = Gtk.EventBox(halign=Gtk.Align.END, valign=Gtk.Align.END)
eb.add(self.version_label) eb.add(self.version_label)
@@ -78,7 +78,7 @@ class RightPanel(Gtk.Box):
self.pack_start(self.sel_panel, NO_EXPAND, NO_FILL, NO_PADDING) self.pack_start(self.sel_panel, NO_EXPAND, NO_FILL, NO_PADDING)
self.update_button = IconTextButton( self.update_button = IconTextButton(
"dialog-information-symbolic", label="Updates available" "dialog-information-symbolic", label=update_button
) )
self.gutter_box = Gtk.Box( self.gutter_box = Gtk.Box(
@@ -131,7 +131,6 @@ class RightPanel(Gtk.Box):
return return
self.copying = True self.copying = True
version = self.version_label.get_text() version = self.version_label.get_text()
# TODO: strings self.version_label.set_text(version_notifier)
self.version_label.set_text("Copied!")
copy_clipboard(version) copy_clipboard(version)
GLib.timeout_add_seconds(1, revert) GLib.timeout_add_seconds(1, revert)
+1 -2
View File
@@ -140,8 +140,7 @@ class WaitDialog(GenericDialog):
self.cur_job += 1 self.cur_job += 1
def _on_cancel_clicked(self, button: Gtk.Button) -> None: def _on_cancel_clicked(self, button: Gtk.Button) -> None:
# TODO: strings GLib.idle_add(self.update_text, dialogs.caught_cancel_signal)
GLib.idle_add(self.update_text, "Caught cancel signal, cleaning up")
self.controller.set_cancel_event() self.controller.set_cancel_event()
def show_cancel(self, state: bool) -> None: def show_cancel(self, state: bool) -> None:
+11 -19
View File
@@ -1,12 +1,13 @@
from typing import Self, TYPE_CHECKING from typing import Self, TYPE_CHECKING
from dzgui.strings import notes
from dzgui.views.components.entry import ValidatedEntry from dzgui.views.components.entry import ValidatedEntry
from dzgui.views.dialogs.generic import GenericDialog from dzgui.views.dialogs.generic import GenericDialog
import gi # noqa E402 import gi
gi.require_version("Gtk", "3.0") gi.require_version("Gtk", "3.0")
from gi.repository import Gdk, Gtk # noqa E402 from gi.repository import Gtk
if TYPE_CHECKING: if TYPE_CHECKING:
from dzgui.controllers.mc import Controller from dzgui.controllers.mc import Controller
@@ -14,23 +15,20 @@ if TYPE_CHECKING:
class NoteDialog(GenericDialog): class NoteDialog(GenericDialog):
def __init__(self, controller: "Controller"): def __init__(self, controller: "Controller"):
# TODO: add to strings
title = "Add a short note/reminder."
secondary = "Limit 30 chars"
super().__init__( super().__init__(
controller=controller, controller=controller,
text=title, text=notes.dialog_title,
buttons=Gtk.ButtonsType.NONE, buttons=Gtk.ButtonsType.NONE,
mtype=Gtk.MessageType.INFO, mtype=Gtk.MessageType.INFO,
secondary=secondary, secondary=notes.dialog_subtitle,
) )
self.controller = controller self.controller = controller
delete_button = Gtk.Button(label="Delete note") delete_button = Gtk.Button(label=notes.delete_button)
delete_button.set_sensitive(False) delete_button.set_sensitive(False)
self.add_action_widget(delete_button, Gtk.ResponseType.CANCEL) self.add_action_widget(delete_button, Gtk.ResponseType.CANCEL)
self.ok = self.add_button("Update note", Gtk.ResponseType.OK) self.ok = self.add_button(notes.ok_button, Gtk.ResponseType.OK)
self.ok.grab_default() self.ok.grab_default()
self.entry = ValidatedEntry(controller, self.validate) self.entry = ValidatedEntry(controller, self.validate)
@@ -42,7 +40,7 @@ class NoteDialog(GenericDialog):
self.entry.set_text(note) self.entry.set_text(note)
if len(note) > 0: if len(note) > 0:
delete_button.set_sensitive(True) delete_button.set_sensitive(True)
self.format_secondary_text(f"Current note: '{note}'") self.format_secondary_text(notes.current_note.format(note))
elif len(note) == 0: elif len(note) == 0:
self.ok.set_sensitive(False) self.ok.set_sensitive(False)
@@ -55,9 +53,6 @@ class NoteDialog(GenericDialog):
self.entry.connect("changed", self._on_text_changed) self.entry.connect("changed", self._on_text_changed)
def _on_text_changed(self, entry: Gtk.Entry) -> None: def _on_text_changed(self, entry: Gtk.Entry) -> None:
"""
Called in conjunction with signal callback in the parent class
"""
if len(entry.get_text()) == 0: if len(entry.get_text()) == 0:
self.ok.set_sensitive(False) self.ok.set_sensitive(False)
@@ -71,14 +66,11 @@ class NoteDialog(GenericDialog):
def _on_response(self, dialog: Self, response: Gtk.ResponseType) -> None: def _on_response(self, dialog: Self, response: Gtk.ResponseType) -> None:
match response: match response:
case Gtk.ResponseType.DELETE_EVENT:
self.destroy()
case Gtk.ResponseType.OK: case Gtk.ResponseType.OK:
note = self.entry.get_text() note = self.entry.get_text()
self.controller.add_note(note) self.controller.add_note(note)
self.destroy()
case Gtk.ResponseType.CANCEL: case Gtk.ResponseType.CANCEL:
self.controller.delete_note() self.controller.delete_note()
self.destroy() case _:
case Gtk.ResponseType.CANCEL | Gtk.ResponseType.CLOSE: pass
self.destroy() self.destroy()
+1 -1
View File
@@ -14,7 +14,7 @@ from dzgui.const.constants import (
HERO_PATH, HERO_PATH,
FLATPAK_ROOT_PATH, FLATPAK_ROOT_PATH,
LEGACY_CONFIG_PATH, LEGACY_CONFIG_PATH,
TMP_PATH TMP_PATH,
) )
from dzgui.const.boilerplate import config_boilerplate from dzgui.const.boilerplate import config_boilerplate
from dzgui.const.endpoints import STEAM_API_SETUP from dzgui.const.endpoints import STEAM_API_SETUP
+2 -2
View File
@@ -5,6 +5,7 @@ from typing import Self, TYPE_CHECKING
from dzgui.const.constants import APP_NAME from dzgui.const.constants import APP_NAME
from dzgui.const.enum import ContextMenuGroup, ServerTab from dzgui.const.enum import ContextMenuGroup, ServerTab
from dzgui.views.trees.tree_servers import ServerTreeView from dzgui.views.trees.tree_servers import ServerTreeView
from dzgui.strings.generic import tab_changed_label
from dzgui.util.strings import server_labels from dzgui.util.strings import server_labels
import gi import gi
@@ -147,8 +148,7 @@ class ServerNotebook(Gtk.ScrolledWindow):
label = self.notebook.get_tab_label_text(child) label = self.notebook.get_tab_label_text(child)
if label is not None: if label is not None:
# TODO: strings text = label.strip(tab_changed_label)
text = label.strip("*")
self.notebook.set_tab_label_text(child, text) self.notebook.set_tab_label_text(child, text)
tree = child.get_tree() tree = child.get_tree()