Library table not displaying on Windows with Qt 4.5.x

Bug #586729 reported by Sean M. Pappalardo
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
High
Unassigned
1.8
Fix Released
High
Sean M. Pappalardo

Bug Description

Trunk r2405 introduces a change that breaks the library table on 64-bit Windows only: it doesn't display anything, not even column headers, no matter if used on a previously valid db file or allowed to create a new one. The temporary view returns no errors, however:

Debug: [Main]: Query: "CREATE TEMPORARY VIEW IF NOT EXISTS library_view AS SELECT library.id,library.artist,library.title,library.album,library.year,library.duration,library.genre,library.tracknumber,library.datetime_added,library.bpm,track_locations.location,library.comment,library.mixxx_deleted FROM library INNER JOIN track_locations ON library.location = track_locations.id "
Debug: [Main]: Last error: QSqlError(-1, "", "")

Also of note: using a library file created with r2405 (or later) with a version of Mixxx from r2404 or earlier results in the same symptoms. (Allowing Mixxx r2404 or older to re-create the DB file fixes it.)

Workaround: use setTable("library"); in librarytablemodel.cpp at line 45 and comment out the "library_view" one.

description: updated
description: updated
summary: - Library table not displaying on Windows
+ Library table not displaying and crashing on Windows
description: updated
summary: - Library table not displaying and crashing on Windows
+ Library table not displaying on Windows
description: updated
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote : Re: Library table not displaying on Windows x64

Due to this only happening on x64, this might be a Qt bug. Albert, please check and confirm and report one to them if so.

summary: - Library table not displaying on Windows
+ Library table not displaying on Windows x64
description: updated
Revision history for this message
Albert Santoni (gamegod) wrote :

If you can get a library that works with >= r2405, can you check if playlist and crates work? They use temporary view the same way as I change us to use for the library...

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Tested with r2409 and crates and playlists also show the problem.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

BTW, I'm using Qt 4.5.2 on x64 (because 4.6's scripting is broken on x64.)

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Just tested building on Win32 against Qt 4.5 and the problem shows up. So it's a Qt bug. Fantastic, since that means we can't have a 100% 64-bit build unless I build against Qt 4.7 beta. (Maybe they'll release the final before we package 1.8.0 final??)

Changed in mixxx:
assignee: Albert Santoni (gamegod) → nobody
status: Confirmed → Invalid
Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

This is a reminder to myself to try cherry-picking the Qt DLLs/LIB files: use Qt 4.5.3 for everything except QtSql.

summary: - Library table not displaying on Windows x64
+ Library table not displaying on Windows with Qt 4.5.x
Changed in mixxx:
status: Invalid → Triaged
milestone: 1.8.0 → none
Revision history for this message
RAFFI TEA (raffitea) wrote :

Cherry-picking the Qt DLLs/LIB does not work for me.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Yeah, you have to shuffle source files and rebuild Qt. I got it to work on Windows x64 by doing this:
1) Get the Qt 4.5 source (since it's the most stable at the moment)
2) Lift the QtSql code from Qt 4.6.x from various directories (I made a list but don't have it handy now) and drop it in the 4.5.x source tree
3) Re-build Qt
4) Build Mixxx against this custom Qt build

I'll be doing this for x86 as well for beta2.

Revision history for this message
RAFFI TEA (raffitea) wrote :

I used a customized QT 4.6.3 build which fixes visual curruptions on Windows. The patch can be found here: http://qt.gitorious.org/qt/qt/commit/38adb59a9e80a23d37ff0820ef62ebd45ab1e4ae

Works fine on very fast systems but on older systems it may decrease performance (I still hear disturbing noise on my old sony vaio, dual core 2 duo, 2 Ghz RAM, Windows XP and Windows 7 x86, Audio 4 DJ at 5ms)

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

I built the beta2 packages with my customized Qt 4.5.3 + QtSql from 4.6.2 build and it tests fine. 1.8.0 final will be built with this as well, unless Qt 4.6.4 shows any promise.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Here's the info to recreate the same customized build:

Start with 4.5.x source and copy the following (with all subfolders) from the 4.6.x source into it:

src\sql
src\plugins\sqldrivers
src\3rdparty\sqlite
include\QtSql
include\Qt\qsql*.h

Then just build Qt as usual, making sure to add the FTS3 define in C:\qt-everywhere-opensource-src-4.6.x\src\plugins\sqldrivers\sqlite\sqlite.pro. (See http://mixxx.org/wiki/doku.php/build_windows_dependencies#prepare_build_environment)

Changed in mixxx:
status: Triaged → Fix Committed
Revision history for this message
Albert Santoni (gamegod) wrote :

In Brian's OS X package, I have what looks like the same problem. It's built using Qt 4.5.3, and the library table doesn't show up for me. I don't see any errors in the log, and it's loaded the SQLite driver with no problems.

I use Qt 4.6.0 for my builds on OS X and I don't experience this problem.

Revision history for this message
Albert Santoni (gamegod) wrote :

Cherry picking QtSql and libqsqlite.dylib on OS X doesn't work either. Those files from Qt 4.6.0 need QtCore from 4.6.0.

Revision history for this message
Sean M. Pappalardo (pegasus-renegadetech) wrote :

Right, which is why I ended up having to just rebuild all of Qt 4.5 with the QtSQL source from 4.6. It seems to work just fine. While I was forced to do this so Mixxx would work 100% on x64, you can probably just use Qt 4.6.x and be fine, unless there are graphics performance issues introduced with 4.6 like we see on Linux.

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 586729] Re: Library table not displaying on Windows with Qt 4.5.x

Yeah, that's the problem. IIRC Jus said Qt 4.6 introduced performance
problems for him on his Macbook Pro (GeForce). +1 for tiling waveform
renderer.

On Wed, Jun 30, 2010 at 11:19 PM, Pegasus <email address hidden> wrote:
> Right, which is why I ended up having to just rebuild all of Qt 4.5 with
> the QtSQL source from 4.6. It seems to work just fine. While I was
> forced to do this so Mixxx would work 100% on x64, you can probably just
> use Qt 4.6.x and be fine, unless there are graphics performance issues
> introduced with 4.6 like we see on Linux.
>
> --
> Library table not displaying on Windows with Qt 4.5.x
> https://bugs.launchpad.net/bugs/586729
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
>

RJ Skerry-Ryan (rryan)
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/5405

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.