示例#1
0
    def loadSettings(self):
        """
        Loads the settings from the exe.conf file.
        Overrides the defaults set in __init__
        """

        def defVal(dummy, option):
            """If something is not in the config file, just use the default in
            'self'"""
            return getattr(self, option)

        self.configParser.defaultValue = defVal
        self.upgradeFile()
        if self.configParser.has_section("system"):
            system = self.configParser.system
            self.webDir = Path(system.webDir)
            self.xulDir = Path(system.xulDir)
            self.localeDir = Path(system.localeDir)
            self.port = int(system.port)
            self.browserPath = Path(system.browserPath)
            self.dataDir = Path(system.dataDir)
            self.configDir = Path(system.configDir)
        if not self.dataDir.isdir():
            self.dataDir = tempfile.gettempdir()
        self.webDir = self.webDir.expand().abspath()
        if not self.configDir.exists():
            self.configDir.mkdir()
        if self.configParser.has_section("user"):
            if self.configParser.user.has_option("locale"):
                self.locale = self.configParser.user.locale
                return
        self.locale = chooseDefaultLocale(self.localeDir)
示例#2
0
 def __init__(self):
     """
     Initialise
     """
     self.configPath = None
     self.configParser = ConfigParser()
     self.exePath = Path(sys.argv[0]).abspath()
     self.webDir = self.exePath.dirname()
     self.xulDir = self.exePath.dirname()
     self.localeDir = self.exePath.dirname() / "locale"
     self.port = 51235
     self.dataDir = Path(".")
     self.configDir = Path(".")
     self.browserPath = Path("firefox")
     self.locale = chooseDefaultLocale(self.localeDir)
     self.styles = []
     self._overrideDefaultVals()
     self.webDir = Path(self.webDir)
     if not (self.webDir / "scripts").isdir() and (self.webDir / "webui").isdir():
         self.webDir /= "webui"
     self.xulDir = Path(self.xulDir)
     if not (self.xulDir / "scripts").isdir() and (self.xulDir / "xului").isdir():
         self.xulDir /= "xului"
     self.__setConfigPath()
     self._writeDefaultConfigFile()
     self.loadSettings()
     self.setupLogging()
     self.loadStyles()
     self.loadLocales()
示例#3
0
 def loadSettings(self):
     """
     Loads the settings from the exe.conf file.
     Overrides the defaults set in __init__
     """
     def defVal(dummy, option):
         """If something is not in the config file, just use the default in
         'self'"""
         return getattr(self, option)
     self.configParser.defaultValue = defVal
     self.upgradeFile()
     if self.configParser.has_section('system'):
         system = self.configParser.system
         self.webDir         = Path(system.webDir)
         self.xulDir         = Path(system.xulDir)
         self.localeDir      = Path(system.localeDir)
         self.port           = int(system.port)
         self.browserPath    = Path(system.browserPath)
         self.dataDir        = Path(system.dataDir)
         self.configDir      = Path(system.configDir)
     if not self.dataDir.isdir():
         self.dataDir = tempfile.gettempdir()
     self.webDir = self.webDir.expand().abspath()
     if not self.configDir.exists():
         self.configDir.mkdir()
     if self.configParser.has_section('user'):
         if self.configParser.user.has_option('locale'):
             self.locale = self.configParser.user.locale
     self.recentProjects = []
     if self.configParser.has_section('recent_projects'):
         recentProjectsSection = self.configParser.recent_projects
         for key, path in recentProjectsSection.items():
             self.recentProjects.append(path)
     self.locale = chooseDefaultLocale(self.localeDir)
示例#4
0
 def loadSettings(self):
     """
     Loads the settings from the exe.conf file.
     Overrides the defaults set in __init__
     """
     def defVal(dummy, option):
         """If something is not in the config file, just use the default in
         'self'"""
         return getattr(self, option)
     self.configParser.defaultValue = defVal
     self.upgradeFile()
     if self.configParser.has_section('system'):
         system = self.configParser.system
         self.webDir         = Path(system.webDir)
         self.xulDir         = Path(system.xulDir)
         self.localeDir      = Path(system.localeDir)
         self.port           = int(system.port)
         self.browserPath    = Path(system.browserPath)
         self.dataDir        = Path(system.dataDir)
         self.configDir      = Path(system.configDir)
         self.assumeMediaPlugins = False;
         if self.configParser.has_option('system', \
                 'assumeMediaPlugins'):
            value = system.assumeMediaPlugins.strip().lower()
            if value == "1" or value == "yes" or value == "true" or \
                value == "on":
                    self.assumeMediaPlugins = True;
     if not self.dataDir.isdir():
         self.dataDir = tempfile.gettempdir()
     self.webDir = self.webDir.expand().abspath()
     if not self.configDir.exists():
         self.configDir.mkdir()
     self.recentProjects = []
     if self.configParser.has_section('recent_projects'):
         recentProjectsSection = self.configParser.recent_projects
         for key, path in recentProjectsSection.items():
             self.recentProjects.append(path)
     self.hiddeniDevices = []
     if self.configParser.has_section('idevices'):
         idevicesSection = self.configParser.idevices
         for key,value in idevicesSection.items():
             value = value.strip().lower()
             if value == "0" or value == "no" or value == "false" or \
                     value == "off":
                 self.hiddeniDevices.append(key.lower())
     if self.configParser.has_section('deprecated'):
         deprecatedSection = self.configParser.deprecated
         for key,value in deprecatedSection.items():
             value = value.strip().lower()
             if value == "1" or value == "yes" or value == "true" or \
                     value == "on":
                 if key.lower() in self.deprecatediDevices:
                     self.deprecatediDevices.remove(key.lower())
     if self.configParser.has_section('user'):
         if self.configParser.user.has_option('locale'):
             self.locale = self.configParser.user.locale
             return
     self.locale = chooseDefaultLocale(self.localeDir)
