mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 14:42:54 +01:00
fix: lan panel sensitivity
This commit is contained in:
1 parent
d4b346006d
commit
2c8e722d8a
8 files changed
+41
-26
No files matched your search
+12
-1
@@ -379,12 +379,23 @@ class Controller(GObject.GObject):
|
|||||||
j = res.json
|
j = res.json
|
||||||
serv += j["response"]["servers"]
|
serv += j["response"]["servers"]
|
||||||
|
|
||||||
|
"""
|
||||||
|
TODO: e.g. class method like 'total'
|
||||||
|
GLib.idle_add(lambda: self.wait_dialog.format_secondary_text("Pass 2"))
|
||||||
|
GLib.idle_add(lambda: self.wait_dialog.prog.set_fraction(0.5)) subclass or wrap add fraction and increment, then
|
||||||
|
calculate off of total
|
||||||
|
"""
|
||||||
res = Servers.query_api(key, APPID_DAYZ_EXP, "")
|
res = Servers.query_api(key, APPID_DAYZ_EXP, "")
|
||||||
if res.status == 200 and res.parsed is True:
|
if res.status == 200 and res.parsed is True:
|
||||||
j = res.json
|
j = res.json
|
||||||
serv += j["response"]["servers"]
|
serv += j["response"]["servers"]
|
||||||
|
|
||||||
|
GLib.idle_add(
|
||||||
|
lambda: self.wait_dialog.format_secondary_text("Unpacking servers")
|
||||||
|
)
|
||||||
|
|
||||||
# TODO: additional ping column pass, collated
|
# TODO: additional ping column pass, collated
|
||||||
|
# GLib.idle_add(lambda: self.wait_dialog.prog.set_fraction(0.75))
|
||||||
parsed = Servers.parse_json(serv)
|
parsed = Servers.parse_json(serv)
|
||||||
self.push_data(parsed, FilterMode.INITIAL, success=True)
|
self.push_data(parsed, FilterMode.INITIAL, success=True)
|
||||||
|
|
||||||
@@ -839,7 +850,7 @@ class Controller(GObject.GObject):
|
|||||||
|
|
||||||
self.to_insert = None
|
self.to_insert = None
|
||||||
|
|
||||||
# TODO:
|
# TODO: drop
|
||||||
self.success = success
|
self.success = success
|
||||||
if success:
|
if success:
|
||||||
if data is None:
|
if data is None:
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ class LanPanel(Gtk.Frame):
|
|||||||
def __init__(self, controller: "Controller") -> None:
|
def __init__(self, controller: "Controller") -> None:
|
||||||
super().__init__(margin_top=10, margin_bottom=5)
|
super().__init__(margin_top=10, margin_bottom=5)
|
||||||
|
|
||||||
# TODO: hide lan panel on other tabs
|
|
||||||
self.controller = controller
|
self.controller = controller
|
||||||
self.emitter = controller.get_emitter()
|
self.emitter = controller.get_emitter()
|
||||||
|
|
||||||
@@ -56,9 +55,14 @@ class LanPanel(Gtk.Frame):
|
|||||||
|
|
||||||
self.add(self.grid)
|
self.add(self.grid)
|
||||||
|
|
||||||
|
self.entry.set_sensitive(False)
|
||||||
|
|
||||||
def _on_radio_toggled(self, button: Gtk.RadioButton) -> None:
|
def _on_radio_toggled(self, button: Gtk.RadioButton) -> None:
|
||||||
self.entry.set_sensitive(not button.get_active())
|
state = button.get_active()
|
||||||
if len(self.entry.get_text()) < 1:
|
self.entry.set_sensitive(not state)
|
||||||
|
if state:
|
||||||
|
self.scan.set_sensitive(True)
|
||||||
|
elif len(self.entry.get_text()) < 1:
|
||||||
self.scan.set_sensitive(False)
|
self.scan.set_sensitive(False)
|
||||||
|
|
||||||
def _on_port_validated(self, entry: Gtk.Entry, state: bool) -> None:
|
def _on_port_validated(self, entry: Gtk.Entry, state: bool) -> None:
|
||||||
@@ -76,7 +80,6 @@ class FavPanel(Gtk.Frame):
|
|||||||
emitter = self.controller.get_emitter()
|
emitter = self.controller.get_emitter()
|
||||||
emitter.connect("fav_server_changed", self._on_fav_server_changed)
|
emitter.connect("fav_server_changed", self._on_fav_server_changed)
|
||||||
|
|
||||||
# TODO: improve upon this, cache fav ip when changed globally
|
|
||||||
self.server_name, self.server_ip = self.controller.get_favorite()
|
self.server_name, self.server_ip = self.controller.get_favorite()
|
||||||
server_name = (
|
server_name = (
|
||||||
f"{self.server_name} ({self.server_ip})"
|
f"{self.server_name} ({self.server_ip})"
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ class FilterPanel(Gtk.Box):
|
|||||||
"request_maps_focus", lambda _: self.maps_entry.grab_focus()
|
"request_maps_focus", lambda _: self.maps_entry.grab_focus()
|
||||||
)
|
)
|
||||||
self.emitter.connect("check_button_pressed", self.toggle_check_by_key)
|
self.emitter.connect("check_button_pressed", self.toggle_check_by_key)
|
||||||
self.emitter.connect("servers_loaded", self._on_servers_loaded)
|
# self.emitter.connect("servers_loaded", self._on_servers_loaded)
|
||||||
self.emitter.connect("load_maps", self._on_maps_loaded)
|
self.emitter.connect("load_maps", self._on_maps_loaded)
|
||||||
|
|
||||||
# TODO: break into MapsCombo class
|
# TODO: break into MapsCombo class
|
||||||
@@ -214,11 +214,6 @@ class FilterPanel(Gtk.Box):
|
|||||||
self.maps_combo.set_active(i)
|
self.maps_combo.set_active(i)
|
||||||
self._on_map_changed(self.maps_combo)
|
self._on_map_changed(self.maps_combo)
|
||||||
|
|
||||||
def _on_servers_loaded(self, emitter: "Emitter", tab: "ServerTab") -> None:
|
|
||||||
state = self.controller.has_server_model()
|
|
||||||
for widget in (self.keyword_entry, self.maps_combo, self.button_grid):
|
|
||||||
widget.set_sensitive(state)
|
|
||||||
|
|
||||||
def _on_maps_loaded(self, emitter: "Emitter", store: Gtk.ListStore) -> None:
|
def _on_maps_loaded(self, emitter: "Emitter", store: Gtk.ListStore) -> None:
|
||||||
self.maps_combo.set_model(store)
|
self.maps_combo.set_model(store)
|
||||||
self.maps_combo.set_active(0)
|
self.maps_combo.set_active(0)
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ class ModSelectionPanel(Gtk.Box):
|
|||||||
|
|
||||||
def swap_sensitive(self, state: bool) -> None:
|
def swap_sensitive(self, state: bool) -> None:
|
||||||
for child in self.stale_panel.get_children():
|
for child in self.stale_panel.get_children():
|
||||||
child.set_sensitive(state)
|
|
||||||
for child in self.main_panel.get_children():
|
|
||||||
if child.enum == ModButton.HIGHLIGHT_STALE:
|
if child.enum == ModButton.HIGHLIGHT_STALE:
|
||||||
child.set_sensitive(not state)
|
child.set_sensitive(not state)
|
||||||
|
else:
|
||||||
|
child.set_sensitive(state)
|
||||||
|
|
||||||
def _on_button_clicked(self, button: EnumeratedModButton) -> None:
|
def _on_button_clicked(self, button: EnumeratedModButton) -> None:
|
||||||
match button.enum:
|
match button.enum:
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class RightPanel(Gtk.Box):
|
|||||||
self.controller.register_widget("right_panel", self)
|
self.controller.register_widget("right_panel", self)
|
||||||
|
|
||||||
emitter = controller.get_emitter()
|
emitter = controller.get_emitter()
|
||||||
emitter.connect("servers_loaded", self.toggle_refresh_button)
|
emitter.connect("servers_loaded", self._on_servers_loaded)
|
||||||
|
|
||||||
self.button_vbox = ButtonBox(controller)
|
self.button_vbox = ButtonBox(controller)
|
||||||
self.filters_vbox = FilterPanel(controller)
|
self.filters_vbox = FilterPanel(controller)
|
||||||
@@ -40,15 +40,12 @@ 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)
|
||||||
|
|
||||||
def toggle_refresh_button(self, emitter: "Emitter", context: "ServerTab") -> None:
|
def _on_servers_loaded(self, emitter: "Emitter", context: "ServerTab") -> None:
|
||||||
# TODO: when a row is added to a previously empty table,
|
state = self.controller.has_server_model()
|
||||||
# make sure "servers_loaded" signal is emitted
|
for widget in (self.refresh_button, self.filters_vbox):
|
||||||
self.refresh_button.set_sensitive(True)
|
widget.set_sensitive(state)
|
||||||
model = self.controller.get_active_treeview().get_model()
|
if context in (ServerTab.RECENT, ServerTab.SAVED):
|
||||||
# NOTE: if saved servers or history are empty, there is nothing to refresh
|
self.refresh_button.set_sensitive(False)
|
||||||
if model is None:
|
|
||||||
if context in (ServerTab.RECENT, ServerTab.SAVED):
|
|
||||||
self.refresh_button.set_sensitive(False)
|
|
||||||
|
|
||||||
# TODO: reference for ping pass
|
# TODO: reference for ping pass
|
||||||
# def _on_ping_clicked(self, button: Gtk.Button) -> None:
|
# def _on_ping_clicked(self, button: Gtk.Button) -> None:
|
||||||
|
|||||||
@@ -101,7 +101,9 @@ class NotifyDialog(GenericDialog):
|
|||||||
|
|
||||||
|
|
||||||
class WaitDialog(GenericDialog):
|
class WaitDialog(GenericDialog):
|
||||||
def __init__(self, controller: "Controller", secondary: str):
|
def __init__(
|
||||||
|
self, controller: "Controller", secondary: str, show_progress: bool = False
|
||||||
|
):
|
||||||
super().__init__(
|
super().__init__(
|
||||||
controller=controller,
|
controller=controller,
|
||||||
text=strings.wait,
|
text=strings.wait,
|
||||||
@@ -113,9 +115,12 @@ class WaitDialog(GenericDialog):
|
|||||||
self.connect("delete-event", self._on_dialog_delete)
|
self.connect("delete-event", self._on_dialog_delete)
|
||||||
content = self.get_content_area()
|
content = self.get_content_area()
|
||||||
spinner = Gtk.Spinner()
|
spinner = Gtk.Spinner()
|
||||||
|
self.prog = Gtk.ProgressBar()
|
||||||
content.pack_end(spinner, NO_EXPAND, NO_FILL, 0)
|
content.pack_end(spinner, NO_EXPAND, NO_FILL, 0)
|
||||||
|
if show_progress:
|
||||||
spinner.start()
|
content.pack_end(self.prog, NO_EXPAND, NO_FILL, 0)
|
||||||
|
else:
|
||||||
|
spinner.start()
|
||||||
|
|
||||||
def _on_dialog_delete(
|
def _on_dialog_delete(
|
||||||
self, response_id: Gtk.ResponseType, event: Gdk.Event
|
self, response_id: Gtk.ResponseType, event: Gdk.Event
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
|||||||
)
|
)
|
||||||
self.lan = ServerTreeView(controller, ServerTab.LAN, ContextMenuGroup.SCAN_LAN)
|
self.lan = ServerTreeView(controller, ServerTab.LAN, ContextMenuGroup.SCAN_LAN)
|
||||||
|
|
||||||
|
self.recent.set_query_func(self.controller.dump_test_2)
|
||||||
self.lan.set_query_func(self.controller.dump_test_2)
|
self.lan.set_query_func(self.controller.dump_test_2)
|
||||||
self.browser.set_query_func(self.controller.dump_api)
|
self.browser.set_query_func(self.controller.dump_api)
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,10 @@ class ServerTreeView(ContextMixin, TreeView):
|
|||||||
|
|
||||||
def _on_servers_loaded(self, emitter: "Emitter", tab: "ServerTab") -> None:
|
def _on_servers_loaded(self, emitter: "Emitter", tab: "ServerTab") -> None:
|
||||||
# FIXME: gets called on every tab, should be localized only to that context
|
# FIXME: gets called on every tab, should be localized only to that context
|
||||||
|
# hook signal from main controller
|
||||||
state = self.controller.has_server_model()
|
state = self.controller.has_server_model()
|
||||||
|
# NOTE: workaround for GTK bug where fullscreen causes headers to vanish when model is None
|
||||||
|
self.set_headers_visible(state)
|
||||||
self.set_headers_clickable(state)
|
self.set_headers_clickable(state)
|
||||||
|
|
||||||
def _on_servers_loaded_init(self, emitter: "Emitter") -> None:
|
def _on_servers_loaded_init(self, emitter: "Emitter") -> None:
|
||||||
|
|||||||
Reference in new issue
Block a user