From bddcc8e3e6f71b379652bd1309a79dff338d8b6e Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Fri, 25 Feb 2022 01:29:37 -0600 Subject: [PATCH] Plugin sys changes, glade changes --- plugins/template/__main__.py | 15 ++++--- plugins/youtube_download/__main__.py | 21 +++++---- plugins/youtube_download/download.sh | 1 + .../SolarFM/solarfm/plugins/plugins.py | 23 +++------- .../usr/share/solarfm/Main_Window.glade | 44 +++++++++---------- 5 files changed, 47 insertions(+), 57 deletions(-) diff --git a/plugins/template/__main__.py b/plugins/template/__main__.py index 3ae0454..ac0f74f 100644 --- a/plugins/template/__main__.py +++ b/plugins/template/__main__.py @@ -15,19 +15,20 @@ def threaded(fn): return wrapper -class Main: - def __init__(self, socket_id, event_system): +class Plugin: + def __init__(self, builder, event_system): self._plugin_name = "Example Plugin" + self._builder = builder self._event_system = event_system - self._socket_id = socket_id - self._gtk_plug = Gtk.Plug.new(self._socket_id) - button = Gtk.Button(label=self._plugin_name) self._message = None self._time_out = 5 + button = Gtk.Button(label=self._plugin_name) button.connect("button-release-event", self._do_action) - self._gtk_plug.add(button) - self._gtk_plug.show_all() + + plugin_list = self._builder.get_object("plugin_socket") + plugin_list.add(button) + plugin_list.show_all() @threaded diff --git a/plugins/youtube_download/__main__.py b/plugins/youtube_download/__main__.py index c43a38d..5482b09 100644 --- a/plugins/youtube_download/__main__.py +++ b/plugins/youtube_download/__main__.py @@ -15,20 +15,22 @@ def threaded(fn): return wrapper -class Main: - def __init__(self, socket_id, event_system): - self.SCRIPT_PTH = os.path.dirname(os.path.realpath(__file__)) +class Plugin: + def __init__(self, builder, event_system): self._plugin_name = "Youtube Download" + self._builder = builder self._event_system = event_system - self._socket_id = socket_id - self._gtk_plug = Gtk.Plug.new(self._socket_id) - button = Gtk.Button(label=self._plugin_name) self._message = None self._time_out = 5 + self.SCRIPT_PTH = os.path.dirname(os.path.realpath(__file__)) + + button = Gtk.Button(label=self._plugin_name) button.connect("button-release-event", self._do_download) - self._gtk_plug.add(button) - self._gtk_plug.show_all() + + plugin_list = self._builder.get_object("plugin_socket") + plugin_list.add(button) + plugin_list.show_all() @threaded @@ -48,9 +50,6 @@ class Main: def get_plugin_name(self): return self._plugin_name - def get_socket_id(self): - return self._socket_id - def _run_timeout(self): timeout = 0 while not self._message and timeout < self._time_out: diff --git a/plugins/youtube_download/download.sh b/plugins/youtube_download/download.sh index 073b354..dc6df21 100755 --- a/plugins/youtube_download/download.sh +++ b/plugins/youtube_download/download.sh @@ -10,6 +10,7 @@ function main() { cd "$(dirname "")" echo "Working Dir: " $(pwd) + source "/home/abaddon/Portable_Apps/py-venvs/yt-dlp-venv/venv/bin/activate" LINK=`xclip -selection clipboard -o` yt-dlp --write-sub --embed-sub --sub-langs en -o "${1}/%(title)s.%(ext)s" "${LINK}" diff --git a/src/versions/solarfm-0.0.1/SolarFM/solarfm/plugins/plugins.py b/src/versions/solarfm-0.0.1/SolarFM/solarfm/plugins/plugins.py index dcfa61b..b3a568c 100644 --- a/src/versions/solarfm-0.0.1/SolarFM/solarfm/plugins/plugins.py +++ b/src/versions/solarfm-0.0.1/SolarFM/solarfm/plugins/plugins.py @@ -13,8 +13,6 @@ from gi.repository import Gtk, Gio class Plugin: name = None module = None - gtk_socket_id = None - gtk_socket = None reference = None @@ -23,8 +21,7 @@ class Plugins: def __init__(self, settings): self._settings = settings - self._plugin_list_widget = self._settings.get_builder().get_object("plugin_list") - self._plugin_list_socket = self._settings.get_builder().get_object("plugin_socket") + self._builder = self._settings.get_builder() self._plugins_path = self._settings.get_plugins_path() self._plugins_dir_watcher = None self._plugin_collection = [] @@ -56,26 +53,18 @@ class Plugins: if isdir(path): os.chdir(path) - gtk_socket = Gtk.Socket().new() - self._plugin_list_socket.add(gtk_socket) - # NOTE: Must get ID after adding socket to window. Else issues.... - gtk_socket_id = gtk_socket.get_id() - sys.path.insert(0, path) spec = importlib.util.spec_from_file_location(file, join(path, "__main__.py")) - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) + app = importlib.util.module_from_spec(spec) + spec.loader.exec_module(app) - ref = module.Main(gtk_socket_id, event_system) + plugin_reference = app.Plugin(self._builder, event_system) plugin = Plugin() - plugin.name = ref.get_plugin_name() + plugin.name = plugin_reference.get_plugin_name() plugin.module = path - plugin.gtk_socket_id = gtk_socket_id - plugin.gtk_socket = gtk_socket - plugin.reference = ref + plugin.reference = plugin_reference self._plugin_collection.append(plugin) - gtk_socket.show_all() except Exception as e: print("Malformed plugin! Not loading!") traceback.print_exc() diff --git a/user_config/usr/share/solarfm/Main_Window.glade b/user_config/usr/share/solarfm/Main_Window.glade index 5842ded..506921e 100644 --- a/user_config/usr/share/solarfm/Main_Window.glade +++ b/user_config/usr/share/solarfm/Main_Window.glade @@ -1785,24 +1785,9 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe - - path_entry - True - True - True - Path... - - - - True - True - 1 - - - - - gtk-refresh - refresh_view + + gtk-add + create_tab True True True @@ -1813,7 +1798,7 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe False True - 2 + 1 @@ -1830,13 +1815,28 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe False True + 2 + + + + + path_entry + True + True + True + Path... + + + + True + True 3 - - gtk-add - create_tab + + gtk-refresh + refresh_view True True True