mirror of
https://github.com/aclist/dztui.git
synced 2026-10-31 15:12:48 +01:00
chore: dynamic statusbar WIP
This commit is contained in:
1 parent
0306cc4380
commit
936bc074a5
8 files changed
+39
-35
No files matched your search
@@ -21,6 +21,7 @@
|
|||||||
- Integrated server notebook
|
- Integrated server notebook
|
||||||
- Retain position on servers
|
- Retain position on servers
|
||||||
- Propagate width changes to all tables
|
- Propagate width changes to all tables
|
||||||
|
- Remember tree position in menus
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
- Reduce padding on keys button
|
- Reduce padding on keys button
|
||||||
|
|||||||
+17
-21
@@ -374,12 +374,12 @@ class Controller:
|
|||||||
# TODO: set crumbs by signal
|
# TODO: set crumbs by signal
|
||||||
self.set_crumbs(button.get_label())
|
self.set_crumbs(button.get_label())
|
||||||
|
|
||||||
def get_help_text(self) -> str:
|
def get_help_row(self) -> str:
|
||||||
tv = self.mediator.menu
|
tv = self.mediator.menu
|
||||||
model = self.get_help_store()
|
model = self.get_help_store()
|
||||||
tree_iter = tv.get_focused_row_iter()
|
tree_iter = tv.get_focused_row_iter()
|
||||||
value = model.get_value(tree_iter, 0)
|
value = model.get_value(tree_iter, 1)
|
||||||
return value
|
return value.dict["tooltip"]
|
||||||
|
|
||||||
def open_user_workshop(self, uid: str) -> None:
|
def open_user_workshop(self, uid: str) -> None:
|
||||||
# NOTE: uid may contain leading zeroes, not a real integer
|
# NOTE: uid may contain leading zeroes, not a real integer
|
||||||
@@ -719,28 +719,24 @@ class Controller:
|
|||||||
|
|
||||||
def populate_model(self) -> None:
|
def populate_model(self) -> None:
|
||||||
treeview = self.get_active_treeview()
|
treeview = self.get_active_treeview()
|
||||||
if treeview.get_loaded() is False:
|
if treeview.get_loaded() is True:
|
||||||
# NOTE: cf. set_query_func()
|
self.mediator.statusbar.emit("server_page_changed", treeview.get_enum())
|
||||||
func = treeview.get_query_func()
|
return
|
||||||
if func is not None:
|
|
||||||
manager = treeview.get_filter_man()
|
func = treeview.get_query_func()
|
||||||
# TODO: this may lag?
|
if func is None:
|
||||||
manager.clear_model()
|
self.mediator.statusbar.emit("server_page_changed", treeview.get_enum())
|
||||||
self.set_callback(None, None)
|
return
|
||||||
self.call_on_thread(func)
|
manager = treeview.get_filter_man()
|
||||||
|
# TODO: this may lag?
|
||||||
|
manager.clear_model()
|
||||||
|
self.set_callback(None, None)
|
||||||
|
self.call_on_thread(func)
|
||||||
|
|
||||||
|
|
||||||
def focus_button_box(self) -> None:
|
def focus_button_box(self) -> None:
|
||||||
self.mediator.right_panel.focus_button_box()
|
self.mediator.right_panel.focus_button_box()
|
||||||
|
|
||||||
def present_servers(self) -> None:
|
|
||||||
treeview = self.get_active_treeview()
|
|
||||||
context = treeview.get_enum()
|
|
||||||
|
|
||||||
self.mediator.statusbar.emit("server_page_changed", context)
|
|
||||||
# TODO: signal for crumbs
|
|
||||||
crumbs = self.mediator.servers.get_cached_label()
|
|
||||||
self.set_crumbs(crumbs)
|
|
||||||
|
|
||||||
def toggle_check(self, event: Gdk.EventKey) -> None | Literal[False]:
|
def toggle_check(self, event: Gdk.EventKey) -> None | Literal[False]:
|
||||||
mappings = {
|
mappings = {
|
||||||
Gdk.KEY_1: 0,
|
Gdk.KEY_1: 0,
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
- Integrated server notebook
|
- Integrated server notebook
|
||||||
- Retain position on servers
|
- Retain position on servers
|
||||||
- Propagate width changes to all tables
|
- Propagate width changes to all tables
|
||||||
|
- Remember tree position in menus
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
- Reduce padding on keys button
|
- Reduce padding on keys button
|
||||||
|
|||||||
+2
-2
@@ -314,8 +314,8 @@ class Notebook(ScrollableMixin, Gtk.Notebook): # type: ignore
|
|||||||
MainController.mediator.statusbar.emit("notebook_page_changed", enum)
|
MainController.mediator.statusbar.emit("notebook_page_changed", enum)
|
||||||
|
|
||||||
self.is_return = False
|
self.is_return = False
|
||||||
if enum is NotebookPage.SERVERS:
|
#if enum is NotebookPage.SERVERS:
|
||||||
MainController.present_servers()
|
# MainController.present_servers()
|
||||||
|
|
||||||
|
|
||||||
class Grid(Gtk.Grid):
|
class Grid(Gtk.Grid):
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ from warnings import deprecated
|
|||||||
from typing import Self, Union, TYPE_CHECKING
|
from typing import Self, Union, TYPE_CHECKING
|
||||||
|
|
||||||
from dzgui.const.enum import NotebookPage, RowType
|
from dzgui.const.enum import NotebookPage, RowType
|
||||||
from dzgui.util import strings
|
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
@@ -29,13 +28,10 @@ class Statusbar(Gtk.Grid):
|
|||||||
self.controller = controller
|
self.controller = controller
|
||||||
self.controller.register_widget("statusbar", self)
|
self.controller.register_widget("statusbar", self)
|
||||||
|
|
||||||
help_text = strings.statusbar_helptext
|
|
||||||
|
|
||||||
self.playercount = ""
|
self.playercount = ""
|
||||||
self.statusbar = Gtk.Statusbar()
|
self.statusbar = Gtk.Statusbar()
|
||||||
|
|
||||||
self.spinner = Gtk.Spinner()
|
self.spinner = Gtk.Spinner()
|
||||||
self.spinner.start()
|
|
||||||
|
|
||||||
version = self.controller.get_prefs().version
|
version = self.controller.get_prefs().version
|
||||||
self.status_right_label = Gtk.Label(
|
self.status_right_label = Gtk.Label(
|
||||||
@@ -48,7 +44,6 @@ class Statusbar(Gtk.Grid):
|
|||||||
self.status_right_label, self.spinner, Gtk.PositionType.RIGHT, 3, 1
|
self.status_right_label, self.spinner, Gtk.PositionType.RIGHT, 3, 1
|
||||||
)
|
)
|
||||||
|
|
||||||
self.set_text(help_text, "Help")
|
|
||||||
self.players = ""
|
self.players = ""
|
||||||
|
|
||||||
self.connect("server_row_changed", self._on_server_row_changed)
|
self.connect("server_row_changed", self._on_server_row_changed)
|
||||||
@@ -60,6 +55,9 @@ class Statusbar(Gtk.Grid):
|
|||||||
def _on_notebook_page_changed(
|
def _on_notebook_page_changed(
|
||||||
self, statusbar: Self, context: "NotebookPage"
|
self, statusbar: Self, context: "NotebookPage"
|
||||||
) -> None:
|
) -> None:
|
||||||
|
if self.controller.loaded is False:
|
||||||
|
return
|
||||||
|
|
||||||
status = context.dict["statusbar"]
|
status = context.dict["statusbar"]
|
||||||
bar = ""
|
bar = ""
|
||||||
if status is False:
|
if status is False:
|
||||||
@@ -70,9 +68,13 @@ class Statusbar(Gtk.Grid):
|
|||||||
case NotebookPage.MODS:
|
case NotebookPage.MODS:
|
||||||
bar = self.controller.format_mod_statusbar()
|
bar = self.controller.format_mod_statusbar()
|
||||||
case NotebookPage.HELP:
|
case NotebookPage.HELP:
|
||||||
bar = self.controller.get_help_text()
|
bar = self.controller.get_help_row()
|
||||||
case NotebookPage.SERVERS:
|
case NotebookPage.SERVERS:
|
||||||
pass
|
# TODO:
|
||||||
|
from dzgui.const.enum import ServerTab
|
||||||
|
|
||||||
|
self.emit("server_page_changed", ServerTab.BROWSER)
|
||||||
|
return
|
||||||
|
|
||||||
self.set_by_context(context, bar)
|
self.set_by_context(context, bar)
|
||||||
|
|
||||||
@@ -98,10 +100,10 @@ class Statusbar(Gtk.Grid):
|
|||||||
self.set_by_context(context, pretty)
|
self.set_by_context(context, pretty)
|
||||||
|
|
||||||
def _on_server_page_changed(self, statusbar: Self, context: "ServerTab") -> None:
|
def _on_server_page_changed(self, statusbar: Self, context: "ServerTab") -> None:
|
||||||
c = self.controller.get_player_count()
|
count = self.controller.get_player_count()
|
||||||
self.playercount = c
|
self.playercount = count
|
||||||
|
|
||||||
self.set_by_context(context, c)
|
self.set_by_context(context, count)
|
||||||
tree = self.controller.get_active_treeview()
|
tree = self.controller.get_active_treeview()
|
||||||
tree.emit("distcalc_started")
|
tree.emit("distcalc_started")
|
||||||
|
|
||||||
@@ -132,7 +134,9 @@ class Statusbar(Gtk.Grid):
|
|||||||
self.statusbar.push(meta, string)
|
self.statusbar.push(meta, string)
|
||||||
self.set_cache(string)
|
self.set_cache(string)
|
||||||
|
|
||||||
|
@deprecated("use set_by_context()")
|
||||||
def refresh(self, row: "RowType") -> None:
|
def refresh(self, row: "RowType") -> None:
|
||||||
|
# FIXME: brittle
|
||||||
if row is None:
|
if row is None:
|
||||||
formatted = ""
|
formatted = ""
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ class ServerNotebook(Gtk.ScrolledWindow):
|
|||||||
self.notebook.set_tab_label_text(child, text)
|
self.notebook.set_tab_label_text(child, text)
|
||||||
self.set_crumbs(text)
|
self.set_crumbs(text)
|
||||||
|
|
||||||
self.controller.present_servers()
|
#self.controller.present_servers()
|
||||||
self.controller.populate_model()
|
self.controller.populate_model()
|
||||||
|
|
||||||
def set_cached_label(self, label: str) -> None:
|
def set_cached_label(self, label: str) -> None:
|
||||||
|
|||||||
@@ -76,4 +76,6 @@ class MenuTreeView(TreeView):
|
|||||||
row = self.get_value_at_index(1)
|
row = self.get_value_at_index(1)
|
||||||
if row == "":
|
if row == "":
|
||||||
return
|
return
|
||||||
|
if self.controller.loaded is False:
|
||||||
|
return
|
||||||
self.controller.set_statusbar_by_row(row)
|
self.controller.set_statusbar_by_row(row)
|
||||||
+1
-1
@@ -26,7 +26,7 @@ dependencies = [
|
|||||||
"packaging==25.0",
|
"packaging==25.0",
|
||||||
"psutil==7.1.3",
|
"psutil==7.1.3",
|
||||||
"python-a2s",
|
"python-a2s",
|
||||||
"requests==2.32.5"
|
"requests==2.32.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.scripts]
|
[project.scripts]
|
||||||
|
|||||||
Reference in new issue
Block a user