Difference between revisions of "Qt Quick development process"

From GCompris
Jump to: navigation, search
(updated to reflect the latest development status)
(updated to refer to new activities.txt)
Line 37: Line 37:
 
* now in QtCreator, algebra_by should appear, no restart needed
 
* now in QtCreator, algebra_by should appear, no restart needed
 
* edit algebra_by.pri and replace erase.svg by algebra_by.svg, same for the javascript and the qml file.
 
* edit algebra_by.pri and replace erase.svg by algebra_by.svg, same for the javascript and the qml file.
* in src/core, edit ActivityInfoTree.cpp and at about line 100, add '<< "algebra_by"' in the activities list.
+
* in src/activities/activities.txt add the directory name of your activity (keep the file sorted).
 
* check algebra_by/ActivityInfo.qml that the name references you Qml activity entry point and that the icon point to your icon name.
 
* check algebra_by/ActivityInfo.qml that the name references you Qml activity entry point and that the icon point to your icon name.
 
* run GCompris and the new activity is there!
 
* run GCompris and the new activity is there!
Line 53: Line 53:
  
 
* And in your source use : qrc:/gcompris/src/activities/algebra_by/resource/myCuteImage.jpg
 
* And in your source use : qrc:/gcompris/src/activities/algebra_by/resource/myCuteImage.jpg
 +
 +
= Speeding startup =
 +
 +
When you work on an activity you will run GCompris many time and the final stage that combines the qrc in the binary is long. To speep your development process, just comment the include of the activities you don't need in the top level GCompris.pro

Revision as of 02:38, 15 February 2014

Compilation

  • Get the source code
  • Download and Install the lastest stable version of QtCreator for Android
  • Start QtCreator and open the project file GCompris.pro at the root of the source code
  • Compile and run it.

To make it run on Android you need first to follow these instructions.

Adding a new activity

Let's say you want to port the algebra_by activity.

  • create a directory algebra_by in src/activities:

cd src/activities mkdir algebra_by

  • Copy the existing old GCompris menu

git mv menus/algebra_by.qml algebra_by/Algebra_by.qml

the svg icon is not under git so you have to pick the old GCompris's icon named algebra_by.svg and copy it in algebra_by. You can get it from the GCompris-gtk GitHub: https://github.com/bdoin/GCompris/tree/master/src

  • Copy an existing activity for example 'erase'

cp erase/.qml algebra_by/ cp erase/erase.pri algebra_by/algebra_by.pri cp erase/erase.js algebra_by/algebra_by.js

  • edit ../../GCompris.pro and add the line:

include(src/activities/algebra_by/algebra_by.pri) to be correct it should be kept sorted with the others

  • now in QtCreator, algebra_by should appear, no restart needed
  • edit algebra_by.pri and replace erase.svg by algebra_by.svg, same for the javascript and the qml file.
  • in src/activities/activities.txt add the directory name of your activity (keep the file sorted).
  • check algebra_by/ActivityInfo.qml that the name references you Qml activity entry point and that the icon point to your icon name.
  • run GCompris and the new activity is there!
  • Ok, the activity is just an extension of an existing one
  • now copy and existing Activity.qml and its javascript from another activity
  • If you look at erase / Activity , the root of you activity is in pageComponent:
  • For the media, you have to put them in the qrc file and then reference it by qrc: in the source. The path is defined in the qrc file.
  • You can see the qrc in qtcreator, it is Ressources/gcompris.qrc it is auto generated at build time
  • To add new images, create a resource directory in your activity folder and in you .pri file add:

APP_FILES += \ $$PWD/resource/myCuteImage.jpg \

  • And in your source use : qrc:/gcompris/src/activities/algebra_by/resource/myCuteImage.jpg

Speeding startup

When you work on an activity you will run GCompris many time and the final stage that combines the qrc in the binary is long. To speep your development process, just comment the include of the activities you don't need in the top level GCompris.pro