add qml import paths in correct order

addImportPath prepends the path to importPathList so we must add our
paths in reverse order.

Based on the fix for kdeclarative.cpp in kdelibs
400b9f2e9d10386bb175b6123fe0cdaafeaffe61

REVIEW: 110670
This commit is contained in:
Oliver Henshaw 2013-05-26 14:32:21 +01:00
parent 2d5ebd3b8d
commit b61bca0f3d
2 changed files with 18 additions and 6 deletions

View file

@ -88,9 +88,13 @@ void AuroraeFactory::initAurorae(KConfig &conf, KConfigGroup &group)
m_theme->setButtonSize((KDecorationDefines::BorderSize)themeGroup.readEntry<int>("ButtonSize", KDecorationDefines::BorderNormal));
m_theme->setTabDragMimeType(tabDragMimeType());
// setup the QML engine
/* use logic from KDeclarative::setupBindings():
"addImportPath adds the path at the beginning, so to honour user's
paths we need to traverse the list in reverse order" */
QStringListIterator paths(KGlobal::dirs()->findDirs("module", "imports"));
while (paths.hasNext()) {
m_engine->addImportPath(paths.next());
paths.toBack();
while (paths.hasPrevious()) {
m_engine->addImportPath(paths.previous());
}
m_component->loadUrl(QUrl(KStandardDirs::locate("data", "kwin/aurorae/aurorae.qml")));
m_engine->rootContext()->setContextProperty("auroraeTheme", m_theme);
@ -123,9 +127,13 @@ void AuroraeFactory::initQML(const KConfigGroup &group)
}
m_engineType = QMLEngine;
// setup the QML engine
/* use logic from KDeclarative::setupBindings():
"addImportPath adds the path at the beginning, so to honour user's
paths we need to traverse the list in reverse order" */
QStringListIterator paths(KGlobal::dirs()->findDirs("module", "imports"));
while (paths.hasNext()) {
m_engine->addImportPath(paths.next());
paths.toBack();
while (paths.hasPrevious()) {
m_engine->addImportPath(paths.previous());
}
m_component->loadUrl(QUrl::fromLocalFile(file));
m_themeName = themeName;

View file

@ -135,9 +135,13 @@ void KWinDecorationModule::init()
m_proxyModel->setSourceModel(m_model);
m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
m_ui->decorationList->setResizeMode(QDeclarativeView::SizeRootObjectToView);
/* use logic from KDeclarative::setupBindings():
"addImportPath adds the path at the beginning, so to honour user's
paths we need to traverse the list in reverse order" */
QStringListIterator paths(KGlobal::dirs()->findDirs("module", "imports"));
while (paths.hasNext()) {
m_ui->decorationList->engine()->addImportPath(paths.next());
paths.toBack();
while (paths.hasPrevious()) {
m_ui->decorationList->engine()->addImportPath(paths.previous());
}
m_ui->decorationList->rootContext()->setContextProperty("decorationModel", m_proxyModel);
m_ui->decorationList->rootContext()->setContextProperty("decorationBaseModel", m_model);