aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui')
-rw-r--r--src/qmmpui/metadatahelper.cpp75
-rw-r--r--src/qmmpui/metadatahelper_p.h55
-rw-r--r--src/qmmpui/playlistheadermodel.cpp122
-rw-r--r--src/qmmpui/playlistheadermodel.h19
-rw-r--r--src/qmmpui/playlistmanager.cpp6
-rw-r--r--src/qmmpui/playlistmanager.h3
-rw-r--r--src/qmmpui/playlistmodel.cpp8
-rw-r--r--src/qmmpui/playlistmodel.h2
-rw-r--r--src/qmmpui/playlisttask.cpp3
-rw-r--r--src/qmmpui/playlisttrack.cpp41
-rw-r--r--src/qmmpui/playlisttrack.h3
-rw-r--r--src/qmmpui/qmmpui.pro6
-rw-r--r--src/qmmpui/qmmpuisettings.cpp18
-rw-r--r--src/qmmpui/qmmpuisettings.h10
14 files changed, 202 insertions, 169 deletions
diff --git a/src/qmmpui/metadatahelper.cpp b/src/qmmpui/metadatahelper.cpp
new file mode 100644
index 000000000..38a18b361
--- /dev/null
+++ b/src/qmmpui/metadatahelper.cpp
@@ -0,0 +1,75 @@
+/***************************************************************************
+ * Copyright (C) 2015 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include "metadatahelper_p.h"
+
+MetaDataHelper *MetaDataHelper::m_instance = 0;
+
+MetaDataHelper::MetaDataHelper()
+{
+ m_instance = this;
+ m_group_formatter = new MetaDataFormatter();
+ m_title_formatters << new MetaDataFormatter();
+}
+
+MetaDataHelper::~MetaDataHelper()
+{
+ m_instance = 0;
+ delete m_group_formatter;
+ qDeleteAll(m_title_formatters);
+ m_title_formatters.clear();
+}
+
+void MetaDataHelper::setTitleFormats(const QStringList &titleFormats)
+{
+ while(m_title_formatters.count() > titleFormats.count())
+ delete m_title_formatters.takeLast();
+
+ while(m_title_formatters.count() < titleFormats.count())
+ m_title_formatters << new MetaDataFormatter();
+
+ for(int i = 0; i < m_title_formatters.count(); ++i)
+ m_title_formatters.at(i)->setPattern(titleFormats.at(i));
+}
+
+void MetaDataHelper::setGroupFormat(const QString &groupFormat)
+{
+ m_group_formatter->setPattern(groupFormat);
+}
+
+int MetaDataHelper::columnCount() const
+{
+ return m_title_formatters.count();
+}
+
+const MetaDataFormatter *MetaDataHelper::titleFormatter(int index) const
+{
+ return m_title_formatters.at(index);
+}
+
+const MetaDataFormatter *MetaDataHelper::groupFormatter() const
+{
+ return m_group_formatter;
+}
+
+MetaDataHelper *MetaDataHelper::instance()
+{
+ return m_instance;
+}
diff --git a/src/qmmpui/metadatahelper_p.h b/src/qmmpui/metadatahelper_p.h
new file mode 100644
index 000000000..98a36c7ca
--- /dev/null
+++ b/src/qmmpui/metadatahelper_p.h
@@ -0,0 +1,55 @@
+/***************************************************************************
+ * Copyright (C) 2015 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef METADATAHELPER_P_H
+#define METADATAHELPER_P_H
+
+#include <QList>
+#include <QStringList>
+#include "metadataformatter.h"
+
+/*! @internal
+ * @author Ilya Kotov <forkotov02@hotmail.ru>
+ */
+class MetaDataHelper
+{
+public:
+ MetaDataHelper();
+ ~MetaDataHelper();
+
+ void setTitleFormats(const QStringList &titleFormats);
+ void setGroupFormat(const QString &groupFormat);
+
+ int columnCount() const;
+ const MetaDataFormatter *titleFormatter(int index) const;
+ const MetaDataFormatter *groupFormatter() const;
+
+ static MetaDataHelper *instance();
+
+private:
+ static MetaDataHelper *m_instance;
+
+ MetaDataFormatter *m_group_formatter;
+ QList <MetaDataFormatter*> m_title_formatters;
+
+
+};
+
+#endif // METADATAHELPER_P_H
diff --git a/src/qmmpui/playlistheadermodel.cpp b/src/qmmpui/playlistheadermodel.cpp
index eb00fd883..4c228945d 100644
--- a/src/qmmpui/playlistheadermodel.cpp
+++ b/src/qmmpui/playlistheadermodel.cpp
@@ -22,38 +22,24 @@
#include <QApplication>
#include <qmmp/qmmp.h>
#include "columneditor_p.h"
+#include "metadatahelper_p.h"
#include "playlistheadermodel.h"
PlayListHeaderModel::PlayListHeaderModel(QObject *parent) :
QObject(parent)
{
- QSettings s (Qmmp::configFile(), QSettings::IniFormat);
- s.beginGroup("PlayList");
- int c = qMax(1, s.value("column_count", 1).toInt());
- for(int i = 0; i < c; ++i)
- {
- s.beginGroup(QString("column%1").arg(i));
- Column col;
- col.name = s.value("name", tr("Artist - Title")).toString();
- col.pattern = s.value("pattern", "%if(%p,%p - %t,%t)").toString();
- col.size = s.value("size", 150).toInt();
- col.titleFormatter = new MetaDataFormatter(col.pattern);
- col.autoResize = s.value("autoresize", false).toBool();
- col.minSize = 30;
- m_columns.append(col);
- s.endGroup();
- }
- s.endGroup();
+ m_helper = MetaDataHelper::instance();
+
+ ColumnHeader col;
+ col.name = tr("Artist - Title");
+ col.pattern = "%if(%p,%p - %t,%t)";
+ m_columns.append(col);
+ m_helper->setTitleFormats(QStringList() << col.pattern);
}
PlayListHeaderModel::~PlayListHeaderModel()
{
sync();
- foreach (Column col, m_columns)
- {
- delete col.titleFormatter;
- col.titleFormatter = 0;
- }
m_columns.clear();
}
@@ -65,13 +51,9 @@ void PlayListHeaderModel::insert(int index, const QString &name, const QString &
return;
}
- Column col;
+ ColumnHeader col;
col.name = name;
col.pattern = pattern;
- col.titleFormatter = new MetaDataFormatter(pattern);
- col.size = 50;
- col.autoResize = false;
- col.minSize = 30;
m_columns.insert(index, col);
sync();
emit columnAdded(index);
@@ -89,58 +71,11 @@ void PlayListHeaderModel::remove(int index)
if(m_columns.count() == 1)
return;
- delete m_columns.takeAt(index).titleFormatter;
sync();
emit columnRemoved(index);
emit headerChanged();
}
-void PlayListHeaderModel::resize(int index, int size)
-{
- if(index < 0 || index >= m_columns.size())
- {
- qWarning("ColumnManager: index is out of range");
- return;
- }
-
- m_columns[index].size = qMax(size, m_columns[index].minSize);
- emit columnResized(index);
- emit headerChanged();
-}
-
-void PlayListHeaderModel::setAutoResize(int index)
-{
- if(index >= m_columns.size())
- {
- qWarning("ColumnManager: index is out of range");
- return;
- }
-
- for(int i = 0; i < m_columns.size(); ++i)
- {
- m_columns[i].autoResize = (i == index);
- }
-}
-
-void PlayListHeaderModel::setMinimalSize(int index, int size)
-{
- if(index >= m_columns.size())
- {
- qWarning("ColumnManager: index is out of range");
- return;
- }
-
- if(size < 10)
- {
- qWarning("ColumnManager: invalid size");
- return;
- }
-
- m_columns[index].minSize = size;
- if(m_columns[index].size < size)
- resize(index, size);
-}
-
void PlayListHeaderModel::move(int from, int to)
{
if(from < 0 || from >= m_columns.size())
@@ -176,7 +111,6 @@ void PlayListHeaderModel::execEdit(int index, QWidget *parent)
{
m_columns[index].name = editor.name();
m_columns[index].pattern = editor.pattern();
- m_columns[index].titleFormatter->setPattern(editor.pattern());
emit columnChanged(index);
emit headerChanged();
}
@@ -204,26 +138,6 @@ int PlayListHeaderModel::count()
return m_columns.count();
}
-const MetaDataFormatter *PlayListHeaderModel::titleFormatter(int index) const
-{
- if(index < 0 || index >= m_columns.size())
- {
- qWarning("ColumnManager: index is out of range");
- return 0;
- }
- return m_columns[index].titleFormatter;
-}
-
-int PlayListHeaderModel::size(int index) const
-{
- if(index < 0 || index >= m_columns.size())
- {
- qWarning("ColumnManager: index is out of range");
- return 0;
- }
- return m_columns[index].size;
-}
-
const QString PlayListHeaderModel::name(int index) const
{
if(index < 0 || index >= m_columns.size())
@@ -243,30 +157,18 @@ const QString PlayListHeaderModel::pattern(int index) const
return m_columns[index].pattern;
}
-int PlayListHeaderModel::autoResizeColumn() const
-{
- for(int i = 0; i < m_columns.count(); ++i)
- {
- if(m_columns[i].autoResize)
- return i;
- }
- return -1;
-}
-
void PlayListHeaderModel::sync()
{
- QSettings s (Qmmp::configFile(), QSettings::IniFormat);
+ /*QSettings s (Qmmp::configFile(), QSettings::IniFormat);
s.beginGroup("PlayList");
int old_count = s.value("column_count", 1).toInt();
s.setValue("column_count", m_columns.count());
for(int i = 0; i < m_columns.count(); ++i)
{
s.beginGroup(QString("column%1").arg(i));
- Column col = m_columns.at(i);
+ ColumnHeader col = m_columns.at(i);
s.setValue("name", col.name);
s.setValue("pattern", col.pattern);
- s.setValue("size", col.size);
- s.setValue("autoresize", col.autoResize);
s.endGroup();
}
s.setValue("column_count", m_columns.count());
@@ -274,5 +176,5 @@ void PlayListHeaderModel::sync()
{
s.remove(QString("column%1").arg(i));
}
- s.endGroup();
+ s.endGroup();*/
}
diff --git a/src/qmmpui/playlistheadermodel.h b/src/qmmpui/playlistheadermodel.h
index 1cc4cf2eb..561151c66 100644
--- a/src/qmmpui/playlistheadermodel.h
+++ b/src/qmmpui/playlistheadermodel.h
@@ -25,6 +25,8 @@
#include <QWidget>
#include "metadataformatter.h"
+class MetaDataHelper;
+
/**
* @author Ilya Kotov <forkotov02@hotmail.ru>
*/
@@ -38,40 +40,31 @@ public:
void insert(int index, const QString &name, const QString &pattern);
void remove(int index);
- void resize(int index, int size);
- void setAutoResize(int index);
- void setMinimalSize(int index, int size);
void move(int from, int to);
void execEdit(int index, QWidget *parent = 0);
void execInsert(int index, QWidget *parent = 0);
int count();
- const MetaDataFormatter* titleFormatter(int index) const;
- int size(int index) const;
+
const QString name(int index) const;
const QString pattern(int index) const;
- int autoResizeColumn() const;
signals:
void columnAdded(int index);
void columnRemoved(int index);
void columnChanged(int index);
- void columnResized(int index);
void columnMoved(int from, int to);
void headerChanged();
private:
void sync();
- struct Column
+ struct ColumnHeader
{
QString name;
QString pattern;
- int size;
- int minSize;
- bool autoResize;
- MetaDataFormatter *titleFormatter;
};
- QList<Column> m_columns;
+ QList<ColumnHeader> m_columns;
+ MetaDataHelper *m_helper;
};
#endif // COLUMNMANAGER_H
diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp
index 17dbd67e8..8a2395470 100644
--- a/src/qmmpui/playlistmanager.cpp
+++ b/src/qmmpui/playlistmanager.cpp
@@ -36,6 +36,7 @@ PlayListManager::PlayListManager(QObject *parent) : QObject(parent)
qFatal("PlayListManager: only one instance is allowed");
m_instance = this;
m_ui_settings = QmmpUiSettings::instance();
+ m_header = new PlayListHeaderModel(this);
m_current = 0;
m_selected = 0;
m_timer = new QTimer(this);
@@ -229,6 +230,11 @@ PlayListModel *PlayListManager::playListAt(int i) const
return 0;
}
+PlayListHeaderModel *PlayListManager::headerModel()
+{
+ return m_header;
+}
+
void PlayListManager::readPlayLists()
{
QString line, param, value;
diff --git a/src/qmmpui/playlistmanager.h b/src/qmmpui/playlistmanager.h
index 68922d4d1..19006f167 100644
--- a/src/qmmpui/playlistmanager.h
+++ b/src/qmmpui/playlistmanager.h
@@ -85,6 +85,8 @@ public:
*/
PlayListModel *playListAt(int i) const;
+ PlayListHeaderModel *headerModel();
+
signals:
/*!
* Emitted when current playlist changes.
@@ -249,6 +251,7 @@ private:
PlayListModel *m_current;
PlayListModel *m_selected;
QTimer *m_timer;
+ PlayListHeaderModel *m_header;
QmmpUiSettings *m_ui_settings;
};
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index 5fd7ec1db..7659eefba 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -22,6 +22,7 @@
#include <QTextStream>
#include <time.h>
#include <qmmp/metadatamanager.h>
+#include "metadatahelper_p.h"
#include "playlistparser.h"
#include "playlistformat.h"
#include "playlistcontainer_p.h"
@@ -275,6 +276,11 @@ int PlayListModel::trackCount() const
return m_container->trackCount();
}
+int PlayListModel::columnCount() const
+{
+ return MetaDataHelper::instance()->columnCount();
+}
+
PlayListTrack* PlayListModel::currentTrack() const
{
return m_container->isEmpty() ? 0 : m_current_track;
@@ -822,7 +828,7 @@ void PlayListModel::sortByColumn(int column)
if(m_container->isEmpty())
return;
- if(column < 0 || column >= m_ui_settings->headerModel()->count())
+ if(column < 0 || column >= columnCount())
return;
m_task->sortByColumn(m_container->tracks(), column);
diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h
index 6ac505a14..37cd0ef76 100644
--- a/src/qmmpui/playlistmodel.h
+++ b/src/qmmpui/playlistmodel.h
@@ -112,6 +112,8 @@ public:
* Returns number of tracks.
*/
int trackCount() const;
+
+ int columnCount() const;
/*!
* Returns the current track.
*/
diff --git a/src/qmmpui/playlisttask.cpp b/src/qmmpui/playlisttask.cpp
index 95ffe24bd..a7b4448bd 100644
--- a/src/qmmpui/playlisttask.cpp
+++ b/src/qmmpui/playlisttask.cpp
@@ -23,6 +23,7 @@
#include <QTime>
#include <qmmp/metadatamanager.h>
#include "qmmpuisettings.h"
+#include "metadatahelper_p.h"
#include "playlisttrack.h"
#include "playlisttask_p.h"
@@ -188,7 +189,7 @@ void PlayListTask::sortByColumn(QList<PlayListTrack *> tracks, int column)
m_task = SORT_BY_COLUMN;
m_input_tracks = tracks;
m_column = column;
- if(QmmpUiSettings::instance()->headerModel()->pattern(column) == "%n")
+ if(MetaDataHelper::instance()->titleFormatter(column)->pattern() == "%n")
m_sort_mode = PlayListModel::TRACK;
else
m_sort_mode = PlayListModel::TITLE;
diff --git a/src/qmmpui/playlisttrack.cpp b/src/qmmpui/playlisttrack.cpp
index aaac75d28..b21aef3cf 100644
--- a/src/qmmpui/playlisttrack.cpp
+++ b/src/qmmpui/playlisttrack.cpp
@@ -21,12 +21,13 @@
#include <QApplication>
#include <qmmp/metadatamanager.h>
#include "qmmpuisettings.h"
+#include "metadatahelper_p.h"
#include "playlisttrack.h"
PlayListTrack::PlayListTrack() : QMap<Qmmp::MetaData, QString>(), PlayListItem()
{
m_settings = QmmpUiSettings::instance();
- m_columnManager = m_settings->headerModel();
+ m_helper = MetaDataHelper::instance();
m_length = 0;
m_refCount = 0;
m_sheduledForDeletion = false;
@@ -36,7 +37,7 @@ PlayListTrack::PlayListTrack(const PlayListTrack &other) : QMap<Qmmp::MetaData,
PlayListItem()
{
m_settings = QmmpUiSettings::instance();
- m_columnManager = m_settings->headerModel();
+ m_helper = MetaDataHelper::instance();
m_refCount = 0;
m_sheduledForDeletion = false;
@@ -54,7 +55,7 @@ PlayListTrack::PlayListTrack(FileInfo *info) : QMap<Qmmp::MetaData, QString>(in
PlayListItem()
{
m_settings = QmmpUiSettings::instance();
- m_columnManager = m_settings->headerModel();
+ m_helper = MetaDataHelper::instance();
setLength(m_length = info->length());
insert(Qmmp::URL, info->path());
m_refCount = 0;
@@ -131,18 +132,18 @@ bool PlayListTrack::isUsed() const
const QString PlayListTrack::formattedTitle(int column)
{
- if(m_formattedTitles.count() != m_settings->headerModel()->count())
+ if(m_formattedTitles.count() != m_helper->columnCount())
{
- while(m_formattedTitles.count() > m_columnManager->count())
+ while(m_formattedTitles.count() > m_helper->columnCount())
m_formattedTitles.takeLast();
- while(m_formattedTitles.count() < m_columnManager->count())
+ while(m_formattedTitles.count() < m_helper->columnCount())
m_formattedTitles.append(QString());
- while(m_titleFormats.count() > m_columnManager->count())
+ while(m_titleFormats.count() > m_helper->columnCount())
m_titleFormats.takeLast();
- while(m_titleFormats.count() < m_columnManager->count())
+ while(m_titleFormats.count() < m_helper->columnCount())
m_titleFormats.append(QString());
}
@@ -152,9 +153,9 @@ const QString PlayListTrack::formattedTitle(int column)
return QString();
}
- if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_columnManager->pattern(column))
+ if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_helper->titleFormatter(column)->pattern())
{
- m_titleFormats[column] = m_settings->headerModel()->pattern(column);
+ m_titleFormats[column] = m_helper->titleFormatter(column)->pattern();
formatTitle(column);
}
return m_formattedTitles[column];
@@ -162,26 +163,26 @@ const QString PlayListTrack::formattedTitle(int column)
const QStringList PlayListTrack::formattedTitles()
{
- if(m_formattedTitles.count() != m_settings->headerModel()->count())
+ if(m_formattedTitles.count() != m_helper->columnCount())
{
- while(m_formattedTitles.count() > m_columnManager->count())
+ while(m_formattedTitles.count() > m_helper->columnCount())
m_formattedTitles.takeLast();
- while(m_formattedTitles.count() < m_columnManager->count())
+ while(m_formattedTitles.count() < m_helper->columnCount())
m_formattedTitles.append(QString());
- while(m_titleFormats.count() > m_columnManager->count())
+ while(m_titleFormats.count() > m_helper->columnCount())
m_titleFormats.takeLast();
- while(m_titleFormats.count() < m_columnManager->count())
+ while(m_titleFormats.count() < m_helper->columnCount())
m_titleFormats.append(QString());
}
- for(int column = 0; column < m_columnManager->count(); column++)
+ for(int column = 0; column < m_helper->columnCount(); column++)
{
- if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_columnManager->pattern(column))
+ if(m_formattedTitles[column].isEmpty() || m_titleFormats[column] != m_helper->titleFormatter(column)->pattern())
{
- m_titleFormats[column] = m_settings->headerModel()->pattern(column);
+ m_titleFormats[column] = m_helper->titleFormatter(column)->pattern();
formatTitle(column);
}
}
@@ -219,7 +220,7 @@ const QString PlayListTrack::url() const
void PlayListTrack::formatTitle(int column)
{
- m_formattedTitles[column] = m_columnManager->titleFormatter(column)->format(this);
+ m_formattedTitles[column] = m_helper->titleFormatter(column)->format(this);
if(m_formattedTitles.count() == 1)
{
if (m_formattedTitles[column].isEmpty())
@@ -240,7 +241,7 @@ void PlayListTrack::formatGroup()
m_group = qApp->translate("PlayListTrack", "Streams");
return;
}
- m_group = m_settings->groupFormatter()->format(this);
+ m_group = m_helper->groupFormatter()->format(this);
if (m_group.isEmpty())
m_group = qApp->translate("PlayListTrack", "Empty group");
if (m_settings->convertUnderscore())
diff --git a/src/qmmpui/playlisttrack.h b/src/qmmpui/playlisttrack.h
index 73ac63cde..4c0fe9d2d 100644
--- a/src/qmmpui/playlisttrack.h
+++ b/src/qmmpui/playlisttrack.h
@@ -28,6 +28,7 @@
class QmmpUiSettings;
class PlayListHeaderModel;
+class MetaDataHelper;
/** @brief The PlayListTrack class provides a track for use with the PlayListModel class.
* @author Ilya Kotov <forkotov02@hotmail.ru>
@@ -117,7 +118,7 @@ private:
qint64 m_length;
int m_refCount;
bool m_sheduledForDeletion;
- PlayListHeaderModel *m_columnManager;
+ MetaDataHelper *m_helper;
};
#endif
diff --git a/src/qmmpui/qmmpui.pro b/src/qmmpui/qmmpui.pro
index c2c7ff6de..0025f3a0e 100644
--- a/src/qmmpui/qmmpui.pro
+++ b/src/qmmpui/qmmpui.pro
@@ -71,7 +71,8 @@ HEADERS += general.h \
playlisttask_p.h \
metadataformatter.h \
columneditor_p.h \
- playlistheadermodel.h
+ playlistheadermodel.h \
+ metadatahelper_p.h
SOURCES += general.cpp \
playlistparser.cpp \
@@ -107,7 +108,8 @@ SOURCES += general.cpp \
playlisttask.cpp \
metadataformatter.cpp \
columneditor.cpp \
- playlistheadermodel.cpp
+ playlistheadermodel.cpp \
+ metadatahelper.cpp
FORMS += forms/detailsdialog.ui \
forms/tageditor.ui \
diff --git a/src/qmmpui/qmmpuisettings.cpp b/src/qmmpui/qmmpuisettings.cpp
index 1c0439730..8564e4755 100644
--- a/src/qmmpui/qmmpuisettings.cpp
+++ b/src/qmmpui/qmmpuisettings.cpp
@@ -22,6 +22,7 @@
#include <QApplication>
#include <QTimer>
#include <qmmp/qmmp.h>
+#include "metadatahelper_p.h"
#include "playlistmanager.h"
#include "qmmpuisettings.h"
@@ -32,7 +33,7 @@ QmmpUiSettings::QmmpUiSettings(QObject *parent) : QObject(parent)
if(m_instance)
qFatal("QmmpUiSettings: only one instance is allowed");
m_instance = this;
- m_header = new PlayListHeaderModel(this);
+ m_helper = new MetaDataHelper;
QSettings s (Qmmp::configFile(), QSettings::IniFormat);
s.beginGroup("PlayList");
m_group_format = s.value("group_format", "%p%if(%p&%a, - %if(%y,[%y] ,),)%a").toString();
@@ -60,13 +61,14 @@ QmmpUiSettings::QmmpUiSettings(QObject *parent) : QObject(parent)
m_timer->setSingleShot(true);
connect(m_timer, SIGNAL(timeout()), SLOT(sync()));
- m_group_formatter.setPattern(m_group_format);
+ m_helper->setGroupFormat(m_group_format);
}
QmmpUiSettings::~QmmpUiSettings()
{
m_instance = 0;
sync();
+ delete m_helper;
}
const QString QmmpUiSettings::groupFormat() const
@@ -129,7 +131,7 @@ void QmmpUiSettings::setGroupFormat(const QString &groupFormat)
if(groupFormat != m_group_format)
{
m_group_format = groupFormat;
- m_group_formatter.setPattern(groupFormat);
+ m_helper->setGroupFormat(m_group_format);
foreach(PlayListModel *model, PlayListManager::instance()->playLists())
{
model->rebuildGroups();
@@ -297,13 +299,3 @@ bool QmmpUiSettings::clearPreviousPlayList() const
{
return m_clear_prev_playlist;
}
-
-PlayListHeaderModel *QmmpUiSettings::headerModel()
-{
- return m_header;
-}
-
-const MetaDataFormatter *QmmpUiSettings::groupFormatter() const
-{
- return &m_group_formatter;
-}
diff --git a/src/qmmpui/qmmpuisettings.h b/src/qmmpui/qmmpuisettings.h
index fbfc7eb21..35d4276de 100644
--- a/src/qmmpui/qmmpuisettings.h
+++ b/src/qmmpui/qmmpuisettings.h
@@ -27,6 +27,7 @@
#include "metadataformatter.h"
class QTimer;
+class MetaDataHelper;
/*! @brief The QmmpUiSettings class provides access to global libqmmpui library settings.
* @author Ilya Kotov <forkotov02@hotmail.ru>
@@ -178,11 +179,6 @@ public:
* otherwise.
*/
bool clearPreviousPlayList() const;
-
- PlayListHeaderModel *headerModel();
-
- const MetaDataFormatter* groupFormatter() const;
-
/*!
* Returns a pointer to the QmmpUiSettings instance.
*/
@@ -275,9 +271,7 @@ private:
//timer
QTimer *m_timer;
//formatters
- MetaDataFormatter m_group_formatter;
- //column settings
- PlayListHeaderModel *m_header;
+ MetaDataHelper *m_helper;
};
#endif // QMMPUISETTINGS_H