develop #1
@@ -66,6 +66,7 @@ class Builtins(IPCServerMixin):
 | 
			
		||||
 | 
			
		||||
# NOTE: Just reminding myself we can add to builtins two different ways...
 | 
			
		||||
# __builtins__.update({"event_system": Builtins()})
 | 
			
		||||
builtins.app_name          = "SolarFM" 
 | 
			
		||||
builtins.event_system      = Builtins()
 | 
			
		||||
builtins.event_sleep_time  = 0.2
 | 
			
		||||
builtins.debug             = False
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,7 @@ if __name__ == "__main__":
 | 
			
		||||
        # import web_pdb
 | 
			
		||||
        # web_pdb.set_trace()
 | 
			
		||||
 | 
			
		||||
        setproctitle('solarfm')
 | 
			
		||||
        setproctitle('SolarFM')
 | 
			
		||||
        faulthandler.enable()  # For better debug info
 | 
			
		||||
        parser = argparse.ArgumentParser()
 | 
			
		||||
        # Add long and short arguments
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,8 @@ gi.require_version('Gtk', '3.0')
 | 
			
		||||
from gi.repository import Gtk, GLib
 | 
			
		||||
 | 
			
		||||
# Application imports
 | 
			
		||||
from .mixins import *
 | 
			
		||||
from .mixins.ui import *
 | 
			
		||||
from .mixins import PluginMixin
 | 
			
		||||
from . import ShowHideMixin, KeyboardSignalsMixin, Controller_Data
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -20,12 +21,13 @@ def threaded(fn):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Controller(WidgetFileActionMixin, PaneMixin, WindowMixin, ShowHideMixin, \
 | 
			
		||||
                                        KeyboardSignalsMixin, Controller_Data):
 | 
			
		||||
                            KeyboardSignalsMixin, PluginMixin, Controller_Data):
 | 
			
		||||
    def __init__(self, args, unknownargs, _settings):
 | 
			
		||||
        # sys.excepthook = self.custom_except_hook
 | 
			
		||||
        self.setup_controller_data(_settings)
 | 
			
		||||
        self.window.show()
 | 
			
		||||
        self.generate_windows(self.state)
 | 
			
		||||
        self.load_plugins()
 | 
			
		||||
 | 
			
		||||
        if not trace_debug:
 | 
			
		||||
            self.gui_event_observer()
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,17 @@
 | 
			
		||||
# Python imports
 | 
			
		||||
 | 
			
		||||
# Lib imports
 | 
			
		||||
import gi
 | 
			
		||||
gi.require_version('Gtk', '3.0')
 | 
			
		||||
from gi.repository import Gtk
 | 
			
		||||
 | 
			
		||||
# Application imports
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PluginMixin:
 | 
			
		||||
    """docstring for TabMixin"""
 | 
			
		||||
 | 
			
		||||
    def load_plugins(self):
 | 
			
		||||
        pass
 | 
			
		||||
@@ -1,5 +1 @@
 | 
			
		||||
from .PaneMixin    import PaneMixin
 | 
			
		||||
from .WidgetMixin  import WidgetMixin
 | 
			
		||||
from .TabMixin     import TabMixin
 | 
			
		||||
from .WindowMixin import WindowMixin
 | 
			
		||||
from .WidgetFileActionMixin import WidgetFileActionMixin
 | 
			
		||||
from .PluginMixin  import PluginMixin
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,5 @@
 | 
			
		||||
from .PaneMixin    import PaneMixin
 | 
			
		||||
from .WidgetMixin  import WidgetMixin
 | 
			
		||||
from .TabMixin     import TabMixin
 | 
			
		||||
from .WindowMixin import WindowMixin
 | 
			
		||||
from .WidgetFileActionMixin import WidgetFileActionMixin
 | 
			
		||||
