From cef2410a905d3705278117ca3d361fc7f5668b72 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 16 Aug 2013 21:32:40 +0000 Subject: fixed some bugs, updated Russian translation git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3620 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/playlistmanager.cpp | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'src/qmmpui/playlistmanager.cpp') diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index c0f580555..b31e9297f 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -47,8 +47,8 @@ PlayListManager::PlayListManager(QObject *parent) : QObject(parent) m_timer->setSingleShot(true); connect(m_timer, SIGNAL(timeout()), SLOT(writePlayLists())); - readPlayLists(); //read playlists readSettings(); //read settings + readPlayLists(); //read playlists } PlayListManager::~PlayListManager() @@ -57,6 +57,7 @@ PlayListManager::~PlayListManager() QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.setValue("Playlist/repeatable", m_repeatable); settings.setValue("Playlist/shuffle", m_shuffle); + settings.setValue("Playlist/groups", m_groups_enabled); m_instance = 0; } @@ -271,6 +272,11 @@ bool PlayListManager::isShuffle() const return m_shuffle; } +bool PlayListManager::isGroupsEnabled() const +{ + return m_groups_enabled; +} + void PlayListManager::readPlayLists() { QString line, param, value; @@ -304,6 +310,8 @@ void PlayListManager::readPlayLists() tracks.clear(); current = 0; m_models << new PlayListModel(value, this); + if(m_groups_enabled) + m_models.last()->prepareGroups(true); } else if (param == "current") { @@ -338,19 +346,27 @@ void PlayListManager::readPlayLists() tracks.last()->setLength(value.toInt()); } buffer.close(); - if(!m_models.isEmpty()) + if(m_models.isEmpty()) + { + m_models << new PlayListModel(tr("Playlist"),this); + if(m_groups_enabled) + m_models.last()->prepareGroups(true); + } + else { m_models.last()->add(tracks); m_models.last()->setCurrent(tracks.at(qBound(0, current, tracks.count()-1))); } - else - m_models << new PlayListModel(tr("Playlist"),this); if(pl < 0 || pl >= m_models.count()) pl = 0; m_selected = m_models.at(pl); m_current = m_models.at(pl); foreach(PlayListModel *model, m_models) + { connect(model, SIGNAL(nameChanged(QString)), SIGNAL(playListsChanged())); + if (m_autosave_playlist) + connect(model, SIGNAL(countChanged()), m_timer, SLOT(start())); + } } void PlayListManager::writePlayLists() @@ -499,6 +515,7 @@ void PlayListManager::readSettings() QSettings settings(Qmmp::configFile(), QSettings::IniFormat); setRepeatableList(settings.value("Playlist/repeatable",false).toBool()); setShuffle(settings.value("Playlist/shuffle",false).toBool()); + setGroupsEnabled(settings.value("Playlist/groups",false).toBool()); QmmpUiSettings *ui_settings = QmmpUiSettings::instance(); if (m_autosave_playlist != ui_settings->autoSavePlayList()) -- cgit v1.2.3-13-gbd6f