configurationengine/source/plugins/symbian/ConeThemePlugin/themeplugin/theme_container.py
author m2lahtel
Thu, 21 Oct 2010 16:36:53 +0300
changeset 5 d2c80f5cab53
parent 3 e7e0ae78773e
permissions -rw-r--r--
Updated to version 1.2.14
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
# All rights reserved.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
# This component and the accompanying materials are made available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
# under the terms of "Eclipse Public License v1.0"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
# which accompanies this distribution, and is available
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
# Initial Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
# Nokia Corporation - initial contribution.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
# Contributors:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
# Description: 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
#
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
import os
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
import unzip
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
import shutil
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
import logging
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
from themeplugin import theme_function
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
from theme_resource import ThemeResource
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
from cone.storage import filestorage
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
from cone.public import plugin
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
class ThemeContainer:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
    This class provides extracts *.tpf files, convertts to *.mbm,*.pkg, ... files and set UID(PID)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
    to the setting values in the model 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
    def __init__(self, list_tpf, configuration):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
        self.list_tpf=list_tpf
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
        self.configuration=configuration
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
        self.list_theme=[]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
        self.logger = logging.getLogger('cone.thememl')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
        self.carbide = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
    def create_themes(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
        extractes tpf file to the temporary directory and creates Theme objects
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
        for tpf in self.list_tpf:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
            logging.getLogger('cone.thememl').info("Creating temp folder for %s" % tpf)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
            theme = Theme()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
            theme.set_tpf_path(tpf)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
            temp_tdf = os.tempnam("Theme")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
            os.mkdir(temp_tdf)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
            temp_theme = os.path.join(temp_tdf,"__temp__")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
            os.mkdir(temp_theme)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
            theme.set_temp_theme(temp_theme)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
            theme.set_temp_tdf(temp_tdf)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
            self.list_theme.append(theme)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
    def build_theme(self, theme_version):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
        converts *.tpf files to *.mbm, *.skn, ...
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
        for theme in self.list_theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
            self.make_theme(theme, theme_version)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
    def prepare_active_themes(self,list_active_theme):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
        goes through the active themes and sets theme in the list of all themes as active {set the name and
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
        the uid number of the platform setting}
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
        default_view = self.configuration.get_default_view()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
        for active_theme in list_active_theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
            if active_theme.get_setting_ref():
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
                path=active_theme.get_setting_ref().replace("/",".")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
                setting = default_view.get_feature(path+".localPath").get_data()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
                if setting != None and setting.get_value():
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
                    setting_value = setting.get_value()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
                    self.set_settinguid_to_theme(active_theme,setting_value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
    def set_settinguid_to_theme(self,active_theme, path):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
        finds out the active theme and set the name and the uid of the platform setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
        path = "/content/"+path
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
        for theme in self.list_theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
            tpf_path = theme.get_tpf_path()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
            if tpf_path.endswith(path):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
                 for setting_uid in active_theme.get_setting_uids():
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
                    setting_uid_value = setting_uid.replace("/",".")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
                    theme.set_setting_uids(setting_uid_value)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
                    theme.set_uid(active_theme.get_uid())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
                    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
    def set_active_PID_to_model(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
        finds active theme, gets PID from pkg file, convert PID from hexadecimal to decimal formal
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
        and set decimal PID to the aknskins setting in the model
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
        l = len (self.list_theme)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
        for theme in self.list_theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
            default_view = self.configuration.get_default_view()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
            for setting_uid in theme.get_setting_uids():
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
                aknskins_setting = default_view.get_feature(setting_uid)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
                if(theme.get_uid()):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
                    uid = int(theme.get_uid(),16)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
                    aknskins_setting.set_value(str(uid))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
                else:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
                    PID = theme_function.find_text_in_file(os.path.join(theme.get_temp_theme(), "themepackage.pkg"), "!:\\resource\\skins\\", "\\")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
                    dec_PID = theme_function.convert_hexa_to_decimal(PID)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
                    if dec_PID and aknskins_setting:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
                        dec_PID = theme_function.convert_hexa_to_decimal(PID)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
                        aknskins_setting.set_value(str(dec_PID))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
           
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
    def make_theme(self, theme, theme_version):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
        converts the *tdf, *. svg files to *.mbm, *.pkg files, ...
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
        The first this method extracts tpf file and then calls carbide.ui command-line
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
        which converts theme.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
        output_path = theme.get_temp_theme()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
        if not os.path.exists(output_path): 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
            os.makedirs(output_path)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
        storagepath = self.configuration.get_storage().get_path()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
        input_path =  theme.get_tpf_path().replace("/","\\")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
        zip_output= theme.get_temp_tdf() + "\\"
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
        self.unzip_tpf(theme,zip_output)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
        name_tdf = theme_function.get_tdf_file(zip_output)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
        name_tdf = os.path.join(name_tdf,name_tdf+".tdf")
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
        input_tdf = os.path.join(zip_output,name_tdf)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
       
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   144
        command_line = "makepackage -input \"%s\" -output \"%s\"" % (input_tdf, output_path)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
        if len(theme_version) != 0:
5
d2c80f5cab53 Updated to version 1.2.14
m2lahtel
parents: 3
diff changeset
   147
            command_line = "%s -ver %s" % (command_line, theme_version)
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
        if theme.get_uid() != None:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
            command_line = command_line + " -uid " + theme.get_uid()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
        logging.getLogger('cone.thememl').info("Building theme: %s" % command_line)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
        current_dir = os.getcwd()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
        os.chdir(self.carbide)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
        os.system(command_line)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
        os.chdir(current_dir)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
    def unzip_tpf(self, theme, zip_output):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
        unzip the tpf file to output directory
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
        f_storage = filestorage.FileStorage(theme.get_temp_tdf(), 'wb')
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
        list=[]
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
        list.append(theme.get_tpf_path())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
        storage = self.configuration.get_storage()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
        storage.export_resources(list, f_storage)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
        tpf_file = os.path.join(theme.get_temp_tdf(),theme.get_tpf_path().replace("/","\\"))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
        unzip.unzip_file_into_dir(tpf_file,zip_output)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
    def copy_resources_to_output(self,output):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
        copies *.mbm, *.skn ... to respective directories in the output directory
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
        for theme in self.list_theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
            #gets list of path where *.mbm, *.skn, ... will be copied
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
            theme_resource = ThemeResource()
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
            theme_resource.parse_pkg_file(os.path.join(theme.get_temp_theme(), "themepackage.pkg"))
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
                                          
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
            # copies *.mbm, *.skn ... to target paths
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
            theme_resource.copy_files_from_theme(theme.get_temp_theme(), output)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
      
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
    def removeTempDirs(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
        remove temporary directories
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
        """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
        for theme in self.list_theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
            shutil.rmtree(theme.get_temp_tdf())
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
            
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
class Theme:
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
    This class has information about theme. It contains path of tpf file and temporary directories
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
    where the theme was extracted and builded
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
    Ans also it contains information about the name of setting which has value as UID. The theme 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
    hasn't to have this the name of setting.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
    def __init__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
        #where the theme was extracted
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
        self.temp_tdf = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
        #where the theme was builded
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
        self.temp_theme = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
        #the path of tpf file
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
        self.tpf_path = ""
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
        # the name of the setting which contains UID
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
        self.setting_uids = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
        self.uids = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
        self.uid = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
    def set_tpf_path(self, tpf_path):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
        self.tpf_path = tpf_path
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
    def get_tpf_path(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
        return self.tpf_path
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
    def set_temp_tdf(self, temp_tdf):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
        self.temp_tdf = temp_tdf
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
    def get_temp_tdf(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
        return self.temp_tdf
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
    def set_temp_theme(self, temp_theme):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
        self.temp_theme = temp_theme
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
    def get_temp_theme(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
        return self.temp_theme
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
    def set_setting_uids(self, setting_uid):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
        self.setting_uids.append(setting_uid)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235
    def get_setting_uids(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   236
        return self.setting_uids
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   237
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   238
    def set_uid(self, uid):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   239
        self.uid = uid
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   240
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   241
    def get_uid(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   242
        return self.uid
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
class ActiveTheme(object):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   246
    This class performs information from thememl file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   247
    It contains the name of settig (its value contains the path of tpf file) and
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   248
    the name of setting which contains UID
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   249
     
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   250
    """
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   251
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   252
    def __init__(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   253
        self.ref_setting = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   254
        self.setting_uids = []
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   255
        self.uid = None
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   256
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   257
    def set_setting_ref(self, ref_setting):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   258
        self.ref_setting  = ref_setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   259
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   260
    def set_setting_uids(self, setting_uid):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   261
        self.setting_uids.append(setting_uid)
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   262
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   263
    def get_setting_ref(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   264
        return self.ref_setting
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   265
        
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   266
    def get_setting_uids(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   267
        return self.setting_uids
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
    def get_uid(self):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
        return self.uid
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   271
    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   272
    def set_uid(self,uid):
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   273
        self.uid = uid