Enabling removal of playlist. Slightly changing how informatiion about playlists are stored in QSettings

This commit is contained in:
Bartek Taczała 2010-03-07 20:55:02 +00:00
parent 6f2754bcba
commit 030e454d1e
4 changed files with 36 additions and 16 deletions

View File

@ -306,7 +306,6 @@ MainWindow::MainWindow(QNetworkAccessManager* network, QWidget *parent)
playlistManager_->SetTabWidget(ui_.tab_widget);
QTimer::singleShot(500,this,SLOT(InitPlaylists())) ;
}
MainWindow::~MainWindow() {

View File

@ -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();
}

View File

@ -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)));
}

View File

@ -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