diff options
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 9a0587952..08720f261 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -101,7 +101,7 @@ void ListWidget::readSettings() if (m_update) { - m_row_count = height() / m_drawer.rowHeight(); + m_row_count = (height() - (m_header ? m_header->height() : 0)) / m_drawer.rowHeight(); updateList(PlayListModel::STRUCTURE); if(m_popupWidget) { @@ -254,7 +254,7 @@ void ListWidget::mousePressEvent(QMouseEvent *e) void ListWidget::resizeEvent(QResizeEvent *e) { m_header->setGeometry(0,0,width(), m_drawer.rowHeight()); - m_row_count = e->size().height() / m_drawer.rowHeight(); + m_row_count = (e->size().height() - (m_header ? m_header->height() : 0)) / m_drawer.rowHeight(); updateList(PlayListModel::STRUCTURE); QWidget::resizeEvent(e); } @@ -350,7 +350,8 @@ void ListWidget::updateList(int flags) if(flags == PlayListModel::SELECTION) continue; - row->rect = QRect(5, i * m_drawer.rowHeight(), width() - 10, m_drawer.rowHeight() - 1); + row->rect = QRect(5, (m_header ? m_header->height() : 0) + i * m_drawer.rowHeight(), + width() - 10, m_drawer.rowHeight() - 1); row->titles = items[i]->formattedTitles(); (m_first + i) == m_model->currentIndex() ? row->flags |= ListWidgetRow::CURRENT : @@ -587,6 +588,8 @@ void ListWidget::mouseReleaseEvent(QMouseEvent *e) int ListWidget::indexAt(int y) const { + if(m_header) + y -= m_header->height(); for (int i = 0; i < qMin(m_row_count, m_model->count() - m_first); ++i) { if ((y >= i * m_drawer.rowHeight()) && (y <= (i+1) * m_drawer.rowHeight())) |
