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:
@@ -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() );
|
||||||
|
@@ -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 )
|
||||||
{
|
{
|
||||||
|
@@ -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();
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user