diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..dc11651 --- /dev/null +++ b/src/__init__.py @@ -0,0 +1,38 @@ +# Python imports +import inspect + +from setproctitle import setproctitle + +# Gtk imports +import gi, faulthandler, signal +gi.require_version('Gtk', '3.0') + +from gi.repository import Gtk as gtk +from gi.repository import Gdk as gdk +from gi.repository import GLib + +# Application imports +from utils import Settings, CrossClassSignals +from signal_classes import MainWindow, DrawingArea, MainMenuPopup + + +class Main: + def __init__(self, args): + settings = Settings() + builder = settings.returnBuilder() + + # Gets the methods from the classes and sets to handler. + # Then, builder connects to any signals it needs. + utilsClass = CrossClassSignals(settings) + classes = [MainWindow(settings, utilsClass), + DrawingArea(settings, utilsClass), + MainMenuPopup(settings, utilsClass)] + + handlers = {} + for c in classes: + methods = inspect.getmembers(c, predicate=inspect.ismethod) + handlers.update(methods) + + builder.connect_signals(handlers) + window = settings.createWindow() + window.show() diff --git a/src/__main__.py b/src/__main__.py index c4415bf..621061a 100755 --- a/src/__main__.py +++ b/src/__main__.py @@ -1,53 +1,32 @@ #!/usr/bin/python3 + +# Python imports +import argparse +from setproctitle import setproctitle + # Gtk imports import gi, faulthandler, signal gi.require_version('Gtk', '3.0') - from gi.repository import Gtk as gtk -from gi.repository import Gdk as gdk from gi.repository import GLib -# Python imports -import inspect - -from setproctitle import setproctitle - # Application imports -from utils import Settings, CrossClassSignals -from signal_classes import MainWindow, DrawingArea, MainMenuPopup - - -class Main: - def __init__(self): - setproctitle('Cornea') - GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, gtk.main_quit) - faulthandler.enable() # For better debug info - - settings = Settings() - builder = settings.returnBuilder() - - # Gets the methods from the classes and sets to handler. - # Then, builder connects to any signals it needs. - utilsClass = CrossClassSignals(settings) - classes = [MainWindow(settings, utilsClass), - DrawingArea(settings, utilsClass), - MainMenuPopup(settings, utilsClass)] - - handlers = {} - for c in classes: - methods = inspect.getmembers(c, predicate=inspect.ismethod) - handlers.update(methods) - - builder.connect_signals(handlers) - window = settings.createWindow() - window.show() - +from __init__ import Main if __name__ == "__main__": try: - main = Main() + setproctitle('Cornea') + GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, gtk.main_quit) + faulthandler.enable() # For better debug info + parser = argparse.ArgumentParser() + # Add long and short arguments + parser.add_argument("--file", "-f", default="firefox", help="JUST SOME FILE ARG.") + + # Read arguments (If any...) + args = parser.parse_args() + main = Main(args) gtk.main() except Exception as e: print( repr(e) ) diff --git a/src/screenshot b/src/screenshot index b0046be..89eb102 100755 --- a/src/screenshot +++ b/src/screenshot @@ -7,8 +7,7 @@ function main() { SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" - cd "${SCRIPTPATH}" - source "../venv/bin/activate" - python . + # source "/home/abaddon/Portable_Apps/py-venvs/flask-apps-venv/venv/bin/activate" + python "${SCRIPTPATH}" } main $@;