diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-02-06 20:11:25 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-02-06 20:11:25 +0000 |
| commit | 0f5577dce47ff1b801ab08ccd46fa3cafeeeaf54 (patch) | |
| tree | f4a5a962ebb203085cb1b72223b41aae867cd0cd /src/plugins/Ui | |
| parent | 6dae6a05d3f92c87c729e39155c27d36a9117639 (diff) | |
| download | qmmp-0f5577dce47ff1b801ab08ccd46fa3cafeeeaf54.tar.gz qmmp-0f5577dce47ff1b801ab08ccd46fa3cafeeeaf54.tar.bz2 qmmp-0f5577dce47ff1b801ab08ccd46fa3cafeeeaf54.zip | |
reduced paddings in the playlist
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4721 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 75 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.h | 8 |
2 files changed, 41 insertions, 42 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 3c3294961..2b1032fa8 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -171,11 +171,11 @@ void ListWidget::paintEvent(QPaintEvent *) if(m_rows[i]->separator) { - drawSeparator(&painter, i, rtl); + drawSeparator(&painter, m_rows[i], rtl); continue; } - drawTrack(&painter, i, rtl); + drawTrack(&painter, m_rows[i], rtl); } //draw drop line if(m_drop_index != INVALID_INDEX) @@ -265,7 +265,7 @@ void ListWidget::mousePressEvent(QMouseEvent *e) void ListWidget::resizeEvent(QResizeEvent *e) { - m_row_count = e->size().height() / (m_metrics->lineSpacing() + 2); + m_row_count = e->size().height() / (m_metrics->lineSpacing() + 1); updateList(PlayListModel::STRUCTURE); QWidget::resizeEvent(e); } @@ -362,7 +362,10 @@ void ListWidget::updateList(int flags) if(flags == PlayListModel::SELECTION) continue; + row->bgY = i * (m_metrics->lineSpacing() + 1); + row->textY = i * (m_metrics->lineSpacing() + 1) + m_metrics->lineSpacing() - m_metrics->descent(); row->title = items[i]->formattedTitle(); + row->current = (m_first + i) == m_model->currentIndex(); if(items[i]->isGroup()) { row->separator = true; @@ -439,103 +442,95 @@ void ListWidget::drawBackground(QPainter *painter, int i) { painter->setBrush(m_rows[i]->selected ? m_selected_bg : m_normal_bg); painter->setPen(m_normal); - painter->drawRect (6, i * (m_metrics->lineSpacing() + 2), - width() - 10, m_metrics->lineSpacing() + 1); + painter->drawRect (6, m_rows[i]->bgY, width() - 10, + m_metrics->lineSpacing()/* + 1*/); } - else + else if (m_rows[i]->selected) { - if (m_rows[i]->selected) - { - painter->setBrush(QBrush(m_selected_bg)); - painter->setPen(m_selected_bg); - painter->drawRect (6, i * (m_metrics->lineSpacing() + 2), - width() - 10, m_metrics->lineSpacing() + 1); - } + painter->setBrush(QBrush(m_selected_bg)); + painter->setPen(m_selected_bg); + painter->drawRect (6, m_rows[i]->bgY, width() - 10, + m_metrics->lineSpacing()/* + 1*/); } } -void ListWidget::drawSeparator(QPainter *painter, int i, bool rtl) +void ListWidget::drawSeparator(QPainter *painter, ListWidgetRow *row, bool rtl) { int sx = 55; - int sy = (i + 1) * (2 + m_metrics->lineSpacing()) - 2 - m_metrics->descent(); painter->setPen(m_normal); if(m_number_width) sx += m_number_width + m_metrics->width("9"); if(rtl) - sx = width() - sx - m_metrics->width(m_rows[i]->title) - 5; + sx = width() - sx - m_metrics->width(row->title) - 5; - painter->drawText(sx, sy, m_rows[i]->title); + painter->drawText(sx, row->textY, row->title); - sy -= (m_metrics->lineSpacing()/2 - 2); + int sy = row->textY - m_metrics->lineSpacing()/2 + 2; if(rtl) { painter->drawLine(10, sy, sx - 5, sy); - painter->drawLine(sx + m_metrics->width(m_rows[i]->title) + 5, sy, - sx + m_metrics->width(m_rows[i]->title) + 35, sy); + painter->drawLine(sx + m_metrics->width(row->title) + 5, sy, + sx + m_metrics->width(row->title) + 35, sy); } else { painter->drawLine(sx - 45, sy, sx - 5, sy); - painter->drawLine(sx + m_metrics->width(m_rows[i]->title) + 5, sy, + painter->drawLine(sx + m_metrics->width(row->title) + 5, sy, width() - 10, sy); } } -void ListWidget::drawTrack(QPainter *painter, int i, bool rtl) +void ListWidget::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl) { int sx = 0; - int sy = (i + 1) * (2 + m_metrics->lineSpacing()) - 2 - m_metrics->descent(); - if (m_model->currentIndex() == m_first + i) - painter->setPen(m_current); - else - painter->setPen(m_normal); //243,58 + painter->setPen(row->current ? m_current : m_normal); if(m_number_width) { - QString number = QString("%1").arg(m_rows[i]->number); + QString number = QString("%1").arg(row->number); sx = 10 + m_number_width - m_metrics->width(number); if(rtl) sx = width() - sx - m_metrics->width(number); - painter->drawText(sx, sy, number); + painter->drawText(sx, row->textY, number); sx = 10 + m_number_width + m_metrics->width("9"); if(rtl) - sx = width() - sx - m_metrics->width(m_rows[i]->title); + sx = width() - sx - m_metrics->width(row->title); } else { - sx = rtl ? width() - 10 - m_metrics->width(m_rows[i]->title) : 10; + sx = rtl ? width() - 10 - m_metrics->width(row->title) : 10; } - painter->drawText(sx, sy, m_rows[i]->title); + painter->drawText(sx, row->textY, row->title); - QString extra_string = m_rows[i]->extraString; + QString extra_string = row->extraString; if(!extra_string.isEmpty()) { painter->setFont(m_extra_font); - if(m_rows[i]->length.isEmpty()) + if(row->length.isEmpty()) { sx = rtl ? 7 : width() - 7 - m_extra_metrics->width(extra_string); - painter->drawText(sx, sy, extra_string); + painter->drawText(sx, row->textY, extra_string); } else { - sx = width() - 10 - m_extra_metrics->width(extra_string) - m_metrics->width(m_rows[i]->length); + sx = width() - 10 - m_extra_metrics->width(extra_string) - m_metrics->width(row->length); if(rtl) sx = width() - sx - m_extra_metrics->width(extra_string); - painter->drawText(sx, sy, extra_string); + painter->drawText(sx, row->textY, extra_string); } painter->setFont(m_font); } - sx = rtl ? 9 : width() - 7 - m_metrics->width(m_rows[i]->length); - painter->drawText(sx, sy, m_rows[i]->length); + sx = rtl ? 9 : width() - 7 - m_metrics->width(row->length); + painter->drawText(sx, row->textY, row->length); } void ListWidget::setModel(PlayListModel *selected, PlayListModel *previous) @@ -715,7 +710,7 @@ int ListWidget::indexAt(int y) const { for (int i = 0; i < qMin(m_row_count, m_model->count() - m_first); ++i) { - if ((y >= i * (m_metrics->lineSpacing() + 2)) && (y <= (i+1) * (m_metrics->lineSpacing() + 2))) + if ((y >= i * (m_metrics->lineSpacing() + 1)) && (y <= (i+1) * (m_metrics->lineSpacing() + 1))) return m_first + i; } return INVALID_INDEX; diff --git a/src/plugins/Ui/skinned/listwidget.h b/src/plugins/Ui/skinned/listwidget.h index 378c610b0..5a95e7e42 100644 --- a/src/plugins/Ui/skinned/listwidget.h +++ b/src/plugins/Ui/skinned/listwidget.h @@ -49,6 +49,10 @@ struct ListWidgetRow int number; bool separator; bool selected; + bool current; + //geometry + int bgY; //top of the background + int textY; //base line of the text }; /** @@ -111,8 +115,8 @@ private slots: private: void drawBackground(QPainter *painter, int i); - void drawSeparator(QPainter *painter, int i, bool rtl); - void drawTrack(QPainter *painter, int i, bool rtl); + void drawSeparator(QPainter *painter, ListWidgetRow *row, bool rtl); + void drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl); void loadColors(); bool m_update; |
