harmattan/qt-components
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Qt Components for BB10
===============================
This branch (bb10) contains the MeeGo/Harmattan Qt Components modified to work on the BlackBerry 10 OS.
What was changed from Ineans components
=======================================
- main window size is automatically detected as runtime ("normal" Qt Components just have a hardcoded value)
- the default orientation was changed to portrait
- orientation fixes to work correctly with the QBB_USE_OPENGL environmental variable
- removed dependency on QSystemInfo when building with qt-mobility support, as QSystemInfo is not part of the BB10 Qt build
- fixed screen rotation to landscape every time the application is minimized
- high-DPI adaptation for relevant components --> this is not 100% done & patches are welcome ! :)
-- basically, most of the hardcoded values were multiplied by 2, which seems to work quite fine on the high-DPI screen of the Dev-Alpha
Where to make changes
=====================
For you changes to make effect, edit the files present in the src/fremantle/cssu folder.
Changing the other files will not influence the build with the below provided commands.
Preparing for the build
======================
Firs of all install the BlackBerry 10 native SDK.
Then prepare you shell for cross-compiling with the BB10 NDK:
source ~/bbndk/bbdnk-env.sh
Configuring
===========
Use the following command to configure for build:
./configure -fremantle -no-maliit -make cssu -force-local-theme -mobility -no-xrandr -no-xdamage -nomake examples
Compiling
=========
Just start make to compile it:
make -j5
Result
======
The resulting compiled components are in the imports/ folder.
You can drop the "org" folder as that contains components targeted for Maemo 5 Fremantle,
that are not needed by the ordinary MeeGo components.
Recompiling
===========
First clean the directory:
make clean
Then remove the imports folder with the result & proceed with configure & make as usual.
Using the components
====================
To use these components, use the following import in your QML:
import com.nokia.meego 1.0
You also need to pack the contents of the "imports" folder together with your application and then point the QML_IMPORT_PATH to it on application startup.
Or you can feel the QDeclarativeEngine to add it when instantiation the QDeclarativeView.
Also don't forget to set the QBB_USE_OPENGL environmental variable to "1", as it it would not use OpenGL and be horrendously slow.
The automatic orientation code also expects OpenGL to be set, as it fixes a few glitches introduces by using it and might not work correctly otherwise.
You can include the following code in your bar, which makes sure QBB_USE_OPENGL is properly set at startup:
<env var="QBB_USE_OPENGL" value="1"/>
Compatible theme
================
You can get a BB10 Qt Components theme from here:
https://gitorious.org/~martink/fremantle-qt-components/bb10-qt-components-graphics
Se README in the main folder for how to use the theme.
Original Qt Components README
=============================
This source tree contains the Qt Components project.
Building
========
configure (for compiling specific component sets add '-meego' or '-symbian')
make
make install
The project is divided into:
- The module Qt.labs.components: _for now_ contains general purpose helpers for QML.
and also (for the time being) two QML modules for component sets implemented using those components
- com.meego: components from MeeGo Touch UI library,
- com.nokia.symbian: set of UI components for Symbian.
The lib will install in QTDIR/lib, while the modules will go to QTDIR/imports.
Build dependencies
==================
- Qt 4.7
Optional dependencies
=====================
- MeeGo Touch (for some features of the the com.meego module)
-- On desktop, download and install: libmeegotouch & meegotouch-theme from http://meego.gitorious.org/meegotouch
-- NOTE: meegotouch is already available if you are compiling inside scratchbox with a maemo6 target setup
Coding Style
==================
Follow the respective Qt coding style for C++ and QML files and the
JavaScript coding style for JS only files.
Coding Styles
- Qt C++: http://qt.gitorious.org/qt/pages/QtCodingStyle
- QML: http://doc.qt.nokia.com/4.7/qml-coding-conventions.html
- JS: https://developer.mozilla.org/En/Developer_Guide/Coding_Style
Running on Desktop
==================
- Pass -graphicssystem native
- On mac, running tests require prefixing the path to the libqtcomponentsplugin.dylib:
"DYLD_LIBRARY_PATH=/Developer/depot/qt/imports/Qt/labs/components/ make check"
Building the Documentation
==================
To generate the Symbian components documentation:
configure -symbian
make docs
This will generate HTML files in the doc/html directory. Also, a qch file will
be generated in the doc/qch directory. This qch file can be loaded in
Qt Assistant or Qt Creator.
Build instructions for MeeGoTouch (quickstart)
==============================================
(After trying to install things in a different prefix,
I gave up since I couldn't get meegotouch to find its theme.)
You will need these projects:
git://gitorious.org/meegotouch/meegotouch-theme.git
git://gitorious.org/meegotouch/libmeegotouch.git
git@gitorious.org:qt-components/qt-components.git
1: meegotouch-theme: qmake PREFIX=/usr/local/ && sudo make install
2: libmeegotouch:
./configure --prefix=/usr
Make sure that you configure with dbus. If it doesn't pick up qt's dbus:
export PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig
make install
3: qt-components: ./configure -meego && make install
(installs into your current binary qt path)
or use dpkg-buildpackage to make a .deb package