On Wednesday, November 07, 2012 07:28:59 AM Radek Polak wrote:

> For now i have two source and build trees - with 4.7 qt and with 4.8 and
> putting some qDebug() to figure out where the problem exactly is.

Attached is patch with some debug writes. You can see that 4.7 and 4.8 
generate different QContent - note the values for Role and Filename:

------------------------>% for Qt 4.7:

QMimeType::fromFileName "/opt/qtmoko/apps/Settings/gtalksettings.desktop" 
QMimeType::fromFileName 1 
======================== QMimeType::loadExtensions filename= "/etc/mime.types" 
QMimeType::fromFileName extension= "desktop" 
QMimeType::fromFileName type.mimeId= "" 
QMimeType::fromFileName 2 
QMimeType::fromFileName 4 
QSqlContentStore::installContent mimeType= ( MimeType: application/octet-
stream ) 
===== content  QContent( QContentEngine( Id: "ffffffff|ffffffffffffffff" Name: 
"gtalksettings" FileName: "" MimeType: "application/octet-stream" DrmState: 0 
Role: 2 IconName: "" LastUpdated: QDateTime("") ) ) 
QSqlContentStore::contentFromFileName 9 
QSqlContentStore::contentFromFileName 0 
QSqlContentStore::contentFromFileName 1 



------------------------>% for Qt 4.8:

QMimeType::fromFileName "/opt/qtmoko/apps/Settings/gtalksettings.desktop" 
QMimeType::fromFileName 1 
======================== QMimeType::loadExtensions filename= "/etc/mime.types" 
QMimeType::fromFileName extension= "desktop" 
QMimeType::fromFileName type.mimeId= "" 
QMimeType::fromFileName 2 
QMimeType::fromFileName 4 
QSqlContentStore::installContent mimeType= ( MimeType: application/octet-
stream ) 
===== content  QContent( QContentEngine( Id: "ffffffff|ffffffffffffffff" Name: 
"gtalksettings.desktop" FileName: 
"/opt/qtmoko/apps/Settings/gtalksettings.desktop" MimeType: 
"application/octet-stream" DrmState: 0 Role: 1 IconName: "" LastUpdated: 
QDateTime("Thu Jan 1 00:00:00 1970") ) ) 
QSqlContentStore::contentFromFileName 9 
QSqlContentStore::contentFromFileName 0 
QSqlContentStore::contentFromFileName 1 

Regards

Radek

diff --git a/qtopiacore/qt b/qtopiacore/qt
index 1fe5204..4a7a2a1 160000
--- a/qtopiacore/qt
+++ b/qtopiacore/qt
@@ -1 +1 @@
-Subproject commit 1fe520458c815019ef14d5f0c99e2a0d49f28eef
+Subproject commit 4a7a2a18e9871841ccf4606111b724c6e63dd2fd-dirty
diff --git a/src/3rdparty/applications/yberbrowser b/src/3rdparty/applications/yberbrowser
--- a/src/3rdparty/applications/yberbrowser
+++ b/src/3rdparty/applications/yberbrowser
@@ -1 +1 @@
-Subproject commit 60f53c930f71ec11e6e436e6a4e3da41a3e0ec2e
+Subproject commit 60f53c930f71ec11e6e436e6a4e3da41a3e0ec2e-dirty
diff --git a/src/libraries/qtopia/qcontent.cpp b/src/libraries/qtopia/qcontent.cpp
index 690562a..49cd0ef 100644
--- a/src/libraries/qtopia/qcontent.cpp
+++ b/src/libraries/qtopia/qcontent.cpp
@@ -459,8 +459,10 @@ void QContent::uninstall( QContentId id )
 void QContent::installBatch( const QList<QFileInfo> &batch )
 {
     QList< QContent > content;
-    foreach(const QFileInfo &fi, batch)
+    foreach(const QFileInfo &fi, batch) {
+        qDebug() << "QContent::installBatch fi.absoluteFilePath=" << fi.absoluteFilePath();
         content.append( QContentStore::instance()->contentFromFileName( fi.absoluteFilePath(), QContentStore::Construct ) );
+    }
 
     QContentStore::instance()->batchCommitContent( content );
 }
