# HG changeset patch # User hgs # Date 1279041139 -10800 # Node ID a03989fb355a109918c8fa59f8139824cca5c115 # Parent 02a1dd166f2bbaa3c7dc2a945ef5951e8cfdd4e7 201027 diff -r 02a1dd166f2b -r a03989fb355a .hg_archival.txt --- a/.hg_archival.txt Tue Jul 06 14:53:09 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -repo: 3d51a84f3bf4dec77d58f1fac7210a6385dd25ec -node: 2103b889d8045565157030549ac7e0805672f8a4 diff -r 02a1dd166f2b -r a03989fb355a .hgignore --- a/.hgignore Tue Jul 06 14:53:09 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -# A note on the rules: there are two rules for each specific name (but not -# for file extensions), since e.g. "^tmp$" matches "tmp" in the root directory -# (i.e. the same directory this .hgignore file is in) and "/tmp$"" matches -# "tmp" in any subdirectory of the root. A simple rule "tmp$" will not do, -# since it will erroneously match anything ending in "tmp", e.g. "myfiletmp", -# anywhere in the directory hierarchy. - -# Sadly "bld.inf", "*.mmp" and "*.def" files cannot be blindly ignored, since -# the code base contains some native S60 projects, for which these files are -# not generated automatically. - -# Make sure were using the regular expression syntax, not globbing. -syntax: regexp - -# Doxygen generated directories and files. -^doc/html$ -^warn.log$ - -# Directory names. -^\.project$ -/\.project$ -^\.cproject$ -/\.cproject$ -^\.settings$ -/\.settings$ -^debug$ -/debug$ -^include$ -^lib$ -/lib$ -^moc$ -/moc$ -^obj$ -/obj$ -^rcc$ -/rcc$ -^release$ -/release$ -^tmp$ -/tmp$ - -# File names. -^\.qmake\.cache$ -^ABLD\.BAT$ -/ABLD\.BAT$ -#^bld\.inf$ -#/bld\.inf$ -#^hb_install\.prf$ -^Makefile$ -/Makefile$ -^mocinclude\.tmp$ -/mocinclude\.tmp$ -^Thumbs\.db$ -/Thumbs\.db$ - -# File name patterns. -^Makefile.*\..*$ -/Makefile.*\..*$ -^moc_.*\.cpp$ -/moc_.*\.cpp$ -^object_script\..*$ -/object_script\..*$ -^qrc_.*\.cpp$ -/qrc_.*\.cpp$ -/tmp[^/]*$ - -# File name extensions. -\.a$ -\.bak$ -#\.def$ -\.dll$ -\.exe$ -\.idb$ -\.ilk$ -\.loc$ -#\.mmp$ -\.moc$ -\.ncb$ -\.o$ -\.orig$ -\.pdb$ -\.pkg$ -\.pro.user$ -\.qtplugin$ -\.rss$ -\.sln$ -\.so$ -\.suo$ -\.tmp$ -\.user$ -\.vcproj$ - -# Theme content is always delivered ZIP-packaged -\.svg$ -\.png$ -\.jpg$ -\.gif$ -\.svgt$ diff -r 02a1dd166f2b -r a03989fb355a bin/installs.py --- a/bin/installs.py Tue Jul 06 14:53:09 2010 +0300 +++ b/bin/installs.py Tue Jul 13 20:12:19 2010 +0300 @@ -84,7 +84,7 @@ target = make_target(root) relpath = os.path.relpath(root, input_dir).replace("\\", "/") if os.path.splitext(file)[1] == ".zip": - out.write("symbian:BLD_INF_RULES.prj_exports += \":zip %s $${EPOCROOT}epoc32/data/z/resource/hb/themes/%s/\"\n" % (filepath, relpath)) + out.write("symbian:BLD_INF_RULES.prj_exports += \":zip %s $${EPOCROOT}epoc32/data/z/resource/hb/themes/%s/\"\n" % (filepath, relpath)) out.write("symbian:BLD_INF_RULES.prj_exports += \":zip %s $${EPOCROOT}epoc32/winscw/c/resource/hb/themes/%s/\"\n" % (filepath, relpath)) out.write("!isEmpty(%s.commands): %s.commands += &&\n" % (target, target)) out.write("%s.commands += $$QMAKE_UNZIP %s -d $$(HB_THEMES_DIR)/themes/%s\n" % (target, filepath, relpath)) diff -r 02a1dd166f2b -r a03989fb355a bin/rom.py --- a/bin/rom.py Tue Jul 06 14:53:09 2010 +0300 +++ b/bin/rom.py Tue Jul 13 20:12:19 2010 +0300 @@ -23,6 +23,7 @@ import zipfile import optparse import posixpath +import ConfigParser # ============================================================================ # Globals @@ -97,21 +98,27 @@ self.files = {} self.archives = {} + def add_file(self, filepath): + if self._include(filepath): + filepath = filepath.replace("\\", "/") + path = os.path.split(filepath)[0] + extension = os.path.splitext(filepath)[1] + if extension == ".zip": + if path not in self.archives: + self.archives[path] = list() + if filepath not in self.archives[path]: + self.archives[path].append(filepath) + else: + if path not in self.files: + self.files[path] = list() + if filepath not in self.files[path]: + self.files[path].append(filepath) + def initialize(self): for path in self.paths: for root, dirs, files in os.walk(path): for file in files: - filepath = posixpath.join(root, file).replace("\\", "/") - if self._include(filepath): - extension = os.path.splitext(filepath)[1] - if extension == ".zip": - if root not in self.archives: - self.archives[root] = list() - self.archives[root].append(filepath) - else: - if root not in self.files: - self.files[root] = list() - self.files[root].append(filepath) + self.add_file(os.path.join(root, file)) def write_iby(self, ibypath): global SOURCE_PREFIX, TARGET_PREFIX, EXIT_STATUS @@ -153,6 +160,36 @@ out.write("#endif __%s_IBY__\n" % self.name.upper()) out.close() + def write_thx(self, thxpath): + global SOURCE_PREFIX, TARGET_PREFIX, EXIT_STATUS + outpath = os.path.dirname(thxpath) + if not os.path.exists(outpath): + os.makedirs(outpath) + archive = zipfile.ZipFile(thxpath, "w") + os.chdir(INPUT_DIR) + written_entries = list() + for path, files in self.files.iteritems(): + relpath = os.path.relpath(path, INPUT_DIR).replace("\\", "/") + for filepath in files: + filename = os.path.basename(filepath) + entry = posixpath.join(relpath, filename) + if entry not in written_entries: + written_entries.append(entry) + archive.write(entry) + else: + print "ERROR: %s duplicate entry %s" % (thxpath, entry) + EXIT_STATUS = -1 + archive.close() + + def hidden(self): + result = False + config = ConfigParser.ConfigParser() + indexthemepath = INPUT_DIR + '/icons/' + self.name + '/index.theme' + if os.path.exists(indexthemepath): + config.read(indexthemepath) + result = config.getboolean('Icon Theme', 'Hidden') + return result + def _include(self, filepath): result = True if INCLUDE != None: @@ -179,6 +216,10 @@ if theme not in themes: themes[theme] = Theme(theme) themes[theme].paths.append(themepath) + # special case: themeindex + themeindex = os.path.join(path, theme + ".themeindex") + if os.path.exists(themeindex): + themes[theme].add_file(themeindex) return themes # ============================================================================ @@ -208,8 +249,12 @@ themes = lookup_themes(INPUT_DIR) for name, theme in themes.iteritems(): theme.initialize() - print "Generating: %s.iby" % name - theme.write_iby(posixpath.join(OUTPUT_DIR, "%s.iby" % name)) + if theme.hidden(): + print "Generating: %s.iby" % name + theme.write_iby(posixpath.join(OUTPUT_DIR, "%s.iby" % name)) + else: + print "Generating: %s.thx" % name + theme.write_thx(posixpath.join(OUTPUT_DIR, "%s.thx" % name)) return EXIT_STATUS diff -r 02a1dd166f2b -r a03989fb355a confml/confml/CI_hbtheme.confml Binary file confml/confml/CI_hbtheme.confml has changed diff -r 02a1dd166f2b -r a03989fb355a confml/confml/hbtheme.confml Binary file confml/confml/hbtheme.confml has changed diff -r 02a1dd166f2b -r a03989fb355a confml/implml/hbtheme.implml --- a/confml/implml/hbtheme.implml Tue Jul 06 14:53:09 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ - - - - - - - - - - ${HbTheme.UIThemeFile} configures ${HbTheme.HbDefaultTheme} = {% get_themename_from_thx( ${HbTheme.UIThemeFile}, 'themes' ) %} - - - ${HbTheme.PriorityThemeFile} configures ${HbTheme.HbPriorityThemeName} = {% get_themename_from_thx( ${HbTheme.PriorityThemeFile}, 'prioritytheme' ) %} - - - -import sys, zipfile, os, os.path -import tempfile -import shutil - -def get_themename_from_thx(file, themesfolder): - ret = None - - outdir = get_output_folder() - outdir = os.path.join(outdir, 'resource') - if not os.path.exists(outdir): - os.mkdir(outdir) - outdir = os.path.join(outdir, 'hb') - if not os.path.exists(outdir): - os.mkdir(outdir) - outdir = os.path.join(outdir, themesfolder) - if not os.path.exists(outdir): - os.mkdir(outdir) - unzip_file_into_dir(file, outdir) - - # Get filesnames in outdir - files_in_dir = os.listdir(outdir) - - # Search for themeindex file - for fn in files_in_dir: - if os.path.splitext(fn)[1] == '.themeindex': - ret = os.path.splitext(fn)[0] - - return ret - -def unzip_file_into_dir(file, dir): - """ - Unzips file into given folder. - """ - - zfobj = zipfile.ZipFile(file,'r') - for name in zfobj.namelist(): - if name.endswith('/'): - os.mkdir(os.path.join(dir, name)) - else: - outfile = open(os.path.join(dir, name), 'wb') - outfile.write(zfobj.read(name)) - outfile.close() - -def get_output_folder(): - output = ruleml.context.output - output = os.path.join(output, 'content') - if not os.path.exists(output): - os.mkdir(output) - - return output - - - - - - - - - - - - - - - - - - diff -r 02a1dd166f2b -r a03989fb355a confml/implml/hbtheme_20022e82.crml Binary file confml/implml/hbtheme_20022e82.crml has changed diff -r 02a1dd166f2b -r a03989fb355a confml/platformthemes.confml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/confml/platformthemes.confml Tue Jul 13 20:12:19 2010 +0300 @@ -0,0 +1,16 @@ + + + HbTheme + + + + sfblacktheme + \epoc32\data\z\resource\hb\themes\sfblacktheme.thx + + + sfwhitetheme + \epoc32\data\z\resource\hb\themes\sfwhitetheme.thx + + + + \ No newline at end of file diff -r 02a1dd166f2b -r a03989fb355a platformthemes.pro --- a/platformthemes.pro Tue Jul 06 14:53:09 2010 +0300 +++ b/platformthemes.pro Tue Jul 13 20:12:19 2010 +0300 @@ -36,6 +36,9 @@ } HB_THEMES_DIR = $$HB_THEMES_DIR/themes +# ============================================================================ +# determine dir separators & /dev/null +# ============================================================================ win32:!win32-g++ { unixstyle = false } else:symbian:isEmpty(QMAKE_SH) { @@ -80,15 +83,15 @@ error(\'$$THEMEINDEXER\' must be in PATH.) } } -ARGS = -s $$OUT_PWD/tmp/src -t $$OUT_PWD/tmp +ARGS = -s $$OUT_PWD/tmp/src -t $$OUT_PWD/tmp/src !system($$THEMEINDEXER $$ARGS) { error(*** $$THEMEINDEXER reported an error. Stop.) } index.path = $$(HB_THEMES_DIR)/themes -index.files = $$OUT_PWD/tmp/*.themeindex +index.files = $$OUT_PWD/tmp/src/*.themeindex INSTALLS += index -QMAKE_CLEAN += $$OUT_PWD/tmp/*.themeindex +QMAKE_CLEAN += $$OUT_PWD/tmp/src/*.themeindex # ============================================================================ # generate installs.pri @@ -98,7 +101,6 @@ error(*** bin/installs.py reported an error. Stop.) } isEmpty(QMAKE_UNZIP):QMAKE_UNZIP = unzip -u -o -include($$OUT_PWD/tmp/installs.pri) QMAKE_DISTCLEAN += $$OUT_PWD/tmp/installs.pri # ============================================================================ @@ -110,6 +112,7 @@ error(*** bin/rom.py reported an error. Stop.) } QMAKE_CLEAN += $$OUT_PWD/tmp/*.iby + QMAKE_CLEAN += $$OUT_PWD/tmp/*.thx } # ============================================================================ @@ -140,13 +143,11 @@ return(true) } exportThemeFiles($$files($$OUT_PWD/tmp/*.iby), $$CORE_MW_LAYER_IBY_EXPORT_PATH()) - exportThemeFiles($$files($$OUT_PWD/tmp/*.themeindex), $${EPOCROOT}epoc32/data/z/resource/hb/themes/) - exportThemeFiles($$files($$OUT_PWD/tmp/*.themeindex), $${EPOCROOT}epoc32/winscw/c/resource/hb/themes/) + exportThemeFiles($$files($$OUT_PWD/tmp/*.thx), $${EPOCROOT}epoc32/data/z/resource/hb/themes/) + exportThemeFiles($$files($$OUT_PWD/tmp/src/*.themeindex), $${EPOCROOT}epoc32/winscw/c/resource/hb/themes/) - # configuration files - exporting removed from platformthemes -# BLD_INF_RULES.prj_exports += "$$section(PWD, ":", 1)/confml/confml/hbtheme.confml MW_LAYER_CONFML(hbtheme.confml) -# BLD_INF_RULES.prj_exports += "$$section(PWD, ":", 1)/confml/implml/hbtheme_20022e82.crml MW_LAYER_CRML(hbtheme_20022e82.crml) -# BLD_INF_RULES.prj_exports += "$$section(PWD, ":", 1)/confml/implml/hbtheme.implml MW_LAYER_CRML(hbtheme.implml) + # configuration files + BLD_INF_RULES.prj_exports += "$$section(PWD, ":", 1)/confml/platformthemes.confml MW_LAYER_CONFML(platformthemes.confml) } else { exists(src/theme.theme) { @@ -166,3 +167,4 @@ } message(Run \'make install\') +include($$OUT_PWD/tmp/installs.pri) diff -r 02a1dd166f2b -r a03989fb355a src/effects/sfwhitetheme/applications.zip Binary file src/effects/sfwhitetheme/applications.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/effects/sfwhitetheme/widgets.zip Binary file src/effects/sfwhitetheme/widgets.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/icons/sfblacktheme/scalable/applications.zip Binary file src/icons/sfblacktheme/scalable/applications.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/icons/sfblacktheme/scalable/icons.zip Binary file src/icons/sfblacktheme/scalable/icons.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/icons/sfblacktheme/scalable/widgets.zip Binary file src/icons/sfblacktheme/scalable/widgets.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/icons/sfwhitetheme/scalable/applications.zip Binary file src/icons/sfwhitetheme/scalable/applications.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/icons/sfwhitetheme/scalable/icons.zip Binary file src/icons/sfwhitetheme/scalable/icons.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/icons/sfwhitetheme/scalable/widgets.zip Binary file src/icons/sfwhitetheme/scalable/widgets.zip has changed diff -r 02a1dd166f2b -r a03989fb355a src/style/sfblacktheme/variables/color/hbapplicationcolorgroup.css --- a/src/style/sfblacktheme/variables/color/hbapplicationcolorgroup.css Tue Jul 06 14:53:09 2010 +0300 +++ b/src/style/sfblacktheme/variables/color/hbapplicationcolorgroup.css Tue Jul 13 20:12:19 2010 +0300 @@ -23,6 +23,8 @@ qtc_cal_day_preview_text:#FFFFFF; /* Added 05.02.2010 */ qtc_cal_day_hour_lines:#8E8E8E; /* Added 05.02.2010 */ qtc_cal_monthgrid_title:#FFFFFF; /* Added 05.02.2010 */ +qtc_cal_meeting:#FFFFFF; /* Added 14.06.2010 */ +qtc_cal_view_text:#FFFFFF; /* Added 14.06.2010 */ /* Application specific - Call handling */ qtc_callhandling_answer_normal:#FFFFFF; /* Added 05.02.2010 */ @@ -57,5 +59,8 @@ /* Application specific - Messaging */ qtc_messaging_char_count:#FFFFFF; /* Added 19.04.2010 */ + +/* Screensaver */ +qtc_screensaver:#FFFFFF; /* Added 16.06.2010 */ } diff -r 02a1dd166f2b -r a03989fb355a src/style/sfwhitetheme/variables/color/hbapplicationcolorgroup.css --- a/src/style/sfwhitetheme/variables/color/hbapplicationcolorgroup.css Tue Jul 06 14:53:09 2010 +0300 +++ b/src/style/sfwhitetheme/variables/color/hbapplicationcolorgroup.css Tue Jul 13 20:12:19 2010 +0300 @@ -23,6 +23,8 @@ qtc_cal_day_preview_text:#FFFFFF; /* Added 05.02.2010 */ qtc_cal_day_hour_lines:#505050; /* Added 05.02.2010 */ qtc_cal_monthgrid_title:#FFFFFF; /* Added 05.02.2010 */ +qtc_cal_meeting:#000000; /* Added 14.06.2010 */ +qtc_cal_view_text:#000000; /* Added 14.06.2010 */ /* Application specific - Call handling */ qtc_callhandling_answer_normal:#FFFFFF; /* Added 05.02.2010 */ @@ -57,5 +59,8 @@ /* Application specific - Messaging */ qtc_messaging_char_count:#FFFFFF; /* Added 19.04.2010 */ + +/* Screensaver */ +qtc_screensaver:#FFFFFF; /* Added 16.06.2010 */ } diff -r 02a1dd166f2b -r a03989fb355a src/style/sfwhitetheme/variables/color/hbwidgetcolorgroup.css --- a/src/style/sfwhitetheme/variables/color/hbwidgetcolorgroup.css Tue Jul 06 14:53:09 2010 +0300 +++ b/src/style/sfwhitetheme/variables/color/hbwidgetcolorgroup.css Tue Jul 13 20:12:19 2010 +0300 @@ -13,7 +13,7 @@ qtc_default_main_pane_pressed:#3F89A9; qtc_default_main_pane_latched:#009CEF; qtc_default_main_pane_highlight:#B27200; -qtc_default_main_pane_disabled:#595B5D; +qtc_default_main_pane_disabled:#9B9B9B; qtc_default_popup_normal:#505050; qtc_default_popup_pressed:#FFFFFF; qtc_default_popup_latched:#FFFFFF; @@ -33,9 +33,9 @@ qtc_status_pane_trans:#FFFFFF; /* Added 05.02.2010 */ /* Main area - View */ -qtc_view_normal:#FFFFFF; -qtc_view_pressed:#FFFFFF; -qtc_view_line_normal:#FFFFFF; +qtc_view_normal:#000000; +qtc_view_pressed:#505050; +qtc_view_line_normal:#A0A0A0; qtc_view_link_normal:#33C8FF; qtc_view_visited_normal:#B378FF; qtc_view_separator_normal:#9B9B9B; @@ -88,8 +88,8 @@ qtc_tumbler_highlight:#FFFFFF; /* Main area - DataForm */ -qtc_dataform_heading:#3C3C3C; /* Added 04.03.2010 */ -qtc_dataform_heading_link:#33C8FF; /* Added 22.03.2010 */ +qtc_dataform_heading:#FFFFFF; /* Modified 10.06.2010 */ +qtc_dataform_heading_link:#8CE0FF; /* Modified 10.06.2010 */ /* Main area - ProgressSlider */ qtc_progslider_normal:#3C3C3C; /* Added 09.02.2010 */