1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-07-31 11:20:22 +02: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 ); query->addResults( results );
m_queries << query; m_queries << query;
added++; added++;
} }
qDebug() << "Inserted" << added; qDebug() << "Inserted" << added << "tracks to database";
// TODO building the index could be a separate job, outside this transaction // TODO building the index could be a separate job, outside this transaction
if ( added ) if ( added )
dbi->updateSearchIndex(); source()->updateIndexWhenSynced();
qDebug() << "Committing" << added << "tracks..."; qDebug() << "Committing" << added << "tracks...";
emit done( m_files, source()->collection() ); 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 bool
DatabaseImpl::updateSchema( int oldVersion ) DatabaseImpl::updateSchema( int oldVersion )
{ {

View File

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

View File

@@ -25,6 +25,7 @@
#include "network/controlconnection.h" #include "network/controlconnection.h"
#include "database/databasecommand_addsource.h" #include "database/databasecommand_addsource.h"
#include "database/databasecommand_sourceoffline.h" #include "database/databasecommand_sourceoffline.h"
#include "database/databasecommand_updatesearchindex.h"
#include "database/database.h" #include "database/database.h"
#include <QCoreApplication> #include <QCoreApplication>
@@ -42,6 +43,7 @@ Source::Source( int id, const QString& username )
, m_online( false ) , m_online( false )
, m_username( username ) , m_username( username )
, m_id( id ) , m_id( id )
, m_updateIndexWhenSynced( false )
, m_state( DBSyncConnection::UNKNOWN ) , m_state( DBSyncConnection::UNKNOWN )
, m_cc( 0 ) , m_cc( 0 )
, m_avatar( 0 ) , m_avatar( 0 )
@@ -235,23 +237,43 @@ Source::onStateChanged( DBSyncConnection::State newstate, DBSyncConnection::Stat
switch( newstate ) switch( newstate )
{ {
case DBSyncConnection::CHECKING: case DBSyncConnection::CHECKING:
{
msg = tr( "Checking" ); msg = tr( "Checking" );
break; break;
}
case DBSyncConnection::FETCHING: case DBSyncConnection::FETCHING:
{
msg = tr( "Fetching" ); msg = tr( "Fetching" );
break; break;
}
case DBSyncConnection::PARSING: case DBSyncConnection::PARSING:
{
msg = tr( "Parsing" ); msg = tr( "Parsing" );
break; break;
}
case DBSyncConnection::SAVING: case DBSyncConnection::SAVING:
{
msg = tr( "Saving" ); msg = tr( "Saving" );
break; break;
}
case DBSyncConnection::SYNCED: case DBSyncConnection::SYNCED:
{
if ( m_updateIndexWhenSynced )
{
m_updateIndexWhenSynced = false;
DatabaseCommand* cmd = new DatabaseCommand_UpdateSearchIndex();
Database::instance()->enqueue( QSharedPointer<DatabaseCommand>( cmd ) );
}
msg = QString(); msg = QString();
break; break;
}
case DBSyncConnection::SCANNING: case DBSyncConnection::SCANNING:
{
msg = tr( "Scanning (%L1 tracks)" ).arg( info ); msg = tr( "Scanning (%L1 tracks)" ).arg( info );
break; break;
}
default: default:
msg = QString(); 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" #include "dllmacro.h"
class DatabaseCommand_LogPlayback;
class ControlConnection; class ControlConnection;
class DatabaseCommand_LogPlayback;
class DatabaseCommand_SocialAction; class DatabaseCommand_SocialAction;
class DatabaseCommand_UpdateSearchIndex;
namespace Tomahawk namespace Tomahawk
{ {
@@ -45,6 +46,7 @@ friend class ::DBSyncConnection;
friend class ::ControlConnection; friend class ::ControlConnection;
friend class ::DatabaseCommand_LogPlayback; friend class ::DatabaseCommand_LogPlayback;
friend class ::DatabaseCommand_SocialAction; friend class ::DatabaseCommand_SocialAction;
friend class ::DatabaseCommand_AddFiles;
public: public:
enum AvatarStyle { Original, FancyStyle }; enum AvatarStyle { Original, FancyStyle };
@@ -109,6 +111,7 @@ private slots:
void dbLoaded( unsigned int id, const QString& fname ); void dbLoaded( unsigned int id, const QString& fname );
QString lastCmdGuid() const { return m_lastCmdGuid; } QString lastCmdGuid() const { return m_lastCmdGuid; }
void setLastCmdGuid( const QString& guid ) { m_lastCmdGuid = guid; } void setLastCmdGuid( const QString& guid ) { m_lastCmdGuid = guid; }
void updateIndexWhenSynced();
void setOffline(); void setOffline();
void setOnline(); void setOnline();
@@ -131,6 +134,7 @@ private:
QString m_friendlyname; QString m_friendlyname;
int m_id; int m_id;
bool m_scrubFriendlyName; bool m_scrubFriendlyName;
bool m_updateIndexWhenSynced;
Tomahawk::query_ptr m_currentTrack; Tomahawk::query_ptr m_currentTrack;
QString m_textStatus; QString m_textStatus;