Added delete of command; added initial special key handling in commands
This commit is contained in:
parent
82fc45373d
commit
c3c85a3040
|
@ -6,6 +6,8 @@ import threading
|
||||||
# Lib imports
|
# Lib imports
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from libs.logger import Logger
|
||||||
|
|
||||||
from libs.pyautogui_control import ControlMixin
|
from libs.pyautogui_control import ControlMixin
|
||||||
from libs.endpoint_registry import EndpointRegistry
|
from libs.endpoint_registry import EndpointRegistry
|
||||||
from libs.event_system import EventSystem
|
from libs.event_system import EventSystem
|
||||||
|
@ -73,24 +75,25 @@ builtins.debug = False
|
||||||
builtins.app_settings = None
|
builtins.app_settings = None
|
||||||
builtins.get_clipboard = ['xclip','-selection', 'clipboard', '-o']
|
builtins.get_clipboard = ['xclip','-selection', 'clipboard', '-o']
|
||||||
builtins.set_clipboard = ['xclip','-selection','clipboard']
|
builtins.set_clipboard = ['xclip','-selection','clipboard']
|
||||||
builtins.endpoint_registry = EndpointRegistry()
|
builtins.FKEYS = [ f"F{i}" for i in range(1, 13) ]
|
||||||
builtins.event_system = EventSystem()
|
builtins.LSIDE_KEYS = ["<Ctrl>", "<Shift>", "<Alt>"]
|
||||||
builtins.typwriter = Pyautogui_Controller()
|
builtins.RSIDE_KEYS = ["</Ctrl>", "</Shift>", "</Alt>"]
|
||||||
|
|
||||||
|
|
||||||
|
_USER_HOME = os.path.expanduser('~')
|
||||||
_USER_HOME = os.path.expanduser('~')
|
_USR_PATH = f"/usr/share/{app_name.lower()}"
|
||||||
_USR_PATH = f"/usr/share/{app_name.lower()}"
|
_CONFIG_PATH = f"{_USER_HOME}/.config/{app_name.lower()}"
|
||||||
_CONFIG_PATH = f"{_USER_HOME}/.config/{app_name.lower()}"
|
_ICON_FILE = f"{_CONFIG_PATH}/icons/{app_name.lower()}.png"
|
||||||
_ICON_FILE = f"{_CONFIG_PATH}/icons/{app_name.lower()}.png"
|
_CSS_FILE = f"{_CONFIG_PATH}/stylesheet.css"
|
||||||
_CSS_FILE = f"{_CONFIG_PATH}/stylesheet.css"
|
_EMOJI_FILE = f"{_CONFIG_PATH}/emoji.json"
|
||||||
_EMOJI_FILE = f"{_CONFIG_PATH}/emoji.json"
|
_LOG_FILE = f"{_CONFIG_PATH}/application.log"
|
||||||
|
ch_log_lvl: int = 10
|
||||||
|
fh_log_lvl: int = 20
|
||||||
|
|
||||||
|
|
||||||
if not os.path.exists(_ICON_FILE):
|
if not os.path.exists(_ICON_FILE):
|
||||||
_ICON_FILE = f"{_USR_PATH}/icons/{app_name.lower()}.png"
|
_ICON_FILE = f"{_USR_PATH}/icons/{app_name.lower()}.png"
|
||||||
if not os.path.exists(_ICON_FILE):
|
if not os.path.exists(_ICON_FILE):
|
||||||
print(_ICON_FILE)
|
|
||||||
raise MissingConfigError("Unable to find the application icon.")
|
raise MissingConfigError("Unable to find the application icon.")
|
||||||
|
|
||||||
if not os.path.exists(_CSS_FILE):
|
if not os.path.exists(_CSS_FILE):
|
||||||
|
@ -104,8 +107,13 @@ if not os.path.exists(_EMOJI_FILE):
|
||||||
raise MissingConfigError("Unable to find the stylesheet.")
|
raise MissingConfigError("Unable to find the stylesheet.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
builtins.CONFIG_PATH = _CONFIG_PATH
|
builtins.CONFIG_PATH = _CONFIG_PATH
|
||||||
builtins.ICON_FILE = _ICON_FILE
|
builtins.ICON_FILE = _ICON_FILE
|
||||||
builtins.CSS_FILE = _CSS_FILE
|
builtins.CSS_FILE = _CSS_FILE
|
||||||
builtins.EMOJI_FILE = _EMOJI_FILE
|
builtins.EMOJI_FILE = _EMOJI_FILE
|
||||||
|
|
||||||
|
|
||||||
|
builtins.logger = Logger(_LOG_FILE, ch_log_lvl, fh_log_lvl).get_logger()
|
||||||
|
builtins.endpoint_registry = EndpointRegistry()
|
||||||
|
builtins.event_system = EventSystem()
|
||||||
|
builtins.typwriter = Pyautogui_Controller()
|
|
@ -52,9 +52,9 @@ class List_Box(Gtk.ScrolledWindow):
|
||||||
event_system.subscribe("del_command", self.del_command)
|
event_system.subscribe("del_command", self.del_command)
|
||||||
|
|
||||||
def add_widgets(self):
|
def add_widgets(self):
|
||||||
tree, self.store = self.create_treeview()
|
self.tree, self.store = self.create_treeview()
|
||||||
|
|
||||||
self.add(tree)
|
self.add(self.tree)
|
||||||
self.set_size_request(360, 240)
|
self.set_size_request(360, 240)
|
||||||
|
|
||||||
def create_treeview(self):
|
def create_treeview(self):
|
||||||
|
@ -108,9 +108,19 @@ class List_Box(Gtk.ScrolledWindow):
|
||||||
f.write( commands.strip() )
|
f.write( commands.strip() )
|
||||||
|
|
||||||
def _row_activated(self, tree_view, path, column):
|
def _row_activated(self, tree_view, path, column):
|
||||||
itr = self.store.get_iter(path)
|
itr = self.store.get_iter(path)
|
||||||
command = self.store.get_value(itr, 0)
|
command = self.store.get_value(itr, 0)
|
||||||
typwriter.type(command)
|
use_special = False
|
||||||
|
|
||||||
|
for arg in LSIDE_KEYS + RSIDE_KEYS + FKEYS:
|
||||||
|
if arg in command:
|
||||||
|
use_special = True
|
||||||
|
break
|
||||||
|
|
||||||
|
if use_special:
|
||||||
|
self.handle_as_special(command)
|
||||||
|
else:
|
||||||
|
typwriter.type(command)
|
||||||
|
|
||||||
def run_command(self):
|
def run_command(self):
|
||||||
...
|
...
|
||||||
|
@ -119,7 +129,32 @@ class List_Box(Gtk.ScrolledWindow):
|
||||||
self.store.append([command])
|
self.store.append([command])
|
||||||
|
|
||||||
def del_command(self):
|
def del_command(self):
|
||||||
...
|
path, column = self.tree.get_cursor()
|
||||||
|
|
||||||
|
if not path or not column: return
|
||||||
|
|
||||||
|
model = self.tree.get_model()
|
||||||
|
itr = model.get_iter(path)
|
||||||
|
|
||||||
|
if not itr: return
|
||||||
|
|
||||||
|
self.store.remove(itr)
|
||||||
|
|
||||||
|
def handle_as_special(self, command):
|
||||||
|
lside_count = []
|
||||||
|
rside_count = []
|
||||||
|
|
||||||
|
for arg in LSIDE_KEYS:
|
||||||
|
lside_count.append( command.count(arg) )
|
||||||
|
|
||||||
|
for arg in RSIDE_KEYS:
|
||||||
|
rside_count.append( command.count(arg) )
|
||||||
|
|
||||||
|
if not lside_count == rside_count:
|
||||||
|
logger.info("Special keys don't match in open/close count...")
|
||||||
|
return
|
||||||
|
|
||||||
|
typwriter.press_special_keys(command)
|
||||||
|
|
||||||
|
|
||||||
class CommandEntry(Gtk.Box):
|
class CommandEntry(Gtk.Box):
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
# Python imports
|
# Python imports
|
||||||
import os, logging
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# Lib imports
|
||||||
|
|
||||||
# Application imports
|
# Application imports
|
||||||
|
from .singleton import Singleton
|
||||||
|
|
||||||
|
|
||||||
class Logger:
|
|
||||||
|
class Logger(Singleton):
|
||||||
"""
|
"""
|
||||||
Create a new logging object and return it.
|
Create a new logging object and return it.
|
||||||
:note:
|
:note:
|
||||||
|
|
Loading…
Reference in New Issue