aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/playlistheader.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-07-01 11:28:20 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-07-01 11:28:20 +0000
commit98df400e14cca21ac151c749ed91fb1f415b147a (patch)
treee79e019bb785f494e66d0f82a8e5a2aee5e6ab0a /src/plugins/Ui/skinned/playlistheader.cpp
parentf19c54c167659d8476f445b5c22a5e5237b50c93 (diff)
downloadqmmp-98df400e14cca21ac151c749ed91fb1f415b147a.tar.gz
qmmp-98df400e14cca21ac151c749ed91fb1f415b147a.tar.bz2
qmmp-98df400e14cca21ac151c749ed91fb1f415b147a.zip
skinned: added feature to adjust columns
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5191 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/playlistheader.cpp')
-rw-r--r--src/plugins/Ui/skinned/playlistheader.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/plugins/Ui/skinned/playlistheader.cpp b/src/plugins/Ui/skinned/playlistheader.cpp
index aed217e26..20fbe108d 100644
--- a/src/plugins/Ui/skinned/playlistheader.cpp
+++ b/src/plugins/Ui/skinned/playlistheader.cpp
@@ -39,6 +39,7 @@
#include "playlistheader.h"
#define INITAL_SIZE 150
+#define MAX_COLUMNS 7
#define MIN_SIZE 30
static const char * const skinned_arrow_down_xpm[] = {
@@ -298,6 +299,7 @@ void PlayListHeader::restoreSize()
return;
m_model->setData(m_pressed_column, SIZE, INITAL_SIZE);
+ adjustColumns();
updateColumns();
emit resizeColumnRequest();
}
@@ -305,6 +307,7 @@ void PlayListHeader::restoreSize()
void PlayListHeader::onColumnAdded(int index)
{
m_model->setData(index, SIZE, INITAL_SIZE);
+ adjustColumns();
updateColumns();
}
@@ -380,6 +383,9 @@ void PlayListHeader::mouseMoveEvent(QMouseEvent *e)
else
setSize(m_pressed_column, m_old_size + e->pos().x() - m_pressed_pos.x());
setSize(m_pressed_column, qMax(size(m_pressed_column), MIN_SIZE));
+
+ adjustColumns();
+
updateColumns();
emit resizeColumnRequest();
}
@@ -467,6 +473,13 @@ void PlayListHeader::resizeEvent(QResizeEvent *e)
if(index >= 0 && e->oldSize().width() > 10)
{
setSize(index, qMax(MIN_SIZE, size(index) + delta));
+ adjustColumns();
+ updateColumns();
+ return;
+ }
+
+ if(adjustColumns())
+ {
updateColumns();
return;
}
@@ -677,6 +690,30 @@ const QString PlayListHeader::name(int index) const
return m_model->data(index, NAME).toString();
}
+bool PlayListHeader::adjustColumns()
+{
+ int total_size = 0;
+ foreach (int s, sizes())
+ {
+ total_size += s;
+ }
+
+ if(total_size > width() - 10)
+ {
+ int delta = total_size - width() + 10;
+ for(int i = m_model->count() - 1; i >= 0 && delta > 0; i--)
+ {
+ int dx = size(i) - qMax(MIN_SIZE, size(i) - delta);
+ setSize(i, qMax(MIN_SIZE, size(i) - delta));
+ delta -= dx;
+ }
+ updateColumns();
+ return true;
+ }
+
+ return false;
+}
+
void PlayListHeader::writeSettings()
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);