|
622 | 622 | \ingroup platform-specific
|
623 | 623 | \brief Information about the state of support for the Symbian platform.
|
624 | 624 |
|
625 |
| - This page documents the current notes for the Symbian port. |
| 625 | + This page describes implementation details regarding the Qt for Symbian port. To get |
| 626 | + started with application development for Symbian devices, read the \l |
| 627 | + {http://doc.qt.nokia.com/qtcreator/creator-developing-symbian.html} |
| 628 | + {Connecting Symbian Devices} document. |
626 | 629 |
|
627 | 630 | \section1 Source Compatibility
|
628 | 631 |
|
|
635 | 638 |
|
636 | 639 | As with every supported platform, Qt strives to maintain application
|
637 | 640 | behavior and binary compatibility throughout the lifetime of the Qt 4.x
|
638 |
| - major version and on the Symbian devices that support Qt. Symbian support in |
639 |
| - Qt SDK and Ovi Store were introduced with Qt 4.6. Each Qt release contains |
640 |
| - bug fixes that might change the API behavior and thereby affect application |
641 |
| - compatibility. |
| 641 | + major version and on the \l {Supported Devices}{Symbian devices that support Qt}. |
| 642 | + Symbian support in Qt SDK and Ovi Store were introduced with Qt 4.6. Each Qt |
| 643 | + release contains bug fixes that might change the API behavior and thereby |
| 644 | + affect application compatibility. |
642 | 645 |
|
643 | 646 | In addition, Symbian devices have different input methods, such as different
|
644 | 647 | keyboard styles or touch input, screen sizes, memory, and CPU and GPU
|
|
648 | 651 | Generally, an earlier target (such as S60 5th Edition) is supported on a
|
649 | 652 | larger number of devices than a later target (such as Symbian Belle).
|
650 | 653 |
|
| 654 | + \target Supported Devices |
651 | 655 | \section1 Supported Devices
|
| 656 | + |
| 657 | + The \l {http://developer.qt.nokia.com/wiki/support_for_Symbian}{Support for Symbian} document |
| 658 | + details the Qt support on different Symbian devices. |
652 | 659 |
|
653 |
| - \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian#Supported_Devices}{Nokia Smart Installer for Symbian} |
654 |
| - documentation lists supported devices. |
| 660 | + The \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian#Supported_Devices} |
| 661 | + {Nokia Smart Installer for Symbian} document lists how Qt is supported on |
| 662 | + different Symbian devices through Smart Installer. |
655 | 663 |
|
656 | 664 | Qt versions are supported by Symbian devices as follows:
|
657 | 665 | \list
|
658 | 666 | \o Qt 4.6 is supported by S60 3rd Edition feature pack 1 and newer devices
|
659 | 667 | through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}.
|
660 |
| - \o Qt 4.7.3 is supported by S60 5th Edition and newer devices. |
| 668 | + \o Qt 4.7.3 is supported by S60 5th Edition and newer devices |
| 669 | + through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}. |
661 | 670 | \endlist
|
662 | 671 |
|
663 | 672 | Symbian devices have a pre-installed Qt support as follows:
|
664 | 673 | \list
|
665 |
| - \o Symbian Anna: Qt 4.7.3 in C: drive. |
| 674 | + \o Symbian Anna: Qt 4.7.3 in C: drive. Note that Qt 4.7.4 is supported in Symbian Anna |
| 675 | + through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}. |
666 | 676 | \o Symbian Belle: Qt 4.7.4 in device firmware (ROM).
|
667 | 677 | \endlist
|
668 | 678 |
|
669 | 679 |
|
670 |
| - \section1 Supported Functionality |
671 |
| - |
672 |
| - The following technologies and classes are not currently supported: |
673 |
| - |
674 |
| - \table |
675 |
| - \header \o Technology |
676 |
| - \o Note |
677 |
| - \row \o QtConcurrent |
678 |
| - \o Planned for future release. |
679 |
| - \row \o QtDBus |
680 |
| - \o No current plans to support this feature. |
681 |
| - \row \o Printing support |
682 |
| - \o No current plans to support this feature. |
683 |
| - \row \o Qt3Support |
684 |
| - \o No current plans to support this feature. |
685 |
| - \endtable |
| 680 | + \section1 Functionality Support |
686 | 681 |
|
| 682 | + The following technologies and classes are not supported: |
| 683 | + \list |
| 684 | + \o QtConcurrent |
| 685 | + \o QtDBus |
| 686 | + \o \l {http://doc.qt.nokia.com/4.8/printing.html}{Printing support} |
| 687 | + \o Qt3Support |
| 688 | + \endlist |
| 689 | + |
687 | 690 | The following technologies have limited support:
|
688 | 691 |
|
689 | 692 | \table
|
690 |
| - \header \o Technology |
| 693 | + \header \o Module |
691 | 694 | \o Note
|
692 | 695 | \row \o QtSql
|
693 | 696 | \o The only supported driver is SQLite.
|
694 | 697 | \row \o QtMultimedia
|
695 |
| - \o For support details see \l {Multimedia and Phonon Support} section. |
| 698 | + \o For support details see \l {Multimedia Support} section. |
| 699 | + \row \o QtGui |
| 700 | + \o QtGui's widgets are deprecated (i.e. they are available but not |
| 701 | + recommended to use) in the Symbian port. It is recommended to use \l |
| 702 | + {http://doc.qt.nokia.com/qt-components-symbian-1.1/symbian-components-functional.html} |
| 703 | + {Qt Quick Components for Symbian} instead, because they provide |
| 704 | + better look and feel on Symbian devices. |
| 705 | + |
| 706 | + Moreover, the following classes of QtGui \bold {should not |
| 707 | + be used} in a Symbian application: |
| 708 | + |
| 709 | + \list |
| 710 | + \o QFileDialog with the \c DontUseNativeDialog option |
| 711 | + \o QColorDialog with the \c DontUseNativeDialog option |
| 712 | + \o QFontDialog |
| 713 | + \o QWizard |
| 714 | + \o QCalendarWidget |
| 715 | + \o QDateTimeEdit |
| 716 | + \o QMdiArea |
| 717 | + \o QDockWidget |
| 718 | + \o QMdiSubWindow |
| 719 | + \o QPrintPreviewWidget |
| 720 | + \endlist |
| 721 | + |
| 722 | + QScrollArea: The scrolling and focus handling of QScrollArea's all |
| 723 | + scrollable widgets, for example QListView, differs from native Avkon |
| 724 | + list widgets' one. Native Avkon scrollable components support |
| 725 | + touch-gesture-based scrolling by dragging and flicking the UI |
| 726 | + component but this functionality is not implemented in Qt widgets. |
| 727 | + Scrolling by dragging and flicking works also in Qt Quick Components |
| 728 | + that implements the \l |
| 729 | + {http://www.developer.nokia.com/Resources/Library/Symbian_Design_Guidelines/} |
| 730 | + {Symbian design guidelines}. |
| 731 | + |
696 | 732 | \endtable
|
697 |
| - |
698 |
| - It is not recommended to use the following Qt widgets: |
699 |
| - \list |
700 |
| - \o QFileDialog with the \c DontUseNativeDialog option |
701 |
| - \o QColorDialog with the \c DontUseNativeDialog option |
702 |
| - \o QFontDialog |
703 |
| - \o QWizard |
704 |
| - \o QCalendarWidget |
705 |
| - \o QDateTimeEdit |
706 |
| - \o QMdiArea |
707 |
| - \o QMdiSubWindow |
708 |
| - \o QDockWidget |
709 |
| - \o QPrintPreviewWidget |
710 |
| - \endlist |
711 | 733 |
|
712 | 734 | \section1 Compiler Notes
|
713 |
| - |
714 |
| - \section2 GCCE (Symbian) |
715 |
| - |
716 |
| - GCCE cannot be used to compile Qt libaries for the Symbian platform, but GCCE is supported |
717 |
| - when compiling Qt applications for the Symbian platform. |
| 735 | + |
| 736 | + For the application development the necessary compiler toolchain is included in \l |
| 737 | + {http://qt.nokia.com/downloads}{Qt SDK}. For instructions compiling Qt |
| 738 | + itself see the \l |
| 739 | + {http://doc.qt.nokia.com/stable/install-symbian.html} |
| 740 | + {Installing Qt for the Symbian platform} document. |
718 | 741 |
|
719 | 742 | \section1 Known Issues
|
720 | 743 |
|
|
730 | 753 |
|
731 | 754 | \section1 Required Capabilities
|
732 | 755 |
|
733 |
| - The Qt libraries are typically signed with \c{All -TCB} capabilites, but |
| 756 | + The Qt libraries are typically signed with \c{All -TCB} capabilites but |
734 | 757 | that does not mean your Qt application needs to be signed with the same
|
735 | 758 | capabilities to function properly. The capabilities your application needs
|
736 |
| - to function properly depends on which parts of Qt you use, here is an |
737 |
| - overview: |
| 759 | + to function properly depends on which parts of Qt you use. |
| 760 | + In a Qt application Symbian capabilities are defined in the |
| 761 | + \l {http://doc.qt.nokia.com/4.8/qmake-variable-reference.html#target-capability} |
| 762 | + {TARGET.CAPABILITY} qmake variable in the project file. |
| 763 | + Here is an overview for which capabilities may be needed when using different modules: |
738 | 764 |
|
739 | 765 | \table
|
740 | 766 | \header \o Module
|
|
751 | 777 | \o \c ReadUserData is required to include all the phone's SSL certificates in the system's default CA certificate list
|
752 | 778 | (for example those added by the user or stored in the SIM card),
|
753 | 779 | without this capability only the CA certs built into the phone are used.
|
754 |
| - \row \o QtMultiMedia |
| 780 | + \row \o QtMultimedia |
755 | 781 | \o \c UserEnvironment if QAudioInput is used.
|
756 |
| - \row \o QtWebkit |
| 782 | + \row \o QtWebKit |
757 | 783 | \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified.
|
758 | 784 | \endtable
|
759 | 785 |
|
|
764 | 790 | For more information see the documentation of the individual Qt classes. If
|
765 | 791 | a class does not mention Symbian capabilities, it requires none.
|
766 | 792 |
|
767 |
| - \target Multimedia and Phonon Support |
768 |
| - \section1 Multimedia and Phonon Support |
| 793 | + \target Multimedia Support |
| 794 | + \section1 Multimedia Support |
769 | 795 |
|
770 |
| - Qt provides a high-level API for multimedia functionality with |
771 |
| - (\l{http://doc.qt.nokia.com/qtmobility/multimedia.html}). |
| 796 | + Qt Mobility provides a high-level API for multimedia functionality with |
| 797 | + \l{http://doc.qt.nokia.com/qtmobility/multimedia.html}{QtMultimediaKit}. |
| 798 | + In addition, Qt provides the low-level \l {QtMultimedia}{QtMultimedia} |
| 799 | + module that is internally used by the QtMultimediaKit. For more information |
| 800 | + on developing multimedia applications for Symbian devices, see |
| 801 | + \l {http://www.developer.nokia.com/info/sw.nokia.com/id/4abf12e7-72d8-45ef-b1a2-46184abe18ba/Guide_for_Qt_Multimedia_Developers.html} |
| 802 | + {Guide for Qt Multimedia Developers}. |
772 | 803 |
|
773 |
| - Qt also provides a backend for Qt's Phonon module, which supports video and |
774 |
| - sound playback through Symbian's Multimedia Framework, MMF. Note that Phonon |
775 |
| - support is not being extended, and that Qt's multimedia module will |
776 |
| - take over for Phonon at a later stage. |
| 804 | + Moreover, there is a third multimedia-related module called Phonon. Qt |
| 805 | + provides two backends for the Phonon module in Symbian: \i MMF and \i Helix. |
777 | 806 |
|
778 |
| - In this release the support is experimental. Video playback may show |
779 |
| - artifacts when the video is moved or resized (for instance during |
780 |
| - orientation flips). This problem is present on S60 5th Edition and earlier |
781 |
| - versions, and on Symbian^3 systems. |
| 807 | + Note that Phonon is a legacy module and the QtMultimediaKit module is |
| 808 | + replacing Phonon in Qt 5. Although Phonon is supported in Symbian for |
| 809 | + backwards compatibility and there is no plan to remove Phonon from Symbian |
| 810 | + any new applications should use QtMultimediaKit in Symbian using Qt 4.7 |
| 811 | + bundle. The QtMultimediaKit feature set is comparable to that in Phonon. |
782 | 812 |
|
783 |
| - The audio and video formats that Phonon supports depends on what support |
| 813 | + The following applies to Phonon: |
| 814 | + \list |
| 815 | + \o MMF Phonon backend supports video and sound playback through Symbian's |
| 816 | + Multimedia Framework, MMF. Phonon's video playback may show artifacts when |
| 817 | + the video is moved or resized (for instance, during device orientation |
| 818 | + changes from portrait to landscape and vice versa). This problem is present |
| 819 | + on S60 5th Edition and earlier versions, as well as in Symbian Anna devices. |
| 820 | + \o The audio and video formats that Phonon supports depends on what support |
784 | 821 | the platform provides for MMF. The emulator is known to have limited
|
785 | 822 | codec support.
|
786 |
| - |
787 |
| - In addition, there exists a backend for the Helix framework. However, since |
| 823 | + \o In addition, there exists a backend for the Helix framework. However, since |
788 | 824 | it is not shipped with Qt, its availability depends on the Symbian platform
|
789 | 825 | in use. If the MFF plugin fails to load, the Helix plugin, if present on the
|
790 | 826 | device, will be loaded instead.
|
| 827 | + \endlist |
791 | 828 |
|
792 | 829 | \section1 Hardware Accelerated Rendering
|
793 | 830 |
|
|
806 | 843 | \o Popups
|
807 | 844 | \endlist
|
808 | 845 |
|
809 |
| - \section1 QtOpenGL Support in Symbian |
| 846 | + \section1 OpenGL Support in Symbian |
810 | 847 |
|
811 | 848 | Qt 4.7 introduces the \l {QtOpenGL} module. QtOpenGL is
|
812 | 849 | supported on devices which support OpenGL ES 2.0. Symbian platforms prior
|
813 |
| - to Symbian^3 are not supported. |
| 850 | + to Symbian Anna (and Symbian^3) are not supported. |
814 | 851 |
|
815 | 852 | \l QGLWidget usage as a \l QGraphicsView viewport is not recommended on
|
816 | 853 | Symbian. The OpenVG graphics system is not able to manage OpenGL graphics
|
817 | 854 | resources. Also, a QGLWidget object is not able to release its GPU resources
|
818 | 855 | when the application goes to the background. If OpenGL functionality is
|
819 |
| - needed, OpenGL graphics system usage is recommended. If an application |
| 856 | + needed, \l { http://doc.qt.nokia.com/4.7-snapshot/qapplication.html#setGraphicsSystem} |
| 857 | + {OpenGL graphics system} usage is recommended. If an application |
820 | 858 | decides to use QGLWidget, then it is the application's responsibility to
|
821 | 859 | destroy and release QGLWidget and related OpenGL resources when the
|
822 | 860 | application goes to the background. Otherwise, the \l{Graphics Out Of Memory monitor}
|
|
827 | 865 | QGLShader, and \l QGLShaderProgram are direct GPU resources and it is the
|
828 | 866 | application's responsibility to manage them.
|
829 | 867 |
|
830 |
| - \section1 UI Performance in devices prior to Symbian^3 |
| 868 | + \section1 UI Performance in S60 3rd and 5th Edition Devices |
831 | 869 |
|
832 | 870 | Qt uses the QPainter class to perform low-level painting on widgets and
|
833 | 871 | other paint devices. QPainter provides functions to draw complex shapes,
|
834 | 872 | aligned text and pixmaps. It can also do vector path clipping, coordinate
|
835 | 873 | transformations and Porter-Duff composition. If the underlying graphics
|
836 | 874 | architecture does not support all of these operations then Qt uses the
|
837 | 875 | raster graphics system for rendering.
|
838 |
| - |
839 |
| - Most of the Symbian devices prior to Symbian^3 use a non-ScreenPlay |
840 |
| - graphics architecture which does not have native support for all functions |
841 |
| - provided by QPainter. In non-ScreenPlay devices Qt uses the raster |
842 |
| - graphics system by default which has a performance penalty when compared |
| 876 | + |
| 877 | + In Symbian Anna (and Symbian^3) Qt uses hardware accelerated graphics as explained above. |
| 878 | + This is enabled by \l |
| 879 | + {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html} |
| 880 | + {ScreenPlay Graphics Architecture} in these devices. |
| 881 | + |
| 882 | + Most of the Symbian S60 3rd and 5th Edition devices have a |
| 883 | + graphics architecture that does not have native support for all functions |
| 884 | + provided by QPainter. In these \l |
| 885 | + {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html} |
| 886 | + {non-ScreenPlay} devices Qt uses the raster |
| 887 | + graphics system by default that has a performance penalty compared |
843 | 888 | to native Symbian rendering.
|
844 | 889 |
|
845 | 890 | In order to be able to perform all functions provided by QPainter, the
|
|
850 | 895 | offscreen buffer is blitted to the framebuffer via Symbian Window Server.
|
851 | 896 |
|
852 | 897 | The following table shows the rendering stacks of native Symbian and Qt in
|
853 |
| - non-ScreenPlay devices. |
| 898 | + \l {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html} |
| 899 | + {non-ScreenPlay devices}. |
854 | 900 |
|
855 | 901 | \table
|
856 | 902 | \header \o Symbian
|
|
0 commit comments