Harmattan Booster for Qt Quick Applications: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(Removed from categories, outdated)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Manually Enabling Harmattan Booster Library=
{{Outdated|reason=The MeeGo/Harmattan platform is no longer supported.}}
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


Up until and including Qt Creator 2.3.0, the “Qt Quick Application” wizard doesn’t make use of the Harmattan booster library. This has a negative impact on application startup time, and might even lead to problems when submitting the application to the Ovi store.
= Manually Enabling Harmattan Booster Library =


''Qt Creator 2.3.1 (which is now included in the latest updates to the Qt <span class="caps">SDK</span>) already enables the booster by default! The instructions below are only for people who have already projects created with 2.3.0 or older, or are not willing to update for whatever reasons.''
Up until and including Qt Creator 2.3.0, the "Qt Quick Application" wizard doesn't make use of the Harmattan booster library. This has a negative impact on application startup time, and might even lead to problems when submitting the application to the Ovi store.
 
''Qt Creator 2.3.1 (which is now included in the latest updates to the Qt SDK) already enables the booster by default! The instructions below are only for people who have already projects created with 2.3.0 or older, or are not willing to update for whatever reasons.''


This page outlines the changes you can do by hand to the source code to enable the booster. However, by making these changes your application will not compile any more for other targets!
This page outlines the changes you can do by hand to the source code to enable the booster. However, by making these changes your application will not compile any more for other targets!


==Changes to main.cpp==
== Changes to main.cpp ==
 
Replace your main.cpp with following code (obviously replacing "YourApp" by the name of your app):
 
<code>
#include <QApplication>
#include <QDeclarativeView>
#include <QDeclarativeEngine>
#include <MDeclarativeCache>
 
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QScopedPointer<QApplication> app(MDeclarativeCache::qApplication(argc, argv));
QScopedPointer<QDeclarativeView> view(MDeclarativeCache::qDeclarativeView());
 
view->setSource(MDeclarativeCache::applicationDirPath()
+ QLatin1String("/../qml/YourApp/main.qml"));
 
QObject::connect(view->engine(), SIGNAL (quit()), view.data(), SLOT (close()));
 
view->showFullScreen();


Replace your main.cpp with following code (obviously replacing “YourApp” by the name of your app):
app->exec();
}
</code>


==Changes to .pro file==
== Changes to .pro file ==


Add
Add


to the .pro file, and don’t forget to do a full recompile!
<code>
CONFIG += qdeclarative-boostable
</code>


==Changes to .desktop file==
to the .pro file, and don't forget to do a full recompile!
 
== Changes to .desktop file ==


Open YourApp_harmattan.desktop in the project directory, and change
Open YourApp_harmattan.desktop in the project directory, and change
<code>
Exec=/usr/bin/single-instance /opt/YourApp/bin/YourApp
</code>


to
to
<code>
Exec=/usr/bin/invoker —type=d -s /opt/YourApp/bin/YourApp
</code>


''Do you have questions, or suggestions? Raise them under http://developer.qt.nokia.com/forums/viewthread/9164''
''Do you have questions, or suggestions? Raise them under http://developer.qt.nokia.com/forums/viewthread/9164''
===Categories:===
* [[:Category:Developing with Qt|Developing_with_Qt]]
* [[:Category:HowTo|HowTo]]
* [[:Category:snippets|snippets]]
* [[:Category:Tools|Tools]]
** [[:Category:Tools::QtCreator|QtCreator]]

Latest revision as of 15:21, 27 June 2015

IMPORTANT: The content of this page is outdated. Reason: The MeeGo/Harmattan platform is no longer supported.
If you have checked or updated this page and found the content to be suitable, please remove this notice.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Manually Enabling Harmattan Booster Library

Up until and including Qt Creator 2.3.0, the "Qt Quick Application" wizard doesn't make use of the Harmattan booster library. This has a negative impact on application startup time, and might even lead to problems when submitting the application to the Ovi store.

Qt Creator 2.3.1 (which is now included in the latest updates to the Qt SDK) already enables the booster by default! The instructions below are only for people who have already projects created with 2.3.0 or older, or are not willing to update for whatever reasons.

This page outlines the changes you can do by hand to the source code to enable the booster. However, by making these changes your application will not compile any more for other targets!

Changes to main.cpp

Replace your main.cpp with following code (obviously replacing "YourApp" by the name of your app):

#include <QApplication>
#include <QDeclarativeView>
#include <QDeclarativeEngine>
#include <MDeclarativeCache>

Q_DECL_EXPORT int main(int argc, char *argv[])
{
 QScopedPointer<QApplication> app(MDeclarativeCache::qApplication(argc, argv));
 QScopedPointer<QDeclarativeView> view(MDeclarativeCache::qDeclarativeView());

view->setSource(MDeclarativeCache::applicationDirPath()
 + QLatin1String("/../qml/YourApp/main.qml"));

QObject::connect(view->engine(), SIGNAL (quit()), view.data(), SLOT (close()));

view->showFullScreen();

app->exec();
}

Changes to .pro file

Add

CONFIG += qdeclarative-boostable

to the .pro file, and don't forget to do a full recompile!

Changes to .desktop file

Open YourApp_harmattan.desktop in the project directory, and change

Exec=/usr/bin/single-instance /opt/YourApp/bin/YourApp

to

Exec=/usr/bin/invoker type=d -s /opt/YourApp/bin/YourApp

Do you have questions, or suggestions? Raise them under http://developer.qt.nokia.com/forums/viewthread/9164