Added yt_dlp directly, added rename format options, added xclip clipboard subproc, added copy name context menu option
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
# Python imports
|
||||
import os, gc, time
|
||||
import os
|
||||
import gc
|
||||
import time
|
||||
|
||||
# Lib imports
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk, GLib
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import GLib
|
||||
|
||||
# Application imports
|
||||
from .controller_data import Controller_Data
|
||||
@@ -122,6 +125,8 @@ class Controller(UI, SignalsMixins, Controller_Data):
|
||||
self.cut_files()
|
||||
if action == "copy":
|
||||
self.copy_files()
|
||||
if action == "copy_name":
|
||||
self.copy_name()
|
||||
if action == "paste":
|
||||
self.paste_files()
|
||||
if action == "create":
|
||||
@@ -130,6 +135,21 @@ 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")
|
||||
|
@@ -1,5 +1,8 @@
|
||||
# Python imports
|
||||
import sys, os, signal
|
||||
import sys
|
||||
import os
|
||||
import signal
|
||||
import subprocess
|
||||
from dataclasses import dataclass
|
||||
|
||||
# Lib imports
|
||||
@@ -161,3 +164,15 @@ class Controller_Data:
|
||||
''' Clear children of a gtk widget. '''
|
||||
for child in widget.get_children():
|
||||
widget.remove(child)
|
||||
|
||||
def get_clipboard_data(self) -> str:
|
||||
proc = subprocess.Popen(['xclip','-selection', 'clipboard', '-o'], stdout=subprocess.PIPE)
|
||||
retcode = proc.wait()
|
||||
data = proc.stdout.read()
|
||||
return data.decode("utf-8").strip()
|
||||
|
||||
def set_clipboard_data(self, data: type) -> None:
|
||||
proc = subprocess.Popen(['xclip','-selection','clipboard'], stdin=subprocess.PIPE)
|
||||
proc.stdin.write(data.encode("utf-8"))
|
||||
proc.stdin.close()
|
||||
retcode = proc.wait()
|
||||
|
@@ -188,6 +188,13 @@ class FileActionSignalsMixin:
|
||||
uris = self.format_to_uris(state.store, state.wid, state.tid, self.selected_files, True)
|
||||
self.to_cut_files = uris
|
||||
|
||||
def copy_name(self):
|
||||
state = self.get_current_state()
|
||||
uris = self.format_to_uris(state.store, state.wid, state.tid, self.selected_files, True)
|
||||
if len(uris) == 1:
|
||||
file_name = uris[0].split("/")[-1]
|
||||
self.set_clipboard_data(file_name)
|
||||
|
||||
def copy_files(self):
|
||||
self.to_cut_files.clear()
|
||||
state = self.get_current_state()
|
||||
|
Reference in New Issue
Block a user