Don't connect new devices automatically, put them in a list model. Add icons for ipods, android phones and USB memory sticks.
@ -189,5 +189,60 @@
|
|||||||
<file>icons/22x22/edit-delete.png</file>
|
<file>icons/22x22/edit-delete.png</file>
|
||||||
<file>icons/32x32/edit-delete.png</file>
|
<file>icons/32x32/edit-delete.png</file>
|
||||||
<file>icons/48x48/edit-delete.png</file>
|
<file>icons/48x48/edit-delete.png</file>
|
||||||
|
<file>schema-14.sql</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-mini-blue.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-mini-gold.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-mini-green.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-mini-pink.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-mini-silver.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-nano-black.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-nano-white.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-shuffle.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-standard-color.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-standard-monochrome.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-U2-color.png</file>
|
||||||
|
<file>icons/22x22/multimedia-player-ipod-U2-monochrome.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-mini-blue.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-mini-gold.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-mini-green.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-mini-pink.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-mini-silver.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-nano-black.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-nano-white.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-shuffle.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-standard-color.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-standard-monochrome.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-U2-color.png</file>
|
||||||
|
<file>icons/32x32/multimedia-player-ipod-U2-monochrome.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-mini-blue.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-mini-gold.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-mini-green.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-mini-pink.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-mini-silver.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-nano-black.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-nano-white.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-shuffle.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-standard-color.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-standard-monochrome.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-U2-color.png</file>
|
||||||
|
<file>icons/48x48/multimedia-player-ipod-U2-monochrome.png</file>
|
||||||
|
<file>icons/22x22/phone-google-nexus-one.png</file>
|
||||||
|
<file>icons/22x22/phone-htc-g1-white.png</file>
|
||||||
|
<file>icons/22x22/phone-nokia-n900.png</file>
|
||||||
|
<file>icons/22x22/phone-palm-pre.png</file>
|
||||||
|
<file>icons/32x32/phone-google-nexus-one.png</file>
|
||||||
|
<file>icons/32x32/phone-htc-g1-white.png</file>
|
||||||
|
<file>icons/32x32/phone-nokia-n900.png</file>
|
||||||
|
<file>icons/32x32/phone-palm-pre.png</file>
|
||||||
|
<file>icons/48x48/phone-google-nexus-one.png</file>
|
||||||
|
<file>icons/48x48/phone-htc-g1-white.png</file>
|
||||||
|
<file>icons/48x48/phone-nokia-n900.png</file>
|
||||||
|
<file>icons/48x48/phone-palm-pre.png</file>
|
||||||
|
<file>icons/22x22/phone.png</file>
|
||||||
|
<file>icons/32x32/phone.png</file>
|
||||||
|
<file>icons/48x48/phone.png</file>
|
||||||
|
<file>icons/22x22/drive-removable-media-usb-pendrive.png</file>
|
||||||
|
<file>icons/32x32/drive-removable-media-usb-pendrive.png</file>
|
||||||
|
<file>icons/48x48/drive-removable-media-usb-pendrive.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
BIN
data/icons/22x22/drive-removable-media-usb-pendrive.png
Normal file
After Width: | Height: | Size: 806 B |
BIN
data/icons/22x22/multimedia-player-ipod-U2-color.png
Normal file
After Width: | Height: | Size: 737 B |
BIN
data/icons/22x22/multimedia-player-ipod-U2-monochrome.png
Normal file
After Width: | Height: | Size: 679 B |
BIN
data/icons/22x22/multimedia-player-ipod-mini-blue.png
Normal file
After Width: | Height: | Size: 702 B |
BIN
data/icons/22x22/multimedia-player-ipod-mini-gold.png
Normal file
After Width: | Height: | Size: 702 B |
BIN
data/icons/22x22/multimedia-player-ipod-mini-green.png
Normal file
After Width: | Height: | Size: 700 B |
BIN
data/icons/22x22/multimedia-player-ipod-mini-pink.png
Normal file
After Width: | Height: | Size: 686 B |
BIN
data/icons/22x22/multimedia-player-ipod-mini-silver.png
Normal file
After Width: | Height: | Size: 655 B |
BIN
data/icons/22x22/multimedia-player-ipod-nano-black.png
Normal file
After Width: | Height: | Size: 562 B |
BIN
data/icons/22x22/multimedia-player-ipod-nano-white.png
Normal file
After Width: | Height: | Size: 582 B |
BIN
data/icons/22x22/multimedia-player-ipod-shuffle.png
Normal file
After Width: | Height: | Size: 521 B |
BIN
data/icons/22x22/multimedia-player-ipod-standard-color.png
Normal file
After Width: | Height: | Size: 720 B |
BIN
data/icons/22x22/multimedia-player-ipod-standard-monochrome.png
Normal file
After Width: | Height: | Size: 614 B |
BIN
data/icons/22x22/phone-google-nexus-one.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
data/icons/22x22/phone-htc-g1-white.png
Normal file
After Width: | Height: | Size: 944 B |
BIN
data/icons/22x22/phone-nokia-n900.png
Normal file
After Width: | Height: | Size: 892 B |
BIN
data/icons/22x22/phone-palm-pre.png
Normal file
After Width: | Height: | Size: 939 B |
BIN
data/icons/22x22/phone.png
Normal file
After Width: | Height: | Size: 600 B |
BIN
data/icons/32x32/drive-removable-media-usb-pendrive.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-U2-color.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-U2-monochrome.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-mini-blue.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-mini-gold.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-mini-green.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-mini-pink.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-mini-silver.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-nano-black.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-nano-white.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-shuffle.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-standard-color.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
data/icons/32x32/multimedia-player-ipod-standard-monochrome.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
data/icons/32x32/phone-google-nexus-one.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
data/icons/32x32/phone-htc-g1-white.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
data/icons/32x32/phone-nokia-n900.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
data/icons/32x32/phone-palm-pre.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
data/icons/32x32/phone.png
Normal file
After Width: | Height: | Size: 972 B |
BIN
data/icons/48x48/drive-removable-media-usb-pendrive.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-U2-color.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-U2-monochrome.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-mini-blue.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-mini-gold.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-mini-green.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-mini-pink.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-mini-silver.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-nano-black.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-nano-white.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-shuffle.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-standard-color.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
data/icons/48x48/multimedia-player-ipod-standard-monochrome.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
data/icons/48x48/phone-google-nexus-one.png
Normal file
After Width: | Height: | Size: 5.3 KiB |
BIN
data/icons/48x48/phone-htc-g1-white.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
data/icons/48x48/phone-nokia-n900.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
data/icons/48x48/phone-palm-pre.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
data/icons/48x48/phone.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
8
data/schema-14.sql
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
CREATE TABLE devices (
|
||||||
|
unique_id TEXT NOT NULL,
|
||||||
|
friendly_name TEXT,
|
||||||
|
size INTEGER,
|
||||||
|
icon TEXT
|
||||||
|
);
|
||||||
|
|
||||||
|
UPDATE schema_version SET version=14;
|
@ -55,6 +55,7 @@ set(SOURCES
|
|||||||
devices/connecteddevice.cpp
|
devices/connecteddevice.cpp
|
||||||
devices/devicelister.cpp
|
devices/devicelister.cpp
|
||||||
devices/devicemanager.cpp
|
devices/devicemanager.cpp
|
||||||
|
devices/deviceview.cpp
|
||||||
devices/filesystemdevice.cpp
|
devices/filesystemdevice.cpp
|
||||||
|
|
||||||
engines/enginebase.cpp
|
engines/enginebase.cpp
|
||||||
@ -172,6 +173,7 @@ set(HEADERS
|
|||||||
devices/connecteddevice.h
|
devices/connecteddevice.h
|
||||||
devices/devicelister.h
|
devices/devicelister.h
|
||||||
devices/devicemanager.h
|
devices/devicemanager.h
|
||||||
|
devices/deviceview.h
|
||||||
devices/filesystemdevice.h
|
devices/filesystemdevice.h
|
||||||
|
|
||||||
engines/enginebase.h
|
engines/enginebase.h
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
const char* Database::kDatabaseFilename = "clementine.db";
|
const char* Database::kDatabaseFilename = "clementine.db";
|
||||||
const int Database::kSchemaVersion = 13;
|
const int Database::kSchemaVersion = 14;
|
||||||
|
|
||||||
int Database::sNextConnectionId = 1;
|
int Database::sNextConnectionId = 1;
|
||||||
QMutex Database::sNextConnectionIdMutex;
|
QMutex Database::sNextConnectionIdMutex;
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
|
|
||||||
namespace Utilities {
|
namespace Utilities {
|
||||||
|
|
||||||
|
static QString tr(const char* str) {
|
||||||
|
return QCoreApplication::translate("", str);
|
||||||
|
}
|
||||||
|
|
||||||
QString PrettyTime(int seconds) {
|
QString PrettyTime(int seconds) {
|
||||||
// last.fm sometimes gets the track length wrong, so you end up with
|
// last.fm sometimes gets the track length wrong, so you end up with
|
||||||
// negative times.
|
// negative times.
|
||||||
@ -39,10 +43,6 @@ QString PrettyTime(int seconds) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString tr(const char* str) {
|
|
||||||
return QCoreApplication::translate("", str);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString WordyTime(quint64 seconds) {
|
QString WordyTime(quint64 seconds) {
|
||||||
quint64 days = seconds / (60*60*24);
|
quint64 days = seconds / (60*60*24);
|
||||||
|
|
||||||
@ -56,4 +56,20 @@ QString WordyTime(quint64 seconds) {
|
|||||||
return parts.join(" ");
|
return parts.join(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString PrettySize(quint64 bytes) {
|
||||||
|
QString ret;
|
||||||
|
|
||||||
|
if (bytes > 0) {
|
||||||
|
if (bytes <= 1000)
|
||||||
|
ret = QString::number(bytes) + " bytes";
|
||||||
|
else if (bytes <= 1000*1000)
|
||||||
|
ret.sprintf("%.1f KB", float(bytes) / 1000);
|
||||||
|
else if (bytes <= 1000*1000*1000)
|
||||||
|
ret.sprintf("%.1f MB", float(bytes) / (1000*1000));
|
||||||
|
else
|
||||||
|
ret.sprintf("%.1f GB", float(bytes) / (1000*1000*1000));
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
namespace Utilities {
|
namespace Utilities {
|
||||||
QString PrettyTime(int seconds);
|
QString PrettyTime(int seconds);
|
||||||
|
QString PrettySize(quint64 bytes);
|
||||||
QString WordyTime(quint64 seconds);
|
QString WordyTime(quint64 seconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,6 +104,9 @@ QVariant DeviceKitLister::DeviceInfo(const QString& id, int field) {
|
|||||||
return QString("%1 %2").arg(data.drive_vendor, data.drive_model);
|
return QString("%1 %2").arg(data.drive_vendor, data.drive_model);
|
||||||
return data.drive_serial;
|
return data.drive_serial;
|
||||||
|
|
||||||
|
case Field_Icon:
|
||||||
|
return data.device_presentation_icon_name;
|
||||||
|
|
||||||
case Field_Manufacturer:
|
case Field_Manufacturer:
|
||||||
return data.drive_vendor;
|
return data.drive_vendor;
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ public:
|
|||||||
enum Field {
|
enum Field {
|
||||||
Field_UniqueID = 0,
|
Field_UniqueID = 0,
|
||||||
Field_FriendlyName,
|
Field_FriendlyName,
|
||||||
|
Field_Icon,
|
||||||
Field_Manufacturer,
|
Field_Manufacturer,
|
||||||
Field_Model,
|
Field_Model,
|
||||||
Field_Capacity,
|
Field_Capacity,
|
||||||
|
@ -17,9 +17,22 @@
|
|||||||
#include "connecteddevice.h"
|
#include "connecteddevice.h"
|
||||||
#include "devicemanager.h"
|
#include "devicemanager.h"
|
||||||
#include "devicekitlister.h"
|
#include "devicekitlister.h"
|
||||||
|
#include "core/utilities.h"
|
||||||
|
#include "ui/iconloader.h"
|
||||||
|
|
||||||
DeviceManager::DeviceManager(TaskManager* task_manager, QObject *parent)
|
#include <QIcon>
|
||||||
: QObject(parent),
|
|
||||||
|
|
||||||
|
DeviceManager::DeviceInfo::DeviceInfo()
|
||||||
|
: database_id_(-1),
|
||||||
|
lister_(NULL)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
DeviceManager::DeviceManager(BackgroundThread<Database>* database,
|
||||||
|
TaskManager* task_manager, QObject *parent)
|
||||||
|
: QAbstractListModel(parent),
|
||||||
|
database_(database),
|
||||||
task_manager_(task_manager)
|
task_manager_(task_manager)
|
||||||
{
|
{
|
||||||
#ifdef Q_WS_X11
|
#ifdef Q_WS_X11
|
||||||
@ -31,16 +44,52 @@ DeviceManager::~DeviceManager() {
|
|||||||
qDeleteAll(listers_);
|
qDeleteAll(listers_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DeviceManager::rowCount(const QModelIndex&) const {
|
||||||
|
return devices_.count();
|
||||||
|
}
|
||||||
|
|
||||||
|
QVariant DeviceManager::data(const QModelIndex& index, int role) const {
|
||||||
|
if (!index.isValid() || index.column() != 0)
|
||||||
|
return QVariant();
|
||||||
|
|
||||||
|
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::DecorationRole: {
|
||||||
|
bool connected = info.lister_;
|
||||||
|
return info.icon_.pixmap(22, connected ? QIcon::Normal : QIcon::Disabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
return QVariant();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void DeviceManager::AddLister(DeviceLister *lister) {
|
void DeviceManager::AddLister(DeviceLister *lister) {
|
||||||
listers_ << lister;
|
listers_ << lister;
|
||||||
connect(lister, SIGNAL(DeviceAdded(QString)), SLOT(DeviceAdded(QString)));
|
connect(lister, SIGNAL(DeviceAdded(QString)), SLOT(PhysicalDeviceAdded(QString)));
|
||||||
connect(lister, SIGNAL(DeviceRemoved(QString)), SLOT(DeviceRemoved(QString)));
|
connect(lister, SIGNAL(DeviceRemoved(QString)), SLOT(PhysicalDeviceRemoved(QString)));
|
||||||
connect(lister, SIGNAL(DeviceChanged(QString)), SLOT(DeviceChanged(QString)));
|
connect(lister, SIGNAL(DeviceChanged(QString)), SLOT(PhysicalDeviceChanged(QString)));
|
||||||
|
|
||||||
lister->Start();
|
lister->Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceManager::DeviceAdded(const QString &id) {
|
int DeviceManager::FindDeviceById(const QString &id) const {
|
||||||
|
for (int i=0 ; i<devices_.count() ; ++i) {
|
||||||
|
if (devices_[i].unique_id_ == id)
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeviceManager::PhysicalDeviceAdded(const QString &id) {
|
||||||
DeviceLister* lister = qobject_cast<DeviceLister*>(sender());
|
DeviceLister* lister = qobject_cast<DeviceLister*>(sender());
|
||||||
|
|
||||||
qDebug() << "Device added:" << id;
|
qDebug() << "Device added:" << id;
|
||||||
@ -48,28 +97,74 @@ void DeviceManager::DeviceAdded(const QString &id) {
|
|||||||
qDebug() << i << lister->DeviceInfo(id, i);
|
qDebug() << i << lister->DeviceInfo(id, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
ConnectedDevice* device = lister->Connect(id, this);
|
// Do we have this device already?
|
||||||
devices_ << device;
|
int i = FindDeviceById(id);
|
||||||
}
|
if (i == -1) {
|
||||||
|
DeviceInfo info;
|
||||||
|
info.lister_ = lister;
|
||||||
|
info.unique_id_ = id;
|
||||||
|
info.friendly_name_ = lister->DeviceInfo(id, DeviceLister::Field_FriendlyName).toString();
|
||||||
|
info.size_ = lister->DeviceInfo(id, DeviceLister::Field_Capacity).toLongLong();
|
||||||
|
|
||||||
void DeviceManager::DeviceRemoved(const QString &id) {
|
// Try to load the icon with that exact name first
|
||||||
DeviceLister* lister = qobject_cast<DeviceLister*>(sender());
|
QString icon_name = lister->DeviceInfo(id, DeviceLister::Field_Icon).toString();
|
||||||
|
info.icon_ = IconLoader::Load(icon_name);
|
||||||
|
|
||||||
qDebug() << "Device removed:" << id;
|
// If that failed than try to guess if it's a phone or ipod. Fall back on
|
||||||
foreach (ConnectedDevice* device, devices_) {
|
// a usb memory stick icon.
|
||||||
if (device->lister() == lister && device->unique_id() == id) {
|
if (info.icon_.isNull()) {
|
||||||
delete device;
|
if (icon_name.contains("phone"))
|
||||||
devices_.removeAll(device);
|
info.icon_ = IconLoader::Load("phone");
|
||||||
break;
|
else if (icon_name.contains("ipod") || icon_name.contains("apple"))
|
||||||
|
info.icon_ = IconLoader::Load("multimedia-player-ipod-standard-monochrome");
|
||||||
|
else
|
||||||
|
info.icon_ = IconLoader::Load("drive-removable-media-usb-pendrive");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
beginInsertRows(QModelIndex(), devices_.count(), devices_.count());
|
||||||
|
devices_ << info;
|
||||||
|
endInsertRows();
|
||||||
|
} else {
|
||||||
|
DeviceInfo& info = devices_[i];
|
||||||
|
|
||||||
|
// TODO: Make a ConnectedDevice
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceManager::DeviceChanged(const QString &id) {
|
void DeviceManager::PhysicalDeviceRemoved(const QString &id) {
|
||||||
|
DeviceLister* lister = qobject_cast<DeviceLister*>(sender());
|
||||||
|
qDebug() << "Device removed:" << id;
|
||||||
|
|
||||||
|
int i = FindDeviceById(id);
|
||||||
|
if (i == -1) {
|
||||||
|
// Shouldn't happen
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DeviceInfo& info = devices_[i];
|
||||||
|
|
||||||
|
if (info.database_id_ != -1) {
|
||||||
|
// Keep the structure around, but just "disconnect" it
|
||||||
|
info.lister_ = NULL;
|
||||||
|
info.device_.reset();
|
||||||
|
|
||||||
|
emit dataChanged(index(i, 0), index(i, 0));
|
||||||
|
} else {
|
||||||
|
// Remove the item from the model
|
||||||
|
beginRemoveRows(QModelIndex(), i, i);
|
||||||
|
devices_.removeAt(i);
|
||||||
|
endRemoveRows();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DeviceManager::PhysicalDeviceChanged(const QString &id) {
|
||||||
DeviceLister* lister = qobject_cast<DeviceLister*>(sender());
|
DeviceLister* lister = qobject_cast<DeviceLister*>(sender());
|
||||||
|
|
||||||
qDebug() << "Device changed:" << id;
|
int i = FindDeviceById(id);
|
||||||
for (int i=0 ; i<DeviceKitLister::LastField ; ++i) {
|
if (i == -1) {
|
||||||
qDebug() << i << lister->DeviceInfo(id, i);
|
// Shouldn't happen
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO
|
||||||
}
|
}
|
||||||
|
@ -17,34 +17,70 @@
|
|||||||
#ifndef DEVICEMANAGER_H
|
#ifndef DEVICEMANAGER_H
|
||||||
#define DEVICEMANAGER_H
|
#define DEVICEMANAGER_H
|
||||||
|
|
||||||
#include <QObject>
|
#include "core/backgroundthread.h"
|
||||||
|
|
||||||
|
#include <QAbstractListModel>
|
||||||
|
#include <QIcon>
|
||||||
|
|
||||||
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
class ConnectedDevice;
|
class ConnectedDevice;
|
||||||
|
class Database;
|
||||||
class DeviceLister;
|
class DeviceLister;
|
||||||
class TaskManager;
|
class TaskManager;
|
||||||
|
|
||||||
class DeviceManager : public QObject {
|
class DeviceManager : public QAbstractListModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DeviceManager(TaskManager* task_manager, QObject* parent = 0);
|
DeviceManager(BackgroundThread<Database>* database, TaskManager* task_manager,
|
||||||
|
QObject* parent = 0);
|
||||||
~DeviceManager();
|
~DeviceManager();
|
||||||
|
|
||||||
|
BackgroundThread<Database>* database() const { return database_; }
|
||||||
TaskManager* task_manager() const { return task_manager_; }
|
TaskManager* task_manager() const { return task_manager_; }
|
||||||
|
|
||||||
|
// QAbstractListModel
|
||||||
|
int rowCount(const QModelIndex &parent) const;
|
||||||
|
QVariant data(const QModelIndex &index, int role) const;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void DeviceAdded(const QString& id);
|
void PhysicalDeviceAdded(const QString& id);
|
||||||
void DeviceRemoved(const QString& id);
|
void PhysicalDeviceRemoved(const QString& id);
|
||||||
void DeviceChanged(const QString& id);
|
void PhysicalDeviceChanged(const QString& id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void AddLister(DeviceLister* lister);
|
void AddLister(DeviceLister* lister);
|
||||||
|
int FindDeviceById(const QString& id) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Devices can be in three different states:
|
||||||
|
// 1) Remembered in the database but not physically connected at the moment.
|
||||||
|
// database_id valid, lister null, device null
|
||||||
|
// 2) Physically connected but the user hasn't "connected" it to Clementine
|
||||||
|
// yet.
|
||||||
|
// database_id == -1, lister valid, device null
|
||||||
|
// 3) Physically connected and connected to Clementine
|
||||||
|
// database_id valid, lister valid, device valid
|
||||||
|
// Devices in all states will have a unique_id.
|
||||||
|
struct DeviceInfo {
|
||||||
|
DeviceInfo();
|
||||||
|
|
||||||
|
int database_id_; // -1 if not remembered in the database
|
||||||
|
DeviceLister* lister_; // NULL if not physically connected
|
||||||
|
boost::shared_ptr<ConnectedDevice> device_; // NULL if not connected to clementine
|
||||||
|
|
||||||
|
QString unique_id_;
|
||||||
|
QString friendly_name_;
|
||||||
|
quint64 size_;
|
||||||
|
QIcon icon_;
|
||||||
|
};
|
||||||
|
|
||||||
|
BackgroundThread<Database>* database_;
|
||||||
TaskManager* task_manager_;
|
TaskManager* task_manager_;
|
||||||
|
|
||||||
QList<DeviceLister*> listers_;
|
QList<DeviceLister*> listers_;
|
||||||
QList<ConnectedDevice*> devices_;
|
QList<DeviceInfo> devices_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // DEVICEMANAGER_H
|
#endif // DEVICEMANAGER_H
|
||||||
|
25
src/devices/deviceview.cpp
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
/* This file is part of Clementine.
|
||||||
|
|
||||||
|
Clementine is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Clementine is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "deviceview.h"
|
||||||
|
|
||||||
|
#include <QMenu>
|
||||||
|
|
||||||
|
DeviceView::DeviceView(QWidget* parent)
|
||||||
|
: QTreeView(parent),
|
||||||
|
menu_(new QMenu(this))
|
||||||
|
{
|
||||||
|
}
|
36
src/devices/deviceview.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/* This file is part of Clementine.
|
||||||
|
|
||||||
|
Clementine is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
Clementine is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DEVICEVIEW_H
|
||||||
|
#define DEVICEVIEW_H
|
||||||
|
|
||||||
|
#include <QTreeView>
|
||||||
|
|
||||||
|
class QAction;
|
||||||
|
class QMenu;
|
||||||
|
|
||||||
|
class DeviceView : public QTreeView {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
DeviceView(QWidget* parent = 0);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QMenu* menu_;
|
||||||
|
QAction* connect_action_;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // DEVICEVIEW_H
|
@ -171,19 +171,10 @@ QString LengthItemDelegate::displayText(const QVariant& value, const QLocale&) c
|
|||||||
QString SizeItemDelegate::displayText(const QVariant& value, const QLocale&) const {
|
QString SizeItemDelegate::displayText(const QVariant& value, const QLocale&) const {
|
||||||
bool ok = false;
|
bool ok = false;
|
||||||
int bytes = value.toInt(&ok);
|
int bytes = value.toInt(&ok);
|
||||||
QString ret;
|
|
||||||
|
|
||||||
if (ok && bytes > 0) {
|
if (ok)
|
||||||
if (bytes <= 1024)
|
return Utilities::PrettySize(bytes);
|
||||||
ret.sprintf("%d bytes", bytes);
|
return QString();
|
||||||
else if (bytes <= 1024*1024)
|
|
||||||
ret.sprintf("%.1f KB", float(bytes) / 1024);
|
|
||||||
else if (bytes <= 1024*1024*1024)
|
|
||||||
ret.sprintf("%.1f MB", float(bytes) / (1024*1024));
|
|
||||||
else
|
|
||||||
ret.sprintf("%.1f GB", float(bytes) / (1024*1024*1024));
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString DateItemDelegate::displayText(const QVariant &value, const QLocale &locale) const {
|
QString DateItemDelegate::displayText(const QVariant &value, const QLocale &locale) const {
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -459,6 +459,9 @@ msgstr "Cíl"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detaily..."
|
msgstr "Detaily..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Složka"
|
msgstr "Složka"
|
||||||
|
|
||||||
@ -536,8 +539,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio."
|
"Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Zadejte <b>umělce</b> nebo <b>značku</b> pro spuštění poslouchání rádia "
|
"Zadejte <b>umělce</b> nebo <b>značku</b> pro spuštění poslouchání rádia Last."
|
||||||
"Last.fm."
|
"fm."
|
||||||
|
|
||||||
msgid "Enter search terms here"
|
msgid "Enter search terms here"
|
||||||
msgstr "Zde zadejte klíčová slova"
|
msgstr "Zde zadejte klíčová slova"
|
||||||
@ -1408,8 +1411,7 @@ msgid "There was a problem fetching the metadata from Magnatune"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "These folders will be scanned for music to make up your library"
|
msgid "These folders will be scanned for music to make up your library"
|
||||||
msgstr ""
|
msgstr "Tyto složky budou prohledány a nalezená hudba bude přidána do knihovny"
|
||||||
"Tyto složky budou prohledány a nalezená hudba bude přidána do knihovny"
|
|
||||||
|
|
||||||
msgid "Third level"
|
msgid "Third level"
|
||||||
msgstr "Třetí úroveň"
|
msgstr "Třetí úroveň"
|
||||||
@ -1546,9 +1548,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1606,11 +1607,9 @@ msgstr "stopa %1"
|
|||||||
#~ msgid "Show section"
|
#~ msgid "Show section"
|
||||||
#~ msgstr "Zobrazit skeci"
|
#~ msgstr "Zobrazit skeci"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "Sousedství uživatele %1"
|
#~ msgstr "Sousedství uživatele %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "Knihovna uživatele %1"
|
#~ msgstr "Knihovna uživatele %1"
|
||||||
|
|
||||||
|
@ -459,6 +459,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -460,6 +460,9 @@ msgstr "Ziel"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Details..."
|
msgstr "Details..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Ordner"
|
msgstr "Ordner"
|
||||||
|
|
||||||
@ -1406,8 +1409,7 @@ msgstr "Ordner %1 ist ungültig"
|
|||||||
|
|
||||||
#, qt-format
|
#, qt-format
|
||||||
msgid "The playlist '%1' was empty or could not be loaded."
|
msgid "The playlist '%1' was empty or could not be loaded."
|
||||||
msgstr ""
|
msgstr "Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden."
|
||||||
"Die Wiedergabeliste \"%1\" ist leer oder konnte nicht geladen werden."
|
|
||||||
|
|
||||||
msgid "There was a problem fetching the metadata from Magnatune"
|
msgid "There was a problem fetching the metadata from Magnatune"
|
||||||
msgstr "Fehler. Metadaten konnten nicht von Magnatune geholt werden"
|
msgstr "Fehler. Metadaten konnten nicht von Magnatune geholt werden"
|
||||||
@ -1550,9 +1552,8 @@ msgid ""
|
|||||||
msgstr "Sie können ohne Benutzerkonto Musik von Magnatune hören. Um die"
|
msgstr "Sie können ohne Benutzerkonto Musik von Magnatune hören. Um die"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sie können die Musik kostenlos 'scrobblen' aber nur <span style=\" font-"
|
"Sie können die Musik kostenlos 'scrobblen' aber nur <span style=\" font-"
|
||||||
"weight:600;\">zahlende Last.fm-Kunden</span> können Last.fm-Radio mit "
|
"weight:600;\">zahlende Last.fm-Kunden</span> können Last.fm-Radio mit "
|
||||||
@ -1607,7 +1608,6 @@ msgstr "%n Stücke entfernen"
|
|||||||
msgid "track %1"
|
msgid "track %1"
|
||||||
msgstr "Stück %1"
|
msgstr "Stück %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "%1s Musiksammlung"
|
#~ msgstr "%1s Musiksammlung"
|
||||||
|
|
||||||
@ -1648,8 +1648,8 @@ msgstr "Stück %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Sie müssen zahlender Last.fm Kunde sein um Last.fm über Clementine hören zu "
|
#~ "Sie müssen zahlender Last.fm Kunde sein um Last.fm über Clementine hören "
|
||||||
#~ "können"
|
#~ "zu können"
|
||||||
|
|
||||||
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
#~ msgstr "Musik (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgstr "Musik (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
|
@ -90,8 +90,8 @@ msgid ""
|
|||||||
"<p>If you surround sections of text that contain a token with curly-braces, "
|
"<p>If you surround sections of text that contain a token with curly-braces, "
|
||||||
"that section will be hidden if the token is empty.</p>"
|
"that section will be hidden if the token is empty.</p>"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<p>Λέξεις που αρχίζουν με %, για παράδειγμα:%καλλιτέχνης %άλμπουμ "
|
"<p>Λέξεις που αρχίζουν με %, για παράδειγμα:%καλλιτέχνης %άλμπουμ %τίτλος</"
|
||||||
"%τίτλος</p>\n"
|
"p>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"<p>Αν κλείσεις ένα κείμενο που περιέχει λέξη με % σε άγκιστρα ({}), το "
|
"<p>Αν κλείσεις ένα κείμενο που περιέχει λέξη με % σε άγκιστρα ({}), το "
|
||||||
"τμήμα αυτό δεν θα είναι ορατό η λέξη λείπει</p>"
|
"τμήμα αυτό δεν θα είναι ορατό η λέξη λείπει</p>"
|
||||||
@ -468,6 +468,9 @@ msgstr "Προορισμός"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Λεπτομέρειες..."
|
msgstr "Λεπτομέρειες..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Κατάλογος"
|
msgstr "Κατάλογος"
|
||||||
|
|
||||||
@ -859,8 +862,7 @@ msgid "Loading tracks"
|
|||||||
msgstr "Φόρτωση κομματιών"
|
msgstr "Φόρτωση κομματιών"
|
||||||
|
|
||||||
msgid "Loads files/URLs, replacing current playlist"
|
msgid "Loads files/URLs, replacing current playlist"
|
||||||
msgstr ""
|
msgstr "Φορτώνει αρχεία/URLs, αντικαθιστώντας την τρέχουσα λίστα αναπαραγωγής"
|
||||||
"Φορτώνει αρχεία/URLs, αντικαθιστώντας την τρέχουσα λίστα αναπαραγωγής"
|
|
||||||
|
|
||||||
msgid "Love"
|
msgid "Love"
|
||||||
msgstr "Αγάπη"
|
msgstr "Αγάπη"
|
||||||
@ -908,8 +910,7 @@ msgid "Music"
|
|||||||
msgstr "Μουσική"
|
msgstr "Μουσική"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "Μουσική (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
"Μουσική (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Μουσική βιβλιοθήκη"
|
msgstr "Μουσική βιβλιοθήκη"
|
||||||
@ -1422,8 +1423,7 @@ msgstr ""
|
|||||||
"Υπήρξε κάποιο σφάλμα κατά την μεταφορά των μετα-δεδομένων από το Magnatune"
|
"Υπήρξε κάποιο σφάλμα κατά την μεταφορά των μετα-δεδομένων από το Magnatune"
|
||||||
|
|
||||||
msgid "These folders will be scanned for music to make up your library"
|
msgid "These folders will be scanned for music to make up your library"
|
||||||
msgstr ""
|
msgstr "Οι φάκελοι αυτοί θα σαρωθούν για μουσικά αρχεία για την βιβλιοθήκη σας"
|
||||||
"Οι φάκελοι αυτοί θα σαρωθούν για μουσικά αρχεία για την βιβλιοθήκη σας"
|
|
||||||
|
|
||||||
msgid "Third level"
|
msgid "Third level"
|
||||||
msgstr "Τρίτο επίπεδο"
|
msgstr "Τρίτο επίπεδο"
|
||||||
@ -1563,9 +1563,8 @@ msgstr ""
|
|||||||
"αγορά μιας συνδρομής αφαιρεί το μήνυμα από το τέλος κάθε κομματιού."
|
"αγορά μιας συνδρομής αφαιρεί το μήνυμα από το τέλος κάθε κομματιού."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Μπορείτε να κάνετε \"scroble\" δωρεάν, αλλά μόνο <span style=\" font-"
|
"Μπορείτε να κάνετε \"scroble\" δωρεάν, αλλά μόνο <span style=\" font-"
|
||||||
"weight:600;\">οι συνδρομητές επί πληρωμή</span> μπορούν να έχουν ροή από το "
|
"weight:600;\">οι συνδρομητές επί πληρωμή</span> μπορούν να έχουν ροή από το "
|
||||||
@ -1624,11 +1623,9 @@ msgstr "αφαίρεση %n τραγουδιών"
|
|||||||
msgid "track %1"
|
msgid "track %1"
|
||||||
msgstr "κομμάτι %1"
|
msgstr "κομμάτι %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "%1's Συνοικιακά"
|
#~ msgstr "%1's Συνοικιακά"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "%1's Βιβλιοθήκη"
|
#~ msgstr "%1's Βιβλιοθήκη"
|
||||||
|
|
||||||
@ -1657,8 +1654,8 @@ msgstr "κομμάτι %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Σημείωσε πως πρέπει να είσαι <span style=\" font-"
|
#~ "Σημείωσε πως πρέπει να είσαι <span style=\" font-weight:600;"
|
||||||
#~ "weight:600;\">συνδρομητής</span> για να ακούσεις Last.fm από το Clementine."
|
#~ "\">συνδρομητής</span> για να ακούσεις Last.fm από το Clementine."
|
||||||
|
|
||||||
#~ msgid "Fadeout"
|
#~ msgid "Fadeout"
|
||||||
#~ msgstr "Ομαλό σβήσιμο"
|
#~ msgstr "Ομαλό σβήσιμο"
|
||||||
|
@ -460,6 +460,9 @@ msgstr "Destination"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Details..."
|
msgstr "Details..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directory"
|
msgstr "Directory"
|
||||||
|
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -327,8 +327,7 @@ msgid "Closing this window will cancel the download."
|
|||||||
msgstr "Cerrando esta ventana se cancelara la descarga."
|
msgstr "Cerrando esta ventana se cancelara la descarga."
|
||||||
|
|
||||||
msgid "Closing this window will stop searching for album covers."
|
msgid "Closing this window will stop searching for album covers."
|
||||||
msgstr ""
|
msgstr "Cerrando esta ventana se dejara de buscar las caratulas de los álbumes"
|
||||||
"Cerrando esta ventana se dejara de buscar las caratulas de los álbumes"
|
|
||||||
|
|
||||||
msgid "Club"
|
msgid "Club"
|
||||||
msgstr "Club"
|
msgstr "Club"
|
||||||
@ -463,6 +462,9 @@ msgstr "Destino"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detalles..."
|
msgstr "Detalles..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directorio"
|
msgstr "Directorio"
|
||||||
|
|
||||||
@ -541,8 +543,8 @@ msgstr "Ingrese un nuevo nombre para esta lista de reproducción"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio."
|
"Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ingrese un <b>artista</b> o <b>etiqueta</b> para escuchar la radio de "
|
"Ingrese un <b>artista</b> o <b>etiqueta</b> para escuchar la radio de Last."
|
||||||
"Last.fm."
|
"fm."
|
||||||
|
|
||||||
msgid "Enter search terms here"
|
msgid "Enter search terms here"
|
||||||
msgstr "Introduzca aquí los términos de búsqueda"
|
msgstr "Introduzca aquí los términos de búsqueda"
|
||||||
@ -728,8 +730,8 @@ msgstr "Ignorar el \"The\" en los nombres de los artistas"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Imágenes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm "
|
"Imágenes (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *."
|
||||||
"*.tiff)"
|
"tiff)"
|
||||||
|
|
||||||
msgid "Include album art in the notification"
|
msgid "Include album art in the notification"
|
||||||
msgstr "Incluir carátula en la notificación"
|
msgstr "Incluir carátula en la notificación"
|
||||||
@ -811,8 +813,7 @@ msgid "Last.fm Tag Radio: %1"
|
|||||||
msgstr "Radio en Last.fm de la Etiqueta %1"
|
msgstr "Radio en Last.fm de la Etiqueta %1"
|
||||||
|
|
||||||
msgid "Last.fm is currently busy, please try again in a few minutes"
|
msgid "Last.fm is currently busy, please try again in a few minutes"
|
||||||
msgstr ""
|
msgstr "Last.fm está actualmente saturado, intente nuevamente en unos minutos"
|
||||||
"Last.fm está actualmente saturado, intente nuevamente en unos minutos"
|
|
||||||
|
|
||||||
msgid "Last.fm password"
|
msgid "Last.fm password"
|
||||||
msgstr "Contraseña"
|
msgstr "Contraseña"
|
||||||
@ -1559,9 +1560,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1619,11 +1619,9 @@ msgstr "Pista %1"
|
|||||||
#~ msgid "Show section"
|
#~ msgid "Show section"
|
||||||
#~ msgstr "Mostrar columna"
|
#~ msgstr "Mostrar columna"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "Vecinos de %1"
|
#~ msgstr "Vecinos de %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "Colección de %1"
|
#~ msgstr "Colección de %1"
|
||||||
|
|
||||||
@ -1706,8 +1704,8 @@ msgstr "Pista %1"
|
|||||||
#~ msgstr "Acceso por defecto:"
|
#~ msgstr "Acceso por defecto:"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "You are about to reset to global shortcuts default values. Are you sure you "
|
#~ "You are about to reset to global shortcuts default values. Are you sure "
|
||||||
#~ "want to continue?"
|
#~ "you want to continue?"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Estas por reinicar las teclas rapidas a sus valores por defecto. Estás "
|
#~ "Estas por reinicar las teclas rapidas a sus valores por defecto. Estás "
|
||||||
#~ "seguro que deseas continuar?"
|
#~ "seguro que deseas continuar?"
|
||||||
@ -1722,8 +1720,9 @@ msgstr "Pista %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Recuerda que tienes que ser un <span style=\" font-weight:600;\">Suscriptor "
|
#~ "Recuerda que tienes que ser un <span style=\" font-weight:600;"
|
||||||
#~ "de Paga</span> para poder escuchar la radio de Last.fm desde Clementine."
|
#~ "\">Suscriptor de Paga</span> para poder escuchar la radio de Last.fm "
|
||||||
|
#~ "desde Clementine."
|
||||||
|
|
||||||
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
#~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
|
@ -458,6 +458,9 @@ msgstr "Kohde"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Tiedot..."
|
msgstr "Tiedot..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Kansio"
|
msgstr "Kansio"
|
||||||
|
|
||||||
@ -1543,9 +1546,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
|
@ -459,6 +459,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -817,8 +820,8 @@ msgstr "Nom d'utilisateur"
|
|||||||
|
|
||||||
msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc."
|
msgid "Leave blank for the default. Examples: \"/dev/dsp\", \"front\", etc."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Laisser vide pour les paramètres par défaut. Exemples : \"/dev/dsp\", "
|
"Laisser vide pour les paramètres par défaut. Exemples : \"/dev/dsp\", \"front"
|
||||||
"\"front\", etc."
|
"\", etc."
|
||||||
|
|
||||||
msgid "Length"
|
msgid "Length"
|
||||||
msgstr "Durée"
|
msgstr "Durée"
|
||||||
@ -1553,9 +1556,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1613,11 +1615,9 @@ msgstr "piste %1"
|
|||||||
#~ msgid "Show section"
|
#~ msgid "Show section"
|
||||||
#~ msgstr "Montrer la colonne"
|
#~ msgstr "Montrer la colonne"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "Voisinnage de %1"
|
#~ msgstr "Voisinnage de %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "Bibliothèque de %1"
|
#~ msgstr "Bibliothèque de %1"
|
||||||
|
|
||||||
@ -1646,8 +1646,8 @@ msgstr "piste %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "N'oubliez pas que vous devez être <span style=\" font-weight:600;\">abonné "
|
#~ "N'oubliez pas que vous devez être <span style=\" font-weight:600;"
|
||||||
#~ "(payant)</span> pour écouter la radio Last.fm avec Clementine."
|
#~ "\">abonné (payant)</span> pour écouter la radio Last.fm avec Clementine."
|
||||||
|
|
||||||
#~ msgid "Fadeout"
|
#~ msgid "Fadeout"
|
||||||
#~ msgstr "Fondu final"
|
#~ msgstr "Fondu final"
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -461,6 +461,9 @@ msgstr "Destinazione"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Dettagli..."
|
msgstr "Dettagli..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Cartella"
|
msgstr "Cartella"
|
||||||
|
|
||||||
@ -725,8 +728,8 @@ msgstr "Ignora \"The\" nei nomi degli artisti"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm "
|
"Immagini (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *."
|
||||||
"*.tiff)"
|
"tiff)"
|
||||||
|
|
||||||
msgid "Include album art in the notification"
|
msgid "Include album art in the notification"
|
||||||
msgstr "Includi copertina nella notifica"
|
msgstr "Includi copertina nella notifica"
|
||||||
@ -808,8 +811,7 @@ msgid "Last.fm Tag Radio: %1"
|
|||||||
msgstr "Radio del tag di Last.fm: %1"
|
msgstr "Radio del tag di Last.fm: %1"
|
||||||
|
|
||||||
msgid "Last.fm is currently busy, please try again in a few minutes"
|
msgid "Last.fm is currently busy, please try again in a few minutes"
|
||||||
msgstr ""
|
msgstr "Al momento Last.fm non è disponibile, prova ancora tra qualche minuto"
|
||||||
"Al momento Last.fm non è disponibile, prova ancora tra qualche minuto"
|
|
||||||
|
|
||||||
msgid "Last.fm password"
|
msgid "Last.fm password"
|
||||||
msgstr "Password Last.fm"
|
msgstr "Password Last.fm"
|
||||||
@ -904,8 +906,7 @@ msgid "Music"
|
|||||||
msgstr "Musica"
|
msgstr "Musica"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "Musica (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
"Musica (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Raccolta musicale"
|
msgstr "Raccolta musicale"
|
||||||
@ -1561,9 +1562,8 @@ msgstr ""
|
|||||||
"traccia."
|
"traccia."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1658,8 +1658,9 @@ msgstr "traccia %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Nota che è necessario essere un <span style=\" font-weight:600;\">abbonato a "
|
#~ "Nota che è necessario essere un <span style=\" font-weight:600;"
|
||||||
#~ "pagamento</span> per ascoltare una radio Last.fm da Clementine."
|
#~ "\">abbonato a pagamento</span> per ascoltare una radio Last.fm da "
|
||||||
|
#~ "Clementine."
|
||||||
|
|
||||||
#~ msgid "Configure global shortcuts..."
|
#~ msgid "Configure global shortcuts..."
|
||||||
#~ msgstr "Configura le scorciatoie globali..."
|
#~ msgstr "Configura le scorciatoie globali..."
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -458,6 +458,9 @@ msgstr "Destinacion"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detalhs..."
|
msgstr "Detalhs..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Dorsièr"
|
msgstr "Dorsièr"
|
||||||
|
|
||||||
|
@ -459,6 +459,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -465,6 +465,9 @@ msgstr "Destino"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detalhes..."
|
msgstr "Detalhes..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directoria"
|
msgstr "Directoria"
|
||||||
|
|
||||||
@ -904,8 +907,7 @@ msgid "Music"
|
|||||||
msgstr "Música"
|
msgstr "Música"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
"Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Biblioteca de Música"
|
msgstr "Biblioteca de Música"
|
||||||
@ -1556,13 +1558,12 @@ msgstr ""
|
|||||||
"serviço, a mensagem no final de cada faixa será removida."
|
"serviço, a mensagem no final de cada faixa será removida."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Você pode actualizar/memorizar as faixas gratuitamente, mas apenas os <span "
|
"Você pode actualizar/memorizar as faixas gratuitamente, mas apenas os <span "
|
||||||
"style=\" font-weight:600;\">assinantes</span> conseguem ouvir as rádios "
|
"style=\" font-weight:600;\">assinantes</span> conseguem ouvir as rádios Last."
|
||||||
"Last.fm através do Clementine."
|
"fm através do Clementine."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
||||||
@ -1616,11 +1617,9 @@ msgstr "remover %n canções"
|
|||||||
msgid "track %1"
|
msgid "track %1"
|
||||||
msgstr "faixa %1"
|
msgstr "faixa %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "Vizinhos da %1's"
|
#~ msgstr "Vizinhos da %1's"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "Biblioteca da %1's"
|
#~ msgstr "Biblioteca da %1's"
|
||||||
|
|
||||||
@ -1652,8 +1651,8 @@ msgstr "faixa %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Note que deverá ser <span style=\" font-weight:600;\"> um assinante </span> "
|
#~ "Note que deverá ser <span style=\" font-weight:600;\"> um assinante </"
|
||||||
#~ "para ouvir as rádio Last.fm com o Clementine."
|
#~ "span> para ouvir as rádio Last.fm com o Clementine."
|
||||||
|
|
||||||
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
#~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
|
@ -463,6 +463,9 @@ msgstr "Destino"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detalhes..."
|
msgstr "Detalhes..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Diretório"
|
msgstr "Diretório"
|
||||||
|
|
||||||
@ -904,8 +907,7 @@ msgid "Music"
|
|||||||
msgstr "Música"
|
msgstr "Música"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
"Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Biblioteca de Músicas"
|
msgstr "Biblioteca de Músicas"
|
||||||
@ -1557,9 +1559,8 @@ msgstr ""
|
|||||||
"uma assinatura as mensagens no final de cada faixa serão removidas."
|
"uma assinatura as mensagens no final de cada faixa serão removidas."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Você pode obter os nomes das faixas de graça, mas apenas <span style=\" font-"
|
"Você pode obter os nomes das faixas de graça, mas apenas <span style=\" font-"
|
||||||
"weight:600;\">assinantes</span> podem ouvir rádio da Last.fm do Clementine."
|
"weight:600;\">assinantes</span> podem ouvir rádio da Last.fm do Clementine."
|
||||||
@ -1570,8 +1571,8 @@ msgid ""
|
|||||||
"shortcuts in Clementine."
|
"shortcuts in Clementine."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Você precisa acessar as Preferências de Sistema e habilitar a opção \"<span "
|
"Você precisa acessar as Preferências de Sistema e habilitar a opção \"<span "
|
||||||
"style=\" font-style:italic;\">Ativar acesso por dispositivos "
|
"style=\" font-style:italic;\">Ativar acesso por dispositivos assistidos</"
|
||||||
"assistidos</span>\" para utilizar os atalhos globais no Clementine."
|
"span>\" para utilizar os atalhos globais no Clementine."
|
||||||
|
|
||||||
msgid "Your Last.fm credentials were incorrect"
|
msgid "Your Last.fm credentials were incorrect"
|
||||||
msgstr "Suas credencias do Last.fm estavam incorretas"
|
msgstr "Suas credencias do Last.fm estavam incorretas"
|
||||||
@ -1626,8 +1627,8 @@ msgstr "faixa %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Nota: Você deve ser um <span style=\" fonte-weight:600;\">assinante</span> "
|
#~ "Nota: Você deve ser um <span style=\" fonte-weight:600;\">assinante</"
|
||||||
#~ "para ouvir a rádio Last.fm do Clementine."
|
#~ "span> para ouvir a rádio Last.fm do Clementine."
|
||||||
|
|
||||||
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
#~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
#~ msgstr "Música (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma)"
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -459,6 +459,9 @@ msgstr "Назначение"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Подробнее..."
|
msgstr "Подробнее..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Директория"
|
msgstr "Директория"
|
||||||
|
|
||||||
@ -535,8 +538,7 @@ msgstr "Введите новое имя для этого списка восп
|
|||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio."
|
"Enter an <b>artist</b> or <b>tag</b> to start listening to Last.fm radio."
|
||||||
msgstr ""
|
msgstr "Укажите <b>исполнителя</b> или <b>тег</b> чтобы слушать радио Last.fm."
|
||||||
"Укажите <b>исполнителя</b> или <b>тег</b> чтобы слушать радио Last.fm."
|
|
||||||
|
|
||||||
msgid "Enter search terms here"
|
msgid "Enter search terms here"
|
||||||
msgstr "Введите выражение для поиска"
|
msgstr "Введите выражение для поиска"
|
||||||
@ -722,8 +724,8 @@ msgstr "Игнорировать \"The\" в имени исполнителя"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm "
|
"Изображения (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *."
|
||||||
"*.tiff)"
|
"tiff)"
|
||||||
|
|
||||||
msgid "Include album art in the notification"
|
msgid "Include album art in the notification"
|
||||||
msgstr "Показывать обложку альбома в уведомлении"
|
msgstr "Показывать обложку альбома в уведомлении"
|
||||||
@ -899,8 +901,7 @@ msgid "Music"
|
|||||||
msgstr "Музыка"
|
msgstr "Музыка"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "музыка (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
"музыка (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Музыкальная коллекция"
|
msgstr "Музыкальная коллекция"
|
||||||
@ -1550,9 +1551,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Вы можете скробблить композиции свободно, но только <span style=\" font-"
|
"Вы можете скробблить композиции свободно, но только <span style=\" font-"
|
||||||
"weight:600;\">платные подписчики</span> могут слушать радио Last.fm из "
|
"weight:600;\">платные подписчики</span> могут слушать радио Last.fm из "
|
||||||
@ -1635,9 +1635,8 @@ msgstr "композиция %1"
|
|||||||
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
#~ "Note that you must be a <span style=\" font-weight:600;\">paid "
|
||||||
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
#~ "subscriber</span> to listen to Last.fm radio from within Clementine."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Обратите внимание, что вы должны быть <span style=\"font-"
|
#~ "Обратите внимание, что вы должны быть <span style=\"font-weight:600;"
|
||||||
#~ "weight:600;\">платным подписчиком</span> ,чтобы слушать радио Last.fm из "
|
#~ "\">платным подписчиком</span> ,чтобы слушать радио Last.fm из Clementine."
|
||||||
#~ "Clementine."
|
|
||||||
|
|
||||||
#~ msgid "Fadeout"
|
#~ msgid "Fadeout"
|
||||||
#~ msgstr "Затихание"
|
#~ msgstr "Затихание"
|
||||||
@ -1654,11 +1653,9 @@ msgstr "композиция %1"
|
|||||||
#~ msgid "Don't show notifications"
|
#~ msgid "Don't show notifications"
|
||||||
#~ msgstr "Не показывать"
|
#~ msgstr "Не показывать"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "Соседи %1"
|
#~ msgstr "Соседи %1"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "Коллекция %1"
|
#~ msgstr "Коллекция %1"
|
||||||
|
|
||||||
|
@ -465,6 +465,9 @@ msgstr "Cieľ"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Podrobnosti..."
|
msgstr "Podrobnosti..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Priečinok"
|
msgstr "Priečinok"
|
||||||
|
|
||||||
@ -1554,13 +1557,11 @@ msgstr ""
|
|||||||
"správy na konci každej skladby."
|
"správy na konci každej skladby."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Môžte skrobblovať skladby zadarmo, ale len <span style=\" font-"
|
"Môžte skrobblovať skladby zadarmo, ale len <span style=\" font-weight:600;"
|
||||||
"weight:600;\">platiaci predplatitelia</span> môžu streamovať Last.fm rádio z "
|
"\">platiaci predplatitelia</span> môžu streamovať Last.fm rádio z Clementine."
|
||||||
"Clementine."
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
||||||
@ -1620,11 +1621,9 @@ msgstr "skladba %1"
|
|||||||
#~ msgid "Show section"
|
#~ msgid "Show section"
|
||||||
#~ msgstr "Zobraziť stĺpec"
|
#~ msgstr "Zobraziť stĺpec"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Neighborhood"
|
#~ msgid "%1's Neighborhood"
|
||||||
#~ msgstr "%1 susedia"
|
#~ msgstr "%1 susedia"
|
||||||
|
|
||||||
#, qt-format
|
|
||||||
#~ msgid "%1's Library"
|
#~ msgid "%1's Library"
|
||||||
#~ msgstr "%1 zbierka"
|
#~ msgstr "%1 zbierka"
|
||||||
|
|
||||||
@ -1704,8 +1703,8 @@ msgstr "skladba %1"
|
|||||||
#~ msgstr "Pôvodný kľúč"
|
#~ msgstr "Pôvodný kľúč"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "You are about to reset to global shortcuts default values. Are you sure you "
|
#~ "You are about to reset to global shortcuts default values. Are you sure "
|
||||||
#~ "want to continue?"
|
#~ "you want to continue?"
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Pokúšate sa zresetovať pôvodné globálne skratky. Ste si istý, že chcete "
|
#~ "Pokúšate sa zresetovať pôvodné globálne skratky. Ste si istý, že chcete "
|
||||||
#~ "pokračovať?"
|
#~ "pokračovať?"
|
||||||
|
@ -460,6 +460,9 @@ msgstr "Mål"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detaljer..."
|
msgstr "Detaljer..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Katalog"
|
msgstr "Katalog"
|
||||||
|
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Detaylar..."
|
msgstr "Detaylar..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -449,6 +449,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -464,6 +464,9 @@ msgstr "Призначення"
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr "Детальніше..."
|
msgstr "Детальніше..."
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Каталог"
|
msgstr "Каталог"
|
||||||
|
|
||||||
@ -727,8 +730,8 @@ msgstr "Ігнорувати «The» в іменах виконавців"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
"Images (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *.tiff)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Зображення (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm "
|
"Зображення (*.png *.jpg *.jpeg *.bmp *.gif *.xpm *.pbm *.pgm *.ppm *.xbm *."
|
||||||
"*.tiff)"
|
"tiff)"
|
||||||
|
|
||||||
msgid "Include album art in the notification"
|
msgid "Include album art in the notification"
|
||||||
msgstr "Показувати обкладинку в повідомлені"
|
msgstr "Показувати обкладинку в повідомлені"
|
||||||
@ -903,8 +906,7 @@ msgid "Music"
|
|||||||
msgstr "Музика"
|
msgstr "Музика"
|
||||||
|
|
||||||
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
msgid "Music (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
msgstr ""
|
msgstr "Музика (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
||||||
"Музика (*.mp3 *.ogg *.flac *.mpc *.m4a *.aac *.wma *.mp4 *.spx *.wav)"
|
|
||||||
|
|
||||||
msgid "Music Library"
|
msgid "Music Library"
|
||||||
msgstr "Фонотека"
|
msgstr "Фонотека"
|
||||||
@ -1555,13 +1557,12 @@ msgstr ""
|
|||||||
"Набуття членства дає змогу вилучати повідомлення в кінці кожної композиції."
|
"Набуття членства дає змогу вилучати повідомлення в кінці кожної композиції."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You can scrobble tracks for free, but only <span style=\" font-"
|
"You can scrobble tracks for free, but only <span style=\" font-weight:600;"
|
||||||
"weight:600;\">paid subscribers</span> can stream Last.fm radio from "
|
"\">paid subscribers</span> can stream Last.fm radio from Clementine."
|
||||||
"Clementine."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ви можете вільно скроббити доріжки, але лише <span style=\" font-"
|
"Ви можете вільно скроббити доріжки, але лише <span style=\" font-weight:600;"
|
||||||
"weight:600;\">платні передплатники</span> можуть слухати потокове радіо "
|
"\">платні передплатники</span> можуть слухати потокове радіо Last.fm з "
|
||||||
"Last.fm з Clementine."
|
"Clementine."
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
"You need to launch System Preferences and turn on \"<span style=\" font-"
|
||||||
@ -1569,9 +1570,8 @@ msgid ""
|
|||||||
"shortcuts in Clementine."
|
"shortcuts in Clementine."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Потрібно запустити «Системні налаштування» та увімкнути параметр \"<span "
|
"Потрібно запустити «Системні налаштування» та увімкнути параметр \"<span "
|
||||||
"style=\" font-style:italic;\">Увімкнути доступ для допоміжних "
|
"style=\" font-style:italic;\">Увімкнути доступ для допоміжних пристроїв</"
|
||||||
"пристроїв</span>\", щоб використовувати глобальні комбінації клавіш в "
|
"span>\", щоб використовувати глобальні комбінації клавіш в Clementine."
|
||||||
"Clementine."
|
|
||||||
|
|
||||||
msgid "Your Last.fm credentials were incorrect"
|
msgid "Your Last.fm credentials were incorrect"
|
||||||
msgstr "Ваші облікові дані Last.fm неправильні"
|
msgstr "Ваші облікові дані Last.fm неправильні"
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -458,6 +458,9 @@ msgstr ""
|
|||||||
msgid "Details..."
|
msgid "Details..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Devices"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
|||||||
player_(NULL),
|
player_(NULL),
|
||||||
library_(NULL),
|
library_(NULL),
|
||||||
global_shortcuts_(new GlobalShortcuts(this)),
|
global_shortcuts_(new GlobalShortcuts(this)),
|
||||||
devices_(new DeviceManager(task_manager_, this)),
|
devices_(NULL),
|
||||||
settings_dialog_(NULL),
|
settings_dialog_(NULL),
|
||||||
add_stream_dialog_(new AddStreamDialog),
|
add_stream_dialog_(new AddStreamDialog),
|
||||||
cover_manager_(NULL),
|
cover_manager_(NULL),
|
||||||
@ -150,6 +150,7 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
|||||||
cover_manager_.reset(new AlbumCoverManager(network, library_->backend()));
|
cover_manager_.reset(new AlbumCoverManager(network, library_->backend()));
|
||||||
settings_dialog_.reset(new SettingsDialog); // Needs RadioModel
|
settings_dialog_.reset(new SettingsDialog); // Needs RadioModel
|
||||||
radio_model_->SetSettingsDialog(settings_dialog_.get());
|
radio_model_->SetSettingsDialog(settings_dialog_.get());
|
||||||
|
devices_ = new DeviceManager(database_, task_manager_, this),
|
||||||
|
|
||||||
// Initialise the UI
|
// Initialise the UI
|
||||||
ui_->setupUi(this);
|
ui_->setupUi(this);
|
||||||
@ -195,6 +196,8 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
|||||||
|
|
||||||
ui_->radio_view->SetModel(radio_model_);
|
ui_->radio_view->SetModel(radio_model_);
|
||||||
|
|
||||||
|
ui_->devices_view->setModel(devices_);
|
||||||
|
|
||||||
organise_dialog_->AddDirectoryModel(library_->model()->directory_model());
|
organise_dialog_->AddDirectoryModel(library_->model()->directory_model());
|
||||||
|
|
||||||
cover_manager_->Init();
|
cover_manager_->Init();
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
<enum>QTabWidget::North</enum>
|
<enum>QTabWidget::North</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>3</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="usesScrollButtons">
|
<property name="usesScrollButtons">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
@ -125,6 +125,32 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QWidget" name="devices_tab">
|
||||||
|
<attribute name="title">
|
||||||
|
<string>Devices</string>
|
||||||
|
</attribute>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="DeviceView" name="devices_view">
|
||||||
|
<property name="alternatingRowColors">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="allColumnsShowFocus">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="headerHidden">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -861,6 +887,11 @@
|
|||||||
<header>widgets/nowplayingwidget.h</header>
|
<header>widgets/nowplayingwidget.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>DeviceView</class>
|
||||||
|
<extends>QTreeView</extends>
|
||||||
|
<header>devices/deviceview.h</header>
|
||||||
|
</customwidget>
|
||||||
</customwidgets>
|
</customwidgets>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="../../data/data.qrc"/>
|
<include location="../../data/data.qrc"/>
|
||||||
|