Move the track length indicator to the right, and add information about the selected tracks
This commit is contained in:
parent
a8d79582c1
commit
e46d93b599
@ -132,6 +132,11 @@ void PlaylistContainer::SetManager(PlaylistManager *manager) {
|
||||
}
|
||||
|
||||
void PlaylistContainer::SetViewModel(Playlist* playlist) {
|
||||
if (view()->selectionModel()) {
|
||||
disconnect(view()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
|
||||
this, SLOT(SelectionChanged()));
|
||||
}
|
||||
|
||||
// Set the view
|
||||
playlist->IgnoreSorting(true);
|
||||
view()->setModel(playlist->proxy());
|
||||
@ -139,6 +144,9 @@ void PlaylistContainer::SetViewModel(Playlist* playlist) {
|
||||
view()->SetPlaylist(playlist);
|
||||
playlist->IgnoreSorting(false);
|
||||
|
||||
connect(view()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
|
||||
this, SLOT(SelectionChanged()));
|
||||
|
||||
// Update filter
|
||||
ui_->filter->setText(playlist->proxy()->filterRegExp().pattern());
|
||||
|
||||
@ -310,3 +318,7 @@ void PlaylistContainer::RepositionNoMatchesLabel(bool force) {
|
||||
no_matches_label_->move(pos);
|
||||
no_matches_label_->resize(size);
|
||||
}
|
||||
|
||||
void PlaylistContainer::SelectionChanged() {
|
||||
manager_->SelectionChanged(view()->selectionModel()->selection());
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ private slots:
|
||||
void SetTabBarVisible(bool visible);
|
||||
void SetTabBarHeight(int height);
|
||||
|
||||
void SelectionChanged();
|
||||
void UpdateFilter();
|
||||
|
||||
private:
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include "playlistparsers/playlistparser.h"
|
||||
|
||||
#include <QFileInfo>
|
||||
#include <QtDebug>
|
||||
|
||||
PlaylistManager::PlaylistManager(QObject *parent)
|
||||
: QObject(parent),
|
||||
@ -189,13 +190,34 @@ void PlaylistManager::ChangePlaylistOrder(const QList<int>& ids) {
|
||||
|
||||
void PlaylistManager::UpdateSummaryText() {
|
||||
int tracks = current()->rowCount();
|
||||
quint64 seconds = current()->GetTotalLength();
|
||||
quint64 seconds = 0;
|
||||
int selected = 0;
|
||||
|
||||
// Get the length of the selected tracks
|
||||
foreach (const QItemSelectionRange& range, current_selection_) {
|
||||
selected += range.bottom() - range.top() + 1;
|
||||
for (int i=range.top() ; i<=range.bottom() ; ++i) {
|
||||
seconds += range.model()->index(i, Playlist::Column_Length).data().toInt();
|
||||
}
|
||||
}
|
||||
|
||||
QString summary;
|
||||
if (selected > 1) {
|
||||
summary += tr("%1 selected of").arg(selected) + " ";
|
||||
} else {
|
||||
seconds = current()->GetTotalLength();
|
||||
}
|
||||
|
||||
// TODO: Make the plurals translatable
|
||||
QString summary = tracks == 1 ? tr("1 track") : tr("%1 tracks").arg(tracks);
|
||||
summary += tracks == 1 ? tr("1 track") : tr("%1 tracks").arg(tracks);
|
||||
|
||||
if (seconds)
|
||||
summary += " (" + Utilities::WordyTime(seconds) + ")";
|
||||
summary += " - [ " + Utilities::WordyTime(seconds) + " ]";
|
||||
|
||||
emit SummaryTextChanged(summary);
|
||||
}
|
||||
|
||||
void PlaylistManager::SelectionChanged(const QItemSelection &selection) {
|
||||
current_selection_ = selection;
|
||||
UpdateSummaryText();
|
||||
}
|
||||
|
@ -17,8 +17,9 @@
|
||||
#ifndef PLAYLISTMANAGER_H
|
||||
#define PLAYLISTMANAGER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QItemSelection>
|
||||
#include <QMap>
|
||||
#include <QObject>
|
||||
|
||||
#include "core/song.h"
|
||||
|
||||
@ -67,6 +68,8 @@ public slots:
|
||||
void SetActivePlaylist(int id);
|
||||
void SetActiveToCurrent() { SetActivePlaylist(current_id()); }
|
||||
|
||||
void SelectionChanged(const QItemSelection& selection);
|
||||
|
||||
// Convenience slots that defer to either current() or active()
|
||||
void ClearCurrent();
|
||||
void ShuffleCurrent();
|
||||
@ -108,6 +111,8 @@ private:
|
||||
PlaylistSequence* sequence_;
|
||||
PlaylistParser* parser_;
|
||||
|
||||
QItemSelection current_selection_;
|
||||
|
||||
// key = id
|
||||
QMap<int, Data> playlists_;
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "أخفِ %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -305,6 +305,10 @@ msgstr "Skrýt %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -307,6 +307,10 @@ msgstr "Skjul %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -305,6 +305,10 @@ msgstr "%1 ausblenden"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -308,6 +308,10 @@ msgstr "Απόκρυψη %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "Η λίστα αναπαραγωγής '%1' ήταν άδεια ή δεν μπόρεσε να φορτωθεί."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -305,6 +305,10 @@ msgstr "Hide %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "The playlist '%1' was empty or could not be loaded."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Hide %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -307,6 +307,10 @@ msgstr "Ocultar %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "La lista de reproducción '%1' estaba vacía o no pudo ser cargada."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Piilota %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -305,6 +305,10 @@ msgstr "Masquer %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Esconder %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -307,6 +307,10 @@ msgstr "Nascondi %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "La scaletta '%1' è vuota o non può essere caricata."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "%1 жасыру"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Skjul %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Amagar « %1 »"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -305,6 +305,10 @@ msgstr "Ukryj %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -306,6 +306,10 @@ msgstr "Ocultar %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "A lista de reprodução '%1' está vazia ou não pôde ser carregada."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -306,6 +306,10 @@ msgstr "Ocultar %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "A lista de reprodução '%1' está vazia ou não pode ser carregada."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Ascunde %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -305,6 +305,10 @@ msgstr "Скрыть %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "Список воспроизведения '%1' пуст или не может быть загружен."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -306,6 +306,10 @@ msgstr "Skryť %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr "Playlist '%1' je prázdny alebo nemôže byť načítaný."
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Dölj %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "Gizle %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr "隐藏 %1"
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,6 +304,10 @@ msgstr ""
|
||||
msgid "The playlist '%1' was empty or could not be loaded."
|
||||
msgstr ""
|
||||
|
||||
#, qt-format
|
||||
msgid "%1 selected of"
|
||||
msgstr ""
|
||||
|
||||
msgid "1 track"
|
||||
msgstr ""
|
||||
|
||||
|
@ -451,12 +451,13 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
||||
equalizer_->preamp_value(), equalizer_->gain_values());
|
||||
|
||||
// Statusbar widgets
|
||||
playlist_summary_->setMinimumWidth(QFontMetrics(font()).width("WW selected of WW tracks - [ WW:WW ]"));
|
||||
playlist_summary_->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||
ui_->statusBar->addPermanentWidget(playlist_summary_);
|
||||
ui_->statusBar->addPermanentWidget(playlist_sequence_);
|
||||
ui_->statusBar->addPermanentWidget(track_slider_);
|
||||
ui_->statusBar->addWidget(multi_loading_indicator_);
|
||||
ui_->statusBar->addWidget(playlist_summary_);
|
||||
multi_loading_indicator_->hide();
|
||||
playlist_summary_->setIndent(4);
|
||||
|
||||
// Load theme
|
||||
StyleSheetLoader* css_loader = new StyleSheetLoader(this);
|
||||
|
Loading…
x
Reference in New Issue
Block a user