示例#5
0
    def loadSettings(self):
        """
        Loads the settings from the exe.conf file.
        Overrides the defaults set in __init__
        """

        def defVal(dummy, option):
            """If something is not in the config file, just use the default in
            'self'"""
            return getattr(self, option)

        self.configParser.defaultValue = defVal
        self.upgradeFile()
        if self.configParser.has_section("system"):
            system = self.configParser.system
            self.webDir = Path(system.webDir)
            self.xulDir = Path(system.xulDir)
            self.localeDir = Path(system.localeDir)
            self.port = int(system.port)
            self.browserPath = Path(system.browserPath)
            self.dataDir = Path(system.dataDir)
            self.configDir = Path(system.configDir)
        if not self.dataDir.isdir():
            self.dataDir = tempfile.gettempdir()
        self.webDir = self.webDir.expand().abspath()
        if not self.configDir.exists():
            self.configDir.mkdir()
        self.recentProjects = []
        if self.configParser.has_section("recent_projects"):
            recentProjectsSection = self.configParser.recent_projects
            for key, path in recentProjectsSection.items():
                self.recentProjects.append(path)
        self.hiddeniDevices = []
        if self.configParser.has_section("idevices"):
            idevicesSection = self.configParser.idevices
            for key, value in idevicesSection.items():
                value = value.strip().lower()
                if value == "0" or value == "no" or value == "false" or value == "off":
                    self.hiddeniDevices.append(key.lower())
        if self.configParser.has_section("user"):
            if self.configParser.user.has_option("locale"):
                self.locale = self.configParser.user.locale
                return
        self.locale = chooseDefaultLocale(self.localeDir)
示例#6
0
 def __init__(self):
     """
     Initialise
     """
     self.configPath = None
     self.configParser = ConfigParser(self.onWrite)
     self.exePath     = Path(sys.argv[0]).abspath()
     self.webDir      = self.exePath.dirname()
     self.xulDir      = self.exePath.dirname()
     self.localeDir   = self.exePath.dirname()/"locale"
     self.port        = 51235
     self.dataDir     = Path(".")
     self.configDir   = Path(".")
     self.browserPath = Path("firefox")
     self.locale = chooseDefaultLocale(self.localeDir)
     self.styles      = []
     self.recentProjects = []
     self.hiddeniDevices = []
     self.deprecatediDevices = [ "flash with text", "flash movie", "mp3", \
                                 "attachment"]
     self.assumeMediaPlugins = False;
     self._overrideDefaultVals()
     self.webDir = Path(self.webDir)
     if not (self.webDir/'scripts').isdir() \
        and (self.webDir/'webui').isdir():
         self.webDir /= 'webui'
     self.xulDir = Path(self.xulDir)
     if not (self.xulDir/'scripts').isdir() \
        and (self.xulDir/'xului').isdir():
         self.xulDir /= 'xului'
     self.__setConfigPath()
     self._writeDefaultConfigFile()
     self.loadSettings()
     self.setupLogging()
     self.loadStyles()
     self.loadLocales()
