aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-02-16 06:39:43 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-02-16 06:39:43 +0000
commitc5aca61279f4a65459b75e5bf0902fde07ccd0a5 (patch)
treefceedcce53e85dc0204c37ff874356f4304ba91b /src/plugins/Ui
parentd401de1aa58ff1a80645072958ae4e3896408449 (diff)
downloadqmmp-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.cpp10
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.cpp11
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.h2
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