diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py
index 644fb0d..e0a57b7 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller.py
@@ -13,7 +13,6 @@ from gi.repository import GLib
from .controller_data import Controller_Data
from .mixins.signals_mixins import SignalsMixins
from .ui import UI
-from widgets.context_menu_widget import ContextMenuWidget
@@ -25,8 +24,6 @@ class Controller(UI, SignalsMixins, Controller_Data):
self.setup_controller_data()
self.generate_windows(self.fm_controller_data)
- ContextMenuWidget().build_context_menu()
-
if args.no_plugins == "false":
self.plugins.launch_plugins()
@@ -109,7 +106,7 @@ class Controller(UI, SignalsMixins, Controller_Data):
self.hide_context_menu()
self.hide_new_file_menu()
- self.hide_edit_file_menu()
+ event_system.emit("do_hide_edit_file_menu")
if action == "open":
self.open_files()
@@ -135,23 +132,6 @@ class Controller(UI, SignalsMixins, Controller_Data):
self.save_load_session(action)
- def set_to_title_case(self, widget, eve=None):
- rename_widget = self.builder.get_object("new_rename_fname")
- rename_widget.set_text( rename_widget.get_text().title() )
-
- def set_to_upper_case(self, widget, eve=None):
- rename_widget = self.builder.get_object("new_rename_fname")
- rename_widget.set_text( rename_widget.get_text().upper() )
-
- def set_to_lower_case(self, widget, eve=None):
- rename_widget = self.builder.get_object("new_rename_fname")
- rename_widget.set_text( rename_widget.get_text().lower() )
-
- def set_to_invert_case(self, widget, eve=None):
- rename_widget = self.builder.get_object("new_rename_fname")
- rename_widget.set_text( rename_widget.get_text().swapcase() )
-
-
@endpoint_registry.register(rule="go_home")
def go_home(self, widget=None, eve=None):
self.builder.get_object("go_home").released()
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py
index 31f3d16..28ae689 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/controller_data.py
@@ -12,6 +12,8 @@ from gi.repository import Gtk
from gi.repository import GLib
# Application imports
+from widgets.context_menu_widget import ContextMenuWidget
+from widgets.rename_widget import RenameWidget
from shellfm.windows.controller import WindowController
from plugins.plugins_controller import PluginsController
@@ -37,6 +39,9 @@ class Controller_Data:
self.builder = settings.get_builder()
self.keybindings = settings.get_keybindings()
+ RenameWidget()
+ ContextMenuWidget()
+
self.fm_controller = WindowController()
self.plugins = PluginsController()
self.fm_controller_data = self.fm_controller.get_state_from_file()
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py
index 389b783..9412b92 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/show_hide_mixin.py
@@ -119,14 +119,6 @@ class ShowHideMixin:
def show_io_popup(self, widget=None, eve=None):
self.builder.get_object("io_popup").popup()
- def hide_edit_file_menu(self, widget=None, eve=None):
- self.builder.get_object("edit_file_menu").hide()
-
- def hide_edit_file_menu_enter_key(self, widget=None, eve=None):
- keyname = Gdk.keyval_name(eve.keyval).lower()
- if keyname in ["return", "enter"]:
- self.builder.get_object("edit_file_menu").hide()
-
def hide_edit_file_menu_skip(self, widget=None, eve=None):
self.edit_file_menu.response(Gtk.ResponseType.CLOSE)
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/signals/file_action_signals_mixin.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/signals/file_action_signals_mixin.py
index dee50f3..170dbbd 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/signals/file_action_signals_mixin.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/core/mixins/signals/file_action_signals_mixin.py
@@ -179,7 +179,7 @@ class FileActionSignalsMixin:
self.skip_edit = False
self.cancel_edit = False
- self.hide_edit_file_menu()
+ event_system.emit("do_hide_edit_file_menu")
self.selected_files.clear()
def cut_files(self):
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/utils/settings.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/utils/settings.py
index d4229a8..f73c5b0 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/utils/settings.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/utils/settings.py
@@ -19,20 +19,21 @@ from .keybindings import Keybindings
class Settings:
def __init__(self):
- self._SCRIPT_PTH = os.path.dirname(os.path.realpath(__file__))
- self._USER_HOME = path.expanduser('~')
- self._CONFIG_PATH = f"{self._USER_HOME}/.config/{app_name.lower()}"
- self._PLUGINS_PATH = f"{self._CONFIG_PATH}/plugins"
- self._USR_SOLARFM = f"/usr/share/{app_name.lower()}"
+ self._SCRIPT_PTH = os.path.dirname(os.path.realpath(__file__))
+ self._USER_HOME = path.expanduser('~')
+ self._CONFIG_PATH = f"{self._USER_HOME}/.config/{app_name.lower()}"
+ self._UI_WIDEGTS_PATH = f"{self._CONFIG_PATH}/ui_widgets"
+ self._PLUGINS_PATH = f"{self._CONFIG_PATH}/plugins"
+ self._USR_SOLARFM = f"/usr/share/{app_name.lower()}"
- self._CSS_FILE = f"{self._CONFIG_PATH}/stylesheet.css"
- self._GLADE_FILE = f"{self._CONFIG_PATH}/Main_Window.glade"
- self._KEY_BINDINGS = f"{self._CONFIG_PATH}/key-bindings.json"
- self._DEFAULT_ICONS = f"{self._CONFIG_PATH}/icons"
- self._WINDOW_ICON = f"{self._DEFAULT_ICONS}/{app_name.lower()}.png"
- self._CONTEXT_MENU = f"{self._CONFIG_PATH}/contexct_menu.json"
- self._PID_FILE = f"{self._CONFIG_PATH}/{app_name.lower()}.pid"
- self._ICON_THEME = Gtk.IconTheme.get_default()
+ self._CSS_FILE = f"{self._CONFIG_PATH}/stylesheet.css"
+ self._GLADE_FILE = f"{self._CONFIG_PATH}/Main_Window.glade"
+ self._KEY_BINDINGS = f"{self._CONFIG_PATH}/key-bindings.json"
+ self._DEFAULT_ICONS = f"{self._CONFIG_PATH}/icons"
+ self._WINDOW_ICON = f"{self._DEFAULT_ICONS}/{app_name.lower()}.png"
+ self._CONTEXT_MENU = f"{self._CONFIG_PATH}/contexct_menu.json"
+ self._PID_FILE = f"{self._CONFIG_PATH}/{app_name.lower()}.pid"
+ self._ICON_THEME = Gtk.IconTheme.get_default()
if not os.path.exists(self._CONFIG_PATH):
os.mkdir(self._CONFIG_PATH)
@@ -149,8 +150,9 @@ class Settings:
def get_context_menu_data(self) -> Gtk.Builder: return self._context_menu_data
- def get_main_window(self) -> Gtk.ApplicationWindow: return self._main_window
- def get_builder(self) -> Gtk.Builder: return self._builder
+ def get_main_window(self) -> Gtk.ApplicationWindow: return self._main_window
+ def get_builder(self) -> Gtk.Builder: return self._builder
+ def get_ui_widgets_path(self) -> Gtk.Builder: return self._UI_WIDEGTS_PATH
def get_logger(self) -> Logger: return self._logger
def get_keybindings(self) -> Keybindings: return self._keybindings
def get_plugins_path(self) -> str: return self._PLUGINS_PATH
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py
index 875dbfc..2efeba8 100644
--- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/context_menu_widget.py
@@ -18,6 +18,8 @@ class ContextMenuWidget(Gtk.Menu):
self._context_menu_data = settings.get_context_menu_data()
self._window = settings.get_main_window()
+ self.build_context_menu()
+
def make_submenu(self, name, data, keys):
menu = Gtk.Menu()
diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/rename_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/rename_widget.py
new file mode 100644
index 0000000..0683a31
--- /dev/null
+++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/rename_widget.py
@@ -0,0 +1,81 @@
+# Python imports
+
+# Lib imports
+import inspect
+import gi
+gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk
+gi.require_version('Gdk', '3.0')
+from gi.repository import Gtk
+from gi.repository import Gdk
+
+# Application imports
+
+
+class RenameWidget:
+ """docstring for RenameWidget."""
+
+ def __init__(self):
+ super(RenameWidget, self).__init__()
+ _GLADE_FILE = f"{settings.get_ui_widgets_path()}/rename_ui.glade"
+ builder = settings.get_builder()
+ self._builder = Gtk.Builder()
+
+ self._builder.add_from_file(_GLADE_FILE)
+ edit_file_menu = self._builder.get_object("edit_file_menu")
+ new_rename_fname = self._builder.get_object("new_rename_fname")
+ file_to_rename_label = self._builder.get_object("file_to_rename_label")
+
+ builder.expose_object(f"edit_file_menu", edit_file_menu)
+ builder.expose_object(f"new_rename_fname", new_rename_fname)
+ builder.expose_object(f"file_to_rename_label", file_to_rename_label)
+
+ self._setup_styling()
+ self._setup_signals()
+ self._load_widgets()
+
+
+ def _setup_styling(self):
+ ...
+
+ def _setup_signals(self):
+ event_system.subscribe("do_hide_edit_file_menu", self.hide_edit_file_menu)
+
+ 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 set_to_title_case(self, widget, eve=None):
+ rename_widget = self._builder.get_object("new_rename_fname")
+ rename_widget.set_text( rename_widget.get_text().title() )
+
+ def set_to_upper_case(self, widget, eve=None):
+ rename_widget = self._builder.get_object("new_rename_fname")
+ rename_widget.set_text( rename_widget.get_text().upper() )
+
+ def set_to_lower_case(self, widget, eve=None):
+ rename_widget = self._builder.get_object("new_rename_fname")
+ rename_widget.set_text( rename_widget.get_text().lower() )
+
+ def set_to_invert_case(self, widget, eve=None):
+ rename_widget = self._builder.get_object("new_rename_fname")
+ rename_widget.set_text( rename_widget.get_text().swapcase() )
+
+ def hide_edit_file_menu(self, widget=None, eve=None):
+ self._builder.get_object("edit_file_menu").hide()
+
+ def hide_edit_file_menu_enter_key(self, widget=None, eve=None):
+ keyname = Gdk.keyval_name(eve.keyval).lower()
+ if keyname in ["return", "enter"]:
+ self._builder.get_object("edit_file_menu").hide()
diff --git a/user_config/usr/share/solarfm/Main_Window.glade b/user_config/usr/share/solarfm/Main_Window.glade
index 8855f55..42fdd5a 100644
--- a/user_config/usr/share/solarfm/Main_Window.glade
+++ b/user_config/usr/share/solarfm/Main_Window.glade
@@ -488,12 +488,6 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
gtk-stop
-
-
-