示例#7
0
 def __init__(self):
     """
     Initialise
     """
     self.configPath = None
     self.configParser = ConfigParser(self.onWrite)
     # Set default values
     # idevices is the list of hidden idevices selected by the user
     self.someone = 0
     # exePath is the whole path and filename of the exe executable
     self.exePath = Path(sys.argv[0]).abspath()
     # webDir is the parent directory for styles,scripts and templates
     self.webDir = self.exePath.dirname()
     # xulDir is the parent directory for styles,scripts and templates
     self.xulDir = self.exePath.dirname()
     # localeDir is the base directory where all the locales are stored
     self.localeDir = self.exePath.dirname() / "locale"
     # port is the port the exe webserver will listen on
     # (previous default, which earlier users might still use, was 8081)
     self.port = 51235
     # dataDir is the default directory that is shown to the user
     # to save packages and exports in
     self.dataDir = Path(".")
     # configDir is the dir for storing user profiles
     # and user made idevices and the config file
     self.configDir = Path(".")
     # browserPath is the entire pathname to firefox
     self.browserPath = Path("firefox")
     # locale is the language of the user
     self.locale = chooseDefaultLocale(self.localeDir)
     # internalAnchors indicate which exe_tmp_anchor tags to generate for each tinyMCE field
     # available values = "enable_all", "disable_autotop", or "disable_all"
     self.internalAnchors = "enable_all"
     # styles is the list of style names available for loading
     self.styles = []
     # The documents that we've recently looked at
     self.recentProjects = []
     # canonical (English) names of iDevices not to show in the iDevice pane
     self.hiddeniDevices = []
     # likewise, a canonical (English) names of iDevices not to show in the
     # iDevice pane but, contrary to the hiddens, these are ones that the
     # configuration can specify to turn ON:
     self.deprecatediDevices = [ "flash with text", "flash movie", "mp3", \
                                 "attachment"]
     # by default, only allow embedding of media types for which a
     # browser plugin is found:
     self.assumeMediaPlugins = False
     # Let our children override our defaults depending
     # on the OS that we're running on
     self._overrideDefaultVals()
     # Try to make the defaults a little intelligent
     # Under devel trees, webui is the default webdir
     self.webDir = Path(self.webDir)
     if not (self.webDir/'scripts').isdir() \
        and (self.webDir/'webui').isdir():
         self.webDir /= 'webui'
     # Under devel trees, xului is the default xuldir
     self.xulDir = Path(self.xulDir)
     if not (self.xulDir/'scripts').isdir() \
        and (self.xulDir/'xului').isdir():
         self.xulDir /= 'xului'
     # Find where the config file will be saved
     self.__setConfigPath()
     # Fill in any undefined config options with our defaults
     self._writeDefaultConfigFile()
     # Now we are ready to serve the application
     self.loadSettings()
     self.setupLogging()
     self.loadStyles()
     self.loadLocales()
示例#8
0
    def loadSettings(self):
        """
        Loads the settings from the exe.conf file.
        Overrides the defaults set in __init__
        """

        # Set up the parser so that if a certain value is not in the config
        # file, it will use the value from our default values
        def defVal(dummy, option):
            """If something is not in the config file, just use the default in
            'self'"""
            return getattr(self, option)

        self.configParser.defaultValue = defVal
        self.upgradeFile()
        # System Section
        if self.configParser.has_section('system'):
            system = self.configParser.system
            self.webDir = Path(system.webDir)
            self.xulDir = Path(system.xulDir)
            self.localeDir = Path(system.localeDir)
            self.port = int(system.port)
            self.browserPath = Path(system.browserPath)
            self.dataDir = Path(system.dataDir)
            self.configDir = Path(system.configDir)

            self.assumeMediaPlugins = False
            if self.configParser.has_option('system', \
                    'assumeMediaPlugins'):
                value = system.assumeMediaPlugins.strip().lower()
                if value == "1" or value == "yes" or value == "true" or \
                    value == "on":
                    self.assumeMediaPlugins = True

        # If the dataDir points to some other dir, fix it
        if not self.dataDir.isdir():
            self.dataDir = tempfile.gettempdir()
        # make the webDir absolute, to hide path joins of relative paths
        self.webDir = self.webDir.expand().abspath()
        # If the configDir doesn't exist (as it may be a default setting with a
        # new installation) create it
        if not self.configDir.exists():
            self.configDir.mkdir()

        # Get the list of recently opened projects
        self.recentProjects = []
        if self.configParser.has_section('recent_projects'):
            recentProjectsSection = self.configParser.recent_projects
            for key, path in recentProjectsSection.items():
                self.recentProjects.append(path)

        # Load the list of "hidden" iDevices
        self.hiddeniDevices = []
        if self.configParser.has_section('idevices'):
            idevicesSection = self.configParser.idevices
            for key, value in idevicesSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "0" or value == "no" or value == "false" or \
                        value == "off":
                    self.hiddeniDevices.append(key.lower())

        #self.deprecatediDevices = [ "flash with text", "flash movie", ...]
        # and UN-Load from the list of "deprecated" iDevices
        if self.configParser.has_section('deprecated'):
            deprecatedSection = self.configParser.deprecated
            for key, value in deprecatedSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "1" or value == "yes" or value == "true" or \
                        value == "on":
                    if key.lower() in self.deprecatediDevices:
                        self.deprecatediDevices.remove(key.lower())

        # Load the "user" section
        if self.configParser.has_section('user'):
            if self.configParser.user.has_option('internalAnchors'):
                self.internalAnchors = self.configParser.user.internalAnchors
            if self.configParser.user.has_option('locale'):
                self.locale = self.configParser.user.locale
                return
        self.locale = chooseDefaultLocale(self.localeDir)
