mirror of
https://github.com/aclist/dztui.git
synced 2026-08-27 02:07:18 +02:00
feat: add map model
This commit is contained in:
parent
96244a4560
commit
b703af897f
83
dzgui/model/map_model.py
Normal file
83
dzgui/model/map_model.py
Normal file
@ -0,0 +1,83 @@
|
||||
import gi
|
||||
|
||||
from dzgui.util import strings
|
||||
from dzgui.util.strings import all_maps
|
||||
|
||||
gi.require_version("Gtk", "3.0")
|
||||
from gi.repository.Gtk import ListStore # noqa E402
|
||||
from gi.repository import Gtk # noqa E402
|
||||
|
||||
|
||||
# TODO: rename class to MetaManager
|
||||
class MapManager:
|
||||
def __init__(self) -> None:
|
||||
|
||||
self.map_store = ListStore(str)
|
||||
self.prior_map: str
|
||||
self.selected_map = all_maps
|
||||
|
||||
# TODO: namespace
|
||||
self.default_filters = {
|
||||
strings.filter_1pp: True,
|
||||
strings.filter_day: True,
|
||||
strings.filter_empty: False,
|
||||
strings.filter_3pp: True,
|
||||
strings.filter_night: True,
|
||||
strings.filter_full: False,
|
||||
strings.filter_lowpop: True,
|
||||
strings.filter_nonascii: False,
|
||||
strings.filter_duplicate: False,
|
||||
strings.filter_official: True,
|
||||
strings.filter_unofficial: True,
|
||||
strings.filter_modded: True,
|
||||
}
|
||||
self.filters: list
|
||||
self.enabled_filters = dict(self.default_filters)
|
||||
|
||||
def reinit_filters(self) -> None:
|
||||
self.enabled_filters = dict(self.default_filters)
|
||||
|
||||
def get_default_filters(self) -> dict:
|
||||
"""Deep copy of defaults"""
|
||||
return dict(self.default_filters)
|
||||
|
||||
def get_filters(self) -> dict:
|
||||
return self.enabled_filters
|
||||
|
||||
def set_filter(self, label: str, state: bool) -> None:
|
||||
self.enabled_filters[label] = state
|
||||
|
||||
def get_map_store(self) -> ListStore:
|
||||
return self.map_store
|
||||
|
||||
def reinit_map_store(self) -> None:
|
||||
model = ListStore(str)
|
||||
model.append([all_maps])
|
||||
self.map_store = model
|
||||
self.selected_map = all_maps
|
||||
|
||||
def get_prior_map(self) -> str:
|
||||
return self.prior_map
|
||||
|
||||
def get_selected_map(self) -> str:
|
||||
return self.selected_map
|
||||
|
||||
def set_selected_map(self, selection: str) -> str:
|
||||
self.prior_map = self.selected_map
|
||||
self.selected_map = selection
|
||||
|
||||
def append_map(self, row: list[str]) -> None:
|
||||
self.map_store.append(row)
|
||||
|
||||
def clear_map_store(self) -> None:
|
||||
self.map_store.clear()
|
||||
|
||||
def set_unique_maps(self, maps: list) -> None:
|
||||
if maps is None:
|
||||
return
|
||||
if len(maps) < 1:
|
||||
return
|
||||
|
||||
self.reinit_map_store()
|
||||
for m in maps:
|
||||
self.append_map([m])
|
||||
Loading…
Reference in New Issue
Block a user