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
-
-
- True
- True
- 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