diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-02-16 06:39:43 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-02-16 06:39:43 +0000 |
| commit | c5aca61279f4a65459b75e5bf0902fde07ccd0a5 (patch) | |
| tree | fceedcce53e85dc0204c37ff874356f4304ba91b /src/plugins/Ui | |
| parent | d401de1aa58ff1a80645072958ae4e3896408449 (diff) | |
| download | qmmp-c5aca61279f4a65459b75e5bf0902fde07ccd0a5.tar.gz qmmp-c5aca61279f4a65459b75e5bf0902fde07ccd0a5.tar.bz2 qmmp-c5aca61279f4a65459b75e5bf0902fde07ccd0a5.zip | |
ListWidgetDrawer: added rowHeight() function
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4732 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.h | 2 |
3 files changed, 16 insertions, 7 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 4a7df0263..832d22cf9 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -96,7 +96,7 @@ void ListWidget::readSettings() delete m_extra_metrics; m_metrics = new QFontMetrics(m_font); m_extra_metrics = new QFontMetrics(m_extra_font); - m_row_count = height() / (m_metrics->lineSpacing() + 1); + m_row_count = height() / m_drawer.rowHeight(); updateList(PlayListModel::STRUCTURE); if(m_popupWidget) { @@ -254,7 +254,7 @@ void ListWidget::mousePressEvent(QMouseEvent *e) void ListWidget::resizeEvent(QResizeEvent *e) { - m_row_count = e->size().height() / (m_metrics->lineSpacing() + 1); + m_row_count = e->size().height() / m_drawer.rowHeight(); updateList(PlayListModel::STRUCTURE); QWidget::resizeEvent(e); } @@ -355,8 +355,8 @@ void ListWidget::updateList(int flags) if(flags == PlayListModel::SELECTION) continue; - row->textY = i * (m_metrics->lineSpacing() + 1) + m_metrics->lineSpacing() - m_metrics->descent(); - row->rect = QRect(5, i * (m_metrics->lineSpacing() + 1), width() - 10, m_metrics->lineSpacing()); + row->textY = i * m_drawer.rowHeight() + m_metrics->lineSpacing() - m_metrics->descent(); + row->rect = QRect(5, i * m_drawer.rowHeight(), width() - 10, m_metrics->lineSpacing()); row->title = items[i]->formattedTitle(); (m_first + i) == m_model->currentIndex() ? row->flags |= ListWidgetRow::CURRENT : @@ -608,7 +608,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() + 1)) && (y <= (i+1) * (m_metrics->lineSpacing() + 1))) + if ((y >= i * m_drawer.rowHeight()) && (y <= (i+1) * m_drawer.rowHeight())) return m_first + i; } return INVALID_INDEX; diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.cpp b/src/plugins/Ui/skinned/listwidgetdrawer.cpp index 9a263f05b..66dc61e75 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.cpp +++ b/src/plugins/Ui/skinned/listwidgetdrawer.cpp @@ -29,6 +29,7 @@ ListWidgetDrawer::ListWidgetDrawer() { m_skin = Skin::instance(); m_update = false; + m_row_height = 0; readSettings(); loadColors(); } @@ -57,6 +58,7 @@ void ListWidgetDrawer::readSettings() m_update = true; m_metrics = new QFontMetrics(m_font); m_extra_metrics = new QFontMetrics(m_extra_font); + m_row_height = m_metrics->lineSpacing() + 1; } void ListWidgetDrawer::loadColors() @@ -67,6 +69,11 @@ void ListWidgetDrawer::loadColors() m_selected_bg.setNamedColor(m_skin->getPLValue("selectedbg")); } +int ListWidgetDrawer::rowHeight() const +{ + return m_row_height; +} + void ListWidgetDrawer::fillBackground(QPainter *painter, int width, int height) { painter->setBrush(m_normal_bg); @@ -175,8 +182,8 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, int m_number_width, ListWidg void ListWidgetDrawer::drawDropLine(QPainter *painter, int row_number, int width) { painter->setPen(m_current); - painter->drawLine (5, row_number * (m_metrics->lineSpacing() + 1), - width - 5 , row_number * (m_metrics->lineSpacing() + 1)); + painter->drawLine (5, row_number * m_row_height, + width - 5 , row_number * m_row_height); } void ListWidgetDrawer::drawVerticalLine(QPainter *painter, int m_number_width, int row_count, int width, bool rtl) diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.h b/src/plugins/Ui/skinned/listwidgetdrawer.h index 8a1e0460e..d5f7bc877 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.h +++ b/src/plugins/Ui/skinned/listwidgetdrawer.h @@ -66,6 +66,7 @@ public: void readSettings(); void loadColors(); + int rowHeight() const; void fillBackground(QPainter *painter, int width, int height); void drawBackground(QPainter *painter, ListWidgetRow *row); void drawSeparator(QPainter *painter, int m_number_width, ListWidgetRow *row, bool rtl); @@ -81,6 +82,7 @@ private: QFont m_font, m_extra_font; bool m_show_anchor; bool m_update; + int m_row_height; }; #endif // LISTWIDGETDRAWER_H |
