feat: server threading WIP

This commit is contained in:
aclist committed 2026-01-19 08:27:10 +09:00
1 parent 2788abb755
commit fdd6cefe48
11 files changed
+147 -162

No files matched your search

+2 -1
View File
@@ -13,7 +13,8 @@ class ContextualButton(Gtk.Button):
def __init__(self, label, opens, tooltip, context):
super().__init__(
label=label,
tooltip_text=tooltip
tooltip_text=tooltip,
focus_on_click=False,
)
self.context = context
+2 -3
View File
@@ -1,7 +1,5 @@
from typing import TYPE_CHECKING
from dzgui.api.servers import validate_ip
from dzgui.util.css import add_class, remove_class
from dzgui.util.strings import connect_panel, fav_panel, lan_panel
from dzgui.views.components.buttons import AddButton, ClipboardButton, SteamConnectButton
from dzgui.views.components.entry import IpEntry, PortEntry
@@ -63,7 +61,8 @@ class FavPanel(Gtk.Frame):
user_fav, self.fav_ip = self.controller.get_favorite()
server_name = f"{user_fav} ({self.fav_ip})" if user_fav is not None else connect_panel.no_fav
self.fav_label = Gtk.Label(label=server_name, track_visited_links=False, halign=Gtk.Align.START, hexpand=True)
scrollable_label = Gtk.ScrolledWindow()
# NOTE: disable vscrollbar to prevent layout jumping behavior
scrollable_label = Gtk.ScrolledWindow(vscrollbar_policy=Gtk.PolicyType.NEVER)
scrollable_label.add(self.fav_label)
self.fav_button = SteamConnectButton()
+16 -8
View File
@@ -10,32 +10,40 @@ from gi.repository import Gtk # noqa E402
if TYPE_CHECKING:
from dzgui.controllers.mc import Controller
class Statusbar(Gtk.Statusbar):
class Statusbar(Gtk.Grid):
def __init__(self, controller: "Controller") -> None:
super().__init__()
super().__init__(orientation=Gtk.Orientation.HORIZONTAL)
self.controller = controller
self.controller.register_widget("statusbar", self)
help_text = strings.statusbar_helptext
self.set_text(help_text)
self.statusbar = Gtk.Statusbar()
self.spinner = Gtk.Spinner()
self.spinner.start()
version = self.controller.get_prefs().version
self.status_right_label = Gtk.Label(label=version)
self.add(self.status_right_label)
self.status_right_label = Gtk.Label(label=version, hexpand=True, halign=Gtk.Align.END)
self.attach(self.statusbar, 0, 0, 3, 1)
self.attach_next_to(self.spinner, self.statusbar, Gtk.PositionType.RIGHT, 3, 1)
self.attach_next_to(self.status_right_label, self.spinner, Gtk.PositionType.RIGHT, 3, 1)
self.set_text(help_text)
self.players = ""
def get_text(self) -> str:
area = self.get_message_area()
area = self.statusbar.get_message_area()
label = area.get_children()[0]
return label.get_text()
def set_text(self, string: str) -> None:
if string is None:
return
meta = self.get_context_id("Statusbar")
self.push(meta, string)
meta = self.statusbar.get_context_id("Statusbar")
self.statusbar.push(meta, string)
def refresh(self, row: "RowType") -> None:
if row is None: