From 1e663731dba61097a922380b2c2c937bb7b79c13 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 27 May 2008 19:14:16 +0000 Subject: more playlist options git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@390 90c681e8-e032-0410-971d-27865f9a5e38 --- src/ui/configdialog.cpp | 8 +++++ src/ui/forms/configdialog.ui | 74 +++++++++++++++++++------------------------- src/ui/playlistitem.cpp | 25 ++++++++++++--- 3 files changed, 59 insertions(+), 48 deletions(-) (limited to 'src') diff --git a/src/ui/configdialog.cpp b/src/ui/configdialog.cpp index 2da35d826..9c5566f33 100644 --- a/src/ui/configdialog.cpp +++ b/src/ui/configdialog.cpp @@ -97,6 +97,11 @@ void ConfigDialog::readSettings() settings.value ("PlayList/title_format", "%p - %t").toString()); ui.metadataCheckBox->setChecked( settings.value ("PlayList/load_metadata", TRUE).toBool()); + ui.underscoresCheckBox->setChecked(settings.value ("PlayList/convert_underscore", TRUE).toBool()); + ui.per20CheckBox->setChecked(settings.value ("PlayList/convert_twenty", TRUE).toBool()); + ui.fullPathCheckBox->setChecked(settings.value ("PlayList/full_stream_path", FALSE).toBool()); + + QString f_dialogName = settings.value("FileDialog",QtFileDialogFactory::QtFileDialogFactoryName).toString(); @@ -528,6 +533,9 @@ void ConfigDialog::saveSettings() QSettings settings (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat); settings.setValue ("PlayList/title_format", ui.formatLineEdit->text()); settings.setValue ("PlayList/load_metadata", ui.metadataCheckBox->isChecked()); + settings.setValue ("PlayList/convert_underscore", ui.underscoresCheckBox->isChecked()); + settings.setValue ("PlayList/convert_twenty", ui.per20CheckBox->isChecked()); + settings.setValue ("PlayList/full_stream_path", ui.fullPathCheckBox->isChecked()); settings.setValue ("FileDialog", ui.fileDialogComboBox->currentText()); settings.setValue ("Proxy/use_proxy", ui.enableProxyCheckBox->isChecked()); settings.setValue ("Proxy/authentication", ui.authProxyCheckBox->isChecked()); diff --git a/src/ui/forms/configdialog.ui b/src/ui/forms/configdialog.ui index 6e08c2c00..c686ad8a4 100644 --- a/src/ui/forms/configdialog.ui +++ b/src/ui/forms/configdialog.ui @@ -313,26 +313,8 @@ - - - 9 - - - 9 - - - 9 - - - 9 - - - 6 - - - 6 - - + + Metadata @@ -366,28 +348,13 @@ - + Song Display - - - 6 - - - 9 - - - 9 - - - 9 - - - 9 - - + + Title format: @@ -397,28 +364,49 @@ - + - + ... + + + + Convert underscores to blanks + + + + + + + Convert %20 to blanks + + + + + + + Show full path of a stream + + + - + Qt::Vertical - 20 - 121 + 387 + 101 diff --git a/src/ui/playlistitem.cpp b/src/ui/playlistitem.cpp index ed92e4268..c7f600c8e 100644 --- a/src/ui/playlistitem.cpp +++ b/src/ui/playlistitem.cpp @@ -40,14 +40,20 @@ PlayListItem::PlayListItem(const QString& path) : SongInfo(), m_flag(FREE) m_use_meta = settings.value ("PlayList/load_metadata", TRUE).toBool(); //format m_format = settings.value("PlayList/title_format", "%p - %t").toString(); + //other properties + m_convertUnderscore = settings.value ("PlayList/convert_underscore", TRUE).toBool(); + m_convertTwenty = settings.value ("PlayList/convert_twenty", TRUE).toBool(); + m_fullStreamPath = settings.value ("PlayList/full_stream_path", FALSE).toBool(); + if (m_use_meta && !path.startsWith("http://")) { m_tag = Decoder::createTag(path); readMetadata(); } + else if (path.startsWith("http://") && m_fullStreamPath) + m_title = path; else - m_title = path.startsWith("http://") ? path: path.section('/',-1); - + m_title = path.split('/',QString::SkipEmptyParts).takeLast (); } PlayListItem::~PlayListItem() @@ -123,7 +129,7 @@ void PlayListItem::readMetadata() { //clear(); m_title.clear(); - if(m_tag) //read length first + if (m_tag) //read length first setValue(SongInfo::LENGTH, m_tag->length()); if (m_use_meta && m_tag && !m_tag->isEmpty()) { @@ -147,10 +153,19 @@ void PlayListItem::readMetadata() m_title = printTag(m_title, "%y", QString("%1").arg(year ())); } if (m_title.isEmpty()) - m_title = path().startsWith("http://") ? path(): path().section('/',-1); - if(m_tag) + { + if (path().startsWith("http://") && m_fullStreamPath) + m_title = path(); + else + m_title = path().split('/',QString::SkipEmptyParts).takeLast (); + } + if (m_tag) delete m_tag; m_tag = 0; + if (m_convertUnderscore) + m_title.replace("_", " "); + if (m_convertTwenty) + m_title.replace("%20", " "); } QString PlayListItem::printTag(QString str, QString regExp, QString tagStr) -- cgit v1.2.3-13-gbd6f