aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/configdialog.cpp2
-rw-r--r--src/ui/forms/configdialog.ui84
-rw-r--r--src/ui/listwidget.cpp35
-rw-r--r--src/ui/listwidget.h2
4 files changed, 92 insertions, 31 deletions
diff --git a/src/ui/configdialog.cpp b/src/ui/configdialog.cpp
index cda4ed330..26a71e38d 100644
--- a/src/ui/configdialog.cpp
+++ b/src/ui/configdialog.cpp
@@ -107,6 +107,7 @@ void ConfigDialog::readSettings()
}
ui.protocolCheckBox->setChecked(settings.value ("PlayList/show_protocol", false).toBool());
ui.numbersCheckBox->setChecked(settings.value ("PlayList/show_numbers", true).toBool());
+ ui.alignCheckBox->setChecked(settings.value ("PlayList/align_numbers", false).toBool());
ui.anchorCheckBox->setChecked(settings.value("PlayList/show_anchor", false).toBool());
ui.playlistsCheckBox->setChecked(settings.value("PlayList/show_plalists", false).toBool());
ui.popupCheckBox->setChecked(settings.value("PlayList/show_popup", false).toBool());
@@ -464,6 +465,7 @@ void ConfigDialog::saveSettings()
}
settings.setValue ("PlayList/show_protocol", ui.protocolCheckBox->isChecked());
settings.setValue ("PlayList/show_numbers", ui.numbersCheckBox->isChecked());
+ settings.setValue ("PlayList/align_numbers", ui.alignCheckBox->isChecked());
settings.setValue ("PlayList/show_anchor", ui.anchorCheckBox->isChecked());
settings.setValue ("PlayList/show_plalists", ui.playlistsCheckBox->isChecked());
settings.setValue ("PlayList/show_popup", ui.popupCheckBox->isChecked());
diff --git a/src/ui/forms/configdialog.ui b/src/ui/forms/configdialog.ui
index 305383b71..d6a6f7a47 100644
--- a/src/ui/forms/configdialog.ui
+++ b/src/ui/forms/configdialog.ui
@@ -581,14 +581,14 @@
</property>
</widget>
</item>
- <item row="5" column="0" colspan="2">
+ <item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="playlistsCheckBox">
<property name="text">
<string>Show playlists</string>
</property>
</widget>
</item>
- <item row="7" column="0" colspan="3">
+ <item row="8" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QCheckBox" name="popupCheckBox">
@@ -622,13 +622,23 @@
</item>
</layout>
</item>
- <item row="6" column="0" colspan="2">
+ <item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="anchorCheckBox">
<property name="text">
<string>Show anchor</string>
</property>
</widget>
</item>
+ <item row="5" column="0" colspan="3">
+ <widget class="QCheckBox" name="alignCheckBox">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Align song numbers</string>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
@@ -1345,12 +1355,12 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>272</x>
- <y>40</y>
+ <x>286</x>
+ <y>39</y>
</hint>
<hint type="destinationlabel">
- <x>272</x>
- <y>40</y>
+ <x>286</x>
+ <y>39</y>
</hint>
</hints>
</connection>
@@ -1361,8 +1371,8 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>272</x>
- <y>40</y>
+ <x>286</x>
+ <y>39</y>
</hint>
<hint type="destinationlabel">
<x>272</x>
@@ -1409,12 +1419,12 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>226</x>
- <y>33</y>
+ <x>362</x>
+ <y>310</y>
</hint>
<hint type="destinationlabel">
- <x>256</x>
- <y>33</y>
+ <x>455</x>
+ <y>315</y>
</hint>
</hints>
</connection>
@@ -1473,12 +1483,12 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>263</x>
- <y>54</y>
+ <x>286</x>
+ <y>39</y>
</hint>
<hint type="destinationlabel">
- <x>263</x>
- <y>50</y>
+ <x>286</x>
+ <y>39</y>
</hint>
</hints>
</connection>
@@ -1489,12 +1499,12 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>263</x>
- <y>54</y>
+ <x>286</x>
+ <y>39</y>
</hint>
<hint type="destinationlabel">
- <x>263</x>
- <y>45</y>
+ <x>286</x>
+ <y>39</y>
</hint>
</hints>
</connection>
@@ -1505,12 +1515,12 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>263</x>
- <y>54</y>
+ <x>286</x>
+ <y>39</y>
</hint>
<hint type="destinationlabel">
- <x>256</x>
- <y>41</y>
+ <x>286</x>
+ <y>39</y>
</hint>
</hints>
</connection>
@@ -1521,8 +1531,8 @@
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
- <x>587</x>
- <y>415</y>
+ <x>651</x>
+ <y>458</y>
</hint>
<hint type="destinationlabel">
<x>225</x>
@@ -1537,8 +1547,8 @@
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
- <x>603</x>
- <y>422</y>
+ <x>651</x>
+ <y>458</y>
</hint>
<hint type="destinationlabel">
<x>141</x>
@@ -1546,5 +1556,21 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>numbersCheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>alignCheckBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>278</x>
+ <y>208</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>271</x>
+ <y>236</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
</ui>
diff --git a/src/ui/listwidget.cpp b/src/ui/listwidget.cpp
index 0c8df7c60..3f1ffae84 100644
--- a/src/ui/listwidget.cpp
+++ b/src/ui/listwidget.cpp
@@ -83,6 +83,7 @@ void ListWidget::readSettings()
m_extra_font.setPointSize(m_font.pointSize() - 1);
m_show_protocol = settings.value ("PlayList/show_protocol", false).toBool();
m_show_number = settings.value ("PlayList/show_numbers", true).toBool();
+ m_align_numbres = settings.value ("PlayList/align_numbers", false).toBool();
m_show_anchor = settings.value("PlayList/show_anchor", false).toBool();
bool show_popup = settings.value("PlayList/show_popup", false).toBool();
@@ -152,7 +153,19 @@ void ListWidget::paintEvent(QPaintEvent *)
m_painter.setPen(m_normal); //243,58
font_y = (i + 1) * (2 + m_metrics->lineSpacing()) - 2 - m_metrics->descent();
- m_painter.drawText(10, font_y, m_titles.at(i));
+
+
+
+ if(m_number_width)
+ {
+ QString number = QString("%1").arg(m_first+i+1);
+ m_painter.drawText(10 + m_number_width - m_extra_metrics->width(number),
+ font_y, number);
+ m_painter.drawText(10 + m_number_width + m_metrics->width("9"), font_y, m_titles.at(i));
+ }
+ else
+ m_painter.drawText(10, font_y, m_titles.at(i));
+
QString extra_string = getExtraString(m_first + i);
if(!extra_string.isEmpty())
@@ -169,6 +182,13 @@ void ListWidget::paintEvent(QPaintEvent *)
}
m_painter.drawText(width() - 7 - m_metrics->width(m_times.at(i)), font_y, m_times.at(i));
}
+ //draw line
+ if(m_number_width)
+ {
+ m_painter.setPen(m_normal);
+ m_painter.drawLine(10 + m_number_width + m_metrics->width("9") / 2, 2,
+ 10 + m_number_width + m_metrics->width("9") / 2, font_y);
+ }
}
void ListWidget::mouseDoubleClickEvent (QMouseEvent *e)
@@ -320,21 +340,32 @@ void ListWidget::updateList()
m_times = m_model->getTimes(m_first, m_rows);
m_scroll = false;
//add numbers
- for (int i = 0; i < m_titles.size() && m_show_number; ++i)
+ for (int i = 0; i < m_titles.size() && m_show_number && !m_align_numbres; ++i)
{
QString title = m_titles.at(i);
m_titles.replace(i, title.prepend(QString("%1").arg(m_first+i+1)+". "));
}
+ //song numbers width
+ if(m_show_number && m_align_numbres && m_model->count())
+ {
+ m_number_width = m_metrics->width("9") * QString::number(m_model->count() + 1).size();
+ }
+ else
+ m_number_width = 0;
+
//elide title
QString extra_string;
for (int i=0; i<m_titles.size(); ++i)
{
extra_string = getExtraString(m_first + i);
int extra_string_space = extra_string.isEmpty() ? 0 : m_metrics->width(extra_string);
+ if(m_number_width)
+ extra_string_space += m_number_width + m_metrics->width("9");
m_titles.replace(i, m_metrics->elidedText (m_titles.at(i), Qt::ElideRight,
width() - m_metrics->width(m_times.at(i)) - 22 - extra_string_space));
}
+
update();
}
diff --git a/src/ui/listwidget.h b/src/ui/listwidget.h
index b509e4a1c..7e901d34f 100644
--- a/src/ui/listwidget.h
+++ b/src/ui/listwidget.h
@@ -155,6 +155,8 @@ private:
bool m_show_protocol;
bool m_show_number;
bool m_show_anchor;
+ bool m_align_numbres;
+ int m_number_width;
MediaPlayer *m_player;
PlayListPopup::PopupWidget *m_popupWidget;
QTimer *m_timer;