aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/playlistheader.cpp
diff options
context:
space:
mode:
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);