diff --git a/clients/aurorae/src/aurorae.cpp b/clients/aurorae/src/aurorae.cpp index a000d51843..17423b6202 100644 --- a/clients/aurorae/src/aurorae.cpp +++ b/clients/aurorae/src/aurorae.cpp @@ -88,8 +88,13 @@ void AuroraeFactory::initAurorae(KConfig &conf, KConfigGroup &group) m_theme->setButtonSize((KDecorationDefines::BorderSize)themeGroup.readEntry("ButtonSize", KDecorationDefines::BorderNormal)); m_theme->setTabDragMimeType(tabDragMimeType()); // setup the QML engine - foreach (const QString &importPath, KGlobal::dirs()->findDirs("module", "imports")) { - m_engine->addImportPath(importPath); + /* 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")); + 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); @@ -122,8 +127,13 @@ void AuroraeFactory::initQML(const KConfigGroup &group) } m_engineType = QMLEngine; // setup the QML engine - foreach (const QString &importPath, KGlobal::dirs()->findDirs("module", "imports")) { - m_engine->addImportPath(importPath); + /* 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")); + paths.toBack(); + while (paths.hasPrevious()) { + m_engine->addImportPath(paths.previous()); } m_component->loadUrl(QUrl::fromLocalFile(file)); m_themeName = themeName; diff --git a/kcmkwin/kwindecoration/kwindecoration.cpp b/kcmkwin/kwindecoration/kwindecoration.cpp index 79d8e3e738..9b1697d5ec 100644 --- a/kcmkwin/kwindecoration/kwindecoration.cpp +++ b/kcmkwin/kwindecoration/kwindecoration.cpp @@ -135,8 +135,13 @@ void KWinDecorationModule::init() m_proxyModel->setSourceModel(m_model); m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); m_ui->decorationList->setResizeMode(QDeclarativeView::SizeRootObjectToView); - foreach (const QString &importPath, KGlobal::dirs()->findDirs("module", "imports")) { - m_ui->decorationList->engine()->addImportPath(importPath); + /* 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")); + 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); diff --git a/scripting/scripting.cpp b/scripting/scripting.cpp index 0bd07f7f11..c67704de02 100644 --- a/scripting/scripting.cpp +++ b/scripting/scripting.cpp @@ -544,11 +544,6 @@ void KWin::DeclarativeScript::run() if (running()) { return; } - - foreach (const QString &importPath, KGlobal::dirs()->findDirs("module", "imports")) { - m_engine->addImportPath(importPath); - } - // add read config KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(m_engine); diff --git a/tabbox/declarative.cpp b/tabbox/declarative.cpp index 4af5471e3e..a6b12502cd 100644 --- a/tabbox/declarative.cpp +++ b/tabbox/declarative.cpp @@ -148,9 +148,6 @@ DeclarativeView::DeclarativeView(QAbstractItemModel *model, TabBoxConfig::TabBox QPalette pal = palette(); pal.setColor(backgroundRole(), Qt::transparent); setPalette(pal); - foreach (const QString &importPath, KGlobal::dirs()->findDirs("module", "imports")) { - engine()->addImportPath(importPath); - } engine()->addImageProvider(QLatin1String("client"), new ImageProvider(model)); KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(engine());