Bug 83588 - [Qt] [WK2] MiniBrowser fails on startup because of FilePicker
Summary: [Qt] [WK2] MiniBrowser fails on startup because of FilePicker
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: All Linux
: P3 Normal
Assignee: Nobody
URL:
Keywords: Qt
Depends on:
Blocks:
 
Reported: 2012-04-10 09:43 PDT by Andras Becsi
Modified: 2012-09-04 08:22 PDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andras Becsi 2012-04-10 09:43:53 PDT
When launching MiniBrowser the I get the following error:

qrc:/qml/BrowserWindow.qml:316:34: Type FilePicker unavailable 
qrc:/qml/FilePicker.qml:22:1: plugin cannot be loaded for module "Qt.labs.folderlistmodel": Unknown error 
QObject::connect: Cannot connect (null)::pageTitleChanged(QString) to BrowserWindow::setWindowTitle(QString)
QObject::connect: Cannot connect (null)::newWindow(QString) to BrowserWindow::newWindow(QString)

Although the pluging seems to be in place in $QTDIR/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so

ldd $QTDIR/imports/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so 
        linux-vdso.so.1 =>  (0x00007fffe19ff000)
        libQtQuick1.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtQuick1.so.5 (0x00007f34270ba000)
        libQtSql.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtSql.so.5 (0x00007f3426dc3000)
        libQtXmlPatterns.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtXmlPatterns.so.5 (0x00007f34268ee000)
        libQtWidgets.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtWidgets.so.5 (0x00007f3425e32000)
        libQtScript.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtScript.so.5 (0x00007f3425805000)
        libQtNetwork.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtNetwork.so.5 (0x00007f342544d000)
        libQtGui.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtGui.so.5 (0x00007f3424cd0000)
        libQtCore.so.5 => /home/abecsi/devel/git/qt5_build/qtbase/lib/libQtCore.so.5 (0x00007f34245ba000)
        libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f3424277000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f342405b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f3423d57000)
        libm.so.6 => /lib/libm.so.6 (0x00007f3423a61000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f342384c000)
        libc.so.6 => /lib/libc.so.6 (0x00007f34234ab000)
        librt.so.1 => /lib/librt.so.1 (0x00007f34232a2000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f342308f000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f3422d54000)
        libpcre16.so.0 => /usr/lib/libpcre16.so.0 (0x00007f3422b01000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f34228fc000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f34226f7000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007f3422402000)
        /lib/ld-linux-x86-64.so.2 (0x00007f34279ce000)
        libnvidia-tls.so.295.33 => /usr/lib/libnvidia-tls.so.295.33 (0x00007f34221fe000)
        libnvidia-glcore.so.295.33 => /usr/lib/libnvidia-glcore.so.295.33 (0x00007f341fedb000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f341fcbc000)
        libpcre.so.1 => /usr/lib/libpcre.so.1 (0x00007f341fa62000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f341f85d000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f341f657000)

This code was introduced in http://trac.webkit.org/changeset/111012.
Comment 1 Dinu Jacob 2012-04-10 10:37:43 PDT
There is a folder with the same name under qtquick1/src/imports. It seems that the folderlistmodel lib that you have corresponds to the qquick1 (It should be the one from qtdeclarative/src/imports). What gets installed depends on the order in which QtQuick1 and QtQml components are installed. Installing the QtQml component again will fix it.

The permanent fix to avoid depending on the order would be to have a different name for each of these plugins. Simon, is there any other solution?
Comment 2 Andras Becsi 2012-04-10 11:03:46 PDT
(In reply to comment #1)
> There is a folder with the same name under qtquick1/src/imports. It seems that the folderlistmodel lib that you have corresponds to the qquick1 (It should be the one from qtdeclarative/src/imports). What gets installed depends on the order in which QtQuick1 and QtQml components are installed. Installing the QtQml component again will fix it.
> 
> The permanent fix to avoid depending on the order would be to have a different name for each of these plugins. Simon, is there any other solution?

Indeed it looks like building qtquick1 overwrites the qtquick2 folderlistmodel plugin.

Since I do not use make install, but a shadow build, the solution for me was to clean $QTDIR/imports/Qt/labs/folderlistmodel and run make in the qtdeclarative shadow directory again which automatically copies the plugin to QTDIR.

Since there is no separate QtQml module the order of build dependencies is always qtdeclarative, qtquick1, thus until this is not fixed in Qt qtquick1 will always overwrite the needed qtquick2 plugin, and the described workaround is needed.
Comment 3 Balazs Kelemen 2012-04-10 14:35:23 PDT
> Since there is no separate QtQml module the order of build dependencies is always qtdeclarative, qtquick1, thus until this is not fixed in Qt qtquick1 will always overwrite the needed qtquick2 plugin, and the described workaround is needed.

I don't think that's true. You can build qtquick1 first and qtdeclarative after.
Comment 4 Thiago Marcos P. Santos 2012-04-13 05:09:13 PDT
People already reported the same issue at Qt bugtracker:

https://bugreports.qt-project.org/browse/QTBUG-25191

Please vote. :)
Comment 5 Andras Becsi 2012-09-04 08:22:21 PDT
The issue has been fixed in the qtquick1 module.