Bringing to latest changes #3
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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}"
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -1785,24 +1785,9 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="path_entry">
|
||||
<property name="name">path_entry</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="placeholder-text" translatable="yes">Path...</property>
|
||||
<signal name="changed" handler="do_action_from_bar_controls" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="refresh_view">
|
||||
<property name="label">gtk-refresh</property>
|
||||
<property name="name">refresh_view</property>
|
||||
<object class="GtkButton" id="create_tab">
|
||||
<property name="label">gtk-add</property>
|
||||
<property name="name">create_tab</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
|
@ -1813,7 +1798,7 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
|
|||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -1830,13 +1815,28 @@ SolarFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspe
|
|||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="path_entry">
|
||||
<property name="name">path_entry</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="placeholder-text" translatable="yes">Path...</property>
|
||||
<signal name="changed" handler="do_action_from_bar_controls" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="create_tab">
|
||||
<property name="label">gtk-add</property>
|
||||
<property name="name">create_tab</property>
|
||||
<object class="GtkButton" id="refresh_view">
|
||||
<property name="label">gtk-refresh</property>
|
||||
<property name="name">refresh_view</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
|
|
Loading…
Reference in New Issue