Move the track length indicator to the right, and add information about the selected tracks

This commit is contained in:
David Sansome 2010-06-13 12:45:05 +00:00
parent a8d79582c1
commit e46d93b599
30 changed files with 147 additions and 6 deletions

View File

@ -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());
}

View File

@ -76,6 +76,7 @@ private slots:
void SetTabBarVisible(bool visible);
void SetTabBarHeight(int height);
void SelectionChanged();
void UpdateFilter();
private:

View File

@ -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();
}

View File

@ -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_;

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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 ""

View File

@ -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);