示例#9
0
    def loadSettings(self):
        """
        Loads the settings from the exe.conf file.
        Overrides the defaults set in __init__
        """
        # Set up the parser so that if a certain value is not in the config
        # file, it will use the value from our default values
        def defVal(dummy, option):
            """If something is not in the config file, just use the default in
            'self'"""
            return getattr(self, option)
        self.configParser.defaultValue = defVal
        self.upgradeFile()
        # System Section
        if self.configParser.has_section('system'):
            system = self.configParser.system

            
            self.port           = int(system.port)
            self.browser        = None if system.browser == u"None" else system.browser
            
            
            if not G.application.portable:
                self.dataDir        = Path(system.dataDir)
                self.configDir      = Path(system.configDir)
                self.webDir         = Path(system.webDir)
                self.stylesDir      = Path(self.configDir)/'style'
                self.jsDir          = Path(system.jsDir)
            else:
                self.stylesDir      = Path(self.webDir/'style').abspath()
            
            self.assumeMediaPlugins = False;
            if self.configParser.has_option('system', \
                    'assumeMediaPlugins'):
               value = system.assumeMediaPlugins.strip().lower()
               if value == "1" or value == "yes" or value == "true" or \
                   value == "on":
                       self.assumeMediaPlugins = True;

        # If the dataDir points to some other dir, fix it
        if not self.dataDir.isdir():
            self.dataDir = tempfile.gettempdir()
        # make the webDir absolute, to hide path joins of relative paths
        self.webDir = self.webDir.expand().abspath()
        # If the configDir doesn't exist (as it may be a default setting with a
        # new installation) create it
        if not self.configDir.exists():
            self.configDir.mkdir()
		
        if not G.application.standalone: 
             #FM: Copy styles         
            if not os.path.exists(self.stylesDir) or not os.listdir(self.stylesDir):
                self.copyStyles() 
            else:
                self.updateStyles()                      
        else:
            if G.application.portable:
                if os.name == 'posix': 
                    self.stylesDir      = Path(self.webDir/'..'/'..'/'..'/'style')
                else: 
                    self.stylesDir      = Path(self.webDir/'..'/'style')
                if not os.path.exists(self.stylesDir) or not os.listdir(self.stylesDir): 
                    self.copyStyles()
            else:
                self.stylesDir     = Path(self.webDir/'style').abspath()
            
               
        # Get the list of recently opened projects
        self.recentProjects = []
        if self.configParser.has_section('recent_projects'):
            recentProjectsSection = self.configParser.recent_projects
            # recentProjectsSection.items() is in the wrong order, keys are alright.
            # Sorting list by key before adding to self.recentProjects, to avoid wrong ordering
            # in Recent Projects menu list
            recentProjectsItems = recentProjectsSection.items();
            recentProjectsItems.sort()
            for key, path in recentProjectsItems:
                self.recentProjects.append(path)
                
        # Load the list of "hidden" iDevices
        self.hiddeniDevices = []
        if self.configParser.has_section('idevices'):
            idevicesSection = self.configParser.idevices
            for key,value in idevicesSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "0" or value == "no" or value == "false" or \
                        value == "off":
                    self.hiddeniDevices.append(key.lower())

        #self.deprecatediDevices = [ "flash with text", "flash movie", ...]
        # and UN-Load from the list of "deprecated" iDevices
        if self.configParser.has_section('deprecated'):
            deprecatedSection = self.configParser.deprecated
            for key,value in deprecatedSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "1" or value == "yes" or value == "true" or \
                        value == "on":
                    if key.lower() in self.deprecatediDevices:
                        self.deprecatediDevices.remove(key.lower())

        # Load the "user" section
        if self.configParser.has_section('user'):
            if self.configParser.user.has_option('editorMode'):
                self.editorMode = self.configParser.user.editorMode
            if self.configParser.user.has_option('docType'):
                self.docType = self.configParser.user.docType
                common.setExportDocType(self.configParser.user.docType)
            if self.configParser.user.has_option('defaultStyle'):
                self.defaultStyle= self.configParser.user.defaultStyle
            if self.configParser.user.has_option('styleSecureMode'):
                self.styleSecureMode= self.configParser.user.styleSecureMode
            if self.configParser.user.has_option('internalAnchors'):
                self.internalAnchors = self.configParser.user.internalAnchors
            if self.configParser.user.has_option('lastDir'):
                self.lastDir = self.configParser.user.lastDir
            if self.configParser.user.has_option('showPreferencesOnStart'):
                self.showPreferencesOnStart = self.configParser.user.showPreferencesOnStart
            if self.configParser.user.has_option('showIdevicesGrouped'):
                self.showIdevicesGrouped = self.configParser.user.showIdevicesGrouped
            if self.configParser.user.has_option('locale'):
                self.locale = self.configParser.user.locale
                return
        self.locale = chooseDefaultLocale(self.localeDir)
