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);
|
playlistManager_->SetTabWidget(ui_.tab_widget);
|
||||||
|
|
||||||
QTimer::singleShot(500,this,SLOT(InitPlaylists())) ;
|
QTimer::singleShot(500,this,SLOT(InitPlaylists())) ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow() {
|
MainWindow::~MainWindow() {
|
||||||
|
|
|
@ -401,8 +401,8 @@ void Playlist::SetCurrentIsPaused(bool paused) {
|
||||||
void Playlist::SaveR() const {
|
void Playlist::SaveR() const {
|
||||||
QSettings s;
|
QSettings s;
|
||||||
Q_ASSERT(index_ != -1 ) ;
|
Q_ASSERT(index_ != -1 ) ;
|
||||||
QString setGrp = kSettingsGroup + QString::number(index_) ;
|
s.beginGroup(kSettingsGroup);
|
||||||
s.beginGroup(setGrp);
|
s.beginGroup(title_);
|
||||||
s.beginWriteArray("items", items_.count());
|
s.beginWriteArray("items", items_.count());
|
||||||
for (int i=0 ; i<items_.count() ; ++i) {
|
for (int i=0 ; i<items_.count() ; ++i) {
|
||||||
s.setArrayIndex(i);
|
s.setArrayIndex(i);
|
||||||
|
@ -411,6 +411,8 @@ void Playlist::SaveR() const {
|
||||||
}
|
}
|
||||||
s.endArray();
|
s.endArray();
|
||||||
s.setValue("title",title_);
|
s.setValue("title",title_);
|
||||||
|
s.endGroup();
|
||||||
|
s.endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Playlist::RestoreR() {
|
void Playlist::RestoreR() {
|
||||||
|
@ -418,8 +420,8 @@ void Playlist::RestoreR() {
|
||||||
items_.clear();
|
items_.clear();
|
||||||
|
|
||||||
QSettings s;
|
QSettings s;
|
||||||
QString setGrp = kSettingsGroup + QString::number(index_) ;
|
s.beginGroup(kSettingsGroup);
|
||||||
s.beginGroup(setGrp);
|
s.beginGroup(title_);
|
||||||
|
|
||||||
int count = s.beginReadArray("items");
|
int count = s.beginReadArray("items");
|
||||||
for (int i=0 ; i<count ; ++i) {
|
for (int i=0 ; i<count ; ++i) {
|
||||||
|
@ -434,7 +436,8 @@ void Playlist::RestoreR() {
|
||||||
items_ << item;
|
items_ << item;
|
||||||
}
|
}
|
||||||
s.endArray();
|
s.endArray();
|
||||||
title_ = s.value("title").toString();
|
s.endGroup();
|
||||||
|
s.endGroup();
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,14 +67,14 @@ bool PlaylistManager::Restore(){
|
||||||
bool bOk ;
|
bool bOk ;
|
||||||
int nOfPlaylist = s.value("numberofplaylists").toInt(&bOk) ;
|
int nOfPlaylist = s.value("numberofplaylists").toInt(&bOk) ;
|
||||||
playlistCount_ = nOfPlaylist ;
|
playlistCount_ = nOfPlaylist ;
|
||||||
qDebug() << nOfPlaylist ;
|
s.beginGroup(Playlist::kSettingsGroup);
|
||||||
|
QStringList childs = s.childGroups() ;
|
||||||
if ( bOk == false || nOfPlaylist == 0 ) {
|
if ( bOk == false || nOfPlaylist == 0 ) {
|
||||||
qDebug()<< "No reading from settings";
|
qDebug()<< "No reading from settings";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
int nCurrentIndex = -1 ;
|
int index = 0;
|
||||||
for ( int i=0;i<nOfPlaylist;++i){
|
foreach ( QString title, childs ) {
|
||||||
|
|
||||||
PlaylistView* playListView = new PlaylistView(pTabWidget_);
|
PlaylistView* playListView = new PlaylistView(pTabWidget_);
|
||||||
|
|
||||||
playListView->setObjectName(QString::fromUtf8("playlist"));
|
playListView->setObjectName(QString::fromUtf8("playlist"));
|
||||||
|
@ -94,7 +94,8 @@ bool PlaylistManager::Restore(){
|
||||||
playListView->setModel(playList);
|
playListView->setModel(playList);
|
||||||
playList->IgnoreSorting(false);
|
playList->IgnoreSorting(false);
|
||||||
|
|
||||||
playList->SetPlaylistIndex( i+1 ) ;
|
playList->SetPlaylistIndex( index+1 ) ;
|
||||||
|
playList->SetTitle(title);
|
||||||
playList->RestoreR() ;
|
playList->RestoreR() ;
|
||||||
|
|
||||||
pTabWidget_->addTab( playListView, playList->GetTitle() );
|
pTabWidget_->addTab( playListView, playList->GetTitle() );
|
||||||
|
@ -103,11 +104,25 @@ bool PlaylistManager::Restore(){
|
||||||
pCurrentPlaylistView_ = playListView ;
|
pCurrentPlaylistView_ = playListView ;
|
||||||
playlists_ << playList ;
|
playlists_ << playList ;
|
||||||
}
|
}
|
||||||
|
int nCurrentIndex = -1 ;
|
||||||
int currentIndex = s.value("currentplaylistindex").toInt(&bOk);
|
int currentIndex = s.value("currentplaylistindex").toInt(&bOk);
|
||||||
if(bOk)
|
if(bOk)
|
||||||
pTabWidget_->setCurrentIndex(currentIndex);
|
pTabWidget_->setCurrentIndex(currentIndex);
|
||||||
return true ;
|
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() ) ;
|
void addPlaylist( const QString& playlistName = QString() ) ;
|
||||||
|
|
||||||
// accessors
|
// accessors
|
||||||
void SetTabWidget( QTabWidget * pWidget ) { pTabWidget_ = pWidget ; }
|
void SetTabWidget( QTabWidget * pWidget ) ;
|
||||||
QTabWidget* GetTabWidget() const {return pTabWidget_; }
|
QTabWidget* GetTabWidget() const {return pTabWidget_; }
|
||||||
|
|
||||||
void SetCurrentPlaylist ( Playlist * pPlaylist ) ;
|
void SetCurrentPlaylist ( Playlist * pPlaylist ) ;
|
||||||
|
@ -32,6 +32,9 @@ class PlaylistManager : public QObject{
|
||||||
int playlistCount_ ;
|
int playlistCount_ ;
|
||||||
signals:
|
signals:
|
||||||
void CurrentPlaylistChanged( Playlist* pPlaylist ) ;
|
void CurrentPlaylistChanged( Playlist* pPlaylist ) ;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void TabCloseRequest( int index ) ;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PLAYLISTMANAGER_H
|
#endif // PLAYLISTMANAGER_H
|
||||||
|
|
Loading…
Reference in New Issue