diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlistheader.cpp | 193 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlistheader.h | 24 | ||||
| -rw-r--r-- | src/qmmpui/playlistheadermodel.cpp | 75 | ||||
| -rw-r--r-- | src/qmmpui/playlistheadermodel.h | 9 |
5 files changed, 197 insertions, 106 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 040f70404..3c92355b7 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -49,7 +49,7 @@ ListWidget::ListWidget(QWidget *parent) m_skin = Skin::instance(); m_ui_settings = QmmpUiSettings::instance(); - PlayListHeaderModel *headerModel = PlayListManager::instance()->headerModel(); + //PlayListHeaderModel *headerModel = PlayListManager::instance()->headerModel(); m_menu = new QMenu(this); m_timer = new QTimer(this); m_timer->setInterval(50); diff --git a/src/plugins/Ui/skinned/playlistheader.cpp b/src/plugins/Ui/skinned/playlistheader.cpp index b566ffe55..d02561299 100644 --- a/src/plugins/Ui/skinned/playlistheader.cpp +++ b/src/plugins/Ui/skinned/playlistheader.cpp @@ -30,6 +30,7 @@ #include <QLineEdit> #include <QInputDialog> #include <QIcon> +#include <QHash> #include <qmmp/qmmp.h> #include <qmmpui/playlistmanager.h> #include <qmmpui/playlistheadermodel.h> @@ -68,6 +69,7 @@ PlayListHeader::PlayListHeader(QWidget *parent) : m_pl_padding = 0; m_number_width = 0; m_sorting_column = -1; + m_update = false; m_task = NO_TASK; m_model = PlayListManager::instance()->headerModel(); m_skin = Skin::instance(); @@ -80,8 +82,6 @@ PlayListHeader::PlayListHeader(QWidget *parent) : m_menu->addSeparator(); m_menu->addAction(QIcon::fromTheme("list-remove"), tr("Remove Column"), this, SLOT(removeColumn())); - m_sizes << 50; - m_minimal_sizes << 50; connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin())); loadColors(); readSettings(); @@ -92,6 +92,8 @@ PlayListHeader::~PlayListHeader() if (m_metrics) delete m_metrics; m_metrics = 0; + qDeleteAll(m_columns); + m_columns.clear(); } void PlayListHeader::readSettings() @@ -113,7 +115,25 @@ void PlayListHeader::readSettings() pl_font.fromString(settings.value("pl_font", qApp->font().toString()).toString()); m_pl_padding = QFontMetrics(pl_font).width("9")/2; + if(!m_update) + { + m_model->restoreSettings(&settings); + QList<QVariant> sizes = settings.value("pl_column_sizes").toList(); + int autoResizeColumn = settings.value("pl_autoresize_colum", -1).toInt(); + for(int i = 0; i < m_model->count(); ++i) + { + Column *col = new Column(); + if(i < sizes.count()) + col->size = sizes.at(i).toInt(); + if(i == autoResizeColumn) + col->autoResize = true; + m_columns.append(col); + } + m_update = true; + } + settings.endGroup(); + updateColumns(); } @@ -122,58 +142,63 @@ void PlayListHeader::setNumberWidth(int width) if(width != m_number_width) { m_number_width = width; - m_minimal_sizes[0] = 30 + (m_number_width ? (m_number_width + 2 * m_pl_padding) : 0); + m_columns[0]->minSize = 30 + (m_number_width ? (m_number_width + 2 * m_pl_padding) : 0); + m_columns[0]->size = qMax(m_columns[0]->size, m_columns[0]->minSize); updateColumns(); } } void PlayListHeader::updateColumns() { - m_rects.clear(); - m_names.clear(); bool rtl = (layoutDirection() == Qt::RightToLeft); + while (m_columns.count() > m_model->count()) + delete m_columns.takeFirst(); + + while(m_columns.count() < m_model->count()) + m_columns << new Column(); + int sx = 5; if(m_number_width) sx += m_number_width + 2 * m_pl_padding; if(m_model->count() == 1) { - m_rects << (rtl ? QRect(5, 0, width() - sx - 5, height()) : QRect(sx, 0, width() - sx - 5, height())); + m_columns[0]->rect = (rtl ? QRect(5, 0, width() - sx - 5, height()) : QRect(sx, 0, width() - sx - 5, height())); if(m_sorting_column == 0) { - m_names << m_metrics->elidedText(m_model->name(0), Qt::ElideRight, - m_rects.last().width() - 2 * m_padding - m_arrow_up.width() - 4); + m_columns[0]->name = m_metrics->elidedText(m_model->name(0), Qt::ElideRight, + m_columns[0]->rect.width() - 2 * m_padding - m_arrow_up.width() - 4); } else { - m_names << m_metrics->elidedText(m_model->name(0), Qt::ElideRight, - m_rects.last().width() - 2 * m_padding); + m_columns[0]->name = m_metrics->elidedText(m_model->name(0), Qt::ElideRight, + m_columns[0]->rect.width() - 2 * m_padding); } return; } for(int i = 0; i < m_model->count(); ++i) { - int size = m_sizes[i]; + int size = m_columns[i]->size; //add number width to the first column if(i == 0 && m_number_width) size -= m_number_width + 2 * m_pl_padding; if(rtl) - m_rects << QRect(width() - sx - size, 0, size, height()); + m_columns[i]->rect = QRect(width() - sx - size, 0, size, height()); else - m_rects << QRect(sx, 0, size, height()); + m_columns[i]->rect = QRect(sx, 0, size, height()); if(i == m_sorting_column) { - m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight, - size - 2 * m_padding - m_arrow_up.width() - 4); + m_columns[i]->name = m_metrics->elidedText(m_model->name(i), Qt::ElideRight, + size - 2 * m_padding - m_arrow_up.width() - 4); } else { - m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight, - size - 2 * m_padding); + m_columns[i]->name = m_metrics->elidedText(m_model->name(i), Qt::ElideRight, + size - 2 * m_padding); } sx += size; @@ -188,7 +213,10 @@ int PlayListHeader::requiredHeight() const QList<int> PlayListHeader::sizes() const { - return m_sizes; + QList<int> sizeList; + for(int i = 0; i < m_columns.size(); ++i) + sizeList.append(m_columns[i]->size); + return sizeList; } void PlayListHeader::showSortIndicator(int column, bool reverted) @@ -218,7 +246,7 @@ void PlayListHeader::updateSkin() void PlayListHeader::addColumn() { - int column = findColumn(m_pressed_pos); + /*int column = findColumn(m_pressed_pos); if(column < 0 && m_pressed_pos.x() > m_rects.last().right()) column = m_model->count(); else if(column < 0 && m_pressed_pos.x() < m_rects.first().x()) @@ -227,7 +255,7 @@ void PlayListHeader::addColumn() if(column < 0) return; - m_model->execInsert(column); + m_model->execInsert(column);*/ } void PlayListHeader::editColumn() @@ -251,15 +279,22 @@ void PlayListHeader::setAutoResize(bool yes) if(m_pressed_column < 0) return; - //m_model->setAutoResize(yes ? m_pressed_column : -1); + if(yes) + { + for(int i = 0; i < m_columns.count(); ++i) + m_columns[i]->autoResize = false; + } + + m_columns[m_pressed_column]->autoResize = yes; } void PlayListHeader::restoreSize() { if(m_pressed_column < 0) - return; + return; - m_sizes[m_pressed_column] = 100; + m_columns[m_pressed_column]->size = 150; + updateColumns(); } void PlayListHeader::mousePressEvent(QMouseEvent *e) @@ -276,27 +311,27 @@ void PlayListHeader::mousePressEvent(QMouseEvent *e) if(rtl) { - if(e->pos().x() < m_rects[m_pressed_column].x() + m_metrics->width("9")) + if(e->pos().x() < m_columns[m_pressed_column]->rect.x() + m_metrics->width("9")) { - m_old_size = m_sizes[m_pressed_column]; + m_old_size = m_columns[m_pressed_column]->size; m_task = RESIZE; } else { - m_press_offset = e->pos().x() - m_rects.at(m_pressed_column).x(); + m_press_offset = e->pos().x() - m_columns[m_pressed_column]->rect.x(); m_task = SORT; } } else { - if(e->pos().x() > m_rects[m_pressed_column].right() - m_metrics->width("9")) + if(e->pos().x() > m_columns[m_pressed_column]->rect.right() - m_metrics->width("9")) { - m_old_size = m_sizes[m_pressed_column]; + m_old_size = m_columns[m_pressed_column]->size; m_task = RESIZE; } else { - m_press_offset = e->pos().x() - m_rects.at(m_pressed_column).x(); + m_press_offset = e->pos().x() - m_columns[m_pressed_column]->rect.x(); m_task = SORT; } } @@ -330,25 +365,25 @@ void PlayListHeader::mouseMoveEvent(QMouseEvent *e) if(m_task == RESIZE && m_model->count() > 1) { if(rtl) - m_sizes[m_pressed_column] = m_old_size - e->pos().x() + m_pressed_pos.x(); + m_columns[m_pressed_column]->size = m_old_size - e->pos().x() + m_pressed_pos.x(); else - m_sizes[m_pressed_column] = m_old_size + e->pos().x() - m_pressed_pos.x(); + m_columns[m_pressed_column]->size = m_old_size + e->pos().x() - m_pressed_pos.x(); } else if(m_task == MOVE) { m_mouse_pos = e->pos(); int dest = -1; - for(int i = 0; i < m_rects.count(); ++i) + for(int i = 0; i < m_columns.count(); ++i) { - int x_delta = m_mouse_pos.x() - m_rects.at(i).x(); - if(x_delta < 0 || x_delta > m_rects.at(i).width()) + int x_delta = m_mouse_pos.x() - m_columns[i]->rect.x(); + if(x_delta < 0 || x_delta > m_columns[i]->rect.width()) continue; if(rtl) { - if((x_delta > m_rects.at(i).width()/2 && m_pressed_column > i) || - (x_delta < m_rects.at(i).width()/2 && m_pressed_column < i)) + if((x_delta > m_columns[i]->rect.width()/2 && m_pressed_column > i) || + (x_delta < m_columns[i]->rect.width()/2 && m_pressed_column < i)) { dest = i; break; @@ -356,8 +391,8 @@ void PlayListHeader::mouseMoveEvent(QMouseEvent *e) } else { - if((x_delta > m_rects.at(i).width()/2 && m_pressed_column < i) || - (x_delta < m_rects.at(i).width()/2 && m_pressed_column > i)) + if((x_delta > m_columns[i]->rect.width()/2 && m_pressed_column < i) || + (x_delta < m_columns[i]->rect.width()/2 && m_pressed_column > i)) { dest = i; break; @@ -379,14 +414,14 @@ void PlayListHeader::mouseMoveEvent(QMouseEvent *e) int column = findColumn(e->pos()); if(rtl) { - if(column >= 0 && e->pos().x() < m_rects[column].x() + m_metrics->width("9")) + if(column >= 0 && e->pos().x() < m_columns[column]->rect.x() + m_metrics->width("9")) setCursor(Qt::SplitHCursor); else setCursor(Qt::ArrowCursor); } else { - if(column >= 0 && e->pos().x() > m_rects[column].right() - m_metrics->width("9")) + if(column >= 0 && e->pos().x() > m_columns[column]->rect.right() - m_metrics->width("9")) setCursor(Qt::SplitHCursor); else setCursor(Qt::ArrowCursor); @@ -396,13 +431,13 @@ void PlayListHeader::mouseMoveEvent(QMouseEvent *e) void PlayListHeader::resizeEvent(QResizeEvent *e) { - /*if(m_model->count() == 1) + if(m_model->count() == 1) { updateColumns(); return; } - int delta = e->size().width() - e->oldSize().width(); + /*int delta = e->size().width() - e->oldSize().width(); int index = m_model->autoResizeColumn(); if(index >= 0 && e->oldSize().width() > 10) @@ -422,10 +457,10 @@ void PlayListHeader::resizeEvent(QResizeEvent *e) void PlayListHeader::contextMenuEvent(QContextMenuEvent *e) { m_pressed_pos = e->pos(); - /*m_pressed_column = findColumn(e->pos()); + m_pressed_column = findColumn(e->pos()); if(m_pressed_column >= 0) { - m_autoResize->setChecked(m_model->autoResizeColumn() == m_pressed_column); + m_autoResize->setChecked(m_columns[m_pressed_column]->autoResize); m_autoResize->setEnabled(true); foreach (QAction *action, m_menu->actions()) action->setVisible(true); @@ -439,7 +474,7 @@ void PlayListHeader::contextMenuEvent(QContextMenuEvent *e) action->setVisible(false); } } - m_menu->exec(e->globalPos());*/ + m_menu->exec(e->globalPos()); } void PlayListHeader::paintEvent(QPaintEvent *) @@ -459,45 +494,45 @@ void PlayListHeader::paintEvent(QPaintEvent *) { if(m_number_width) { - painter.drawLine(m_rects.at(0).right(), 0, - m_rects.at(0).right(), height()); + painter.drawLine(m_columns[0]->rect.right(), 0, + m_columns[0]->rect.right(), height()); } - if(m_names.count() == 1) + if(m_columns.count() == 1) { - painter.drawText(m_rects[0].right() - m_padding - m_metrics->width(m_names[0]), - m_metrics->ascent(), m_names[0]); + painter.drawText(m_columns[0]->rect.right() - m_padding - m_metrics->width(m_columns[0]->name), + m_metrics->ascent(), m_columns[0]->name); if(m_sorting_column == 0) { - painter.drawPixmap(m_rects[0].x() + 4, + painter.drawPixmap(m_columns[0]->rect.x() + 4, (height() - m_arrow_up.height()) / 2, m_reverted ? m_arrow_up : m_arrow_down); } return; } - for(int i = 0; i < m_rects.count(); ++i) + for(int i = 0; i < m_columns.count(); ++i) { if(m_task == MOVE && i == m_pressed_column) { painter.setBrush(m_normal_bg); painter.setPen(m_current); - painter.drawRect(m_rects[i].x(), 0, - m_rects[i].width(), height()-1); + painter.drawRect(m_columns[i]->rect.x(), 0, + m_columns[i]->rect.width(), height()-1); painter.setBrush(m_normal); painter.setPen(m_normal_bg); continue; } - painter.drawText(m_rects[i].right() - m_padding - m_metrics->width(m_names[i]), - m_metrics->ascent(), m_names[i]); + painter.drawText(m_columns[i]->rect.right() - m_padding - m_metrics->width(m_columns[i]->name), + m_metrics->ascent(), m_columns[i]->name); - painter.drawLine(m_rects[i].x()-1, 0, - m_rects[i].x()-1, height()+1); + painter.drawLine(m_columns[i]->rect.x()-1, 0, + m_columns[i]->rect.x()-1, height()+1); if(i == m_sorting_column) { - painter.drawPixmap(m_rects[i].x() + 4, + painter.drawPixmap(m_columns[i]->rect.x() + 4, (height() - m_arrow_up.height()) / 2, m_reverted ? m_arrow_up : m_arrow_down); } @@ -507,56 +542,56 @@ void PlayListHeader::paintEvent(QPaintEvent *) { painter.setPen(m_normal); painter.drawRect(m_mouse_pos.x() - m_press_offset, 0, - m_rects.at(m_pressed_column).width(), height()); + m_columns[m_pressed_column]->rect.width(), height()); painter.setPen(m_normal_bg); painter.drawText(m_mouse_pos.x() - m_press_offset + - m_rects.at(m_pressed_column).width() - m_padding - - m_metrics->width(m_names.at(m_pressed_column)), - m_metrics->ascent(), m_names.at(m_pressed_column)); + m_columns[m_pressed_column]->rect.width() - m_padding - + m_metrics->width(m_columns[m_pressed_column]->name), + m_metrics->ascent(), m_columns[m_pressed_column]->name); } } else { if(m_number_width) { - painter.drawLine(m_rects.at(0).x(), 0, - m_rects.at(0).x(), height()); + painter.drawLine(m_columns[0]->rect.x(), 0, + m_columns[0]->rect.x(), height()); } - if(m_names.count() == 1) + if(m_columns.count() == 1) { - painter.drawText(m_rects[0].x() + m_padding, m_metrics->ascent(), m_names[0]); + painter.drawText(m_columns[0]->rect.x() + m_padding, m_metrics->ascent(), m_columns[0]->name); if(m_sorting_column == 0) { - painter.drawPixmap(m_rects[0].right() - m_arrow_up.width() - 4, + painter.drawPixmap(m_columns[0]->rect.right() - m_arrow_up.width() - 4, (height() - m_arrow_up.height()) / 2, m_reverted ? m_arrow_up : m_arrow_down); } return; } - for(int i = 0; i < m_rects.count(); ++i) + for(int i = 0; i < m_columns.count(); ++i) { if(m_task == MOVE && i == m_pressed_column) { painter.setBrush(m_normal_bg); painter.setPen(m_current); - painter.drawRect(m_rects[i].x(), 0, - m_rects[i].width(), height()-1); + painter.drawRect(m_columns[i]->rect.x(), 0, + m_columns[i]->rect.width(), height()-1); painter.setBrush(m_normal); painter.setPen(m_normal_bg); continue; } - painter.drawText(m_rects[i].x() + m_padding, m_metrics->ascent(), m_names[i]); + painter.drawText(m_columns[i]->rect.x() + m_padding, m_metrics->ascent(), m_columns[i]->name); - painter.drawLine(m_rects[i].right()+1, 0, - m_rects[i].right()+1, height()+1); + painter.drawLine(m_columns[i]->rect.right()+1, 0, + m_columns[i]->rect.right()+1, height()+1); if(i == m_sorting_column) { - painter.drawPixmap(m_rects[i].right() - m_arrow_up.width() - 4, + painter.drawPixmap(m_columns[i]->rect.right() - m_arrow_up.width() - 4, (height() - m_arrow_up.height()) / 2, m_reverted ? m_arrow_up : m_arrow_down); } @@ -566,11 +601,11 @@ void PlayListHeader::paintEvent(QPaintEvent *) { painter.setPen(m_normal); painter.drawRect(m_mouse_pos.x() - m_press_offset, 0, - m_rects.at(m_pressed_column).width(), height()); + m_columns[m_pressed_column]->rect.width(), height()); painter.setPen(m_normal_bg); painter.drawText(m_mouse_pos.x() - m_press_offset + m_padding, - m_metrics->ascent(), m_names.at(m_pressed_column)); + m_metrics->ascent(), m_columns[m_pressed_column]->name); } } } @@ -593,9 +628,9 @@ void PlayListHeader::loadColors() int PlayListHeader::findColumn(QPoint pos) { - for(int i = 0; i < m_rects.count(); ++i) + for(int i = 0; i < m_columns.count(); ++i) { - if(m_rects.at(i).contains(pos)) + if(m_columns[i]->rect.contains(pos)) return i; } return -1; diff --git a/src/plugins/Ui/skinned/playlistheader.h b/src/plugins/Ui/skinned/playlistheader.h index b773de749..0468fab3f 100644 --- a/src/plugins/Ui/skinned/playlistheader.h +++ b/src/plugins/Ui/skinned/playlistheader.h @@ -72,19 +72,36 @@ private: void loadColors(); int findColumn(QPoint pos); + struct Column + { + Column() + { + size = 150; + minSize = 30; + autoResize = false; + } + + QString name; + int size; + int minSize; + QRect rect; //geometry + bool autoResize; + }; + Skin *m_skin; QFontMetrics *m_metrics; QMenu *m_menu; QFont m_font; QColor m_normal, m_normal_bg, m_current; - QList <QRect> m_rects; - QStringList m_names; + //QList <QRect> m_rects; + //QStringList m_names; QPoint m_pressed_pos; QPoint m_mouse_pos; PlayListHeaderModel *m_model; QAction *m_autoResize; QPixmap m_arrow_up, m_arrow_down; - QList<int> m_sizes, m_minimal_sizes; + //QList<int> m_sizes, m_minimal_sizes; + QList<Column*> m_columns; bool m_reverted; int m_number_width; int m_pressed_column; @@ -93,6 +110,7 @@ private: int m_padding; int m_pl_padding; int m_sorting_column; + bool m_update; enum { diff --git a/src/qmmpui/playlistheadermodel.cpp b/src/qmmpui/playlistheadermodel.cpp index 4c228945d..80943979a 100644 --- a/src/qmmpui/playlistheadermodel.cpp +++ b/src/qmmpui/playlistheadermodel.cpp @@ -18,7 +18,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include <QSettings> #include <QApplication> #include <qmmp/qmmp.h> #include "columneditor_p.h" @@ -39,10 +38,54 @@ PlayListHeaderModel::PlayListHeaderModel(QObject *parent) : PlayListHeaderModel::~PlayListHeaderModel() { - sync(); m_columns.clear(); } +void PlayListHeaderModel::restoreSettings(const QString &groupName) +{ + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup(groupName); + restoreSettings(&settings); + settings.endGroup(); +} + +void PlayListHeaderModel::restoreSettings(QSettings *settings) +{ + QStringList names = settings->value("pl_column_names").toStringList(); + QStringList patterns = settings->value("pl_column_names").toStringList(); + + if(!names.isEmpty() && (names.count() == patterns.count())) + { + m_columns.clear(); + for(int i = 0; i < m_columns.count(); ++i) + { + ColumnHeader h = {names.at(i), patterns.at(i)}; + m_columns.append(h); + } + } +} + +void PlayListHeaderModel::saveSettings(const QString &groupName) +{ + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup(groupName); + saveSettings(&settings); + settings.endGroup(); +} + +void PlayListHeaderModel::saveSettings(QSettings *settings) +{ + QStringList names, patterns; + for(int i = 0; i < m_columns.count(); ++i) + { + names << m_columns[i].name; + patterns << m_columns[i].pattern; + } + + settings->setValue("pl_column_names", names); + settings->setValue("pl_column_patterns", patterns); +} + void PlayListHeaderModel::insert(int index, const QString &name, const QString &pattern) { if(index < 0 || index > m_columns.size()) @@ -55,7 +98,7 @@ void PlayListHeaderModel::insert(int index, const QString &name, const QString & col.name = name; col.pattern = pattern; m_columns.insert(index, col); - sync(); + rebuildFormatters(); emit columnAdded(index); emit headerChanged(); } @@ -71,7 +114,7 @@ void PlayListHeaderModel::remove(int index) if(m_columns.count() == 1) return; - sync(); + rebuildFormatters(); emit columnRemoved(index); emit headerChanged(); } @@ -91,6 +134,7 @@ void PlayListHeaderModel::move(int from, int to) } m_columns.move(from, to); + rebuildFormatters(); emit columnMoved(from, to); emit headerChanged(); } @@ -111,6 +155,7 @@ void PlayListHeaderModel::execEdit(int index, QWidget *parent) { m_columns[index].name = editor.name(); m_columns[index].pattern = editor.pattern(); + rebuildFormatters(); emit columnChanged(index); emit headerChanged(); } @@ -157,24 +202,10 @@ const QString PlayListHeaderModel::pattern(int index) const return m_columns[index].pattern; } -void PlayListHeaderModel::sync() +void PlayListHeaderModel::rebuildFormatters() { - /*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()); + QStringList patterns; for(int i = 0; i < m_columns.count(); ++i) - { - s.beginGroup(QString("column%1").arg(i)); - ColumnHeader col = m_columns.at(i); - s.setValue("name", col.name); - s.setValue("pattern", col.pattern); - s.endGroup(); - } - s.setValue("column_count", m_columns.count()); - for(int i = m_columns.count(); i < old_count; ++i) - { - s.remove(QString("column%1").arg(i)); - } - s.endGroup();*/ + patterns.append(m_columns[i].pattern); + m_helper->setTitleFormats(patterns); } diff --git a/src/qmmpui/playlistheadermodel.h b/src/qmmpui/playlistheadermodel.h index 561151c66..6ce4e8c71 100644 --- a/src/qmmpui/playlistheadermodel.h +++ b/src/qmmpui/playlistheadermodel.h @@ -23,6 +23,7 @@ #include <QObject> #include <QWidget> +#include <QSettings> #include "metadataformatter.h" class MetaDataHelper; @@ -38,6 +39,11 @@ public: ~PlayListHeaderModel(); + void restoreSettings(const QString &groupName); + void restoreSettings(QSettings *settings); + void saveSettings(const QString &groupName); + void saveSettings(QSettings *settings); + void insert(int index, const QString &name, const QString &pattern); void remove(int index); void move(int from, int to); @@ -57,7 +63,8 @@ signals: void headerChanged(); private: - void sync(); + void rebuildFormatters(); + struct ColumnHeader { QString name; |