示例#10
0
    def __init__(self):
        """
        Initialise
        """
        self.configPath = None
        self.configParser = ConfigParser(self.onWrite)
        # Set default values
        # exePath is the whole path and filename of the exe executable
        self.exePath     = Path(sys.argv[0]).abspath()
        # webDir is the parent directory for styles,scripts and templates
        self.webDir      = self.exePath.dirname()
        self.jsDir       = self.exePath.dirname()
        # localeDir is the base directory where all the locales are stored
        self.localeDir   = self.exePath.dirname()/"locale"
        # port is the port the exe webserver will listen on 
        # (previous default, which earlier users might still use, was 8081)
        self.port        = 51235
        # dataDir is the default directory that is shown to the user
        # to save packages and exports in
        self.dataDir     = Path(".")
        # configDir is the dir for storing user profiles
        # and user made idevices and the config file
        self.configDir   = Path(".")
		#FM: New Styles Directory path
        self.stylesDir =Path(self.configDir/'style').abspath()
        #FM: Default Style name
        self.defaultStyle= u"standardwhite"
        # browser is the name of a predefined browser specified at http://docs.python.org/library/webbrowser.html.
        # None for system default
        self.browser = None
        # docType  is the HTML export format
        self.docType = 'XHTML' 
        # locale is the language of the user
        self.locale = chooseDefaultLocale(self.localeDir)
        # internalAnchors indicate which exe_tmp_anchor tags to generate for each tinyMCE field
        # available values = "enable_all", "disable_autotop", or "disable_all"
        self.internalAnchors = "enable_all"
        self.lastDir = None
        self.showPreferencesOnStart = "1"
        self.showIdevicesGrouped = "1"
        # tinymce option
        self.editorMode = 'permissive' 
        # styleSecureMode : if this [user] key is = 0  , exelearning can run python files in styles
        # as websitepage.py , ... ( deactivate secure mode )
        self.styleSecureMode="1"
        # styles is the list of style names available for loading
        self.styles      = []
        # The documents that we've recently looked at
        self.recentProjects = []
        # canonical (English) names of iDevices not to show in the iDevice pane
        self.hiddeniDevices = []
        #Media conversion programs used for XML export system
        self.videoMediaConverter_ogv = ""
        self.videoMediaConverter_3gp = ""
        self.videoMediaConverter_avi = ""
        self.videoMediaConverter_mpg = ""
        self.audioMediaConverter_ogg = ""
        self.audioMediaConverter_au = ""
        self.audioMediaConverter_mp3 = ""
        self.audioMediaConverter_wav = ""
        self.ffmpegPath = ""
        self.mediaProfilePath = self.exePath.dirname()/'mediaprofiles'
        
        # likewise, a canonical (English) names of iDevices not to show in the
        # iDevice pane but, contrary to the hiddens, these are ones that the 
        # configuration can specify to turn ON:
        self.deprecatediDevices = [ "flash with text", "flash movie", "mp3", \
                                    "attachment"]
        # by default, only allow embedding of media types for which a 
        # browser plugin is found:
        self.assumeMediaPlugins = False;
        # Let our children override our defaults depending
        # on the OS that we're running on
        self._overrideDefaultVals()
        # Try to make the defaults a little intelligent
        # Under devel trees, webui is the default webdir
        self.webDir = Path(self.webDir)
        if not (self.webDir/'scripts').isdir() \
           and (self.webDir/'webui').isdir():
            self.webDir /= 'webui'
        self.jsDir = Path(self.jsDir)
        if not (self.jsDir/'scripts').isdir() \
           and (self.jsDir/'jsui').isdir():
            self.jsDir /= 'jsui'
        # Find where the config file will be saved
        self.__setConfigPath()
        # Fill in any undefined config options with our defaults
        self._writeDefaultConfigFile()
        # Now we are ready to serve the application
        self.loadSettings()
        self.setupLogging()
        self.loadLocales()
        self.loadStyles()
