mirror of
https://github.com/aclist/dztui.git
synced 2026-08-25 17:32:36 +02:00
change: move ErrorPopover
This commit is contained in:
parent
8d1d5bde80
commit
dfd6850d6d
@ -1,5 +1,8 @@
|
|||||||
|
from dzgui.const.constants import ERROR, FLATPAK_RUN_CMD, FLATPAK_SANDBOX, STEAM_CMD
|
||||||
from dzgui.strings import options
|
from dzgui.strings import options
|
||||||
from dzgui.const.constants import FLATPAK_RUN_CMD, FLATPAK_SANDBOX, STEAM_CMD
|
from dzgui.views.components.box import HBox
|
||||||
|
from dzgui.views.components.buttons import Icon
|
||||||
|
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
@ -33,3 +36,18 @@ class ClientCombo(Gtk.ComboBox):
|
|||||||
self.pack_start(renderer_text, True)
|
self.pack_start(renderer_text, True)
|
||||||
self.add_attribute(renderer_text, "text", 0)
|
self.add_attribute(renderer_text, "text", 0)
|
||||||
self.set_active(0)
|
self.set_active(0)
|
||||||
|
|
||||||
|
class ErrorPopover(Gtk.Popover):
|
||||||
|
def __init__(self, relative_to: Gtk.Widget, position: Gtk.PositionType) -> None:
|
||||||
|
super().__init__(relative_to=relative_to, position=position)
|
||||||
|
|
||||||
|
self.hbox = HBox()
|
||||||
|
self.label = Gtk.Label(label="", margin_start=10, margin_end=10)
|
||||||
|
error_icon = Icon(ERROR, margin_start=10)
|
||||||
|
self.hbox.extend([error_icon, self.label])
|
||||||
|
self.add(self.hbox)
|
||||||
|
self.show_all()
|
||||||
|
self.popdown()
|
||||||
|
|
||||||
|
def set_label(self, label: str) -> None:
|
||||||
|
self.label.set_label(label)
|
||||||
|
|||||||
@ -9,7 +9,6 @@ from dzgui.const.constants import (
|
|||||||
APPNAME_DAYZ,
|
APPNAME_DAYZ,
|
||||||
APPNAME_DAYZ_EXP_HUMAN,
|
APPNAME_DAYZ_EXP_HUMAN,
|
||||||
EDIT_DELETE,
|
EDIT_DELETE,
|
||||||
ERROR,
|
|
||||||
FOLDER,
|
FOLDER,
|
||||||
WARNING,
|
WARNING,
|
||||||
)
|
)
|
||||||
@ -21,6 +20,7 @@ from dzgui.views.components.buttons import Icon, IconTextButton
|
|||||||
from dzgui.views.components.eventbox import InfoEventBox
|
from dzgui.views.components.eventbox import InfoEventBox
|
||||||
from dzgui.views.components.frame import HeadingFrame
|
from dzgui.views.components.frame import HeadingFrame
|
||||||
from dzgui.views.components.scrollable import NoOverlayScrolledWindow
|
from dzgui.views.components.scrollable import NoOverlayScrolledWindow
|
||||||
|
from dzgui.views.components.misc import ErrorPopover
|
||||||
from dzgui.views.trees.tree_mods import OfflineModTreeView
|
from dzgui.views.trees.tree_mods import OfflineModTreeView
|
||||||
|
|
||||||
|
|
||||||
@ -57,17 +57,9 @@ class PageHeading(Gtk.Box):
|
|||||||
css.add_class(self, "page-heading")
|
css.add_class(self, "page-heading")
|
||||||
|
|
||||||
|
|
||||||
class ErrorPopover(Gtk.Popover):
|
class OfflineErrorPopover(ErrorPopover):
|
||||||
def __init__(self) -> None:
|
def __init__(self, relative_to: Gtk.Widget, position: Gtk.PositionType) -> None:
|
||||||
super().__init__(position=Gtk.PositionType.RIGHT)
|
super().__init__(relative_to=relative_to, position=position)
|
||||||
|
|
||||||
self.hbox = HBox()
|
|
||||||
self.label = Gtk.Label(label="", margin_start=10, margin_end=10)
|
|
||||||
error_icon = Icon(ERROR, margin_start=10)
|
|
||||||
self.hbox.extend([error_icon, self.label])
|
|
||||||
self.add(self.hbox)
|
|
||||||
self.show_all()
|
|
||||||
self.popdown()
|
|
||||||
|
|
||||||
def set_label(self, error: FolderError, msg: str) -> None:
|
def set_label(self, error: FolderError, msg: str) -> None:
|
||||||
match error:
|
match error:
|
||||||
@ -115,13 +107,10 @@ class FolderHBox(HBox):
|
|||||||
[self.eb, self.button, self.spinner, self.scrolled_label, self.unset_button]
|
[self.eb, self.button, self.spinner, self.scrolled_label, self.unset_button]
|
||||||
)
|
)
|
||||||
|
|
||||||
self.pop = ErrorPopover()
|
self.pop = OfflineErrorPopover(self.button, Gtk.PositionType.RIGHT)
|
||||||
self.pop.set_relative_to(self.button)
|
|
||||||
self.pop.connect("unmap", lambda _: self.grab_focus())
|
self.pop.connect("unmap", lambda _: self.grab_focus())
|
||||||
|
|
||||||
self.sidepop = ErrorPopover()
|
self.sidepop = OfflineErrorPopover(self.scrolled_label, Gtk.PositionType.BOTTOM)
|
||||||
self.sidepop.set_position(Gtk.PositionType.BOTTOM)
|
|
||||||
self.sidepop.set_relative_to(self.scrolled_label)
|
|
||||||
self.sidepop.connect("unmap", lambda _: self.grab_focus())
|
self.sidepop.connect("unmap", lambda _: self.grab_focus())
|
||||||
|
|
||||||
self.connect("map", self._on_map)
|
self.connect("map", self._on_map)
|
||||||
@ -467,7 +456,6 @@ class OfflineLoader(Gtk.Box):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: share ConnectBox class with preconnect dialog?
|
|
||||||
self.button_box = HBox(spacing=5)
|
self.button_box = HBox(spacing=5)
|
||||||
self.button_box.set_halign(Gtk.Align.END)
|
self.button_box.set_halign(Gtk.Align.END)
|
||||||
self.button_box.set_margin_top(15)
|
self.button_box.set_margin_top(15)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user