aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/columnmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/columnmanager.cpp')
-rw-r--r--src/qmmpui/columnmanager.cpp33
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());