1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-20 07:49:42 +01:00

* Only sync lucene index once (at most) per sync.

This commit is contained in:
Christian Muehlhaeuser 2011-09-27 18:18:05 +02:00
parent 9291c75669
commit 26a7d37298
5 changed files with 35 additions and 15 deletions

View File

@ -214,14 +214,13 @@ DatabaseCommand_AddFiles::exec( DatabaseImpl* dbi )
query->addResults( results );
m_queries << query;
added++;
}
qDebug() << "Inserted" << added;
qDebug() << "Inserted" << added << "tracks to database";
// TODO building the index could be a separate job, outside this transaction
if ( added )
dbi->updateSearchIndex();
source()->updateIndexWhenSynced();
qDebug() << "Committing" << added << "tracks...";
emit done( m_files, source()->collection() );

View File

@ -131,14 +131,6 @@ DatabaseImpl::loadIndex()
}
void
DatabaseImpl::updateSearchIndex()
{
DatabaseCommand* cmd = new DatabaseCommand_UpdateSearchIndex();
Database::instance()->enqueue( QSharedPointer<DatabaseCommand>( cmd ) );
}
bool
DatabaseImpl::updateSchema( int oldVersion )
{

View File

@ -72,9 +72,6 @@ public:
return left.second > right.second;
}
// indexes entries from "table" where id >= pkey
void updateSearchIndex();
QString dbid() const { return m_dbid; }
void loadIndex();

View File

@ -25,6 +25,7 @@
#include "network/controlconnection.h"
#include "database/databasecommand_addsource.h"
#include "database/databasecommand_sourceoffline.h"
#include "database/databasecommand_updatesearchindex.h"
#include "database/database.h"
#include <QCoreApplication>
@ -42,6 +43,7 @@ Source::Source( int id, const QString& username )
, m_online( false )
, m_username( username )
, m_id( id )
, m_updateIndexWhenSynced( false )
, m_state( DBSyncConnection::UNKNOWN )
, m_cc( 0 )
, m_avatar( 0 )
@ -235,23 +237,43 @@ Source::onStateChanged( DBSyncConnection::State newstate, DBSyncConnection::Stat
switch( newstate )
{
case DBSyncConnection::CHECKING:
{
msg = tr( "Checking" );
break;
}
case DBSyncConnection::FETCHING:
{
msg = tr( "Fetching" );
break;
}
case DBSyncConnection::PARSING:
{
msg = tr( "Parsing" );
break;
}
case DBSyncConnection::SAVING:
{
msg = tr( "Saving" );
break;
}
case DBSyncConnection::SYNCED:
{
if ( m_updateIndexWhenSynced )
{
m_updateIndexWhenSynced = false;
DatabaseCommand* cmd = new DatabaseCommand_UpdateSearchIndex();
Database::instance()->enqueue( QSharedPointer<DatabaseCommand>( cmd ) );
}
msg = QString();
break;
}
case DBSyncConnection::SCANNING:
{
msg = tr( "Scanning (%L1 tracks)" ).arg( info );
break;
}
default:
msg = QString();
@ -332,3 +354,9 @@ Source::reportSocialAttributesChanged( DatabaseCommand_SocialAction* action )
}
}
void
Source::updateIndexWhenSynced()
{
m_updateIndexWhenSynced = true;
}

View File

@ -30,9 +30,10 @@
#include "dllmacro.h"
class DatabaseCommand_LogPlayback;
class ControlConnection;
class DatabaseCommand_LogPlayback;
class DatabaseCommand_SocialAction;
class DatabaseCommand_UpdateSearchIndex;
namespace Tomahawk
{
@ -45,6 +46,7 @@ friend class ::DBSyncConnection;
friend class ::ControlConnection;
friend class ::DatabaseCommand_LogPlayback;
friend class ::DatabaseCommand_SocialAction;
friend class ::DatabaseCommand_AddFiles;
public:
enum AvatarStyle { Original, FancyStyle };
@ -109,6 +111,7 @@ private slots:
void dbLoaded( unsigned int id, const QString& fname );
QString lastCmdGuid() const { return m_lastCmdGuid; }
void setLastCmdGuid( const QString& guid ) { m_lastCmdGuid = guid; }
void updateIndexWhenSynced();
void setOffline();
void setOnline();
@ -131,6 +134,7 @@ private:
QString m_friendlyname;
int m_id;
bool m_scrubFriendlyName;
bool m_updateIndexWhenSynced;
Tomahawk::query_ptr m_currentTrack;
QString m_textStatus;