mirror of
https://github.com/clementine-player/Clementine
synced 2025-01-30 02:55:19 +01:00
Make the device view prettier
This commit is contained in:
parent
8c26c61b0b
commit
88474551d5
@ -71,5 +71,6 @@ protected:
|
||||
private slots:
|
||||
void ThreadStarted();
|
||||
};
|
||||
Q_DECLARE_METATYPE(DeviceLister*);
|
||||
|
||||
#endif // DEVICELISTER_H
|
||||
|
@ -22,7 +22,10 @@
|
||||
#include "ui/iconloader.h"
|
||||
|
||||
#include <QIcon>
|
||||
#include <QPainter>
|
||||
|
||||
const int DeviceManager::kDeviceIconSize = 32;
|
||||
const int DeviceManager::kDeviceIconOverlaySize = 16;
|
||||
|
||||
DeviceManager::DeviceInfo::DeviceInfo()
|
||||
: database_id_(-1),
|
||||
@ -54,17 +57,19 @@ void DeviceManager::DeviceInfo::InitFromDb(const DeviceDatabaseBackend::Device &
|
||||
|
||||
void DeviceManager::DeviceInfo::LoadIcon(const QString &filename) {
|
||||
// Try to load the icon with that exact name first
|
||||
icon_ = IconLoader::Load(filename);
|
||||
icon_name_ = filename;
|
||||
icon_ = IconLoader::Load(icon_name_);
|
||||
|
||||
// If that failed than try to guess if it's a phone or ipod. Fall back on
|
||||
// a usb memory stick icon.
|
||||
if (icon_.isNull()) {
|
||||
if (filename.contains("phone"))
|
||||
icon_ = IconLoader::Load("phone");
|
||||
icon_name_ = "phone";
|
||||
else if (filename.contains("ipod") || filename.contains("apple"))
|
||||
icon_ = IconLoader::Load("multimedia-player-ipod-standard-monochrome");
|
||||
icon_name_ = "multimedia-player-ipod-standard-monochrome";
|
||||
else
|
||||
icon_ = IconLoader::Load("drive-removable-media-usb-pendrive");
|
||||
icon_name_ = "drive-removable-media-usb-pendrive";
|
||||
icon_ = IconLoader::Load(icon_name_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -73,7 +78,8 @@ DeviceManager::DeviceManager(BackgroundThread<Database>* database,
|
||||
TaskManager* task_manager, QObject *parent)
|
||||
: QAbstractListModel(parent),
|
||||
database_(database),
|
||||
task_manager_(task_manager)
|
||||
task_manager_(task_manager),
|
||||
not_connected_overlay_(IconLoader::Load("edit-delete"))
|
||||
{
|
||||
// Create the backend in the database thread
|
||||
backend_ = database_->CreateInThread<DeviceDatabaseBackend>();
|
||||
@ -107,20 +113,42 @@ QVariant DeviceManager::data(const QModelIndex& index, int role) const {
|
||||
const DeviceInfo& info = devices_[index.row()];
|
||||
|
||||
switch (role) {
|
||||
case Qt::DisplayRole: {
|
||||
QString text = info.friendly_name_.isEmpty() ? info.unique_id_ : info.friendly_name_;
|
||||
if (info.size_)
|
||||
text = text + QString(" (%1)").arg(Utilities::PrettySize(info.size_));
|
||||
return text;
|
||||
}
|
||||
case Qt::DisplayRole: {
|
||||
QString text = info.friendly_name_.isEmpty() ? info.unique_id_ : info.friendly_name_;
|
||||
if (info.size_)
|
||||
text = text + QString(" (%1)").arg(Utilities::PrettySize(info.size_));
|
||||
return text;
|
||||
}
|
||||
|
||||
case Qt::DecorationRole: {
|
||||
bool connected = info.lister_;
|
||||
return info.icon_.pixmap(22, connected ? QIcon::Normal : QIcon::Disabled);
|
||||
}
|
||||
case Qt::DecorationRole: {
|
||||
QPixmap pixmap = info.icon_.pixmap(kDeviceIconSize);
|
||||
|
||||
default:
|
||||
return QVariant();
|
||||
if (!info.lister_) {
|
||||
// Disconnected but remembered
|
||||
QPainter p(&pixmap);
|
||||
p.drawPixmap(kDeviceIconSize - kDeviceIconOverlaySize,
|
||||
kDeviceIconSize - kDeviceIconOverlaySize,
|
||||
not_connected_overlay_.pixmap(kDeviceIconOverlaySize));
|
||||
}
|
||||
|
||||
return pixmap;
|
||||
}
|
||||
|
||||
case Role_Lister:
|
||||
return QVariant::fromValue(info.lister_);
|
||||
|
||||
case Role_UniqueId:
|
||||
return info.unique_id_;
|
||||
|
||||
case Role_State:
|
||||
if (info.device_)
|
||||
return State_Connected;
|
||||
if (info.lister_)
|
||||
return State_NotConnected;
|
||||
return State_Remembered;
|
||||
|
||||
default:
|
||||
return QVariant();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "devicedatabasebackend.h"
|
||||
#include "core/backgroundthread.h"
|
||||
#include "library/librarymodel.h"
|
||||
|
||||
#include <QAbstractListModel>
|
||||
#include <QIcon>
|
||||
@ -38,6 +39,21 @@ public:
|
||||
QObject* parent = 0);
|
||||
~DeviceManager();
|
||||
|
||||
enum Role {
|
||||
Role_State = LibraryModel::LastRole,
|
||||
Role_UniqueId,
|
||||
Role_Lister,
|
||||
};
|
||||
|
||||
enum State {
|
||||
State_Remembered,
|
||||
State_NotConnected,
|
||||
State_Connected,
|
||||
};
|
||||
|
||||
static const int kDeviceIconSize;
|
||||
static const int kDeviceIconOverlaySize;
|
||||
|
||||
BackgroundThread<Database>* database() const { return database_; }
|
||||
TaskManager* task_manager() const { return task_manager_; }
|
||||
|
||||
@ -83,6 +99,8 @@ private:
|
||||
QString unique_id_;
|
||||
QString friendly_name_;
|
||||
quint64 size_;
|
||||
|
||||
QString icon_name_;
|
||||
QIcon icon_;
|
||||
};
|
||||
|
||||
@ -96,6 +114,8 @@ private:
|
||||
DeviceDatabaseBackend* backend_;
|
||||
TaskManager* task_manager_;
|
||||
|
||||
QIcon not_connected_overlay_;
|
||||
|
||||
QList<DeviceLister*> listers_;
|
||||
QList<DeviceInfo> devices_;
|
||||
};
|
||||
|
@ -18,16 +18,85 @@
|
||||
#include "devicemanager.h"
|
||||
#include "deviceview.h"
|
||||
#include "core/mergedproxymodel.h"
|
||||
#include "library/libraryview.h"
|
||||
#include "library/librarymodel.h"
|
||||
#include "ui/iconloader.h"
|
||||
|
||||
#include <QContextMenuEvent>
|
||||
#include <QMenu>
|
||||
#include <QPainter>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
const int DeviceItemDelegate::kIconPadding = 6;
|
||||
|
||||
DeviceItemDelegate::DeviceItemDelegate(QObject *parent)
|
||||
: LibraryItemDelegate(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void DeviceItemDelegate::paint(QPainter* p, const QStyleOptionViewItem& opt, const QModelIndex& index) const {
|
||||
// Is it a device or a library item?
|
||||
if (index.data(DeviceManager::Role_State).isNull()) {
|
||||
LibraryItemDelegate::paint(p, opt, index);
|
||||
return;
|
||||
}
|
||||
|
||||
// Draw the background
|
||||
QStyledItemDelegate::paint(p, opt, QModelIndex());
|
||||
|
||||
p->save();
|
||||
|
||||
// Font for the status line
|
||||
QFont status_font(opt.font);
|
||||
status_font.setItalic(true);
|
||||
status_font.setPointSize(status_font.pointSize() - 2);
|
||||
|
||||
const int text_height = QFontMetrics(opt.font).height() +
|
||||
QFontMetrics(status_font).height();
|
||||
|
||||
QRect line1(opt.rect);
|
||||
QRect line2(opt.rect);
|
||||
line1.setTop(line1.top() + (opt.rect.height() - text_height) / 2);
|
||||
line2.setTop(line1.top() + QFontMetrics(opt.font).height());
|
||||
line1.setLeft(line1.left() + DeviceManager::kDeviceIconSize + kIconPadding);
|
||||
line2.setLeft(line2.left() + DeviceManager::kDeviceIconSize + kIconPadding);
|
||||
|
||||
// Change the color for selected items
|
||||
if (opt.state & QStyle::State_Selected) {
|
||||
p->setPen(opt.palette.color(QPalette::HighlightedText));
|
||||
}
|
||||
|
||||
// Draw the icon
|
||||
p->drawPixmap(opt.rect.topLeft(), index.data(Qt::DecorationRole).value<QPixmap>());
|
||||
|
||||
// Draw the first line (device name)
|
||||
p->drawText(line1, Qt::AlignLeft | Qt::AlignTop, index.data().toString());
|
||||
|
||||
// Draw the second line (status)
|
||||
p->setFont(status_font);
|
||||
|
||||
DeviceManager::State state =
|
||||
static_cast<DeviceManager::State>(index.data(DeviceManager::Role_State).toInt());
|
||||
switch (state) {
|
||||
case DeviceManager::State_Remembered:
|
||||
p->drawText(line2, Qt::AlignLeft | Qt::AlignTop, tr("Not connected"));
|
||||
break;
|
||||
|
||||
case DeviceManager::State_NotConnected:
|
||||
p->drawText(line2, Qt::AlignLeft | Qt::AlignTop, tr("Double click to open"));
|
||||
break;
|
||||
|
||||
case DeviceManager::State_Connected:
|
||||
p->drawText(line2, Qt::AlignLeft | Qt::AlignTop, tr("Connected"));
|
||||
break;
|
||||
}
|
||||
|
||||
p->restore();
|
||||
}
|
||||
|
||||
|
||||
|
||||
DeviceView::DeviceView(QWidget* parent)
|
||||
: AutoExpandingTreeView(parent),
|
||||
manager_(NULL),
|
||||
@ -40,7 +109,7 @@ DeviceView::DeviceView(QWidget* parent)
|
||||
disconnect_action_ = menu_->addAction(
|
||||
IconLoader::Load("list-remove"), tr("Disconnect device"), this, SLOT(Disconnect()));
|
||||
|
||||
setItemDelegate(new LibraryItemDelegate(this));
|
||||
setItemDelegate(new DeviceItemDelegate(this));
|
||||
SetExpandOnReset(false);
|
||||
}
|
||||
|
||||
@ -92,6 +161,8 @@ void DeviceView::Connect() {
|
||||
QModelIndex sort_idx = sort_model_->mapFromSource(device_idx);
|
||||
|
||||
boost::shared_ptr<ConnectedDevice> device = manager_->Connect(device_idx.row());
|
||||
if (!device)
|
||||
return;
|
||||
|
||||
QSortFilterProxyModel* sort_model = new QSortFilterProxyModel(device->model());
|
||||
sort_model->setSourceModel(device->model());
|
||||
|
@ -17,6 +17,7 @@
|
||||
#ifndef DEVICEVIEW_H
|
||||
#define DEVICEVIEW_H
|
||||
|
||||
#include "library/libraryview.h"
|
||||
#include "widgets/autoexpandingtreeview.h"
|
||||
|
||||
class QAction;
|
||||
@ -26,6 +27,16 @@ class QSortFilterProxyModel;
|
||||
class DeviceManager;
|
||||
class MergedProxyModel;
|
||||
|
||||
class DeviceItemDelegate : public LibraryItemDelegate {
|
||||
public:
|
||||
DeviceItemDelegate(QObject* parent);
|
||||
|
||||
static const int kIconPadding;
|
||||
|
||||
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||
};
|
||||
|
||||
|
||||
class DeviceView : public AutoExpandingTreeView {
|
||||
Q_OBJECT
|
||||
|
||||
|
@ -47,6 +47,8 @@ class LibraryModel : public SimpleTreeModel<LibraryItem> {
|
||||
Role_SortText,
|
||||
Role_Key,
|
||||
Role_Artist,
|
||||
|
||||
LastRole
|
||||
};
|
||||
|
||||
// These values get saved in QSettings - don't change them
|
||||
|
@ -351,6 +351,9 @@ msgstr ""
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -945,6 +951,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "لا شيء"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "لا يوجد محتوى كافي"
|
||||
|
||||
|
@ -352,6 +352,9 @@ msgstr "Nastavit knihovnu..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Zkopírovat do knihovny..."
|
||||
|
||||
@ -495,6 +498,9 @@ msgstr "Nemíchat"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -949,6 +955,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Žádný"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Nedostatek obsahu"
|
||||
|
||||
|
@ -352,6 +352,9 @@ msgstr "Indstil bibliotek..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Kopiér til bibliotek..."
|
||||
|
||||
@ -495,6 +498,9 @@ msgstr "Bland ikke"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -950,6 +956,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Ikke nok indhold"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Musiksammlung einrichten..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "In die Musiksammlung kopieren..."
|
||||
|
||||
@ -496,6 +499,9 @@ msgstr "Kein Zufall"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Nicht anhalten!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Stück doppelklicken um Wiedergabeliste zu ersetzen"
|
||||
|
||||
@ -953,6 +959,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Nichts"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Nicht genügend Inhalt"
|
||||
|
||||
|
@ -359,6 +359,9 @@ msgstr "Παραμετροποίηση της βιβλιοθήκης"
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Αντιγραφή στην βιβλιοθήκη..."
|
||||
|
||||
@ -504,6 +507,9 @@ msgstr "Χωρίς ανακάτεμα"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Μην σταματάς!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Διπλό κλικ σε ένα τραγούδι θα καθαρίσει πρώτα την λίστα αναπαραγωγής"
|
||||
|
||||
@ -960,6 +966,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Κανένα"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Δεν υπάρχει αρκετό περιεχόμενο"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Configure library..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copy to library..."
|
||||
|
||||
@ -496,6 +499,9 @@ msgstr "Don't shuffle"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Double-clicking a song clears the playlist first"
|
||||
|
||||
@ -950,6 +956,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "None"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Not enough content"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Configure library..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copy to library..."
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr "Don't shuffle"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -947,6 +953,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "None"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Not enough content"
|
||||
|
||||
|
@ -353,6 +353,9 @@ msgstr "Configurar colección..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copiar a la colección..."
|
||||
|
||||
@ -498,6 +501,9 @@ msgstr "No Mezclar"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
"Hacer doble clic sobre una canción limpia la lista de reproducción primero"
|
||||
@ -958,6 +964,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "No hay suficiente contenido"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Kirjaston asetukset..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Kopioi kirjastoon"
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr "Älä lopeta!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -947,6 +953,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -352,6 +352,9 @@ msgstr "Configurer votre bibliothèque..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copier dans la bilbiothèque..."
|
||||
|
||||
@ -495,6 +498,9 @@ msgstr "Ne pas mélanger"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -953,6 +959,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Aucun"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Pas assez de contenu"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Configurar a biblioteca..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copiar para a biblioteca"
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -947,6 +953,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Conteúdo insuficiente"
|
||||
|
||||
|
@ -352,6 +352,9 @@ msgstr "Configura raccolta..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copia nella raccolta..."
|
||||
|
||||
@ -497,6 +500,9 @@ msgstr "Non mescolare"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Non fermare!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Il doppio clic su un brano svuota la scaletta"
|
||||
|
||||
@ -956,6 +962,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Nessuna"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Contenuti non sufficienti"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr ""
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -947,6 +953,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Sett opp bibliotek..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Kopier til bibliotek..."
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr "Ikke stokk"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -948,6 +954,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Ikke nok innhold"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr ""
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -945,6 +951,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Pas cap"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -352,6 +352,9 @@ msgstr "Konfiguruj bibliotekę..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Skopiuj do biblioteki..."
|
||||
|
||||
@ -495,6 +498,9 @@ msgstr "Nie losuj"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -947,6 +953,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Brak"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -356,6 +356,9 @@ msgstr "Configurar biblioteca..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copiar para a biblioteca..."
|
||||
|
||||
@ -501,6 +504,9 @@ msgstr "Não baralhar"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Não parar!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Duplo clique na canção apaga a lista de reprodução"
|
||||
|
||||
@ -957,6 +963,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Conteúdo insuficiente"
|
||||
|
||||
|
@ -354,6 +354,9 @@ msgstr "Configurar biblioteca"
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copiar para biblioteca..."
|
||||
|
||||
@ -499,6 +502,9 @@ msgstr "Não misturar"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Não parar!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Duplo clique em música limpa a lista de reprodução primeiro"
|
||||
|
||||
@ -957,6 +963,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Conteúdo insuficiente"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Configurează biblioteca..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Copiază în bibliotecă..."
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr "Nu amesteca"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -946,6 +952,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Nu este destul conținut"
|
||||
|
||||
|
@ -350,6 +350,9 @@ msgstr "Настроить коллекцию..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Копировать в коллекцию..."
|
||||
|
||||
@ -495,6 +498,9 @@ msgstr "Не перемешивать"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Двойной щелчок мышью на композиции стирает список воспроизведения"
|
||||
|
||||
@ -951,6 +957,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Нет"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Не достаточно содержания"
|
||||
|
||||
|
@ -356,6 +356,9 @@ msgstr "Nastaviť zbierku..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Skopírovať do zbierky..."
|
||||
|
||||
@ -501,6 +504,9 @@ msgstr "Nezamiešavať"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Neprestávať!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Dvojklik na pieseň najprv vymaže playlist"
|
||||
|
||||
@ -956,6 +962,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Nijako"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Nedostatok obsahu"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Ställ in bibliotek..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Kopiera till bibliotek..."
|
||||
|
||||
@ -496,6 +499,9 @@ msgstr "Slumpa inte"
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Dubbelklick på en sång rensar spellistan först"
|
||||
|
||||
@ -950,6 +956,9 @@ msgstr "Inga träffar hittades. Tom sökrutan för att visa hela spellistan igen
|
||||
msgid "None"
|
||||
msgstr "Inga"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Inte tillräckligt med innehåll"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "Kütüphaneyi düzenle..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -947,6 +953,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Hiçbiri"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -342,6 +342,9 @@ msgstr ""
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -485,6 +488,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -936,6 +942,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -355,6 +355,9 @@ msgstr "Налаштувати фонотеку"
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr "Скопіювати до фонотеки..."
|
||||
|
||||
@ -500,6 +503,9 @@ msgstr "Не перемішувати"
|
||||
msgid "Don't stop!"
|
||||
msgstr "Не зупиняти!"
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr "Подвійнне клацання на композиції спочатку очищає список відтворення"
|
||||
|
||||
@ -956,6 +962,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "Немає"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr "Не достатньо вмісту"
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr "配置乐库..."
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -945,6 +951,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr "无"
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
@ -351,6 +351,9 @@ msgstr ""
|
||||
msgid "Connect device"
|
||||
msgstr ""
|
||||
|
||||
msgid "Connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Copy to library..."
|
||||
msgstr ""
|
||||
|
||||
@ -494,6 +497,9 @@ msgstr ""
|
||||
msgid "Don't stop!"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double click to open"
|
||||
msgstr ""
|
||||
|
||||
msgid "Double-clicking a song clears the playlist first"
|
||||
msgstr ""
|
||||
|
||||
@ -945,6 +951,9 @@ msgstr ""
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not connected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Not enough content"
|
||||
msgstr ""
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user