Tuesday, March 30, 2010

How to Set Qt Application Icon and Title in Symbian S60

Set Symbian S60 Application Title/Caption:
  1. Alter project.loc file as necessary. Backup as project.loc.manual for future use (or if overwritten).
  2. In Qt Creator, go to Projects panel. Remove QMake from Build Steps.
  3. You can run QMake manually. Afterwards, replace the project.loc file with the one you backed up.
Set Symbian S60 Application Icon (in Launcher and in Task Manager):
  1. Create icon using Inkscape or Adobe Illustrator. If using Adobe Illustrator, export directly to SVG-Tiny. Otherwise, export to SVG (Basic) format.
  2. You need to convert SVG to SVG-Tiny format. Go to <S60 SDK>\S60tools\svg2svgt\installer and run the installer (SVG2SVGTConverter.exe) using the following settings:
    - Compatibility: Windows XP Service Pack 3
    - Run as administrator
    Use the installed SVGT Tool to convert your SVG to SVG-Tiny format. Refer to this Forum Nokia Wiki article for more information.
  3. Add the following to your project.pro : (make sure to use the SVG-Tiny file)
    ICON = project-icon.svg
After changing your application icon, you may need to restart the phone to clear the icon cache so the updated icon will be shown. This problem happens at least in Nokia E71.

For detailed Symbian development resource, check out Developing Software for Symbian OS 2nd Edition (Symbian Press).

Update: Starting from Qt 4.7.2 (which is "currently unusable" for Symbian applications, since Ovi Store doesn't yet accept Qt 4.7 apps), QTBUG-13917 provides a better way:
If developer specifies "CONFIG += localize_deployment" in .pro file, the generated .loc and .pkg will now use translatable strings from .ts files defined in TRANSLATIONS. The .ts files must have an underscore and Qt language code at the end of the filename body to be compatible with deployment localization. E.g. myapp_en.ts.
Running lupdate will generate these entries into .ts files:
  • Application short caption
  • Application long caption
  • Package name
  • Smart installer package name

2 comments:

  1. Hi, I have a better solution. Do not delete qmake step. Rather, create your own LOC file, and add a Custom Process Step after qmake, set command to "xcopy" and arguments "/Y project.loc.manual project.loc"

    By removing the qmake command, it lose the ability to generate PKG file etc.

    ReplyDelete
  2. For some reason qmake did not detect the changes in my .pro file, and didn't recreate the Makefile. I had to manually delete the Makefile so that qmake would have to regenerate it, then everything worked fine. But I had to use SVG 1.1 Basic (not SVG-T) to make it work with an older version of the OS.

    ReplyDelete

Be the first to comment!