From 3e2c344f99f699a829deae4dfbf673c609165b35 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Thu, 23 Oct 2014 16:10:08 +0200 Subject: [PATCH] Delayed ScanManager init, so we can connect to its signal beforehand. --- src/libtomahawk/filemetadata/ScanManager.cpp | 27 ++++++++++++-------- src/libtomahawk/filemetadata/ScanManager.h | 2 ++ src/tomahawk/TomahawkApp.cpp | 5 ++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/libtomahawk/filemetadata/ScanManager.cpp b/src/libtomahawk/filemetadata/ScanManager.cpp index 30ef4c933..c75a2ed7e 100644 --- a/src/libtomahawk/filemetadata/ScanManager.cpp +++ b/src/libtomahawk/filemetadata/ScanManager.cpp @@ -89,17 +89,6 @@ ScanManager::ScanManager( QObject* parent ) m_scanTimer = new QTimer( this ); m_scanTimer->setSingleShot( false ); m_scanTimer->setInterval( TomahawkSettings::instance()->scannerTime() * 1000 ); - - connect( TomahawkSettings::instance(), SIGNAL( changed() ), SLOT( onSettingsChanged() ) ); - connect( m_scanTimer, SIGNAL( timeout() ), SLOT( scanTimerTimeout() ) ); - - if ( TomahawkSettings::instance()->hasScannerPaths() ) - { - m_cachedScannerDirs = TomahawkSettings::instance()->scannerPaths(); - m_scanTimer->start(); - if ( TomahawkSettings::instance()->watchForChanges() ) - QTimer::singleShot( 1000, this, SLOT( runStartupScan() ) ); - } } @@ -119,6 +108,22 @@ ScanManager::~ScanManager() } +void +ScanManager::init() +{ + connect( TomahawkSettings::instance(), SIGNAL( changed() ), SLOT( onSettingsChanged() ) ); + connect( m_scanTimer, SIGNAL( timeout() ), SLOT( scanTimerTimeout() ) ); + + if ( TomahawkSettings::instance()->hasScannerPaths() ) + { + m_cachedScannerDirs = TomahawkSettings::instance()->scannerPaths(); + m_scanTimer->start(); + if ( TomahawkSettings::instance()->watchForChanges() ) + QTimer::singleShot( 1000, this, SLOT( runStartupScan() ) ); + } +} + + void ScanManager::onSettingsChanged() { diff --git a/src/libtomahawk/filemetadata/ScanManager.h b/src/libtomahawk/filemetadata/ScanManager.h index 941d31e4e..24c60bb18 100644 --- a/src/libtomahawk/filemetadata/ScanManager.h +++ b/src/libtomahawk/filemetadata/ScanManager.h @@ -66,6 +66,8 @@ public: explicit ScanManager( QObject* parent = 0 ); virtual ~ScanManager(); + void init(); + signals: void started(); void progress( unsigned int files ); diff --git a/src/tomahawk/TomahawkApp.cpp b/src/tomahawk/TomahawkApp.cpp index 74cb81a14..6011c3a0d 100644 --- a/src/tomahawk/TomahawkApp.cpp +++ b/src/tomahawk/TomahawkApp.cpp @@ -606,6 +606,7 @@ TomahawkApp::onInfoSystemReady() Echonest::Config::instance()->setNetworkAccessManager( Tomahawk::Utils::nam() ); EchonestGenerator::setupCatalogs(); + m_scanManager = QPointer( new ScanManager( this ) ); if ( !m_headless ) { tDebug() << "Init MainWindow."; @@ -624,10 +625,10 @@ TomahawkApp::onInfoSystemReady() tDebug() << "Init Pipeline."; initPipeline(); - m_scanManager = QPointer( new ScanManager( this ) ); + m_scanManager->init(); if ( arguments().contains( "--filescan" ) ) { - m_scanManager.data()->runFullRescan(); + m_scanManager->runFullRescan(); } // load remote list of resolvers able to be installed