mirror of
https://github.com/aclist/dztui.git
synced 2026-11-10 20:10:38 +01:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e5fadf928 | ||
|
|
fa2f86b03e | ||
|
|
c8fe6ec056 | ||
|
|
6901e5456e |
No files matched your search
@@ -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)
|
||||||
|
|||||||
@@ -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,8 +3,8 @@ from typing import TYPE_CHECKING
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository.Gtk import ListStore
|
from gi.repository.Gtk import ListStore # noqa E402
|
||||||
from gi.repository import GObject
|
from gi.repository import Gdk, GObject # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.const.enum import NotebookPage, ServerTab
|
from dzgui.const.enum import NotebookPage, ServerTab
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ from dzgui.views.dialogs.generic import ExceptionDialog
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk, GLib, GObject
|
from gi.repository import Gtk, Gdk, GLib, GObject # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
|
|||||||
@@ -48,13 +48,18 @@ 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
|
||||||
from dzgui.views.dialogs.generic import ExceptionDialog
|
from dzgui.views.dialogs.generic import ExceptionDialog
|
||||||
from dzgui.views.dialogs.servers import ServerDetailsDialog, ServerModDialog
|
from dzgui.views.dialogs.servers import ServerDetailsDialog, ServerModDialog
|
||||||
|
|
||||||
|
import gi
|
||||||
|
|
||||||
|
gi.require_version("Gtk", "3.0")
|
||||||
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.api.servers import A2SInfo, Record
|
from dzgui.api.servers import A2SInfo, Record
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
@@ -192,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(
|
||||||
@@ -272,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
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import dzgui.api.pefile as PeFile
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import GLib
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,11 @@ from dzgui.strings import dialogs
|
|||||||
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
|
||||||
from dzgui.views.dialogs.generic import ExceptionDialog, QuitDialog
|
from dzgui.views.dialogs.generic import ExceptionDialog, QuitDialog
|
||||||
|
|
||||||
|
import gi
|
||||||
|
|
||||||
|
gi.require_version("Gtk", "3.0")
|
||||||
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ from dzgui.util.strings import delimiter
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository.Gtk import ListStore, TreeIter
|
from gi.repository.Gtk import ListStore, TreeIter # noqa E402
|
||||||
from gi.repository import GObject
|
from gi.repository import GObject # noqa E402
|
||||||
|
|
||||||
GTYPE_TO_PYTHON = {
|
GTYPE_TO_PYTHON = {
|
||||||
GObject.type_from_name(GObject.type_name(ptype)): ptype
|
GObject.type_from_name(GObject.type_name(ptype)): ptype
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from dzgui.views.dialogs.generic import ExceptionDialog
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.api.servers import A2SInfo, Record
|
from dzgui.api.servers import A2SInfo, Record
|
||||||
|
|||||||
@@ -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"
|
||||||
@@ -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"
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
all_maps = "All maps"
|
||||||
|
filters_heading = "Filters"
|
||||||
|
keyword_placeholder = "Filter by keyword"
|
||||||
|
map_placeholder = "Filter by map"
|
||||||
@@ -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."
|
||||||
@@ -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}'"
|
||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
gi.require_version("Gdk", "3.0")
|
||||||
|
from gi.repository import Gtk, Gdk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
def copy_clipboard(text: str) -> None:
|
def copy_clipboard(text: str) -> None:
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ from dzgui.const.constants import APP_NAME_LOWER, CSS_PATH
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
def add_class(widget: Gtk.Widget, label: str) -> None:
|
def add_class(widget: Gtk.Widget, label: str) -> None:
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ from dzgui.const.constants import APP_NAME
|
|||||||
from dzgui.util.ip import get_coords
|
from dzgui.util.ip import get_coords
|
||||||
from dzgui.util.localize import number
|
from dzgui.util.localize import number
|
||||||
|
|
||||||
|
import gi
|
||||||
|
|
||||||
|
gi.require_version("Gtk", "3.0")
|
||||||
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from queue import Queue
|
from queue import Queue
|
||||||
from dzgui.const.enum import ServerTab
|
from dzgui.const.enum import ServerTab
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from dzgui.util.strings import no_mods, no_servers, workshop
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
def format_pango(text: str) -> str:
|
def format_pango(text: str) -> str:
|
||||||
|
|||||||
+1
-4
@@ -1,8 +1,6 @@
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gdk
|
from gi.repository import Gdk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
def is_navkey(key: int) -> bool:
|
def is_navkey(key: int) -> bool:
|
||||||
nav_keys = [
|
nav_keys = [
|
||||||
@@ -20,7 +18,6 @@ def is_navkey(key: int) -> bool:
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def is_ctrl_mask(event: Gdk.EventKey) -> bool:
|
def is_ctrl_mask(event: Gdk.EventKey) -> bool:
|
||||||
if event.state is Gdk.ModifierType.CONTROL_MASK:
|
if event.state is Gdk.ModifierType.CONTROL_MASK:
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
def set_surrounding_margins(widget: Gtk.Widget, margin: int) -> None:
|
def set_surrounding_margins(widget: Gtk.Widget, margin: int) -> None:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from typing import cast, TYPE_CHECKING
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gdk, GLib
|
from gi.repository import Gtk, Gdk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
+1
-1
@@ -38,7 +38,7 @@ import gi
|
|||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
gi.require_version("GLibUnix", "2.0")
|
gi.require_version("GLibUnix", "2.0")
|
||||||
from gi.repository import Gtk, GLib, GLibUnix, Gdk # type: ignore
|
from gi.repository import Gtk, GLib, GLibUnix, Gdk # type: ignore # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.config.userprefs import UserPrefs
|
from dzgui.config.userprefs import UserPrefs
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from dzgui.const.enum import ButtonType
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ from dzgui.strings import connect_panel
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib
|
from gi.repository import Gtk, Gdk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from gi.repository import GLib
|
from gi.repository import GLib
|
||||||
@@ -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 = ""
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -18,7 +23,7 @@ from dzgui.views.components.labels import BoldLabel
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from dzgui.util.format import embolden
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -4,12 +4,13 @@ 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
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk, GObject
|
from gi.repository import Gtk, Gdk, GObject # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from dzgui.const.constants import HELP_BUBBLE
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -10,14 +10,19 @@ 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
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk, Pango, GLib
|
from gi.repository import Gtk, Gdk, Pango, GLib # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
@@ -102,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
|
||||||
@@ -177,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()
|
||||||
@@ -198,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)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class Icon(Gtk.Image):
|
class Icon(Gtk.Image):
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from dzgui.util.format import embolden
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class BoldLabel(Gtk.Label):
|
class BoldLabel(Gtk.Label):
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class MapsCombo(Gtk.EntryCompletion):
|
class MapsCombo(Gtk.EntryCompletion):
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from dzgui.views.components.labels import BoldLabel
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -23,7 +24,7 @@ from dzgui.views.components.buttons import IconTextButton, RefreshButton, KeysBu
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk, GLib
|
from gi.repository import Gtk, Gdk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
@@ -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)
|
||||||
@@ -7,7 +7,7 @@ from dzgui.views.components.buttons import LoggerAlertsButton
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.const.enum import ServerTab
|
from dzgui.const.enum import ServerTab
|
||||||
|
|||||||
@@ -2,9 +2,8 @@ from typing import Literal
|
|||||||
from dzgui.util import css
|
from dzgui.util import css
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class Toast(Gtk.EventBox):
|
class Toast(Gtk.EventBox):
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from dzgui.views.components.labels import BoldLabel
|
|||||||
from dzgui.views.components.box import VBox, HBox
|
from dzgui.views.components.box import VBox, HBox
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib, GObject
|
from gi.repository import Gtk, GLib, GObject # type: ignore # noqa E402
|
||||||
|
|
||||||
DAY_START_TIME = time(hour=6, minute=0, second=0)
|
DAY_START_TIME = time(hour=6, minute=0, second=0)
|
||||||
DAY_END_TIME = time(hour=18, minute=0, second=0)
|
DAY_END_TIME = time(hour=18, minute=0, second=0)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from dzgui.views.mixins.colorscheme import ColorAwareApp
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class AbortDialog(ColorAwareApp, Gtk.MessageDialog): # type: ignore
|
class AbortDialog(ColorAwareApp, Gtk.MessageDialog): # type: ignore
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ from pathlib import Path
|
|||||||
|
|
||||||
from dzgui.util.strings import picker
|
from dzgui.util.strings import picker
|
||||||
|
|
||||||
import gi
|
import gi # noqa E402
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class FilePicker(Gtk.FileChooserDialog):
|
class FilePicker(Gtk.FileChooserDialog):
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from dzgui.views.components.buttons import ClipboardButton
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from dzgui.views.components.buttons import SteamTextButton
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
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
|
||||||
|
|
||||||
@@ -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()
|
||||||
@@ -18,7 +18,7 @@ from dzgui.views.mixins.colorscheme import ColorAwareApp
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib, Pango
|
from gi.repository import Gtk, GLib, Pango # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class Assistant(Gtk.Assistant):
|
class Assistant(Gtk.Assistant):
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ from dzgui.views.trees.tree_simple import SimpleTree
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, GLib, GObject, GdkPixbuf
|
from gi.repository import Gdk, Gtk, GLib, GObject, GdkPixbuf # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.config.xdg import Xdg
|
from dzgui.config.xdg import Xdg
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from dzgui.views.trees.tree_base import TreeView
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from dzgui.util.keys import is_ctrl_mask
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class CursorMixin:
|
class CursorMixin:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from dzgui.views.trees.tree_base import TreeView
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class ModsMixin:
|
class ModsMixin:
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from dzgui.views.mixins.scrollable_mixin import ScrollableMixin
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ from dzgui.util.strings import developers
|
|||||||
from dzgui.views.components.labels import BoldLabel
|
from dzgui.views.components.labels import BoldLabel
|
||||||
from dzgui.views.trees.tree_base import TreeView
|
from dzgui.views.trees.tree_base import TreeView
|
||||||
|
|
||||||
import gi
|
import gi # noqa E402
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from dzgui.views.trees.tree_menu import MenuTreeView
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from dzgui.util.css import add_class
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from dzgui.views.trees.tree_log import LogTreeView
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ from dzgui.views.trees.tree_server_mods import ServerModTreeView
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gdk, Gtk
|
from gi.repository import Gdk, Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
@@ -5,12 +5,13 @@ 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
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, Gdk, GLib # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(APP_NAME)
|
logger = logging.getLogger(APP_NAME)
|
||||||
|
|
||||||
@@ -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()
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ from dzgui.views.mixins.scrollable_mixin import ScrollableMixin
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
# TODO: wrap and center long values
|
# TODO: wrap and center long values
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from dzgui.views.mixins.context_mixin import ContextMixin
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk
|
from gi.repository import Gtk, GLib, Gdk, GObject, Pango # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ line-length = 88
|
|||||||
indent-width = 4
|
indent-width = 4
|
||||||
extend-exclude = ["*lib/a2s"]
|
extend-exclude = ["*lib/a2s"]
|
||||||
lint.unfixable = ["F401", "I001"]
|
lint.unfixable = ["F401", "I001"]
|
||||||
lint.ignore = ["E402"]
|
|
||||||
|
|
||||||
[tool.ruff.format]
|
[tool.ruff.format]
|
||||||
quote-style = "double"
|
quote-style = "double"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from shared import get_git_root
|
from pathlib import Path
|
||||||
|
|
||||||
BOILERPLATE = """
|
BOILERPLATE = """
|
||||||
This file includes the combined licenses to the following components:
|
This file includes the combined licenses to the following components:
|
||||||
@@ -40,7 +40,7 @@ class CombinedLicense:
|
|||||||
|
|
||||||
def concat_license() -> str:
|
def concat_license() -> str:
|
||||||
combined = CombinedLicense()
|
combined = CombinedLicense()
|
||||||
root = get_git_root()
|
root = Path(__file__).resolve().parents[1]
|
||||||
licenses = root.joinpath("docs/licenses")
|
licenses = root.joinpath("docs/licenses")
|
||||||
|
|
||||||
main_license = root.joinpath(LICENSE_FILE)
|
main_license = root.joinpath(LICENSE_FILE)
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
from shared import get_git_root
|
par = Path(__file__).parent.parent
|
||||||
|
clog = par / "CHANGELOG.md"
|
||||||
root = get_git_root()
|
target = par / "dzgui/data/CHANGELOG.md"
|
||||||
clog = root.joinpath("CHANGELOG.md")
|
|
||||||
target = root.joinpath("dzgui/data/CHANGELOG.md")
|
|
||||||
|
|
||||||
shutil.copy(clog, target)
|
shutil.copy(clog, target)
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import tomllib
|
import tomllib
|
||||||
from shared import get_git_root
|
from pathlib import Path
|
||||||
|
|
||||||
|
root = Path(__file__).resolve().parents[1]
|
||||||
|
|
||||||
|
|
||||||
def get_entrypoint() -> None:
|
def get_entrypoint() -> None:
|
||||||
root = get_git_root()
|
|
||||||
p = root.joinpath("pyproject.toml")
|
p = root.joinpath("pyproject.toml")
|
||||||
with open(p, "rb") as f:
|
with open(p, "rb") as f:
|
||||||
t = tomllib.load(f)
|
t = tomllib.load(f)
|
||||||
|
|||||||
+2
-3
@@ -3,15 +3,14 @@ import requests
|
|||||||
import subprocess
|
import subprocess
|
||||||
import tarfile
|
import tarfile
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
from urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
|
|
||||||
from shared import get_git_root
|
|
||||||
|
|
||||||
BUILD = "3.13.9"
|
BUILD = "3.13.9"
|
||||||
DATE = "20251014"
|
DATE = "20251014"
|
||||||
CPYTHON_BUILD = f"cpython-{BUILD}"
|
CPYTHON_BUILD = f"cpython-{BUILD}"
|
||||||
|
|
||||||
root = get_git_root()
|
root = Path(__file__).resolve().parents[1]
|
||||||
build_dir = root.joinpath("build")
|
build_dir = root.joinpath("build")
|
||||||
cpython_dir = build_dir.joinpath(CPYTHON_BUILD)
|
cpython_dir = build_dir.joinpath(CPYTHON_BUILD)
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -9,7 +9,6 @@ from pathlib import Path
|
|||||||
from concat_licenses import concat_license
|
from concat_licenses import concat_license
|
||||||
from parse_toml import get_entrypoint
|
from parse_toml import get_entrypoint
|
||||||
from prebuild import get_pyapp, rebuild_cpython
|
from prebuild import get_pyapp, rebuild_cpython
|
||||||
from shared import get_git_root
|
|
||||||
|
|
||||||
|
|
||||||
def update_uname(info: tarfile.TarInfo) -> tarfile.TarInfo:
|
def update_uname(info: tarfile.TarInfo) -> tarfile.TarInfo:
|
||||||
@@ -18,7 +17,7 @@ def update_uname(info: tarfile.TarInfo) -> tarfile.TarInfo:
|
|||||||
return info
|
return info
|
||||||
|
|
||||||
|
|
||||||
root = get_git_root()
|
root = Path(__file__).resolve().parents[1]
|
||||||
dist_dir = root.joinpath("dist")
|
dist_dir = root.joinpath("dist")
|
||||||
build_dir = root.joinpath("build")
|
build_dir = root.joinpath("build")
|
||||||
|
|
||||||
|
|||||||
+10
-1
@@ -1,7 +1,16 @@
|
|||||||
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from dzgui.app_init import build_gui
|
from dzgui.app_init import build_gui
|
||||||
from shared import get_git_root
|
|
||||||
|
|
||||||
|
def get_git_root() -> Path:
|
||||||
|
proc = subprocess.run(
|
||||||
|
["git", "rev-parse", "--show-toplevel"], capture_output=True, text=True
|
||||||
|
)
|
||||||
|
if proc.returncode != 0:
|
||||||
|
raise OSError("Failed to parse git root")
|
||||||
|
return Path(proc.stdout.rstrip())
|
||||||
|
|
||||||
|
|
||||||
def get_image_path() -> Path:
|
def get_image_path() -> Path:
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
import subprocess
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
|
|
||||||
def get_git_root() -> Path:
|
|
||||||
proc = subprocess.run(
|
|
||||||
["git", "rev-parse", "--show-toplevel"], capture_output=True, text=True
|
|
||||||
)
|
|
||||||
if proc.returncode != 0:
|
|
||||||
raise OSError("Failed to parse git root")
|
|
||||||
return Path(proc.stdout.rstrip())
|
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
def iterate(search_str: str) -> None:
|
||||||
|
# TODO: exclude files from .gitignore
|
||||||
|
print()
|
||||||
|
print(f"Searching for '{search_str}'")
|
||||||
|
print()
|
||||||
|
files = Path(".").rglob("*")
|
||||||
|
ignore = [
|
||||||
|
"scripts/",
|
||||||
|
".git",
|
||||||
|
"egg",
|
||||||
|
"CHANGELOG",
|
||||||
|
".mypy",
|
||||||
|
"build/",
|
||||||
|
"test.py",
|
||||||
|
"bugs",
|
||||||
|
"pyproject.toml",
|
||||||
|
]
|
||||||
|
for file in files:
|
||||||
|
if file.is_dir():
|
||||||
|
continue
|
||||||
|
if any(s in str(file) for s in ignore):
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
text = file.read_text()
|
||||||
|
if search_str in text:
|
||||||
|
c = text.count(search_str)
|
||||||
|
if 0 < c < 2:
|
||||||
|
print(file, c)
|
||||||
|
except Exception:
|
||||||
|
continue
|
||||||
|
|
||||||
|
|
||||||
|
imports = ["Pango", "GObject", "GLib", "Gdk", "Gtk"]
|
||||||
|
for i in imports:
|
||||||
|
iterate(i)
|
||||||
@@ -6,7 +6,7 @@ from dzgui.views.dialogs.servers import ServerDetailsDialog
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk
|
from gi.repository import Gtk # noqa E402
|
||||||
|
|
||||||
|
|
||||||
class MockController:
|
class MockController:
|
||||||
|
|||||||
Reference in new issue
Block a user