@@ -5,8 +5,8 @@ import os, logging
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Logger:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        pass
 | 
			
		||||
    def __init__(self, config_path):
 | 
			
		||||
        self._CONFIG_PATH = config_path
 | 
			
		||||
 | 
			
		||||
    def get_logger(self, loggerName = "NO_LOGGER_NAME_PASSED", createFile = True):
 | 
			
		||||
        """
 | 
			
		||||
@@ -42,8 +42,8 @@ class Logger:
 | 
			
		||||
        log.addHandler(ch)
 | 
			
		||||
 | 
			
		||||
        if createFile:
 | 
			
		||||
            folder = "logs"
 | 
			
		||||
            file   = folder + "/application.log"
 | 
			
		||||
            folder = self._CONFIG_PATH
 | 
			
		||||
            file   = f"{folder}/application.log"
 | 
			
		||||
 | 
			
		||||
            if not os.path.exists(folder):
 | 
			
		||||
                os.mkdir(folder)
 | 
			
		||||
 
 | 
			
		||||
@@ -17,29 +17,35 @@ from . import Logger
 | 
			
		||||
 | 
			
		||||
class Settings:
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        self.logger        = Logger().get_logger()
 | 
			
		||||
        self.builder       = gtk.Builder()
 | 
			
		||||
 | 
			
		||||
        self.SCRIPT_PTH    = os.path.dirname(os.path.realpath(__file__))
 | 
			
		||||
        self.USER_HOME     = path.expanduser('~')
 | 
			
		||||
        self.CONFIG_PATH   = f"{self.USER_HOME}/.config/solarfm"
 | 
			
		||||
        self.USR_SOLARFM   = "/usr/share/solarfm"
 | 
			
		||||
        self.CONFIG_PATH   = f"{self.USER_HOME}/.config/{app_name.lower()}"
 | 
			
		||||
        self.PLUGINS_PATH  = f"{self.CONFIG_PATH}/plugins"
 | 
			
		||||
        self.USR_SOLARFM   = f"/usr/share/{app_name.lower()}"
 | 
			
		||||
 | 
			
		||||
        self.cssFile       = f"{self.CONFIG_PATH}/stylesheet.css"
 | 
			
		||||
        self.windows_glade = f"{self.CONFIG_PATH}/Main_Window.glade"
 | 
			
		||||
        self.DEFAULT_ICONS = f"{self.CONFIG_PATH}/icons"
 | 
			
		||||
        self.window_icon   = f"{self.DEFAULT_ICONS}/solarfm.png"
 | 
			
		||||
        self.window_icon   = f"{self.DEFAULT_ICONS}/{app_name.lower()}.png"
 | 
			
		||||
        self.main_window   = None
 | 
			
		||||
 | 
			
		||||
        if not os.path.exists(self.CONFIG_PATH):
 | 
			
		||||
            os.mkdir(self.CONFIG_PATH)
 | 
			
		||||
        if not os.path.exists(self.PLUGINS_PATH):
 | 
			
		||||
            os.mkdir(self.PLUGINS_PATH)
 | 
			
		||||
 | 
			
		||||
        if not os.path.exists(self.windows_glade):
 | 
			
		||||
            self.windows_glade = f"{self.USR_SOLARFM}/Main_Window.glade"
 | 
			
		||||
        if not os.path.exists(self.cssFile):
 | 
			
		||||
            self.cssFile       = f"{self.USR_SOLARFM}/stylesheet.css"
 | 
			
		||||
        if not os.path.exists(self.window_icon):
 | 
			
		||||
            self.window_icon   = f"{self.USR_SOLARFM}/icons/solarfm.png"
 | 
			
		||||
            self.window_icon   = f"{self.USR_SOLARFM}/icons/{app_name.lower()}.png"
 | 
			
		||||
        if not os.path.exists(self.DEFAULT_ICONS):
 | 
			
		||||
            self.DEFAULT_ICONS = f"{self.USR_SOLARFM}/icons"
 | 
			
		||||
 | 
			
		||||
        self.logger = Logger(self.CONFIG_PATH).get_logger()
 | 
			
		||||
        self.builder.add_from_file(self.windows_glade)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user