[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdesdk/lokalize/src/tm
From:       Nick Shaforostoff <shafff () ukr ! net>
Date:       2010-11-30 22:53:17
Message-ID: 20101130225317.DB590AC8A3 () svn ! kde ! org
[Download RAW message or body]

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)<<dbName<<queryString;
+    kDebug(TM_AREA)<<dbName<<queryString;
 }
 
 ExecQueryJob::~ExecQueryJob()
 {
     delete query;
-    kWarning(TM_AREA)<<"destroy";
-    std::cout<<"~ExecQueryJob"<<std::endl;
+    kDebug(TM_AREA)<<"destroy";
 }
 
 void ExecQueryJob::run()
 {
     QSqlDatabase db=QSqlDatabase::database(m_dbName);
-    kWarning(TM_AREA)<<"running"<<m_dbName<<"db.isOpen() ="<<db.isOpen();
+    kDebug(TM_AREA)<<"running"<<m_dbName<<"db.isOpen() ="<<db.isOpen();
     //temporarily:
     if (!db.isOpen())
         kWarning(TM_AREA)<<"db.open()="<<db.open();
     query=new QSqlQuery(m_query,db);
     query->exec();
-    kWarning(TM_AREA)<<"done"<<query->lastError().text();
+    kDebug(TM_AREA)<<"done"<<query->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 <shafff@ukr.net>
+  Copyright (C) 2007-2011 by Nick Shaforostoff <shafff@ukr.net>
 
   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"<<BIG_COUNTER;
 }
 
 void TMDBModel::slotQueryExecuted(ThreadWeaver::Job* j)
 {
     ExecQueryJob* job=static_cast<ExecQueryJob*>(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 <shafff@ukr.net>
@@ -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:
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic