def load(self):    
        # load user theme.

        for theme_file in os.listdir(get_user_theme_dir()):
            full_theme_file = os.path.join(get_user_theme_dir(), theme_file)
            if full_theme_file.endswith(".ini") and os.path.isfile(full_theme_file):
                theme_file_object = ThemeFile(full_theme_file)
                self.user_themes[theme_file_object.location] = theme_file_object

        # load system themes.        
        for theme_file in os.listdir(get_system_theme_dir()):        
            full_theme_file = os.path.join(get_system_theme_dir(), theme_file)
            if full_theme_file.endswith(".ini") and os.path.isfile(full_theme_file):
                theme_file_object = ThemeFile(full_theme_file, is_system_theme = True)
                self.system_themes[theme_file_object.location] = theme_file_object
 def get_untitled_theme(self):
     untitled_path = os.path.join(get_user_theme_dir(), "untitled.ini")
     
     if not os.path.exists(untitled_path):
         return None
     
     return ThemeFile(untitled_path)
 def create_new_theme(self, name, copy_theme=None):
     new_theme_path = os.path.join(get_user_theme_dir(), "%s.ini" % name)
     new_theme = ThemeFile(new_theme_path)
     if copy_theme:
         new_theme.copy_theme(copy_theme)
     new_theme.set_default_name(name)    
     new_theme.set_locale_name(name)
     new_theme.save()    
     return new_theme
 def untitled_theme(self, copy_theme=None):
     untitled_path = os.path.join(get_user_theme_dir(), "untitled.ini")
     untitled_theme = ThemeFile(untitled_path)
     
     if copy_theme:
         untitled_theme.copy_theme(copy_theme)
     
     if not os.path.exists(untitled_path):
         untitled_theme.set_default_name("untitled")    
         untitled_theme.set_locale_name(_("Untitled"))
         untitled_theme.save()    
     
     return untitled_theme
    def get_user_themes(self):
        themes = []
        untitled_theme = ThemeFile(os.path.join(get_user_theme_dir(), "untitled.ini"))
        themes.append(untitled_theme)
        
        for item in self.user_themes.values():
            if item.get_default_name() == "untitled":
                continue
            themes.append(item)

        if not themes:
            return [self.untitled_theme(self.get_default_theme())]
        return themes
 def delete_theme(self, name):
     theme_path = os.path.join(get_user_theme_dir(), "%s.ini" % name)
     os.remove(theme_path)
 def rename_theme(self, name, new_name):
     theme_path = os.path.join(get_user_theme_dir(), "%s.ini" % name)
     theme = ThemeFile(theme_path)
     theme.set_locale_name(new_name)
     theme.save()
    def is_theme_exist(self, name):
        theme_path = os.path.join(get_user_theme_dir(), "%s.ini" % name)
        if os.path.exists(theme_path):
            return True

        return False