Show the total song count on each device, instead of the mountpoint

This commit is contained in:
David Sansome 2010-08-30 14:45:27 +00:00
parent 1311a29dfa
commit e4efa8a93e
40 changed files with 321 additions and 3 deletions

View File

@ -35,7 +35,8 @@ ConnectedDevice::ConnectedDevice(const QUrl& url, DeviceLister* lister,
database_id_(database_id),
manager_(manager),
backend_(NULL),
model_(NULL)
model_(NULL),
song_count_(0)
{
qDebug() << __PRETTY_FUNCTION__;
@ -43,6 +44,8 @@ ConnectedDevice::ConnectedDevice(const QUrl& url, DeviceLister* lister,
backend_ = new LibraryBackend();
backend_->moveToThread(manager->database());
connect(backend_, SIGNAL(TotalSongCountUpdated(int)), SLOT(BackendTotalSongCountUpdated(int)));
backend_->Init(manager->database()->Worker(),
QString("device_%1_songs").arg(database_id),
QString("device_%1_directories").arg(database_id),
@ -106,3 +109,8 @@ Song::FileType ConnectedDevice::GetTranscodeFormat() const {
return Song::FileType(
manager_->index(index).data(DeviceManager::Role_TranscodeFormat).toInt());
}
void ConnectedDevice::BackendTotalSongCountUpdated(int count) {
song_count_ = count;
emit SongCountUpdated(count);
}

View File

@ -51,6 +51,7 @@ public:
QString unique_id() const { return unique_id_; }
LibraryModel* model() const { return model_; }
QUrl url() const { return url_; }
int song_count() const { return song_count_; }
virtual void FinishCopy(bool success);
virtual void FinishDelete(bool success);
@ -60,6 +61,7 @@ public:
signals:
void TaskStarted(int id);
void Error(const QString& message);
void SongCountUpdated(int count);
protected:
void InitBackendDirectory(const QString& mount_point, bool first_time, bool rewrite_path = true);
@ -74,6 +76,11 @@ protected:
LibraryBackend* backend_;
LibraryModel* model_;
int song_count_;
private slots:
void BackendTotalSongCountUpdated(int count);
};
#endif // CONNECTEDDEVICE_H

View File

@ -333,6 +333,11 @@ QVariant DeviceManager::data(const QModelIndex& index, int role) const {
case Role_TranscodeFormat:
return info.transcode_format_;
case Role_SongCount:
if (!info.device_)
return QVariant();
return info.device_->song_count();
default:
return QVariant();
}
@ -551,6 +556,7 @@ boost::shared_ptr<ConnectedDevice> DeviceManager::Connect(int row) {
emit dataChanged(index(row), index(row));
connect(info.device_.get(), SIGNAL(TaskStarted(int)), SLOT(DeviceTaskStarted(int)));
connect(info.device_.get(), SIGNAL(Error(QString)), SIGNAL(Error(QString)));
connect(info.device_.get(), SIGNAL(SongCountUpdated(int)), SLOT(DeviceSongCountUpdated(int)));
}
emit DeviceConnected(row);
@ -696,3 +702,15 @@ void DeviceManager::Unmount(int row) {
if (info.BestBackend()->lister_)
info.BestBackend()->lister_->UnmountDevice(info.BestBackend()->unique_id_);
}
void DeviceManager::DeviceSongCountUpdated(int count) {
ConnectedDevice* device = qobject_cast<ConnectedDevice*>(sender());
if (!device)
return;
int row = FindDeviceById(device->unique_id());
if (row == -1)
return;
emit dataChanged(index(row), index(row));
}

View File

@ -51,6 +51,7 @@ public:
Role_MountPath,
Role_TranscodeMode,
Role_TranscodeFormat,
Role_SongCount,
LastRole,
};
@ -105,6 +106,7 @@ private slots:
void PhysicalDeviceChanged(const QString& id);
void DeviceTaskStarted(int id);
void TasksChanged();
void DeviceSongCountUpdated(int count);
private:
// Devices can be in three different states:

View File

@ -97,9 +97,19 @@ void DeviceItemDelegate::paint(QPainter* p, const QStyleOptionViewItem& opt, con
status_text = tr("Double click to open");
break;
case DeviceManager::State_Connected:
status_text = index.data(DeviceManager::Role_MountPath).toString();
case DeviceManager::State_Connected: {
QVariant song_count = index.data(DeviceManager::Role_SongCount);
if (song_count.isValid()) {
int count = song_count.toInt();
if (count == 1) // TODO: Fix this properly
status_text = tr("%1 song").arg(count);
else
status_text = tr("%1 songs").arg(count);
} else {
status_text = index.data(DeviceManager::Role_MountPath).toString();
}
break;
}
}
}

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr "%1 llistes de reproducció (%2)"
msgid "%1 selected of"
msgstr "%1 seleccionades de"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 temes"

View File

@ -41,6 +41,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -41,6 +41,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -41,6 +41,14 @@ msgstr "%1 Wiedergabelisten (%2)"
msgid "%1 selected of"
msgstr "%1 ausgewählt von"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 Stücke"

View File

@ -42,6 +42,14 @@ msgstr "%1 λίστες αναπαραγωγής (%2)"
msgid "%1 selected of"
msgstr "%1 επιλεγμένα από"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 κομμάτια"

View File

@ -40,6 +40,14 @@ msgstr "%1 playlists (%2)"
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -41,6 +41,14 @@ msgstr "%1 listas de reproducción (%2)"
msgid "%1 selected of"
msgstr "%1 seleccionadas de"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 pistas"

View File

@ -40,6 +40,14 @@ msgstr "%1 soittolistaa (%2)"
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 kappaletta"

View File

@ -41,6 +41,14 @@ msgstr "%1 listes de lecture (%2)"
msgid "%1 selected of"
msgstr "%1 sélectionné de"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 pistes"

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr "%1 lejátszási lista (%2)"
msgid "%1 selected of"
msgstr "%1 kiválasztva"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 szám"

View File

@ -41,6 +41,14 @@ msgstr "%1 scalette (%2)"
msgid "%1 selected of"
msgstr "%1 selezionate di"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 tracce"

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr "%1 grojaraščiai (%2)"
msgid "%1 selected of"
msgstr "%1 pažymėta iš"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 takeliai"

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 spor"

View File

@ -40,6 +40,14 @@ msgstr "%1 afspeellijsten (%2)"
msgid "%1 selected of"
msgstr "%1 geselecteerd van"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 tracks"

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -41,6 +41,14 @@ msgstr "%1 list odtwarzania (%2)"
msgid "%1 selected of"
msgstr "%1 zaznaczonych z"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 ścieżek"

View File

@ -40,6 +40,14 @@ msgstr "Listas de reprodução %1 (%2)"
msgid "%1 selected of"
msgstr "seleccionada(s) %1 de"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 faixas"

View File

@ -40,6 +40,14 @@ msgstr "%1 listas de reprodução (%2)"
msgid "%1 selected of"
msgstr "%1 selecionado(s) de"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 faixas"

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -39,6 +39,14 @@ msgstr "%1 списков воспроизведения (%2)"
msgid "%1 selected of"
msgstr "%1 выбрано из"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 композиций"

View File

@ -41,6 +41,14 @@ msgstr "%1 playlistov (%2)"
msgid "%1 selected of"
msgstr "%1 vybratých z"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 skladieb"

View File

@ -40,6 +40,14 @@ msgstr "%1 predvajalnih seznamov (%2)"
msgid "%1 selected of"
msgstr "izbran %1 od"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 skladb"

View File

@ -40,6 +40,14 @@ msgstr "%1 листа нумера (%2)"
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 нумера"

View File

@ -40,6 +40,14 @@ msgstr "%1 spellistor (%2)"
msgid "%1 selected of"
msgstr "%1 markerade av"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 spår"

View File

@ -40,6 +40,14 @@ msgstr "%1 çalma listesi (%2)"
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 parça"

View File

@ -30,6 +30,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr "%1 списків відтворення (%2)"
msgid "%1 selected of"
msgstr "вибрано з %1"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 доріжок"

View File

@ -40,6 +40,14 @@ msgstr ""
msgid "%1 selected of"
msgstr ""
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr ""

View File

@ -40,6 +40,14 @@ msgstr "%1 播放清單 (%2)"
msgid "%1 selected of"
msgstr "%1 選定"
#, qt-format
msgid "%1 song"
msgstr ""
#, qt-format
msgid "%1 songs"
msgstr ""
#, qt-format
msgid "%1 tracks"
msgstr "%1 歌曲"

View File

@ -40,6 +40,7 @@ WiimotedevShortcuts::WiimotedevShortcuts(Player* player, QObject* parent)
WIIMOTEDEV_DBUS_EVENTS_OBJECT,
QDBusConnection::systemBus(),
this);
qDebug() << "Wiimotedev interface valid" << wiimotedev_iface_->isValid();
connect(wiimotedev_iface_, SIGNAL(dbusWiimoteGeneralButtons(quint32,quint64)),
this, SLOT(DbusWiimoteGeneralButtons(quint32, quint64)));