示例#11
0
    def __init__(self):
        """
        Initialise
        """
        self.configPath = None
        self.configParser = ConfigParser(self.onWrite)
        # Set default values
        # exePath is the whole path and filename of the exe executable
        self.exePath     = Path(sys.argv[0]).abspath()
        # webDir is the parent directory for styles,scripts and templates
        self.webDir      = self.exePath.dirname()
        self.jsDir       = self.exePath.dirname()
        self.locales     = {}
        # localeDir is the base directory where all the locales are stored
        self.localeDir   = self.exePath.dirname()/"locale"
        # port is the port the exe webserver will listen on
        # (previous default, which earlier users might still use, was 8081)
        self.port        = 51235
        # dataDir is the default directory that is shown to the user
        # to save packages and exports in
        self.dataDir     = Path(".")
        # configDir is the dir for storing user profiles
        # and user made idevices and the config file
        self.configDir   = Path(".")
        # FM: New Styles Directory path
        self.stylesDir   = Path(self.configDir/'style').abspath()
        # FM: Default Style name
        self.defaultStyle = u"INTEF"
        # Styles repository XML-RPC endpoint
        # self.stylesRepository = 'http://www.exelearning.es/xmlrpc.php'
        self.stylesRepository = 'http://www.exelearning.net/xmlrpc.php'
        # browser is the name of a predefined browser specified
        # at http://docs.python.org/library/webbrowser.html.
        # None for system default
        self.browser = None
        # docType  is the HTML export format
        self.docType = 'HTML5'
        # internalAnchors indicate which exe_tmp_anchor tags to generate for each tinyMCE field
        # available values = "enable_all", "disable_autotop", or "disable_all"
        self.internalAnchors = "enable_all"
        self.lastDir = None
        self.showPreferencesOnStart = "1"
        self.showIdevicesGrouped = "1"
        # tinymce option
        self.editorMode = 'permissive'
        self.editorVersion = '4'
        # styleSecureMode : if this [user] key is = 0  , exelearning can run python files in styles
        # as websitepage.py , ... ( deactivate secure mode )
        self.styleSecureMode = "1"
        # styles is the list of style names available for loading
        self.styles = []
        # The documents that we've recently looked at
        self.recentProjects = []
        # canonical (English) names of iDevices not to show in the iDevice pane
        self.hiddeniDevices = []
        # Media conversion programs used for XML export system
        self.videoMediaConverter_ogv = ""
        self.videoMediaConverter_3gp = ""
        self.videoMediaConverter_avi = ""
        self.videoMediaConverter_mpg = ""
        self.audioMediaConverter_ogg = ""
        self.audioMediaConverter_au = ""
        self.audioMediaConverter_mp3 = ""
        self.audioMediaConverter_wav = ""
        self.ffmpegPath = ""
        self.mediaProfilePath = self.exePath.dirname()/'mediaprofiles'

        # likewise, a canonical (English) names of iDevices not to show in the
        # iDevice pane but, contrary to the hiddens, these are ones that the
        # configuration can specify to turn ON:
        self.deprecatediDevices = ["flash with text", "flash movie", "mp3",
                                   "attachment"]
        # by default, only allow embedding of media types for which a
        # browser plugin is found:

        self.defaultLicense='creative commons: attribution - share alike 4.0'

        self.assumeMediaPlugins = False
        # Let our children override our defaults depending
        # on the OS that we're running on
        self._overrideDefaultVals()
        # locale is the language of the user. localeDir can be overridden
        # that's why we must set it _after_ the call to _overrideDefaultVals()
        self.locale = chooseDefaultLocale(self.localeDir)
        # Try to make the defaults a little intelligent
        # Under devel trees, webui is the default webdir
        self.webDir = Path(self.webDir)
        if not (self.webDir/'scripts').isdir() \
           and (self.webDir/'webui').isdir():
            self.webDir /= 'webui'
        self.jsDir = Path(self.jsDir)
        if not (self.jsDir/'scripts').isdir() \
           and (self.jsDir/'jsui').isdir():
            self.jsDir /= 'jsui'
        # Find where the config file will be saved
        self.__setConfigPath()
        # Fill in any undefined config options with our defaults
        self._writeDefaultConfigFile()
        # Now we are ready to serve the application
        self.loadSettings()
        self.setupLogging()
        self.loadLocales()
        self.loadStyles()