diff --git a/src/libraries/qtopia/qfscontentengine.cpp b/src/libraries/qtopia/qfscontentengine.cpp
index 3b49574..25e188a 100644
--- a/src/libraries/qtopia/qfscontentengine.cpp
+++ b/src/libraries/qtopia/qfscontentengine.cpp
@@ -185,6 +185,8 @@ bool QFSContentEngine::execute( const QStringList &arguments ) const
 */
 QIODevice *QFSContentEngine::open( QIODevice::OpenMode mode )
 {
+    qDebug() << "QFSContentEngine::open fileName=" << fileName();
+    
     if( name().isEmpty() )
         return 0;
 
@@ -192,6 +194,8 @@ QIODevice *QFSContentEngine::open( QIODevice::OpenMode mode )
     {
         if( mode & QIODevice::WriteOnly )
         {
+            qDebug() << "QFSContentEngine::open 1";
+
             if( mimeType().isNull() )
                 setMimeType( QMimeType::fromFileName( name() ) );
 
@@ -213,7 +217,8 @@ QIODevice *QFSContentEngine::open( QIODevice::OpenMode mode )
     }
 
     QFile *file = new QFile( fileName() );
-
+    qDebug() << "QFSContentEngine::open 2";
+    
     if( !file->open( mode ) )
     {
         setError( file->errorString() );
diff --git a/src/libraries/qtopia/qmimetype.cpp b/src/libraries/qtopia/qmimetype.cpp
index f6306cc..b3fc699 100644
--- a/src/libraries/qtopia/qmimetype.cpp
+++ b/src/libraries/qtopia/qmimetype.cpp
@@ -180,6 +180,8 @@ QMimeType QMimeType::fromExtension( const QString &extension )
 */
 QMimeType QMimeType::fromFileName( const QString &fileName )
 {
+    qDebug() << "QMimeType::fromFileName" << fileName;
+    
     QMimeType type;
 
     int slashIndex = fileName.lastIndexOf( QLatin1Char( '/' ) );
@@ -188,23 +190,34 @@ QMimeType QMimeType::fromFileName( const QString &fileName )
 
     if( dotIndex > slashIndex )
     {
+        qDebug() << "QMimeType::fromFileName 1";
         if(loadedTimes()->count() == 0)
             loadExtensions();
         QString extension = fileName.mid( dotIndex + 1 ).toLower();
+        qDebug() << "QMimeType::fromFileName extension=" << extension;
 
         type.mimeId = typeFor()->value( extension );
+        
+        qDebug() << "QMimeType::fromFileName type.mimeId=" << type.mimeId;
     }
 
     if( type.mimeId.isEmpty() )
     {
+        qDebug() << "QMimeType::fromFileName 2";
         const char elfMagic[] = { '\177', 'E', 'L', 'F', '\0' };
 
         QFile ef( fileName );
 
         if ( ef.size() > 5 && ef.open( QIODevice::ReadOnly ) && ef.peek(5) == elfMagic)  // try to find from magic
+        {
+            qDebug() << "QMimeType::fromFileName 3";
             type.mimeId = QLatin1String("application/x-executable");  // could be a shared library or an exe
+        }
         else
+        {
+            qDebug() << "QMimeType::fromFileName 4";
             type.mimeId = QLatin1String("application/octet-stream");
+        }
     }
 
     return type;
@@ -404,6 +417,8 @@ static QString nextString( const char *line, int& posn )
 */
 void QMimeType::loadExtensions(const QString& filename)
 {
+    qDebug() << "======================== QMimeType::loadExtensions filename=" << filename;
+    
     QMutexLocker staticsGuard(&staticsGuardMutex);
     QFile file(filename);
     if ( file.open(QIODevice::ReadOnly) ) {
diff --git a/src/libraries/qtopia/qsqlcontentstore.cpp b/src/libraries/qtopia/qsqlcontentstore.cpp
index e167430..6057ad0 100644
--- a/src/libraries/qtopia/qsqlcontentstore.cpp
+++ b/src/libraries/qtopia/qsqlcontentstore.cpp
@@ -122,6 +122,8 @@ QContent QSqlContentStore::contentFromFileName( const QString &fileName, LookupF
         return QContent();
     }
 
+    qDebug() << "QSqlContentStore::contentFromFileName 0";
+    
     if( lookup & Lookup )
     {
         static const QString selectString = QLatin1String(
@@ -131,14 +133,20 @@ QContent QSqlContentStore::contentFromFileName( const QString &fileName, LookupF
                              "left join mimeTypeLookup on content.mType = mimeTypeLookup.pKey "
                 "WHERE path = :path and locationLookup.location = :location" );
 
+        qDebug() << "QSqlContentStore::contentFromFileName 1";
+        
         if( fileName.endsWith( QLatin1String( ".desktop" ), Qt::CaseInsensitive ) )
         {
+            qDebug() << "QSqlContentStore::contentFromFileName 2";
             QContent content = desktopContent( fileName );
+            qDebug() << "QSqlContentStore::contentFromFileName 3";
 
             if( !content.isNull() )
                 return content;
         }
 
+        qDebug() << "QSqlContentStore::contentFromFileName 4";
+        
         int slash = fileName.lastIndexOf( '/' );
 
         if( slash == -1 )
@@ -178,8 +186,10 @@ QContent QSqlContentStore::contentFromFileName( const QString &fileName, LookupF
 
     QContent content;
 
+    qDebug() << "QSqlContentStore::contentFromFileName 5";
     if( lookup & Construct )
     {
+        qDebug() << "QSqlContentStore::contentFromFileName 6";
         QContentEngine *engine = new QFSContentEngine;
 
         engine->setFileName( fileName );
@@ -188,15 +198,22 @@ QContent QSqlContentStore::contentFromFileName( const QString &fileName, LookupF
 
         if( !(lookup & Commit) )
         {
+            qDebug() << "QSqlContentStore::contentFromFileName 7" << c;
             if( (engine = installContent( &c ) ) != 0 )
+            {
                 content = QContent( engine );
+                qDebug() << "===== content " << content;
+            }
         }
         else if( commitContent( &c ) )
         {
+            qDebug() << "QSqlContentStore::contentFromFileName 8";
             content = c;
         }
     }
 
+    qDebug() << "QSqlContentStore::contentFromFileName 9";
+    
     if( content.id() != QContent::InvalidId )
         QContentCache::instance()->cache( content );
 
@@ -218,6 +235,7 @@ QContent QSqlContentStore::contentFromEngineType( const QString &engineType )
 */
 bool QSqlContentStore::commitContent( QContent *content )
 {
+    qDebug() << "QSqlContentStore::commitContent" << *content;
     qLog(DocAPI) << __PRETTY_FUNCTION__ << *content;
 
 #ifndef QTOPIA_CONTENT_INSTALLER
@@ -230,20 +248,25 @@ bool QSqlContentStore::commitContent( QContent *content )
 #endif
     if( content->id() == QContent::InvalidId )
     {
+        qDebug() << "QSqlContentStore::commitContent 1";
+
         QContentEngine *engine = 0;
 
         if( content->lastUpdated().isNull() )
         {
+            qDebug() << "QSqlContentStore::commitContent 2";
             if( (engine = installContent( content )) == 0 )
                 return false;
         }
         else if( !contentEngine( content )->isOutOfDate() || (engine = refreshContent( content )) == 0 )
         {
+            qDebug() << "QSqlContentStore::commitContent 3";
             engine = contentEngine( content );
         }
 
         if( engine && insertContent( engine, QtopiaSql::instance()->databaseIdForPath( engine->fileName() ) ) )
         {
+            qDebug() << "QSqlContentStore::commitContent 4";
             *content = QContent( engine );
 
             QContentCache::instance()->cache( *content );
@@ -252,6 +275,7 @@ bool QSqlContentStore::commitContent( QContent *content )
         }
         else
         {
+            qDebug() << "QSqlContentStore::commitContent 5";
             if( engine && !engine->ref )
                 delete engine;
 
@@ -260,11 +284,13 @@ bool QSqlContentStore::commitContent( QContent *content )
     }
     else
     {
+        qDebug() << "QSqlContentStore::commitContent 6";
         QContentEngine *engine = 0;
 
         if( ( content->name().isNull() || content->type().isNull() || contentEngine( content )->isOutOfDate() )
             && (engine = refreshContent( content )) != 0 )
         {
+            qDebug() << "QSqlContentStore::commitContent 7";
             *content = QContent( engine );
         }
 
@@ -272,6 +298,7 @@ bool QSqlContentStore::commitContent( QContent *content )
 
         if( dbId == content->id().first )
         {
+            qDebug() << "QSqlContentStore::commitContent 8";
             if( updateContent( contentEngine( content ) ) )
             {
                 QContentCache::instance()->cache( *content );
@@ -283,12 +310,14 @@ bool QSqlContentStore::commitContent( QContent *content )
         }
         else if( dbId == quint32(-1) )
         {
+            qDebug() << "QSqlContentStore::commitContent 9";
             uninstallContent( content->id() );
 
             return false;
         }
         else
         {
+            qDebug() << "QSqlContentStore::commitContent 10";
             QContentEngine *engine = contentEngine( content );
 
             ensurePropertiesLoaded( engine );
@@ -298,6 +327,7 @@ bool QSqlContentStore::commitContent( QContent *content )
 
             if( insertContent( engine, dbId ) )
             {
+                qDebug() << "QSqlContentStore::commitContent 11";
                 QContentCache::instance()->cache( *content );
 
                 return true;
@@ -368,19 +398,26 @@ QIODevice *QSqlContentStore::openContent( QContent *content, QIODevice::OpenMode
 */
 QContentEngine *QSqlContentStore::installContent( QContent *content )
 {
+    qDebug() << "QSqlContentStore::installContent" << *content;
+    
     QContentEngine *engine = QContentEngine::createEngine( *content );
 
     if( engine )
         return engine;
 
     QString fileName = content->fileName();
+    qDebug() << "QSqlContentStore::installContent fileName=" << fileName;
 
     if( !fileName.isEmpty() )
     {
+        qDebug() << "QSqlContentStore::installContent content->type=" << content->type();
+        
         QMimeType type = content->type().isEmpty()
                 ? QMimeType::fromFileName( fileName )
                 : QMimeType::fromId( content->type() );
 
+        qDebug() << "QSqlContentStore::installContent mimeType=" << type;
+                
         QString name = deriveName( fileName, type );
 
         QFileInfo fileInfo(fileName);
@@ -1322,6 +1359,8 @@ QContentList QSqlContentStore::contentFromIds( const QContentIdList &contentIds
 */
 QContent QSqlContentStore::contentFromQuery( const QSqlQuery &query, QtopiaDatabaseId dbId ) const
 {
+    qDebug() << "QSqlContentStore::contentFromQuery";
+    
     QContent::DrmState drmState = convertDrmState( query.value( 3 ).toInt() );
 
 #ifndef QTOPIA_CONTENT_INSTALLER
@@ -1334,6 +1373,19 @@ QContent QSqlContentStore::contentFromQuery( const QSqlQuery &query, QtopiaDatab
 
     setId( QContentId( dbId, query.value( 0 ).toULongLong() ), engine );
 
+    qDebug() << "query.value( 1 ).toString()=" << query.value( 1 ).toString();
+    qDebug() << "query.value( 2 ).toString()=" << query.value( 2 ).toString();
+    qDebug() << "query.value( 4 ).toString()=" << query.value( 4 ).toString();
+    qDebug() << "query.value( 5 ).toString()=" << query.value( 5 ).toString();
+    qDebug() << "query.value( 6 ).toString()=" << query.value( 6 ).toString();
+    qDebug() << "query.value( 7 ).toString()=" << query.value( 7 ).toString();
+    qDebug() << "query.value( 8 ).toString()=" << query.value( 8 ).toString();
+    
+    qDebug() << "QMimeType::fromId( query.value( 2 ).toString()=" << QMimeType::fromId( query.value( 2 ).toString());
+    qDebug() << "constructFileName=" << constructFileName( 
+            query.value( 5 ).toString(),
+            query.value( 6 ).toString() );
+    
     engine->setName( query.value( 1 ).toString() );
     engine->setMimeType( QMimeType::fromId( query.value( 2 ).toString() ) );
     engine->setFileName( constructFileName( 
@@ -1700,6 +1752,8 @@ bool QSqlContentStore::removeProperties( QContentId id )
 */
 QContent QSqlContentStore::desktopContent( const QString &fileName )
 {
+    qDebug() << "QSqlContentStore::desktopContent fileName=" << fileName;
+    
     static const QString selectString = QLatin1String(
             "SELECT content.cid, uiName, mimeTypeLookup.mimeType, drmFlags, docStatus, path, "
                    "locationLookup.location as directory, icon, lastUpdated "
@@ -1730,7 +1784,9 @@ QContent QSqlContentStore::desktopContent( const QString &fileName )
 
     if( selectQuery.first() )
     {
+        qDebug() << "QSqlContentStore::desktopContent 1";
         QContent content = contentFromQuery( selectQuery, dbId );
+        qDebug() << "QSqlContentStore::desktopContent 2";
 
         QContentCache::instance()->cache( content );
 
diff --git a/src/server/core_server/contentserver.cpp b/src/server/core_server/contentserver.cpp
index 0644927..aab48c6 100644
--- a/src/server/core_server/contentserver.cpp
+++ b/src/server/core_server/contentserver.cpp
@@ -288,7 +288,9 @@ void DirectoryScanner::scanPath(const QString& path, int depth, int priority)
         QContentFilter removedPaths;
 
         foreach (QString path, paths) {
+            qDebug() << "path=" << path;
             if (!QFile::exists(path)) {
+                qDebug() << "1";
                 QContentIdList contentIds = QContentSet(QContentFilter::Directory, path).itemIds();
 
                 foreach (QContentId contentId, contentIds)
@@ -306,6 +308,8 @@ void DirectoryScanner::scanPath(const QString& path, int depth, int priority)
     QStringList fileNames = QDir(dirPath).entryList(
             QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
 
+    qDebug() << "fileNames=" << fileNames;
+    
     qSort(fileNames.begin(), fileNames.end(), binaryStringLessThan);
 
     int db = 0;
@@ -345,7 +349,9 @@ void DirectoryScanner::scanPath(const QString& path, int depth, int priority)
 
             ++db;
         } else if (comparison > 0) {
+            qDebug() << "2";
             install(QFileInfo(dirPath + fsName));
+            qDebug() << "3";
 
             ++fs;
         }
@@ -353,8 +359,11 @@ void DirectoryScanner::scanPath(const QString& path, int depth, int priority)
 
     while(db < dbCount)
         uninstall(dirContents.contentId(db++));
-    while(fs < fsCount)
+    while(fs < fsCount) {
+        qDebug() << "4";
         install(QFileInfo(dirPath + fileNames.at(fs++)));
+        qDebug() << "5";
+    }
 
     if (depth < MaxSearchDepth)
         foreach (QString fileName, QDir(dirPath).entryList(QDir::Dirs | QDir::NoDotAndDotDot))
@@ -417,11 +426,15 @@ QString DirectoryScanner::thumbnailPath(const QString &thumbnailDir, const QStri
 
 void DirectoryScanner::install(const QFileInfo &fi)
 {
+    qDebug() << "DirectoryScanner::install" << fi.fileName();
     if (!QtopiaSql::instance()->isDatabase(fi.absoluteFilePath())) {
+        qDebug() << "DirectoryScanner::install 1";
         m_pendingInstalls.append(fi);
 
         if (m_pendingInstalls.count() == docsPerShot) {
+            qDebug() << "DirectoryScanner::install 2";
             QContent::installBatch(m_pendingInstalls);
+            qDebug() << "DirectoryScanner::install 3";
 
             m_pendingInstalls.clear();
         }
_______________________________________________
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to