aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/playlistheader.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-04-14 17:39:10 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-04-14 17:39:10 +0000
commite83c06bb9909388aae4c1c6fdafe3781d4ab289a (patch)
tree125112a38958a49d6beb532ede3fa48157618ab9 /src/plugins/Ui/skinned/playlistheader.cpp
parent4bfe51345d595d1ffc1b1ace32516f3c5fe1a896 (diff)
downloadqmmp-e83c06bb9909388aae4c1c6fdafe3781d4ab289a.tar.gz
qmmp-e83c06bb9909388aae4c1c6fdafe3781d4ab289a.tar.bz2
qmmp-e83c06bb9909388aae4c1c6fdafe3781d4ab289a.zip
fixed sort indicators behaviour
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4848 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/playlistheader.cpp')
-rw-r--r--src/plugins/Ui/skinned/playlistheader.cpp42
1 files changed, 37 insertions, 5 deletions
diff --git a/src/plugins/Ui/skinned/playlistheader.cpp b/src/plugins/Ui/skinned/playlistheader.cpp
index 4d207ef1e..387691d59 100644
--- a/src/plugins/Ui/skinned/playlistheader.cpp
+++ b/src/plugins/Ui/skinned/playlistheader.cpp
@@ -68,6 +68,7 @@ PlayListHeader::PlayListHeader(QWidget *parent) :
m_show_number = false;
m_align_numbres = false;
m_number_width = 0;
+ m_sorting_column = -1;
m_task = NO_TASK;
m_model = QmmpUiSettings::instance()->headerModel();
m_skin = Skin::instance();
@@ -142,14 +143,41 @@ void PlayListHeader::updateColumns()
for(int i = 0; i < m_model->count(); ++i)
{
m_rects << QRect(sx, 0, m_model->size(i), height());
- m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight,
- m_model->size(i) - 2 * m_padding);
+ if(i == m_sorting_column)
+ {
+ m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight,
+ m_model->size(i) - 2 * m_padding - m_arrow_up.width() - 4);
+ }
+ else
+ {
+ m_names << m_metrics->elidedText(m_model->name(i), Qt::ElideRight,
+ m_model->size(i) - 2 * m_padding);
+ }
sx += m_model->size(i);
}
update();
}
+void PlayListHeader::showSortIndicator(int column, bool reverted)
+{
+ if(m_sorting_column == column && m_reverted == reverted)
+ return;
+
+ m_sorting_column = column;
+ m_reverted = reverted;
+ updateColumns();
+}
+
+void PlayListHeader::hideSortIndicator()
+{
+ if(m_sorting_column != -1)
+ {
+ m_sorting_column = -1;
+ updateColumns();
+ }
+}
+
void PlayListHeader::updateSkin()
{
loadColors();
@@ -240,6 +268,7 @@ void PlayListHeader::mouseMoveEvent(QMouseEvent *e)
{
m_task = MOVE;
}
+
if(m_task == RESIZE && m_model->count() > 1)
{
m_model->resize(m_pressed_column, m_old_size + e->pos().x() - m_pressed_pos.x());
@@ -366,8 +395,11 @@ void PlayListHeader::paintEvent(QPaintEvent *)
painter.drawLine(m_rects[i].right()+1, 0,
m_rects[i].right()+1, height()+1);
- painter.drawPixmap(m_rects[i].right() - m_arrow_up.width() - 4, (height() - m_arrow_up.height()) / 2, m_arrow_up);
-
+ if(i == m_sorting_column)
+ {
+ painter.drawPixmap(m_rects[i].right() - m_arrow_up.width() - 4,
+ (height() - m_arrow_up.height()) / 2, m_reverted ? m_arrow_up : m_arrow_down);
+ }
}
if(m_task == MOVE)
@@ -389,7 +421,7 @@ void PlayListHeader::loadColors()
m_current.setNamedColor(m_skin->getPLValue("current"));
QPixmap px1(skinned_arrow_up_xpm);
- QPixmap px2(skinned_arrow_up_xpm);
+ QPixmap px2(skinned_arrow_down_xpm);
m_arrow_up = px1;
m_arrow_down = px2;
m_arrow_up.fill(m_normal_bg);