示例#12
0
 def __init__(self):
     """
     Initialise
     """
     self.configPath = None
     self.configParser = ConfigParser(self.onWrite)
     # Set default values
     # exePath is the whole path and filename of the exe executable
     self.exePath     = Path(sys.argv[0]).abspath()
     # webDir is the parent directory for styles,scripts and templates
     self.webDir      = self.exePath.dirname()
     # xulDir is the parent directory for styles,scripts and templates
     self.xulDir      = self.exePath.dirname()
     # localeDir is the base directory where all the locales are stored
     self.localeDir   = self.exePath.dirname()/"locale"
     # port is the port the exe webserver will listen on 
     # (previous default, which earlier users might still use, was 8081)
     self.port        = 51235
     # dataDir is the default directory that is shown to the user
     # to save packages and exports in
     self.dataDir     = Path(".")
     # configDir is the dir for storing user profiles
     # and user made idevices and the config file
     self.configDir   = Path(".")
     # browserPath is the entire pathname to firefox
     self.browserPath = Path("firefox")
     # locale is the language of the user
     self.locale = chooseDefaultLocale(self.localeDir)
     # internalAnchors indicate which exe_tmp_anchor tags to generate for each tinyMCE field
     # available values = "enable_all", "disable_autotop", or "disable_all"
     self.internalAnchors = "enable_all"
     # styles is the list of style names available for loading
     self.styles      = []
     # The documents that we've recently looked at
     self.recentProjects = []
     # canonical (English) names of iDevices not to show in the iDevice pane
     self.hiddeniDevices = []
     # likewise, a canonical (English) names of iDevices not to show in the
     # iDevice pane but, contrary to the hiddens, these are ones that the 
     # configuration can specify to turn ON:
     self.deprecatediDevices = [ "flash with text", "flash movie", "mp3", \
                                 "attachment"]
     # by default, only allow embedding of media types for which a 
     # browser plugin is found:
     self.assumeMediaPlugins = False;
     # Let our children override our defaults depending
     # on the OS that we're running on
     self._overrideDefaultVals()
     # Try to make the defaults a little intelligent
     # Under devel trees, webui is the default webdir
     self.webDir = Path(self.webDir)
     if not (self.webDir/'scripts').isdir() \
        and (self.webDir/'webui').isdir():
         self.webDir /= 'webui'
     # Under devel trees, xului is the default xuldir
     self.xulDir = Path(self.xulDir)
     if not (self.xulDir/'scripts').isdir() \
        and (self.xulDir/'xului').isdir():
         self.xulDir /= 'xului'
     # Latex distribution path if environment wasn't set properly
     self.latexpath = ""
     # Find where the config file will be saved
     self.__setConfigPath()
     # Fill in any undefined config options with our defaults
     self._writeDefaultConfigFile()
     # Now we are ready to serve the application
     self.loadSettings()
     self.setupLogging()
     self.loadStyles()
     self.loadLocales()
示例#13
0
    def loadSettings(self):
        """
        Loads the settings from the exe.conf file.
        Overrides the defaults set in __init__
        """
        # Set up the parser so that if a certain value is not in the config
        # file, it will use the value from our default values
        def defVal(dummy, option):
            """If something is not in the config file, just use the default in
            'self'"""
            return getattr(self, option)
        self.configParser.defaultValue = defVal
        self.upgradeFile()
        # System Section
        if self.configParser.has_section('system'):
            system = self.configParser.system
            self.webDir         = Path(system.webDir)
            self.xulDir         = Path(system.xulDir)
            self.localeDir      = Path(system.localeDir)
            self.port           = int(system.port)
            self.browserPath    = Path(system.browserPath)
            self.dataDir        = Path(system.dataDir)
            self.configDir      = Path(system.configDir)
            
            self.assumeMediaPlugins = False;
            if self.configParser.has_option('system', \
                    'assumeMediaPlugins'):
               value = system.assumeMediaPlugins.strip().lower()
               if value == "1" or value == "yes" or value == "true" or \
                   value == "on":
                       self.assumeMediaPlugins = True;

        # If the dataDir points to some other dir, fix it
        if not self.dataDir.isdir():
            self.dataDir = tempfile.gettempdir()
        # make the webDir absolute, to hide path joins of relative paths
        self.webDir = self.webDir.expand().abspath()
        # If the configDir doesn't exist (as it may be a default setting with a
        # new installation) create it
        if not self.configDir.exists():
            self.configDir.mkdir()
                
        # Get the list of recently opened projects
        self.recentProjects = []
        if self.configParser.has_section('recent_projects'):
            recentProjectsSection = self.configParser.recent_projects
            for key, path in recentProjectsSection.items():
                self.recentProjects.append(path)
                
        # Load the list of "hidden" iDevices
        self.hiddeniDevices = []
        if self.configParser.has_section('idevices'):
            idevicesSection = self.configParser.idevices
            for key,value in idevicesSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "0" or value == "no" or value == "false" or \
                        value == "off":
                    self.hiddeniDevices.append(key.lower())

        #self.deprecatediDevices = [ "flash with text", "flash movie", ...]
        # and UN-Load from the list of "deprecated" iDevices
        if self.configParser.has_section('deprecated'):
            deprecatedSection = self.configParser.deprecated
            for key,value in deprecatedSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "1" or value == "yes" or value == "true" or \
                        value == "on":
                    if key.lower() in self.deprecatediDevices:
                        self.deprecatediDevices.remove(key.lower())

        # Load the "user" section
        if self.configParser.has_section('user'):
            if self.configParser.user.has_option('internalAnchors'):
                self.internalAnchors = self.configParser.user.internalAnchors
            if self.configParser.user.has_option('locale'):
                self.locale = self.configParser.user.locale
                return
        self.locale = chooseDefaultLocale(self.localeDir)
