aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp2
-rw-r--r--src/plugins/Ui/skinned/mainwindow.cpp8
-rw-r--r--src/plugins/Ui/skinned/playlisttitlebar.cpp6
-rw-r--r--src/qmmpui/jumptotrackdialog.cpp4
-rw-r--r--src/qmmpui/playlistgroup.cpp3
-rw-r--r--src/qmmpui/playlistgroup.h3
-rw-r--r--src/qmmpui/playlistitem.h3
-rw-r--r--src/qmmpui/playlisttrack.cpp58
-rw-r--r--src/qmmpui/playlisttrack.h12
9 files changed, 65 insertions, 34 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp
index cc4aa6915..2d9913599 100644
--- a/src/plugins/Ui/skinned/listwidget.cpp
+++ b/src/plugins/Ui/skinned/listwidget.cpp
@@ -329,7 +329,7 @@ void ListWidget::updateList(int flags)
continue;
row->rect = QRect(5, i * m_drawer.rowHeight(), width() - 10, m_drawer.rowHeight() - 1);
- row->title = items[i]->formattedTitle();
+ row->title = items[i]->formattedTitle(0);
(m_first + i) == m_model->currentIndex() ? row->flags |= ListWidgetRow::CURRENT :
row->flags &= ~ListWidgetRow::CURRENT;
diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp
index ce650cb47..8a4a6e76b 100644
--- a/src/plugins/Ui/skinned/mainwindow.cpp
+++ b/src/plugins/Ui/skinned/mainwindow.cpp
@@ -176,21 +176,21 @@ void MainWindow::showState(Qmmp::State state)
break;
case Qmmp::Stopped:
m_playlist->setTime(-1);
- if (m_pl_manager->currentPlayList()->currentTrack())
+ /*if (m_pl_manager->currentPlayList()->currentTrack())
setWindowTitle(m_pl_manager->currentPlayList()->currentTrack()->formattedTitle());
else
- setWindowTitle("Qmmp");
+ setWindowTitle("Qmmp");*/
break;
}
}
void MainWindow::showMetaData()
{
- PlayListTrack *track = m_pl_manager->currentPlayList()->currentTrack();
+ /*PlayListTrack *track = m_pl_manager->currentPlayList()->currentTrack();
if (track && track->url() == m_core->metaData().value(Qmmp::URL))
{
setWindowTitle(track->formattedTitle());
- }
+ }*/
}
void MainWindow::closeEvent (QCloseEvent *)
diff --git a/src/plugins/Ui/skinned/playlisttitlebar.cpp b/src/plugins/Ui/skinned/playlisttitlebar.cpp
index e7c1f266b..2151cfe1b 100644
--- a/src/plugins/Ui/skinned/playlisttitlebar.cpp
+++ b/src/plugins/Ui/skinned/playlisttitlebar.cpp
@@ -262,16 +262,16 @@ void PlayListTitleBar::showCurrent()
{
if (m_model)
{
- PlayListTrack* track = m_model->currentTrack();
+ /*PlayListTrack* track = m_model->currentTrack();
if (track)
{
m_text = QString("%1. %2").arg(m_model->numberOfTrack(m_model->currentIndex())+1)
- .arg(track->formattedTitle());
+ .arg(track->formattedTitle(0));
if(track->length())
m_text.append(QString(" (%1)").arg(track->formattedLength()));
}
else
- m_text.clear();
+ m_text.clear();*/
}
QFontMetrics metrics(m_font);
m_truncatedText = metrics.elidedText (m_text, Qt::ElideRight, width() - 35*m_ratio);
diff --git a/src/qmmpui/jumptotrackdialog.cpp b/src/qmmpui/jumptotrackdialog.cpp
index c4e19f683..57d192233 100644
--- a/src/qmmpui/jumptotrackdialog.cpp
+++ b/src/qmmpui/jumptotrackdialog.cpp
@@ -105,7 +105,7 @@ void JumpToTrackDialog::on_jumpToPushButton_clicked()
void JumpToTrackDialog::refresh()
{
- filterLineEdit->clear();
+ /*filterLineEdit->clear();
m_indexes.clear();
QStringList titles;
QList<PlayListItem *> items = m_model->items();
@@ -117,7 +117,7 @@ void JumpToTrackDialog::refresh()
m_indexes.append(i);
}
m_listModel->setStringList(titles);
- filterLineEdit->setFocus();
+ filterLineEdit->setFocus();*/
}
void JumpToTrackDialog::jumpTo(const QModelIndex & index)
diff --git a/src/qmmpui/playlistgroup.cpp b/src/qmmpui/playlistgroup.cpp
index ad3a5bc16..225b9b8d4 100644
--- a/src/qmmpui/playlistgroup.cpp
+++ b/src/qmmpui/playlistgroup.cpp
@@ -38,8 +38,9 @@ PlayListGroup::~PlayListGroup()
}
}
-const QString PlayListGroup::formattedTitle()
+const QString PlayListGroup::formattedTitle(int column)
{
+ Q_UNUSED(column);
return m_name;
}
diff --git a/src/qmmpui/playlistgroup.h b/src/qmmpui/playlistgroup.h
index 2a9f3be3a..8db56c1ed 100644
--- a/src/qmmpui/playlistgroup.h
+++ b/src/qmmpui/playlistgroup.h
@@ -43,8 +43,9 @@ public:
virtual ~PlayListGroup();
/*!
* Returns formatted title of the group.
+ * @param column Number of column (unused).
*/
- const QString formattedTitle();
+ const QString formattedTitle(int column = 0);
/*!
* Returns \b true if the group contains track \b track.
* Otherwise returns \b false.
diff --git a/src/qmmpui/playlistitem.h b/src/qmmpui/playlistitem.h
index 5739db5be..cf4f1d89f 100644
--- a/src/qmmpui/playlistitem.h
+++ b/src/qmmpui/playlistitem.h
@@ -50,8 +50,9 @@ public:
bool isSelected() const;
/*!
* Returns formatted title of the item.
+ * @param column Number of column.
*/
- virtual const QString formattedTitle() = 0;
+ virtual const QString formattedTitle(int column) = 0;
/*!
* Returns formatted length of the item.
*/
diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp
index 13690362f..b21e8fbb8 100644
--- a/src/qmmpui/playlisttrack.cpp
+++ b/src/qmmpui/playlisttrack.cpp
@@ -26,6 +26,7 @@
PlayListTrack::PlayListTrack() : QMap<Qmmp::MetaData, QString>(), PlayListItem()
{
m_settings = QmmpUiSettings::instance();
+ m_columnManager = m_settings->columnManager();
m_length = 0;
m_refCount = 0;
m_sheduledForDeletion = false;
@@ -35,13 +36,14 @@ PlayListTrack::PlayListTrack(const PlayListTrack &other) : QMap<Qmmp::MetaData,
PlayListItem()
{
m_settings = QmmpUiSettings::instance();
+ m_columnManager = m_settings->columnManager();
m_refCount = 0;
m_sheduledForDeletion = false;
- m_formattedTitle = other.m_formattedTitle;
+ m_formattedTitles = other.m_formattedTitles;
m_group = other.m_group;
m_formattedLength = other.m_formattedLength;
- m_titleFormat = other.m_titleFormat;
+ m_titleFormats = other.m_titleFormats;
m_groupFormat = other.m_groupFormat;
setSelected(other.isSelected());
m_length = other.m_length;
@@ -52,6 +54,7 @@ PlayListTrack::PlayListTrack(FileInfo *info) : QMap<Qmmp::MetaData, QString>(in
PlayListItem()
{
m_settings = QmmpUiSettings::instance();
+ m_columnManager = m_settings->columnManager();
setLength(m_length = info->length());
insert(Qmmp::URL, info->path());
m_refCount = 0;
@@ -67,7 +70,7 @@ PlayListTrack::~PlayListTrack()
void PlayListTrack::updateMetaData(const QMap <Qmmp::MetaData, QString> &metaData)
{
QMap <Qmmp::MetaData, QString>::operator =(metaData);
- formatTitle();
+ m_formattedTitles.clear();
formatGroup();
}
@@ -80,7 +83,7 @@ void PlayListTrack::updateMetaData()
m_length = info->length();
QMap <Qmmp::MetaData, QString>::operator =(info->metaData());
insert(Qmmp::URL, info->path());
- formatTitle();
+ m_formattedTitles.clear();
formatGroup();
}
qDeleteAll(list);
@@ -126,14 +129,35 @@ bool PlayListTrack::isUsed() const
return (m_refCount != 0);
}
-const QString PlayListTrack::formattedTitle()
+const QString PlayListTrack::formattedTitle(int column)
{
- if(m_formattedTitle.isEmpty() || m_titleFormat != m_settings->columnManager()->pattern(0))
+ if(m_formattedTitles.count() != m_settings->columnManager()->count())
{
- m_titleFormat = m_settings->columnManager()->pattern(0);
- formatTitle();
+ while(m_formattedTitles.count() > m_columnManager->count())
+ m_formattedTitles.takeLast();
+
+ while(m_formattedTitles.count() < m_columnManager->count())
+ m_formattedTitles.append(QString());
+
+ while(m_titleFormats.count() > m_columnManager->count())
+ m_titleFormats.takeLast();
+
+ while(m_titleFormats.count() < m_columnManager->count())
+ m_titleFormats.append(QString());
+ }
+
+ if(column < 0 || column >= m_formattedTitles.size())
+ {
+ qWarning("PlayListTrack: column number is out of range");
+ return QString();
+ }
+
+ if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_columnManager->pattern(column))
+ {
+ m_titleFormats[column] = m_settings->columnManager()->pattern(column);
+ formatTitle(column);
}
- return m_formattedTitle;
+ return m_formattedTitles[column];
}
const QString PlayListTrack::formattedLength()
@@ -164,17 +188,17 @@ const QString PlayListTrack::url() const
return value(Qmmp::URL);
}
-void PlayListTrack::formatTitle()
+void PlayListTrack::formatTitle(int column)
{
- m_formattedTitle = m_settings->columnManager()->titleFormatter(0)->format(this);
- if (m_formattedTitle.isEmpty())
- m_formattedTitle = value(Qmmp::URL).section('/',-1);
- if (m_formattedTitle.isEmpty())
- m_formattedTitle = value(Qmmp::URL);
+ m_formattedTitles[column] = m_columnManager->titleFormatter(column)->format(this);
+ if (m_formattedTitles[column].isEmpty() && column == 0)
+ m_formattedTitles[column] = value(Qmmp::URL).section('/',-1);
+ if (m_formattedTitles[column].isEmpty() && column == 0)
+ m_formattedTitles[column] = value(Qmmp::URL);
if (m_settings->convertUnderscore())
- m_formattedTitle.replace("_", " ");
+ m_formattedTitles[column].replace("_", " ");
if (m_settings->convertTwenty())
- m_formattedTitle.replace("%20", " ");
+ m_formattedTitles[column].replace("%20", " ");
}
void PlayListTrack::formatGroup()
diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h
index 810be411a..78e562950 100644
--- a/src/qmmpui/playlisttrack.h
+++ b/src/qmmpui/playlisttrack.h
@@ -21,11 +21,13 @@
#define PLAYLISTTRACK_H
#include <QMap>
+#include <QStringList>
#include <qmmp/fileinfo.h>
#include <qmmp/qmmp.h>
#include "playlistitem.h"
class QmmpUiSettings;
+class ColumnManager;
/** @brief The PlayListTrack class provides a track for use with the PlayListModel class.
* @author Ilya Kotov <forkotov02@hotmail.ru>
@@ -52,8 +54,9 @@ public:
virtual ~PlayListTrack();
/*!
* Returns formatted title of the item.
+ * @param column Number of column.
*/
- const QString formattedTitle();
+ const QString formattedTitle(int column);
/*!
* Returns formatted length of the item.
*/
@@ -102,17 +105,18 @@ public:
bool isUsed() const;
private:
- void formatTitle();
+ void formatTitle(int column);
void formatGroup();
- QString m_formattedTitle;
+ QStringList m_formattedTitles;
QString m_formattedLength;
QString m_group;
- QString m_titleFormat;
+ QStringList m_titleFormats;
QString m_groupFormat;
QmmpUiSettings *m_settings;
qint64 m_length;
int m_refCount;
bool m_sheduledForDeletion;
+ ColumnManager *m_columnManager;
};
#endif