diff options
Diffstat (limited to 'src/qmmpui/columnmanager.cpp')
| -rw-r--r-- | src/qmmpui/columnmanager.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/qmmpui/columnmanager.cpp b/src/qmmpui/columnmanager.cpp index 8da0e5c0a..95c0bb768 100644 --- a/src/qmmpui/columnmanager.cpp +++ b/src/qmmpui/columnmanager.cpp @@ -38,6 +38,7 @@ ColumnManager::ColumnManager(QObject *parent) : col.pattern = s.value("pattern", "%p%if(%p&%t, - ,)%t").toString(); col.size = s.value("size", 150).toInt(); col.titleFormatter = new MetaDataFormatter(col.pattern); + col.autoResize = s.value("autoresize", false).toBool(); m_columns.append(col); s.endGroup(); } @@ -68,6 +69,7 @@ void ColumnManager::insert(int index, const QString &name, const QString &patter col.pattern = pattern; col.titleFormatter = new MetaDataFormatter(pattern); col.size = 50; + col.autoResize = false; m_columns.insert(index, col); sync(); emit inserted(index); @@ -102,6 +104,21 @@ void ColumnManager::resize(int index, int size) emit resized(index); } +void ColumnManager::setAutoResize(int index, bool autoResize) +{ + if(index < 0 || index >= m_columns.size()) + { + qWarning("ColumnManager: index is out of range"); + return; + } + + if(m_columns[index].autoResize != autoResize) + { + m_columns[index].autoResize = autoResize; + emit changed(index); + } +} + void ColumnManager::move(int from, int to) { if(from < 0 || from >= m_columns.size()) @@ -131,12 +148,14 @@ void ColumnManager::execEditor(int index, QWidget *parent) if(!parent) parent = qApp->activeWindow(); - ColumnEditor editor(m_columns[index].name, m_columns[index].pattern, parent); + ColumnEditor editor(m_columns[index].name, m_columns[index].pattern, + m_columns[index].autoResize, parent); if(editor.exec() == QDialog::Accepted) { m_columns[index].name = editor.name(); m_columns[index].pattern = editor.pattern(); m_columns[index].titleFormatter->setPattern(editor.pattern()); + m_columns[index].autoResize = editor.autoResize(); emit changed(index); } } @@ -185,6 +204,17 @@ const QString ColumnManager::pattern(int index) const return m_columns[index].pattern; } +QList<int> ColumnManager::autoResizeColumns() const +{ + QList<int> columns; + for(int i = 0; i < m_columns.count(); ++i) + { + if(m_columns[i].autoResize) + columns.append(i); + } + return columns; +} + void ColumnManager::sync() { QSettings s (Qmmp::configFile(), QSettings::IniFormat); @@ -198,6 +228,7 @@ void ColumnManager::sync() 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()); |
