Enabling removal of playlist. Slightly changing how informatiion about playlists are stored in QSettings
This commit is contained in:
parent
6f2754bcba
commit
030e454d1e
|
@ -306,7 +306,6 @@ MainWindow::MainWindow(QNetworkAccessManager* network, QWidget *parent)
|
|||
playlistManager_->SetTabWidget(ui_.tab_widget);
|
||||
|
||||
QTimer::singleShot(500,this,SLOT(InitPlaylists())) ;
|
||||
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow() {
|
||||
|
|
|
@ -401,8 +401,8 @@ void Playlist::SetCurrentIsPaused(bool paused) {
|
|||
void Playlist::SaveR() const {
|
||||
QSettings s;
|
||||
Q_ASSERT(index_ != -1 ) ;
|
||||
QString setGrp = kSettingsGroup + QString::number(index_) ;
|
||||
s.beginGroup(setGrp);
|
||||
s.beginGroup(kSettingsGroup);
|
||||
s.beginGroup(title_);
|
||||
s.beginWriteArray("items", items_.count());
|
||||
for (int i=0 ; i<items_.count() ; ++i) {
|
||||
s.setArrayIndex(i);
|
||||
|
@ -411,6 +411,8 @@ void Playlist::SaveR() const {
|
|||
}
|
||||
s.endArray();
|
||||
s.setValue("title",title_);
|
||||
s.endGroup();
|
||||
s.endGroup();
|
||||
}
|
||||
|
||||
void Playlist::RestoreR() {
|
||||
|
@ -418,8 +420,8 @@ void Playlist::RestoreR() {
|
|||
items_.clear();
|
||||
|
||||
QSettings s;
|
||||
QString setGrp = kSettingsGroup + QString::number(index_) ;
|
||||
s.beginGroup(setGrp);
|
||||
s.beginGroup(kSettingsGroup);
|
||||
s.beginGroup(title_);
|
||||
|
||||
int count = s.beginReadArray("items");
|
||||
for (int i=0 ; i<count ; ++i) {
|
||||
|
@ -434,7 +436,8 @@ void Playlist::RestoreR() {
|
|||
items_ << item;
|
||||
}
|
||||
s.endArray();
|
||||
title_ = s.value("title").toString();
|
||||
s.endGroup();
|
||||
s.endGroup();
|
||||
reset();
|
||||
}
|
||||
|
||||
|
|
|
@ -67,14 +67,14 @@ bool PlaylistManager::Restore(){
|
|||
bool bOk ;
|
||||
int nOfPlaylist = s.value("numberofplaylists").toInt(&bOk) ;
|
||||
playlistCount_ = nOfPlaylist ;
|
||||
qDebug() << nOfPlaylist ;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
QStringList childs = s.childGroups() ;
|
||||
if ( bOk == false || nOfPlaylist == 0 ) {
|
||||
qDebug()<< "No reading from settings";
|
||||
return false;
|
||||
}
|
||||
int nCurrentIndex = -1 ;
|
||||
for ( int i=0;i<nOfPlaylist;++i){
|
||||
|
||||
int index = 0;
|
||||
foreach ( QString title, childs ) {
|
||||
PlaylistView* playListView = new PlaylistView(pTabWidget_);
|
||||
|
||||
playListView->setObjectName(QString::fromUtf8("playlist"));
|
||||
|
@ -94,20 +94,35 @@ bool PlaylistManager::Restore(){
|
|||
playListView->setModel(playList);
|
||||
playList->IgnoreSorting(false);
|
||||
|
||||
playList->SetPlaylistIndex( i+1 ) ;
|
||||
playList->SetPlaylistIndex( index+1 ) ;
|
||||
playList->SetTitle(title);
|
||||
playList->RestoreR() ;
|
||||
|
||||
pTabWidget_->addTab( playListView, playList->GetTitle() );
|
||||
|
||||
SetCurrentPlaylist(playList);
|
||||
pCurrentPlaylistView_ = playListView ;
|
||||
playlists_ << playList ;
|
||||
playlists_ << playList ;
|
||||
}
|
||||
int nCurrentIndex = -1 ;
|
||||
int currentIndex = s.value("currentplaylistindex").toInt(&bOk);
|
||||
if(bOk)
|
||||
pTabWidget_->setCurrentIndex(currentIndex);
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void PlaylistManager::TabCloseRequest(int index){
|
||||
const PlaylistView* playListView = qobject_cast<const PlaylistView*> (pTabWidget_->widget(index)) ;
|
||||
Playlist* playlist = qobject_cast<Playlist*>( playListView->model() ) ;
|
||||
playlists_.removeAll(playlist);
|
||||
pTabWidget_->removeTab(index);
|
||||
|
||||
QSettings s ;
|
||||
s.beginGroup(Playlist::kSettingsGroup);
|
||||
s.remove(playlist->GetTitle());
|
||||
}
|
||||
void PlaylistManager::SetTabWidget(QTabWidget* pWidget) {
|
||||
if ( pTabWidget_ )
|
||||
disconnect ( pTabWidget_, SIGNAL(tabCloseRequested(int)),this, SLOT(TabCloseRequest(int)));
|
||||
pTabWidget_ = pWidget ;
|
||||
connect ( pTabWidget_, SIGNAL(tabCloseRequested(int)),this, SLOT(TabCloseRequest(int)));
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ class PlaylistManager : public QObject{
|
|||
void addPlaylist( const QString& playlistName = QString() ) ;
|
||||
|
||||
// accessors
|
||||
void SetTabWidget( QTabWidget * pWidget ) { pTabWidget_ = pWidget ; }
|
||||
void SetTabWidget( QTabWidget * pWidget ) ;
|
||||
QTabWidget* GetTabWidget() const {return pTabWidget_; }
|
||||
|
||||
void SetCurrentPlaylist ( Playlist * pPlaylist ) ;
|
||||
|
@ -32,6 +32,9 @@ class PlaylistManager : public QObject{
|
|||
int playlistCount_ ;
|
||||
signals:
|
||||
void CurrentPlaylistChanged( Playlist* pPlaylist ) ;
|
||||
|
||||
private slots:
|
||||
void TabCloseRequest( int index ) ;
|
||||
};
|
||||
|
||||
#endif // PLAYLISTMANAGER_H
|
||||
|
|
Loading…
Reference in New Issue