diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-07-01 17:35:46 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-07-01 17:35:46 +0000 |
| commit | b49213987a6ec79ed066957af41caef0998a905d (patch) | |
| tree | 961430594f197a1005cea7fb8f3731c1fb4326e1 /src/plugins/Ui/skinned/listwidgetdrawer.cpp | |
| parent | 01df53f1f7547bc891aa1fa987ee21ca39146d0e (diff) | |
| download | qmmp-b49213987a6ec79ed066957af41caef0998a905d.tar.gz qmmp-b49213987a6ec79ed066957af41caef0998a905d.tar.bz2 qmmp-b49213987a6ec79ed066957af41caef0998a905d.zip | |
fixed RTL locales support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5196 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/listwidgetdrawer.cpp')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidgetdrawer.cpp | 84 |
1 files changed, 45 insertions, 39 deletions
diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.cpp b/src/plugins/Ui/skinned/listwidgetdrawer.cpp index b13c9d6a9..fb0b87f9c 100644 --- a/src/plugins/Ui/skinned/listwidgetdrawer.cpp +++ b/src/plugins/Ui/skinned/listwidgetdrawer.cpp @@ -245,57 +245,64 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl painter->setFont(m_font); - /*if(rtl) + if(rtl) { - //|=duration=extra=|= col2=|= col1=|=number =| - if(row->numberColumnWidth) - { - sx -= row->numberColumnWidth; - painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); - QString number = QString("%1").arg(row->number); - painter->drawText(sx + m_padding, sy, number); - painter->setPen(m_normal); - painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); - } - - for(int i = 0; i < row->titles.count(); i++) + //|=duration=extra=|= col1=|=number =| + if(row->titles.count() == 1) { - if(sx - m_padding <= row->rect.x() + row->lengthColumnWidth) - break; + if(row->numberColumnWidth) + { + sx -= row->numberColumnWidth; + painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); + QString number = QString("%1").arg(row->number); + painter->drawText(sx + m_padding, sy, number); + painter->setPen(m_normal); + painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + } - int size = row->sizes[i]; - if(i == 0 && row->numberColumnWidth) - size -= row->numberColumnWidth; + sx -= m_metrics->width(row->titles[0]); + painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); + painter->drawText(sx - m_padding, sy, row->titles[0]); + sx = row->rect.x() + m_padding; painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); - painter->drawText(sx - m_padding - m_metrics->width(row->titles[i]), sy, row->titles[i]); - sx -= size; - if(row->titles.count() > 1 && sx > row->rect.x() + row->lengthColumnWidth) + if(m_show_lengths && !row->length.isEmpty()) { - painter->setPen(m_normal); - painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + painter->drawText(sx, sy, row->length); + sx += m_metrics->width(row->length); + sx += m_padding; } - } - - sx = row->rect.x() + m_padding; - painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); - if(m_show_lengths && !row->length.isEmpty()) - { - painter->drawText(sx, sy, row->length); - sx += m_metrics->width(row->length) + m_padding; + if(!row->extraString.isEmpty()) + { + painter->setFont(m_extra_font); + painter->drawText(sx, sy, row->extraString); + } } - - if(!row->extraString.isEmpty()) + else //|=extra col1=|= col2=| { - painter->setFont(m_extra_font); - painter->drawText(sx, sy, row->extraString); + for(int i = 0; i < row->sizes.count(); i++) + { + painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); + painter->drawText(sx - m_padding - m_metrics->width(row->titles[i]), sy, row->titles[i]); + sx -= row->sizes[i]; + + if(i == row->trackStateColumn && !row->extraString.isEmpty()) + { + painter->setFont(m_extra_font); + painter->drawText(sx + m_padding, sy, row->extraString); + painter->setFont(m_font); + } + + painter->setPen(m_normal); + painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); + } } } - else*/ + else { - //|= number=|=col1 =|=extra=duration=| + //|= number=|=col =|=extra=duration=| if(row->titles.count() == 1) { if(row->numberColumnWidth) @@ -308,7 +315,6 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl painter->drawLine(sx, row->rect.top(), sx, row->rect.bottom() + 1); } - painter->setPen(row->flags & ListWidgetRow::CURRENT ? m_current : m_normal); painter->drawText(sx + m_padding, sy, row->titles[0]); @@ -329,7 +335,7 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, ListWidgetRow *row, bool rtl painter->drawText(sx, sy, row->extraString); } } - else + else //|=col1 extra=|=col2 =| { for(int i = 0; i < row->sizes.count(); i++) { |
