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 c73aa5a..3e4f3fd 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,6 +13,9 @@ from gi.repository import GLib from .controller_data import Controller_Data from .mixins.signals_mixins import SignalsMixins +from widgets.popups.plugins_popup_widget import PluginsPopupWidget +from widgets.popups.io_popup_widget import IOPopupWidget + from widgets.context_menu_widget import ContextMenuWidget from widgets.new_file_widget import NewFileWidget from widgets.rename_widget import RenameWidget @@ -53,6 +56,8 @@ class Controller(UI, SignalsMixins, Controller_Data): # 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): + PluginsPopupWidget() + IOPopupWidget() ContextMenuWidget() NewFileWidget() RenameWidget() @@ -159,8 +164,14 @@ 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") + if action == "io_popup": + event_system.emit("show_io_popup") + if action == "plugins_popup": + event_system.emit("show_plugins_popup") + @endpoint_registry.register(rule="go_home") 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 e0585e3..ff34987 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 @@ -11,12 +11,3 @@ from gi.repository import Gtk class ShowHideMixin: def show_messages_popup(self, type, text, seconds=None): self.message_popup_widget.popup() - - def show_plugins_popup(self, widget=None, eve=None): - self.builder.get_object("plugin_controls").popup() - - def hide_plugins_popup(self, widget=None, eve=None): - self.builder.get_object("plugin_controls").hide() - - def show_io_popup(self, widget=None, eve=None): - self.builder.get_object("io_popup").popup() 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 f73c5b0..1eecc23 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 @@ -149,21 +149,21 @@ class Settings: return monitors - def get_context_menu_data(self) -> Gtk.Builder: return self._context_menu_data + 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_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 - def get_icon_theme(self) -> str: return self._ICON_THEME + 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 + def get_icon_theme(self) -> str: return self._ICON_THEME - def get_success_color(self) -> str: return self._success_color - def get_warning_color(self) -> str: return self._warning_color - def get_error_color(self) -> str: return self._error_color + def get_success_color(self) -> str: return self._success_color + def get_warning_color(self) -> str: return self._warning_color + def get_error_color(self) -> str: return self._error_color - def is_trace_debug(self) -> str: return self._trace_debug - def is_debug(self) -> str: return self._debug + def is_trace_debug(self) -> str: return self._trace_debug + def is_debug(self) -> str: return self._debug def is_dirty_start(self) -> bool: return self._dirty_start def clear_pid(self): self._clean_pid() diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/about_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/about_widget.py index a27558e..1f80160 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/about_widget.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/about_widget.py @@ -4,9 +4,7 @@ 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 diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/appchooser_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/appchooser_widget.py index 5d6c971..9bf123d 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/appchooser_widget.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/appchooser_widget.py @@ -4,9 +4,7 @@ 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 diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/__init__.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/__init__.py new file mode 100644 index 0000000..46a8a2c --- /dev/null +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/__init__.py @@ -0,0 +1,3 @@ +""" + Popups module +""" diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/io_popup_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/io_popup_widget.py new file mode 100644 index 0000000..0d1d7b2 --- /dev/null +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/io_popup_widget.py @@ -0,0 +1,42 @@ +# Python imports + +# Lib imports +import inspect +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk + +# Application imports + + +class IOPopupWidget(Gtk.Popover): + """docstring for IOPopupWidget.""" + + def __init__(self): + super(IOPopupWidget, self).__init__() + self.builder = settings.get_builder() + + self.builder.expose_object(f"io_popup", self) + + self._setup_styling() + self._setup_signals() + self._load_widgets() + self.show_all() + + + def _setup_styling(self): + io_button = self.builder.get_object(f"io_button") + self.set_relative_to(io_button) + self.set_modal(True) + self.set_position(Gtk.PositionType.BOTTOM) + + def _setup_signals(self): + event_system.subscribe("show_io_popup", self.show_io_popup) + + def _load_widgets(self): + vbox = Gtk.Box() + self.builder.expose_object(f"io_list", vbox) + self.add(vbox) + + def show_io_popup(self, widget=None, eve=None): + self.popup() diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/plugins_popup_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/plugins_popup_widget.py new file mode 100644 index 0000000..c67e82c --- /dev/null +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/popups/plugins_popup_widget.py @@ -0,0 +1,47 @@ +# Python imports + +# Lib imports +import inspect +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk + +# Application imports + + +class PluginsPopupWidget(Gtk.Popover): + """docstring for PluginsPopupWidget.""" + + def __init__(self): + super(PluginsPopupWidget, self).__init__() + self.builder = settings.get_builder() + + self.builder.expose_object(f"plugin_controls", self) + + self._setup_styling() + self._setup_signals() + self._load_widgets() + self.show_all() + + + def _setup_styling(self): + plugins_button = self.builder.get_object(f"plugins_button") + self.set_relative_to(plugins_button) + self.set_modal(True) + self.set_position(Gtk.PositionType.BOTTOM) + + def _setup_signals(self): + event_system.subscribe("show_plugins_popup", self.show_plugins_popup) + self.connect("button-release-event", self.hide_plugins_popup) + self.connect("key-release-event", self.hide_plugins_popup) + + def _load_widgets(self): + vbox = Gtk.Box() + self.builder.expose_object(f"plugin_control_list", vbox) + self.add(vbox) + + def show_plugins_popup(self, widget=None, eve=None): + self.popup() + + def hide_plugins_popup(self, widget=None, eve=None): + self.hide() diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header_widget.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header_widget.py index 42be39f..e125634 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header_widget.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/widgets/tab_header_widget.py @@ -4,7 +4,6 @@ import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk -from gi.repository import Gio # Application imports diff --git a/user_config/usr/share/solarfm/Main_Window.glade b/user_config/usr/share/solarfm/Main_Window.glade index 1dde1b1..81ee97a 100644 --- a/user_config/usr/share/solarfm/Main_Window.glade +++ b/user_config/usr/share/solarfm/Main_Window.glade @@ -367,10 +367,11 @@ Plugins + plugins_popup True True True - + True @@ -445,12 +446,13 @@ I/O + io_popup True True True io_img True - + True @@ -899,23 +901,6 @@ - - False - io_button - bottom - - - 320 - 320 - True - False - vertical - - - - - - 320 False @@ -1004,22 +989,6 @@ - - False - plugins_button - - - - - True - False - vertical - - - - - - False False