diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-13 14:40:31 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-08-13 14:40:31 +0000 |
| commit | e7dd6e5afa7bab562c26b68af1cb50a5582b0b2d (patch) | |
| tree | 2345049c374ecf897e33a993ee2ee652706309aa | |
| parent | 3423cc3621abea72c9f9d1b11bec219137f75f44 (diff) | |
| download | qmmp-e7dd6e5afa7bab562c26b68af1cb50a5582b0b2d.tar.gz qmmp-e7dd6e5afa7bab562c26b68af1cb50a5582b0b2d.tar.bz2 qmmp-e7dd6e5afa7bab562c26b68af1cb50a5582b0b2d.zip | |
added empty group
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3588 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmpui/configdialog.cpp | 4 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.cpp | 38 | ||||
| -rw-r--r-- | src/qmmpui/playlisttrack.h | 7 | ||||
| -rw-r--r-- | src/qmmpui/qmmpuisettings.cpp | 23 | ||||
| -rw-r--r-- | src/qmmpui/qmmpuisettings.h | 13 |
5 files changed, 59 insertions, 26 deletions
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp index bd460888c..ab307fb3d 100644 --- a/src/qmmpui/configdialog.cpp +++ b/src/qmmpui/configdialog.cpp @@ -96,7 +96,7 @@ void ConfigDialog::readSettings() { //playlist options QmmpUiSettings *guis = QmmpUiSettings::instance(); - m_ui->formatLineEdit->setText(guis->format()); + m_ui->formatLineEdit->setText(guis->titleFormat()); m_ui->metadataCheckBox->setChecked(guis->useMetadata()); m_ui->underscoresCheckBox->setChecked(guis->convertUnderscore()); m_ui->per20CheckBox->setChecked(guis->convertTwenty()); @@ -352,7 +352,7 @@ void ConfigDialog::saveSettings() { if (QmmpUiSettings *guis = QmmpUiSettings::instance()) { - guis->setFormat(m_ui->formatLineEdit->text().trimmed()); + guis->setTitleFormat(m_ui->formatLineEdit->text().trimmed()); guis->setUseMetadata(m_ui->metadataCheckBox->isChecked()); guis->setConvertUnderscore(m_ui->underscoresCheckBox->isChecked()); guis->setConvertTwenty(m_ui->per20CheckBox->isChecked()); diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp index 7b69bfebd..699c95aa5 100644 --- a/src/qmmpui/playlisttrack.cpp +++ b/src/qmmpui/playlisttrack.cpp @@ -33,8 +33,10 @@ PlayListTrack::PlayListTrack(const PlayListTrack &other) : QMap<Qmmp::MetaData, { m_settings = QmmpUiSettings::instance(); m_formattedTitle = other.m_formattedTitle; + m_group = other.m_group; m_formattedLength = other.m_formattedLength; m_titleFormat = other.m_titleFormat; + m_groupFormat = other.m_groupFormat; setSelected(other.isSelected()); setFlag(other.flag()); m_length = other.m_length; @@ -55,7 +57,7 @@ PlayListTrack::~PlayListTrack() void PlayListTrack::updateMetaData(const QMap <Qmmp::MetaData, QString> &metaData) { QMap <Qmmp::MetaData, QString>::operator =(metaData); - formatMetaData(); + formatTitle(); } void PlayListTrack::updateMetaData() @@ -67,16 +69,20 @@ void PlayListTrack::updateMetaData() m_length = info->length(); QMap <Qmmp::MetaData, QString>::operator =(info->metaData()); insert(Qmmp::URL, info->path()); - formatMetaData(); + formatTitle(); } while(list.size() > 1) delete list.takeLast(); } -const QString PlayListTrack::groupName() const +const QString PlayListTrack::groupName() { - MetaDataFormatter f("%p - %a"); - return f.parse(this); + if(m_group.isEmpty() || m_groupFormat != m_settings->groupFormat()) + { + m_groupFormat = m_settings->groupFormat(); + formatGroup(); + } + return m_group; } bool PlayListTrack::isGroup() const @@ -86,10 +92,10 @@ bool PlayListTrack::isGroup() const const QString PlayListTrack::formattedTitle() { - if(m_formattedTitle.isEmpty() || m_titleFormat != m_settings->format()) + if(m_formattedTitle.isEmpty() || m_titleFormat != m_settings->titleFormat()) { - m_titleFormat = m_settings->format(); - formatMetaData(); + m_titleFormat = m_settings->titleFormat(); + formatTitle(); } return m_formattedTitle; } @@ -132,9 +138,9 @@ PlayListTrack::FLAGS PlayListTrack::flag() const return m_flag; } -void PlayListTrack::formatMetaData() +void PlayListTrack::formatTitle() { - MetaDataFormatter f(m_settings->format()); + MetaDataFormatter f(m_settings->titleFormat()); m_formattedTitle = f.parse(this); if (m_formattedTitle.isEmpty()) m_formattedTitle = value(Qmmp::URL).section('/',-1); @@ -143,3 +149,15 @@ void PlayListTrack::formatMetaData() if (m_settings->convertTwenty()) m_formattedTitle.replace("%20", " "); } + +void PlayListTrack::formatGroup() +{ + MetaDataFormatter f(m_settings->groupFormat()); + m_group = f.parse(this); + if (m_group.isEmpty()) + m_group = m_settings->tr("No group"); + if (m_settings->convertUnderscore()) + m_group.replace("_", " "); + if (m_settings->convertTwenty()) + m_group.replace("%20", " "); +} diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h index cabf8fbbc..7d4a14ce8 100644 --- a/src/qmmpui/playlisttrack.h +++ b/src/qmmpui/playlisttrack.h @@ -93,7 +93,7 @@ public: */ void updateMetaData(); - const QString groupName() const; + const QString groupName(); bool isGroup() const; @@ -107,10 +107,13 @@ public: void setFlag(FLAGS); private: - void formatMetaData(); + void formatTitle(); + void formatGroup(); QString m_formattedTitle; QString m_formattedLength; + QString m_group; QString m_titleFormat; + QString m_groupFormat; QmmpUiSettings *m_settings; qint64 m_length; FLAGS m_flag; diff --git a/src/qmmpui/qmmpuisettings.cpp b/src/qmmpui/qmmpuisettings.cpp index 458d946ab..c6e83d495 100644 --- a/src/qmmpui/qmmpuisettings.cpp +++ b/src/qmmpui/qmmpuisettings.cpp @@ -30,7 +30,8 @@ QmmpUiSettings::QmmpUiSettings(QObject *parent) : QObject(parent) { m_instance = this; QSettings s (Qmmp::configFile(), QSettings::IniFormat); - m_format = s.value("PlayList/title_format", "%p%if(%p&%t, - ,)%t").toString(); + m_title_format = s.value("PlayList/title_format", "%p%if(%p&%t, - ,)%t").toString(); + m_group_format = s.value("PlayList/group_format", "%p%if(%p&%a, - ,)%a").toString(); m_convertUnderscore = s.value ("PlayList/convert_underscore", true).toBool(); m_convertTwenty = s.value ("PlayList/convert_twenty", true).toBool(); m_useMetadata = s.value ("PlayList/load_metadata", true).toBool(); @@ -49,9 +50,14 @@ QmmpUiSettings::~QmmpUiSettings() sync(); } -const QString QmmpUiSettings::format() const +const QString QmmpUiSettings::titleFormat() const { - return m_format; + return m_title_format; +} + +const QString QmmpUiSettings::groupFormat() const +{ + return m_group_format; } bool QmmpUiSettings::convertUnderscore() const @@ -79,12 +85,12 @@ void QmmpUiSettings::setConvertTwenty(bool yes) m_convertTwenty = yes; } -void QmmpUiSettings::setFormat(const QString &format) +void QmmpUiSettings::setTitleFormat(const QString &format) { - m_format = format; - if(format != m_format) + m_title_format = format; + if(format != m_title_format) { - m_format = format; + m_title_format = format; emit playListSettingsChanged(); foreach(PlayListModel *model, PlayListManager::instance()->playLists()) { @@ -121,7 +127,8 @@ bool QmmpUiSettings::useClipboard() const void QmmpUiSettings::sync() { QSettings s(Qmmp::configFile(), QSettings::IniFormat); - s.setValue("PlayList/title_format", m_format); + s.setValue("PlayList/title_format", m_title_format); + s.setValue("PlayList/group_format", m_group_format); s.setValue("PlayList/convert_underscore", m_convertUnderscore); s.setValue("PlayList/convert_twenty", m_convertTwenty); s.setValue("PlayList/load_metadata", m_useMetadata); diff --git a/src/qmmpui/qmmpuisettings.h b/src/qmmpui/qmmpuisettings.h index 3e6504cfe..965683ae6 100644 --- a/src/qmmpui/qmmpuisettings.h +++ b/src/qmmpui/qmmpuisettings.h @@ -54,9 +54,13 @@ public: */ bool useMetadata() const; /*! - * Returns title format string. + * Returns playlist short title format. */ - const QString format() const; + const QString titleFormat() const; + /*! + * Returns playlist group format. + */ + const QString groupFormat() const; /*! * Sets the "Convert underscores to blanks" option state to \b enabled * @param enabled Option state (\b true - enabled, \b false - disabled) @@ -71,7 +75,7 @@ public: * Sets short title template. * @param format title template. \sa MetaDataFormatter */ - void setFormat(const QString &format); + void setTitleFormat(const QString &titleFormat); /*! * Sets metadata usage option state to \b enabled * @param enabled Option state (\b true - enabled, \b false - disabled) @@ -160,7 +164,8 @@ private: //playlist bool m_convertUnderscore, m_convertTwenty; bool m_useMetadata; - QString m_format; + QString m_title_format; + QString m_group_format; //general bool m_resume_on_startup; QStringList m_exclude_filters, m_restrict_filters; |
