Skip to content

Inneans Qt Components modified to work on the BlackBerry 10 (BB10) operating system.

License

Notifications You must be signed in to change notification settings

harmattan/qt-components

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

About

Inneans Qt Components modified to work on the BlackBerry 10 (BB10) operating system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published