SVN commit 1202454 by shaforo: BUG:251747 report real result count in tab search tab M +4 -5 jobs.cpp M +25 -11 tmtab.cpp M +3 -1 tmtab.h --- trunk/KDE/kdesdk/lokalize/src/tm/jobs.cpp #1202453:1202454 @@ -1839,26 +1839,25 @@ , m_dbName(dbName) , m_query(queryString) { - kWarning(TM_AREA)<lastError().text(); + kDebug(TM_AREA)<<"done"<lastError().text(); } --- trunk/KDE/kdesdk/lokalize/src/tm/tmtab.cpp #1202453:1202454 @@ -1,7 +1,7 @@ -/* **************************************************************************** +/* **************************************************************************** This file is part of Lokalize - Copyright (C) 2007-2009 by Nick Shaforostoff + Copyright (C) 2007-2011 by Nick Shaforostoff This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -139,29 +139,39 @@ if (!filemask.isEmpty()) fileQuery="AND files.path GLOB '"+escapedFilemask+"' "; + QString fromPart="FROM main JOIN source_strings ON (source_strings.id==main.source) " + "JOIN target_strings ON (target_strings.id==main.target), files " + "WHERE files.id==main.file " + +sourceQuery + +targetQuery + +fileQuery; ExecQueryJob* job=new ExecQueryJob( "SELECT source_strings.source, target_strings.target, " "main.ctxt, files.path, " "source_strings.source_accel, target_strings.target_accel, main.bits " - "FROM main JOIN source_strings ON (source_strings.id==main.source) " - "JOIN target_strings ON (target_strings.id==main.target), files " - "WHERE files.id==main.file " - +sourceQuery - +targetQuery - +fileQuery,m_dbName); + +fromPart,m_dbName); + connect(job,SIGNAL(done(ThreadWeaver::Job*)),job,SLOT(deleteLater())); + connect(job,SIGNAL(done(ThreadWeaver::Job*)),this,SLOT(slotQueryExecuted(ThreadWeaver::Job*))); + ThreadWeaver::Weaver::instance()->enqueue(job); + + job=new ExecQueryJob("SELECT count(*) "+fromPart,m_dbName); connect(job,SIGNAL(done(ThreadWeaver::Job*)),job,SLOT(deleteLater())); connect(job,SIGNAL(done(ThreadWeaver::Job*)),this,SLOT(slotQueryExecuted(ThreadWeaver::Job*))); ThreadWeaver::Weaver::instance()->enqueue(job); - - //kWarning()<<"TEST"<(j); + if (job->query->lastQuery().startsWith("SELECT count(*) ")) + { + job->query->next(); + emit finalResultCountFetched(job->query->value(0).toInt()); + return; + } setQuery(*(job->query)); emit resultsFetched(); } @@ -337,6 +347,7 @@ view->setColumnHidden(TMDBModel::_Bits,true); connect(m_model,SIGNAL(resultsFetched()),this,SLOT(handleResults())); + connect(m_model,SIGNAL(finalResultCountFetched(int)),this,SLOT(setTotalResultCount(int))); QButtonGroup* btnGrp=new QButtonGroup(this); btnGrp->addButton(ui_queryOptions->substr,(int)TMDBModel::SubStr); @@ -468,8 +479,11 @@ } view->setFocus(); //END resizeColumnToContents +} - statusBarItems.insert(1,i18nc("@info:status message entries","Total: %1",rowCount)); +void TMTab::setTotalResultCount(int count) +{ + statusBarItems.insert(1,i18nc("@info:status message entries","Total: %1",count)); } static void copy(Ui_QueryOptions* ui_queryOptions, int column) --- trunk/KDE/kdesdk/lokalize/src/tm/tmtab.h #1202453:1202454 @@ -1,4 +1,4 @@ -/* **************************************************************************** +/* **************************************************************************** This file is part of Lokalize Copyright (C) 2007-2009 by Nick Shaforostoff @@ -84,6 +84,7 @@ void copyTarget(); void openFile(); void handleResults(); + void setTotalResultCount(int); signals: void fileOpenRequested(const KUrl& url, const QString& source, const QString& ctxt); @@ -153,6 +154,7 @@ signals: void resultsFetched(); + void finalResultCountFetched(int); private: