bool PlaylistDialog::loadListByFileName( QString filename ) { Playlist* pPlaylist = Playlist::load ( filename ); if ( ! pPlaylist ) { _ERRORLOG( "Error loading the playlist" ); return 0; } Preferences::get_instance()->setLastPlaylistFilename( filename ); Hydrogen* pEngine = Hydrogen::get_instance(); if ( pEngine->m_PlayList.size() > 0 ) { QTreeWidget* m_pPlaylist = m_pPlaylistTree; m_pPlaylist->clear(); for ( uint i = 0; i < pEngine->m_PlayList.size(); ++i ){ QTreeWidgetItem* m_pPlaylistItem = new QTreeWidgetItem ( m_pPlaylistTree ); m_pPlaylistItem->setText ( 0, pEngine->m_PlayList[i].m_hFile ); m_pPlaylistItem->setText ( 1, pEngine->m_PlayList[i].m_hScript ); if ( pEngine->m_PlayList[i].m_hScriptEnabled == "Use Script" ) { m_pPlaylistItem->setCheckState( 2, Qt::Checked ); } else { m_pPlaylistItem->setCheckState( 2, Qt::Unchecked ); } } QTreeWidgetItem* m_pPlaylistItem = m_pPlaylist->topLevelItem ( 0 ); m_pPlaylist->setCurrentItem ( m_pPlaylistItem ); pPlaylist->setSelectedSongNr( 0 ); setWindowTitle ( trUtf8 ( "Playlist Browser" ) + QString(" - ") + pPlaylist->get_filename() ); } return 1; }
void PlaylistDialog::o_downBClicked() { timer->stop(); Playlist* pList = Playlist::get_instance(); QTreeWidget* m_pPlaylist = m_pPlaylistTree; int length = m_pPlaylist->topLevelItemCount(); QTreeWidgetItem* m_pPlaylistItem = m_pPlaylistTree->currentItem(); int index = m_pPlaylist->indexOfTopLevelItem ( m_pPlaylistItem ); if ( index == length - 1){ timer->start( 1000 ); return; } QTreeWidgetItem* tmpPlaylistItem = m_pPlaylist->takeTopLevelItem ( index ); m_pPlaylist->insertTopLevelItem ( index +1, tmpPlaylistItem ); m_pPlaylist->setCurrentItem ( tmpPlaylistItem ); if ( pList->getSelectedSongNr() >= 0 ) pList->setSelectedSongNr( pList->getSelectedSongNr() +1 ); if (pList ->getActiveSongNumber() == index ){ pList->setActiveSongNumber( pList->getActiveSongNumber() +1 ); }else if ( pList->getActiveSongNumber() == index +1 ){ pList->setActiveSongNumber( pList->getActiveSongNumber() -1 ); } updatePlayListVector(); }
void PlaylistDialog::loadList() { static QString sDirectory = Preferences::get_instance()->getDataDirectory() + "playlists/" ; QFileDialog fd(this); fd.setFileMode ( QFileDialog::ExistingFile ); fd.setFilter ( "Hydrogen playlist (*.h2playlist)" ); fd.setDirectory ( sDirectory ); fd.setWindowTitle ( trUtf8 ( "Load Playlist" ) ); QString filename; if ( fd.exec() != QDialog::Accepted ) return; filename = fd.selectedFiles().first(); Playlist* pPlaylist = Playlist::load( filename ); if ( ! pPlaylist ) { _ERRORLOG( "Error loading the playlist" ); /* FIXME: get current instance (?) */ pPlaylist = Playlist::get_instance(); } Hydrogen* pHydrogen = Hydrogen::get_instance(); if(pHydrogen->m_PlayList.size() > 0) { QTreeWidget* m_pPlaylist = m_pPlaylistTree; m_pPlaylist->clear(); for ( uint i = 0; i < pHydrogen->m_PlayList.size(); ++i ){ QTreeWidgetItem* m_pPlaylistItem = new QTreeWidgetItem ( m_pPlaylistTree ); if( pHydrogen->m_PlayList[i].m_hFileExists ){ m_pPlaylistItem->setText ( 0, pHydrogen->m_PlayList[i].m_hFile ); } else { m_pPlaylistItem->setText ( 0, trUtf8("File not found: ") + pHydrogen->m_PlayList[i].m_hFile ); } m_pPlaylistItem->setText ( 1, pHydrogen->m_PlayList[i].m_hScript ); if ( pHydrogen->m_PlayList[i].m_hScriptEnabled == "Use Script" ) { m_pPlaylistItem->setCheckState( 2, Qt::Checked ); } else { m_pPlaylistItem->setCheckState( 2, Qt::Unchecked ); } } QTreeWidgetItem* m_pPlaylistItem = m_pPlaylist->topLevelItem ( 0 ); m_pPlaylist->setCurrentItem ( m_pPlaylistItem ); pPlaylist->setSelectedSongNr( 0 ); setWindowTitle ( trUtf8 ( "Playlist Browser" ) + QString(" - ") + pPlaylist->get_filename() ); } }
void PlaylistDialog::o_upBClicked() { timer->stop(); Playlist* pPlaylist = Playlist::get_instance(); QTreeWidget* pPlaylistTree = m_pPlaylistTree; QTreeWidgetItem* pPlaylistTreeItem = m_pPlaylistTree->currentItem(); int index = pPlaylistTree->indexOfTopLevelItem ( pPlaylistTreeItem ); if (index == 0 ){ timer->start( 1000 ); return; } QTreeWidgetItem* tmpPlaylistItem = pPlaylistTree->takeTopLevelItem ( index ); pPlaylistTree->insertTopLevelItem ( index -1, tmpPlaylistItem ); pPlaylistTree->setCurrentItem ( tmpPlaylistItem ); if ( pPlaylist->getSelectedSongNr() >= 0 ){ pPlaylist->setSelectedSongNr( pPlaylist->getSelectedSongNr() -1 ); } if ( pPlaylist->getActiveSongNumber() == index ){ pPlaylist->setActiveSongNumber( pPlaylist->getActiveSongNumber() -1 ); }else if ( pPlaylist->getActiveSongNumber() == index -1 ){ pPlaylist->setActiveSongNumber( pPlaylist->getActiveSongNumber() +1 ); } updatePlayListVector(); }