Moved about dialogue to class and new glade file
This commit is contained in:
@@ -12,6 +12,13 @@ from gi.repository import GLib
|
||||
# Application imports
|
||||
from .controller_data import Controller_Data
|
||||
from .mixins.signals_mixins import SignalsMixins
|
||||
|
||||
from widgets.context_menu_widget import ContextMenuWidget
|
||||
from widgets.new_file_widget import NewFileWidget
|
||||
from widgets.rename_widget import RenameWidget
|
||||
from widgets.file_exists_widget import FileExistsWidget
|
||||
from widgets.about_widget import AboutWidget
|
||||
|
||||
from .ui import UI
|
||||
|
||||
|
||||
@@ -20,7 +27,11 @@ from .ui import UI
|
||||
class Controller(UI, SignalsMixins, Controller_Data):
|
||||
""" Controller coordinates the mixins and is somewhat the root hub of it all. """
|
||||
def __init__(self, args, unknownargs):
|
||||
self._setup_styling()
|
||||
self._setup_signals()
|
||||
self._subscribe_to_events()
|
||||
self._load_widgets()
|
||||
|
||||
self.setup_controller_data()
|
||||
self.generate_windows(self.fm_controller_data)
|
||||
|
||||
@@ -32,6 +43,21 @@ class Controller(UI, SignalsMixins, Controller_Data):
|
||||
message = f"FILE|{arg}"
|
||||
event_system.emit("post_file_to_ipc", message)
|
||||
|
||||
def _setup_styling(self):
|
||||
...
|
||||
|
||||
def _setup_signals(self):
|
||||
...
|
||||
|
||||
# NOTE: Really we will move these to the UI/(New) Window
|
||||
# 'base' controller after we're done cleaning and refactoring
|
||||
# to use fewer mixins.
|
||||
def _load_widgets(self):
|
||||
ContextMenuWidget()
|
||||
NewFileWidget()
|
||||
RenameWidget()
|
||||
FileExistsWidget()
|
||||
AboutWidget()
|
||||
|
||||
def _subscribe_to_events(self):
|
||||
event_system.subscribe("handle_file_from_ipc", self.handle_file_from_ipc)
|
||||
@@ -129,6 +155,8 @@ class Controller(UI, SignalsMixins, Controller_Data):
|
||||
self.create_files()
|
||||
if action in ["save_session", "save_session_as", "load_session"]:
|
||||
self.save_load_session(action)
|
||||
if action == "about_page":
|
||||
event_system.emit("show_about_page")
|
||||
|
||||
|
||||
@endpoint_registry.register(rule="go_home")
|
||||
|
@@ -12,15 +12,12 @@ from gi.repository import Gtk
|
||||
from gi.repository import GLib
|
||||
|
||||
# Application imports
|
||||
from widgets.new_file_widget import NewFileWidget
|
||||
from widgets.rename_widget import RenameWidget
|
||||
from widgets.file_exists_widget import FileExistsWidget
|
||||
from widgets.context_menu_widget import ContextMenuWidget
|
||||
from shellfm.windows.controller import WindowController
|
||||
from plugins.plugins_controller import PluginsController
|
||||
|
||||
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class State:
|
||||
wid: int = None
|
||||
@@ -39,17 +36,12 @@ class Controller_Data:
|
||||
__slots__ = "settings", "builder", "logger", "keybindings", "trashman", "fm_controller", "window", "window1", "window2", "window3", "window4"
|
||||
|
||||
def setup_controller_data(self) -> None:
|
||||
self.builder = settings.get_builder()
|
||||
self.keybindings = settings.get_keybindings()
|
||||
self.builder = settings.get_builder()
|
||||
self.keybindings = settings.get_keybindings()
|
||||
|
||||
NewFileWidget()
|
||||
RenameWidget()
|
||||
FileExistsWidget()
|
||||
ContextMenuWidget()
|
||||
|
||||
self.fm_controller = WindowController()
|
||||
self.plugins = PluginsController()
|
||||
self.fm_controller_data = self.fm_controller.get_state_from_file()
|
||||
self.fm_controller = WindowController()
|
||||
self.plugins = PluginsController()
|
||||
self.fm_controller_data = self.fm_controller.get_state_from_file()
|
||||
|
||||
self.window = settings.get_main_window()
|
||||
self.window1 = self.builder.get_object("window_1")
|
||||
|
@@ -15,16 +15,6 @@ class ShowHideMixin:
|
||||
def stop_file_searching(self, widget=None, eve=None):
|
||||
self.is_searching = False
|
||||
|
||||
def show_about_page(self, widget=None, eve=None):
|
||||
about_page = self.builder.get_object("about_page")
|
||||
response = about_page.run()
|
||||
if response in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]:
|
||||
self.hide_about_page()
|
||||
|
||||
def hide_about_page(self, widget=None, eve=None):
|
||||
self.builder.get_object("about_page").hide()
|
||||
|
||||
|
||||
def show_appchooser_menu(self, widget=None, eve=None):
|
||||
appchooser_menu = self.builder.get_object("appchooser_menu")
|
||||
appchooser_widget = self.builder.get_object("appchooser_widget")
|
||||
|
@@ -0,0 +1,61 @@
|
||||
# Python imports
|
||||
|
||||
# Lib imports
|
||||
import inspect
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
gi.require_version('Gdk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gdk
|
||||
|
||||
# Application imports
|
||||
|
||||
|
||||
class AboutWidget:
|
||||
"""docstring for AboutWidget."""
|
||||
|
||||
def __init__(self):
|
||||
super(AboutWidget, self).__init__()
|
||||
_GLADE_FILE = f"{settings.get_ui_widgets_path()}/about_ui.glade"
|
||||
builder = settings.get_builder()
|
||||
self._builder = Gtk.Builder()
|
||||
|
||||
self._builder.add_from_file(_GLADE_FILE)
|
||||
self.about_page = self._builder.get_object("about_page")
|
||||
|
||||
builder.expose_object(f"about_page", self.about_page)
|
||||
|
||||
self._setup_styling()
|
||||
self._setup_signals()
|
||||
self._load_widgets()
|
||||
|
||||
|
||||
def _setup_styling(self):
|
||||
...
|
||||
|
||||
def _setup_signals(self):
|
||||
event_system.subscribe("show_about_page", self.show_about_page)
|
||||
event_system.subscribe("hide_about_page", self.hide_about_page)
|
||||
|
||||
classes = [self]
|
||||
handlers = {}
|
||||
for c in classes:
|
||||
methods = None
|
||||
try:
|
||||
methods = inspect.getmembers(c, predicate=inspect.ismethod)
|
||||
handlers.update(methods)
|
||||
except Exception as e:
|
||||
print(repr(e))
|
||||
|
||||
self._builder.connect_signals(handlers)
|
||||
|
||||
def _load_widgets(self):
|
||||
...
|
||||
|
||||
def show_about_page(self, widget=None, eve=None):
|
||||
response = self.about_page.run()
|
||||
if response in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]:
|
||||
self.hide_about_page()
|
||||
|
||||
def hide_about_page(self, widget=None, eve=None):
|
||||
self.about_page.hide()
|
Reference in New Issue
Block a user