--- 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
--- 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$
--- 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))
--- 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
Binary file confml/confml/CI_hbtheme.confml has changed
Binary file confml/confml/hbtheme.confml has changed
--- 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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
-
-<container>
- <phase name="pre"/>
- <tag name="target" value="rofs3"/>
-
- <ruleml xmlns="http://www.s60.com/xml/ruleml/3">
- <rule>
- ${HbTheme.UIThemeFile} configures ${HbTheme.HbDefaultTheme} = {% get_themename_from_thx( ${HbTheme.UIThemeFile}, 'themes' ) %}
- </rule>
- <rule>
- ${HbTheme.PriorityThemeFile} configures ${HbTheme.HbPriorityThemeName} = {% get_themename_from_thx( ${HbTheme.PriorityThemeFile}, 'prioritytheme' ) %}
- </rule>
- <eval_globals>
-
-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
-
- </eval_globals>
-
- </ruleml>
-</container>
-
-<container>
- <phase name="normal"/>
- <tag name="target" value="rofs3"/>
-
- <content xmlns="http://www.s60.com/xml/content/2">
- <output dir="">
- <input dir="content"/>
- </output>
- </content>
-</container>
-
-</container>
Binary file confml/implml/hbtheme_20022e82.crml has changed
--- /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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://www.s60.com/xml/confml/1" xmlns:xi="http://www.w3.org/2001/XInclude" name="theme" version="1">
+ <desc>HbTheme</desc>
+ <data>
+ <HbTheme>
+ <AvailableThemes extensionPolicy="append">
+ <ThemeName>sfblacktheme</ThemeName>
+ <ThxPath>\epoc32\data\z\resource\hb\themes\sfblacktheme.thx</ThxPath>
+ </AvailableThemes>
+ <AvailableThemes>
+ <ThemeName>sfwhitetheme</ThemeName>
+ <ThxPath>\epoc32\data\z\resource\hb\themes\sfwhitetheme.thx</ThxPath>
+ </AvailableThemes>
+ </HbTheme>
+ </data>
+</configuration>
\ No newline at end of file
--- 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)
Binary file src/effects/sfwhitetheme/applications.zip has changed
Binary file src/effects/sfwhitetheme/widgets.zip has changed
Binary file src/icons/sfblacktheme/scalable/applications.zip has changed
Binary file src/icons/sfblacktheme/scalable/icons.zip has changed
Binary file src/icons/sfblacktheme/scalable/widgets.zip has changed
Binary file src/icons/sfwhitetheme/scalable/applications.zip has changed
Binary file src/icons/sfwhitetheme/scalable/icons.zip has changed
Binary file src/icons/sfwhitetheme/scalable/widgets.zip has changed
--- 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 */
}
--- 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 */
}
--- 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 */