示例#14
0
    def loadSettings(self):
        """
        Loads the settings from the exe.conf file.
        Overrides the defaults set in __init__
        """

        # Set up the parser so that if a certain value is not in the config
        # file, it will use the value from our default values
        def defVal(dummy, option):
            """If something is not in the config file, just use the default in
            'self'"""
            return getattr(self, option)

        self.configParser.defaultValue = defVal
        self.upgradeFile()
        # System Section
        if self.configParser.has_section('system'):
            system = self.configParser.system

            self.port = int(system.port)
            self.browser = None if system.browser == u"None" else system.browser

            if not G.application.portable:
                self.dataDir = Path(system.dataDir)
                self.configDir = Path(system.configDir)
                self.webDir = Path(system.webDir)
                self.stylesDir = Path(self.configDir) / 'style'
                self.jsDir = Path(system.jsDir)
            else:
                self.stylesDir = Path(self.webDir / 'style').abspath()

            self.assumeMediaPlugins = False
            if self.configParser.has_option('system', \
                    'assumeMediaPlugins'):
                value = system.assumeMediaPlugins.strip().lower()
                if value == "1" or value == "yes" or value == "true" or \
                    value == "on":
                    self.assumeMediaPlugins = True

        # If the dataDir points to some other dir, fix it
        if not self.dataDir.isdir():
            self.dataDir = tempfile.gettempdir()
        # make the webDir absolute, to hide path joins of relative paths
        self.webDir = self.webDir.expand().abspath()
        # If the configDir doesn't exist (as it may be a default setting with a
        # new installation) create it
        if not self.configDir.exists():
            self.configDir.mkdir()

        if not G.application.standalone:
            #FM: Copy styles
            if not os.path.exists(self.stylesDir) or not os.listdir(
                    self.stylesDir):
                self.copyStyles()
            else:
                self.updateStyles()
        else:
            if G.application.portable:
                if os.name == 'posix':
                    self.stylesDir = Path(self.webDir / '..' / '..' / '..' /
                                          'style')
                else:
                    self.stylesDir = Path(self.webDir / '..' / 'style')
                if not os.path.exists(self.stylesDir) or not os.listdir(
                        self.stylesDir):
                    self.copyStyles()
            else:
                self.stylesDir = Path(self.webDir / 'style').abspath()

        # Get the list of recently opened projects
        self.recentProjects = []
        if self.configParser.has_section('recent_projects'):
            recentProjectsSection = self.configParser.recent_projects
            # recentProjectsSection.items() is in the wrong order, keys are alright.
            # Sorting list by key before adding to self.recentProjects, to avoid wrong ordering
            # in Recent Projects menu list
            recentProjectsItems = recentProjectsSection.items()
            recentProjectsItems.sort()
            for key, path in recentProjectsItems:
                self.recentProjects.append(path)

        # Load the list of "hidden" iDevices
        self.hiddeniDevices = []
        if self.configParser.has_section('idevices'):
            idevicesSection = self.configParser.idevices
            for key, value in idevicesSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "0" or value == "no" or value == "false" or \
                        value == "off":
                    self.hiddeniDevices.append(key.lower())

        #self.deprecatediDevices = [ "flash with text", "flash movie", ...]
        # and UN-Load from the list of "deprecated" iDevices
        if self.configParser.has_section('deprecated'):
            deprecatedSection = self.configParser.deprecated
            for key, value in deprecatedSection.items():
                # emulate standard library's getboolean()
                value = value.strip().lower()
                if value == "1" or value == "yes" or value == "true" or \
                        value == "on":
                    if key.lower() in self.deprecatediDevices:
                        self.deprecatediDevices.remove(key.lower())

        # Load the "user" section
        if self.configParser.has_section('user'):
            if self.configParser.user.has_option('editorMode'):
                self.editorMode = self.configParser.user.editorMode
            if self.configParser.user.has_option('docType'):
                self.docType = self.configParser.user.docType
                common.setExportDocType(self.configParser.user.docType)
            if self.configParser.user.has_option('defaultStyle'):
                self.defaultStyle = self.configParser.user.defaultStyle
            if self.configParser.user.has_option('styleSecureMode'):
                self.styleSecureMode = self.configParser.user.styleSecureMode
            if self.configParser.user.has_option('internalAnchors'):
                self.internalAnchors = self.configParser.user.internalAnchors
            if self.configParser.user.has_option('lastDir'):
                self.lastDir = self.configParser.user.lastDir
            if self.configParser.user.has_option('showPreferencesOnStart'):
                self.showPreferencesOnStart = self.configParser.user.showPreferencesOnStart
            if self.configParser.user.has_option('showIdevicesGrouped'):
                self.showIdevicesGrouped = self.configParser.user.showIdevicesGrouped
            if self.configParser.user.has_option('locale'):
                self.locale = self.configParser.user.locale
                return
        self.locale = chooseDefaultLocale(self.localeDir)