Don't connect new devices automatically, put them in a list model. Add icons for ipods, android phones and USB memory sticks.

This commit is contained in:
David Sansome 2010-07-03 21:05:55 +00:00
parent d3e3d04fe1
commit 6654182032
96 changed files with 518 additions and 176 deletions

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 702 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

BIN
data/icons/22x22/phone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
data/icons/32x32/phone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
data/icons/48x48/phone.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

8
data/schema-14.sql Normal file
View 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;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View 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
View 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

View File

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

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

@ -459,6 +459,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

@ -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 "Ομαλό σβήσιμο"

View File

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

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

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

View File

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

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

@ -459,6 +459,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

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

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

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

View File

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

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "Detaylar..." msgstr "Detaylar..."
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

@ -449,6 +449,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

@ -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 неправильні"

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

@ -458,6 +458,9 @@ msgstr ""
msgid "Details..." msgid "Details..."
msgstr "" msgstr ""
msgid "Devices"
msgstr ""
msgid "Directory" msgid "Directory"
msgstr "" msgstr ""

View File

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

View File

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