In effect addeed socket recovery logic; removed endpoint registery
This commit is contained in:
@@ -65,9 +65,11 @@ class Controller(UIMixin, SignalsMixins, Controller_Data):
|
||||
FileSystemActions()
|
||||
|
||||
def _subscribe_to_events(self):
|
||||
event_system.subscribe("shutting_down", self._shutting_down)
|
||||
event_system.subscribe("handle_file_from_ipc", self.handle_file_from_ipc)
|
||||
event_system.subscribe("generate_file_views", self._generate_file_views)
|
||||
event_system.subscribe("clear_notebooks", self.clear_notebooks)
|
||||
|
||||
event_system.subscribe("set_window_title", self._set_window_title)
|
||||
event_system.subscribe("unset_selected_files_views", self._unset_selected_files_views)
|
||||
event_system.subscribe("get_current_state", self.get_current_state)
|
||||
@@ -107,6 +109,10 @@ class Controller(UIMixin, SignalsMixins, Controller_Data):
|
||||
FileExistsWidget()
|
||||
SaveLoadWidget()
|
||||
|
||||
def _shutting_down(self):
|
||||
if not settings_manager.is_trace_debug():
|
||||
self.fm_controller.save_state()
|
||||
|
||||
def reload_plugins(self, widget=None, eve=None):
|
||||
self.plugins.reload_plugins()
|
||||
|
||||
@@ -162,28 +168,22 @@ class Controller(UIMixin, SignalsMixins, Controller_Data):
|
||||
event_system.emit("tear_down")
|
||||
|
||||
|
||||
@endpoint_registry.register(rule="go_home")
|
||||
def go_home(self, widget=None, eve=None):
|
||||
self.builder.get_object("go_home").released()
|
||||
|
||||
@endpoint_registry.register(rule="refresh_tab")
|
||||
def refresh_tab(self, widget=None, eve=None):
|
||||
self.builder.get_object("refresh_tab").released()
|
||||
|
||||
@endpoint_registry.register(rule="go_up")
|
||||
def go_up(self, widget=None, eve=None):
|
||||
self.builder.get_object("go_up").released()
|
||||
|
||||
@endpoint_registry.register(rule="grab_focus_path_entry")
|
||||
def grab_focus_path_entry(self, widget=None, eve=None):
|
||||
self.builder.get_object("path_entry").grab_focus()
|
||||
|
||||
@endpoint_registry.register(rule="tggl_top_main_menubar")
|
||||
def tggl_top_main_menubar(self, widget=None, eve=None):
|
||||
top_main_menubar = self.builder.get_object("top_main_menubar")
|
||||
top_main_menubar.hide() if top_main_menubar.is_visible() else top_main_menubar.show()
|
||||
|
||||
@endpoint_registry.register(rule="open_terminal")
|
||||
def open_terminal(self, widget=None, eve=None):
|
||||
wid, tid = self.fm_controller.get_active_wid_and_tid()
|
||||
tab = self.get_fm_window(wid).get_tab_by_id(tid)
|
||||
|
@@ -1,7 +1,6 @@
|
||||
# Python imports
|
||||
import os
|
||||
import subprocess
|
||||
from dataclasses import dataclass
|
||||
|
||||
# Lib imports
|
||||
import gi
|
||||
@@ -9,55 +8,13 @@ gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
|
||||
# Application imports
|
||||
from .sfm_builder import SFMBuilder
|
||||
from .widgets.dialogs.message_widget import MessageWidget
|
||||
from .widgets.dialogs.user_pass_widget import UserPassWidget
|
||||
|
||||
from shellfm.windows.controller import WindowController
|
||||
from utils.types.state import State
|
||||
from plugins.plugins_controller import PluginsController
|
||||
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
class State:
|
||||
fm_controller: any = None
|
||||
notebooks: any = None
|
||||
wid: int = None
|
||||
tid: int = None
|
||||
tab: type = None
|
||||
icon_grid: gi.overrides.Gtk.IconView = None
|
||||
store: gi.overrides.Gtk.ListStore = None
|
||||
uris: [] = None
|
||||
uris_raw: [] = None
|
||||
selected_files: [] = None
|
||||
to_copy_files: [] = None
|
||||
to_cut_files: [] = None
|
||||
message_dialog: type = None
|
||||
user_pass_dialog: type = None
|
||||
|
||||
|
||||
|
||||
class SFMBuilder(Gtk.Builder):
|
||||
"""docstring for SFMBuilder."""
|
||||
|
||||
def __init__(self):
|
||||
super(SFMBuilder, self).__init__()
|
||||
|
||||
self.objects = {}
|
||||
|
||||
def get_object(self, id: str, use_gtk: bool = True) -> any:
|
||||
if not use_gtk:
|
||||
return self.objects[id]
|
||||
|
||||
return super(SFMBuilder, self).get_object(id)
|
||||
|
||||
def expose_object(self, id: str, object: any, use_gtk: bool = True) -> None:
|
||||
if not use_gtk:
|
||||
self.objects[id] = object
|
||||
else:
|
||||
super(SFMBuilder, self).expose_object(id, object)
|
||||
|
||||
def dereference_object(self, id: str) -> None:
|
||||
del self.objects[id]
|
||||
from shellfm.windows.controller import WindowController
|
||||
|
||||
|
||||
|
||||
|
@@ -85,7 +85,7 @@ class WindowMixin(TabMixin):
|
||||
self.set_window_title()
|
||||
|
||||
if eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 1: # l-click
|
||||
if self.ctrl_down:
|
||||
if eve.state & Gdk.ModifierType.CONTROL_MASK:
|
||||
self.dnd_left_primed = 0
|
||||
|
||||
if self.single_click_open: # FIXME: need to find a way to pass the model index
|
||||
|
33
src/versions/solarfm-0.0.1/solarfm/core/sfm_builder.py
Normal file
33
src/versions/solarfm-0.0.1/solarfm/core/sfm_builder.py
Normal file
@@ -0,0 +1,33 @@
|
||||
# Python imports
|
||||
|
||||
# Lib imports
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
|
||||
# Application imports
|
||||
|
||||
|
||||
|
||||
class SFMBuilder(Gtk.Builder):
|
||||
"""docstring for SFMBuilder."""
|
||||
|
||||
def __init__(self):
|
||||
super(SFMBuilder, self).__init__()
|
||||
|
||||
self.objects = {}
|
||||
|
||||
def get_object(self, id: str, use_gtk: bool = True) -> any:
|
||||
if not use_gtk:
|
||||
return self.objects[id]
|
||||
|
||||
return super(SFMBuilder, self).get_object(id)
|
||||
|
||||
def expose_object(self, id: str, object: any, use_gtk: bool = True) -> None:
|
||||
if not use_gtk:
|
||||
self.objects[id] = object
|
||||
else:
|
||||
super(SFMBuilder, self).expose_object(id, object)
|
||||
|
||||
def dereference_object(self, id: str) -> None:
|
||||
del self.objects[id]
|
@@ -77,7 +77,7 @@ class UIMixin(PaneMixin, WindowMixin):
|
||||
|
||||
scroll_win = notebook.get_children()[-1]
|
||||
icon_grid = scroll_win.get_children()[0]
|
||||
self._focus_last_visible_notebook(icon_grid)
|
||||
# self._focus_last_visible_notebook(icon_grid)
|
||||
except UIMixinException as e:
|
||||
logger.info("\n: The saved session might be missing window data! :\nLocation: ~/.config/solarfm/session.json\nFix: Back it up and delete it to reset.\n")
|
||||
logger.debug(repr(e))
|
||||
|
@@ -80,7 +80,7 @@ class WindowMixin(TabMixin):
|
||||
self.set_window_title()
|
||||
|
||||
if eve.type == Gdk.EventType.BUTTON_RELEASE and eve.button == 1: # l-click
|
||||
if self.ctrl_down:
|
||||
if eve.state & Gdk.ModifierType.CONTROL_MASK:
|
||||
self.dnd_left_primed = 0
|
||||
|
||||
if self.single_click_open: # FIXME: need to find a way to pass the model index
|
||||
|
@@ -20,8 +20,6 @@ class IconGridWidget(Gtk.IconView):
|
||||
def __init__(self):
|
||||
super(IconGridWidget, self).__init__()
|
||||
|
||||
# self._store = None
|
||||
|
||||
self._setup_styling()
|
||||
self._setup_signals()
|
||||
self._set_up_dnd()
|
||||
|
@@ -88,11 +88,7 @@ class Window(Gtk.ApplicationWindow):
|
||||
cr.set_operator(cairo.OPERATOR_OVER)
|
||||
|
||||
|
||||
def _tear_down(self, widget=None, eve=None):
|
||||
if not settings_manager.is_trace_debug():
|
||||
self._controller.fm_controller.save_state()
|
||||
|
||||
def _tear_down(self, widget = None, eve = None):
|
||||
event_system.emit("shutting_down")
|
||||
settings_manager.clear_pid()
|
||||
time.sleep(event_sleep_time)
|
||||
|
||||
Gtk.main_quit()
|
||||
|
Reference in New Issue
Block a user