Example #1
0
void
ScanManager::runDirScan()
{
    qDebug() << Q_FUNC_INFO;

    if ( !Database::instance() || ( Database::instance() && !Database::instance()->isReady() ) )
        return;

    QStringList paths = TomahawkSettings::instance()->scannerPaths();

    if ( !m_musicScannerThreadController && m_scanner.isNull() ) //still running if these are not zero
    {
        m_scanTimer->stop();
        m_musicScannerThreadController = new QThread( this );
        m_scanner = QWeakPointer< MusicScanner>( new MusicScanner( paths ) );
        m_scanner.data()->moveToThread( m_musicScannerThreadController );
        connect( m_scanner.data(), SIGNAL( finished() ), SLOT( scannerFinished() ) );
        m_musicScannerThreadController->start( QThread::IdlePriority );
        QMetaObject::invokeMethod( m_scanner.data(), "startScan" );
    }
    else
    {
        qDebug() << "Could not run dir scan, old scan still running";
        return;
    }
}
Example #2
0
void
ScanManager::runManualScan( const QStringList& paths, bool recursive )
{
    qDebug() << Q_FUNC_INFO;

    if( !Database::instance() || ( Database::instance() && !Database::instance()->isReady() ) )
        return;

    if ( !m_musicScannerThreadController && m_scanner.isNull() ) //still running if these are not zero
    {
        m_musicScannerThreadController = new QThread( this );
        QStringList allPaths = paths;
        foreach( QString path, m_deferredDirs[recursive] )
        {
            if( !allPaths.contains( path ) )
                allPaths << path;
        }
        m_scanner = QWeakPointer< MusicScanner>( new MusicScanner( paths, recursive ) );
        m_scanner.data()->moveToThread( m_musicScannerThreadController );
        connect( m_scanner.data(), SIGNAL( finished() ), SLOT( scannerFinished() ) );
        connect( m_scanner.data(), SIGNAL( addWatchedDirs( const QStringList & ) ), SLOT( addWatchedDirs( const QStringList & ) ) );
        connect( m_scanner.data(), SIGNAL( removeWatchedDir( const QString & ) ), SLOT( removeWatchedDir( const QString & ) ) );
        m_musicScannerThreadController->start( QThread::IdlePriority );
        QMetaObject::invokeMethod( m_scanner.data(), "startScan" );
        m_deferredDirs[recursive].clear();
    }
Example #3
0
void
ScanManager::filesDeleted()
{
    if ( !TomahawkSettings::instance()->scannerPaths().isEmpty() )
        runDirScan();
    else
        scannerFinished();
}