void CGUIWindowMusicBase::OnRetrieveMusicInfo(CFileItemList& items) { if (items.GetFolderCount()==items.Size() || items.IsMusicDb() || (!g_guiSettings.GetBool("musicfiles.usetags") && !items.IsCDDA())) { return; } // Start the music info loader thread m_musicInfoLoader.SetProgressCallback(m_dlgProgress); m_musicInfoLoader.Load(items); bool bShowProgress=!m_gWindowManager.HasModalDialog(); bool bProgressVisible=false; DWORD dwTick=timeGetTime(); while (m_musicInfoLoader.IsLoading()) { if (bShowProgress) { // Do we have to init a progress dialog? DWORD dwElapsed=timeGetTime()-dwTick; if (!bProgressVisible && dwElapsed>1500 && m_dlgProgress) { // tag loading takes more then 1.5 secs, show a progress dialog CURL url(items.m_strPath); CStdString strStrippedPath; url.GetURLWithoutUserDetails(strStrippedPath); m_dlgProgress->SetHeading(189); m_dlgProgress->SetLine(0, 505); m_dlgProgress->SetLine(1, ""); m_dlgProgress->SetLine(2, strStrippedPath ); m_dlgProgress->StartModal(); m_dlgProgress->ShowProgressBar(true); bProgressVisible = true; } if (bProgressVisible && m_dlgProgress && !m_dlgProgress->IsCanceled()) { // keep GUI alive m_dlgProgress->Progress(); } } // if (bShowProgress) Sleep(1); } // while (m_musicInfoLoader.IsLoading()) if (bProgressVisible && m_dlgProgress) m_dlgProgress->Close(); }
void CGUIWindowMusicBase::OnRetrieveMusicInfo(CFileItemList& items) { if (items.GetFolderCount()==items.Size() || items.IsMusicDb() || (!CSettings::Get().GetBool("musicfiles.usetags") && !items.IsCDDA())) { return; } // Start the music info loader thread m_musicInfoLoader.SetProgressCallback(m_dlgProgress); m_musicInfoLoader.Load(items); bool bShowProgress=!g_windowManager.HasModalDialog(); bool bProgressVisible=false; unsigned int tick=XbmcThreads::SystemClockMillis(); while (m_musicInfoLoader.IsLoading()) { if (bShowProgress) { // Do we have to init a progress dialog? unsigned int elapsed=XbmcThreads::SystemClockMillis()-tick; if (!bProgressVisible && elapsed>1500 && m_dlgProgress) { // tag loading takes more then 1.5 secs, show a progress dialog CURL url(items.GetPath()); std::string strStrippedPath = url.GetWithoutUserDetails(); m_dlgProgress->SetHeading(189); m_dlgProgress->SetLine(0, 505); m_dlgProgress->SetLine(1, ""); m_dlgProgress->SetLine(2, strStrippedPath ); m_dlgProgress->StartModal(); m_dlgProgress->ShowProgressBar(true); bProgressVisible = true; } if (bProgressVisible && m_dlgProgress && !m_dlgProgress->IsCanceled()) { // keep GUI alive m_dlgProgress->Progress(); } } // if (bShowProgress) Sleep(1); } // while (m_musicInfoLoader.IsLoading()) if (bProgressVisible && m_dlgProgress) m_dlgProgress->Close(); }
void CGUIWindowMusicBase::OnRetrieveMusicInfo(CFileItemList& items) { if (items.GetFolderCount()==items.Size() || items.IsMusicDb() || (!CServiceBroker::GetSettings().GetBool(CSettings::SETTING_MUSICFILES_USETAGS) && !items.IsCDDA())) { return; } // Start the music info loader thread m_musicInfoLoader.SetProgressCallback(m_dlgProgress); m_musicInfoLoader.Load(items); bool bShowProgress=!g_windowManager.HasModalDialog(); bool bProgressVisible=false; unsigned int tick=XbmcThreads::SystemClockMillis(); while (m_musicInfoLoader.IsLoading()) { if (bShowProgress) { // Do we have to init a progress dialog? unsigned int elapsed=XbmcThreads::SystemClockMillis()-tick; if (!bProgressVisible && elapsed>1500 && m_dlgProgress) { // tag loading takes more then 1.5 secs, show a progress dialog CURL url(items.GetPath()); m_dlgProgress->SetHeading(CVariant{189}); m_dlgProgress->SetLine(0, CVariant{505}); m_dlgProgress->SetLine(1, CVariant{""}); m_dlgProgress->SetLine(2, CVariant{url.GetWithoutUserDetails()}); m_dlgProgress->Open(); m_dlgProgress->ShowProgressBar(true); bProgressVisible = true; } if (bProgressVisible && m_dlgProgress && !m_dlgProgress->IsCanceled()) { // keep GUI alive m_dlgProgress->Progress(); } } // if (bShowProgress) Sleep(1); } // while (m_musicInfoLoader.IsLoading()) if (bProgressVisible && m_dlgProgress) m_dlgProgress->Close(); }