Refactor some initial setup out of MainWindow::MainWindow().
This commit is contained in:
parent
59378166b4
commit
bde7902686
|
@ -42,10 +42,9 @@ const char* Mpris2::kMprisObjectPath = "/org/mpris/MediaPlayer2";
|
||||||
const char* Mpris2::kServiceName = "org.mpris.MediaPlayer2.clementine";
|
const char* Mpris2::kServiceName = "org.mpris.MediaPlayer2.clementine";
|
||||||
const char* Mpris2::kFreedesktopPath = "org.freedesktop.DBus.Properties";
|
const char* Mpris2::kFreedesktopPath = "org.freedesktop.DBus.Properties";
|
||||||
|
|
||||||
Mpris2::Mpris2(MainWindow* main_window, Player* player, ArtLoader* art_loader,
|
Mpris2::Mpris2(Player* player, ArtLoader* art_loader,
|
||||||
Mpris1* mpris1, QObject* parent)
|
Mpris1* mpris1, QObject* parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
ui_(main_window),
|
|
||||||
player_(player),
|
player_(player),
|
||||||
mpris1_(mpris1)
|
mpris1_(mpris1)
|
||||||
{
|
{
|
||||||
|
@ -205,8 +204,7 @@ QStringList Mpris2::SupportedMimeTypes() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mpris2::Raise() {
|
void Mpris2::Raise() {
|
||||||
ui_->show();
|
emit RaiseMainWindow();
|
||||||
ui_->activateWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Mpris2::Quit() {
|
void Mpris2::Quit() {
|
||||||
|
|
|
@ -72,7 +72,7 @@ class Mpris2 : public QObject {
|
||||||
Q_PROPERTY( bool CanEditTracks READ CanEditTracks )
|
Q_PROPERTY( bool CanEditTracks READ CanEditTracks )
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Mpris2(MainWindow* main_window, Player* player, ArtLoader* art_loader,
|
Mpris2(Player* player, ArtLoader* art_loader,
|
||||||
Mpris1* mpris1, QObject* parent);
|
Mpris1* mpris1, QObject* parent);
|
||||||
|
|
||||||
// Root Properties
|
// Root Properties
|
||||||
|
@ -140,6 +140,8 @@ signals:
|
||||||
void TrackRemoved(const QDBusObjectPath& trackId);
|
void TrackRemoved(const QDBusObjectPath& trackId);
|
||||||
void TrackMetadataChanged(const QDBusObjectPath& trackId, const TrackMetadata& metadata);
|
void TrackMetadataChanged(const QDBusObjectPath& trackId, const TrackMetadata& metadata);
|
||||||
|
|
||||||
|
void RaiseMainWindow();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void ArtLoaded(const Song& song, const QString& art_uri);
|
void ArtLoaded(const Song& song, const QString& art_uri);
|
||||||
void EngineStateChanged(Engine::State newState);
|
void EngineStateChanged(Engine::State newState);
|
||||||
|
@ -165,7 +167,6 @@ private:
|
||||||
|
|
||||||
QVariantMap last_metadata_;
|
QVariantMap last_metadata_;
|
||||||
|
|
||||||
MainWindow* ui_;
|
|
||||||
Player* player_;
|
Player* player_;
|
||||||
Mpris1* mpris1_;
|
Mpris1* mpris1_;
|
||||||
};
|
};
|
||||||
|
|
|
@ -23,19 +23,11 @@
|
||||||
#include "playlist/playlist.h"
|
#include "playlist/playlist.h"
|
||||||
#include "playlist/playlistitem.h"
|
#include "playlist/playlistitem.h"
|
||||||
#include "playlist/playlistmanager.h"
|
#include "playlist/playlistmanager.h"
|
||||||
#include "mpris_common.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_LIBLASTFM
|
#ifdef HAVE_LIBLASTFM
|
||||||
# include "radio/lastfmservice.h"
|
# include "radio/lastfmservice.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_DBUS
|
|
||||||
# include "mpris.h"
|
|
||||||
# include "mpris2.h"
|
|
||||||
# include <QDBusConnection>
|
|
||||||
# include <QImage>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
#include <QtConcurrentRun>
|
#include <QtConcurrentRun>
|
||||||
|
|
||||||
|
@ -44,15 +36,12 @@
|
||||||
using boost::shared_ptr;
|
using boost::shared_ptr;
|
||||||
|
|
||||||
|
|
||||||
Player::Player(MainWindow* main_window, PlaylistManager* playlists,
|
Player::Player(PlaylistManager* playlists,
|
||||||
#ifdef HAVE_LIBLASTFM
|
#ifdef HAVE_LIBLASTFM
|
||||||
LastFMService* lastfm,
|
LastFMService* lastfm,
|
||||||
#endif
|
#endif
|
||||||
QObject* parent)
|
QObject* parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
art_loader_(new mpris::ArtLoader(this)),
|
|
||||||
mpris1_(NULL),
|
|
||||||
mpris2_(NULL),
|
|
||||||
playlists_(playlists),
|
playlists_(playlists),
|
||||||
#ifdef HAVE_LIBLASTFM
|
#ifdef HAVE_LIBLASTFM
|
||||||
lastfm_(lastfm),
|
lastfm_(lastfm),
|
||||||
|
@ -62,24 +51,6 @@ Player::Player(MainWindow* main_window, PlaylistManager* playlists,
|
||||||
last_state_(Engine::Empty),
|
last_state_(Engine::Empty),
|
||||||
volume_before_mute_(50)
|
volume_before_mute_(50)
|
||||||
{
|
{
|
||||||
// Loads album art and saves it to a file in /tmp for MPRIS clients and those
|
|
||||||
// objects which need cover art's filepath, not the image itself
|
|
||||||
connect(playlists, SIGNAL(CurrentSongChanged(Song)),
|
|
||||||
art_loader_, SLOT(LoadArt(Song)));
|
|
||||||
|
|
||||||
#ifdef HAVE_DBUS
|
|
||||||
// MPRIS DBus interface.
|
|
||||||
qDBusRegisterMetaType<QImage>();
|
|
||||||
qDBusRegisterMetaType<TrackMetadata>();
|
|
||||||
qDBusRegisterMetaType<TrackIds>();
|
|
||||||
|
|
||||||
//MPRIS 1.0 implementation
|
|
||||||
mpris1_ = new mpris::Mpris1(this, art_loader_, this);
|
|
||||||
|
|
||||||
//MPRIS 2.0 implementation
|
|
||||||
mpris2_ = new mpris::Mpris2(main_window, this, art_loader_, mpris1_, this);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
settings_.beginGroup("Player");
|
settings_.beginGroup("Player");
|
||||||
|
|
||||||
SetVolume(settings_.value("volume", 50).toInt());
|
SetVolume(settings_.value("volume", 50).toInt());
|
||||||
|
|
|
@ -37,23 +37,11 @@ class MainWindow;
|
||||||
class LastFMService;
|
class LastFMService;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace mpris {
|
|
||||||
class Mpris1;
|
|
||||||
class Mpris2;
|
|
||||||
class ArtLoader;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef HAVE_DBUS
|
|
||||||
# include <QDBusArgument>
|
|
||||||
QDBusArgument& operator<< (QDBusArgument& arg, const QImage& image);
|
|
||||||
const QDBusArgument& operator>> (const QDBusArgument& arg, QImage& image);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class Player : public QObject {
|
class Player : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Player(MainWindow* main_window, PlaylistManager* playlists,
|
Player(PlaylistManager* playlists,
|
||||||
#ifdef HAVE_LIBLASTFM
|
#ifdef HAVE_LIBLASTFM
|
||||||
LastFMService* lastfm,
|
LastFMService* lastfm,
|
||||||
#endif
|
#endif
|
||||||
|
@ -69,7 +57,6 @@ class Player : public QObject {
|
||||||
PlaylistItemPtr GetCurrentItem() const { return current_item_; }
|
PlaylistItemPtr GetCurrentItem() const { return current_item_; }
|
||||||
PlaylistItemPtr GetItemAt(int pos) const;
|
PlaylistItemPtr GetItemAt(int pos) const;
|
||||||
PlaylistManager* playlists() const { return playlists_; }
|
PlaylistManager* playlists() const { return playlists_; }
|
||||||
mpris::ArtLoader* ArtLoader() const { return art_loader_; }
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void ReloadSettings();
|
void ReloadSettings();
|
||||||
|
@ -124,11 +111,6 @@ class Player : public QObject {
|
||||||
void NextInternal(Engine::TrackChangeType);
|
void NextInternal(Engine::TrackChangeType);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
mpris::ArtLoader* art_loader_;
|
|
||||||
|
|
||||||
mpris::Mpris1* mpris1_;
|
|
||||||
mpris::Mpris2* mpris2_;
|
|
||||||
|
|
||||||
PlaylistManager* playlists_;
|
PlaylistManager* playlists_;
|
||||||
#ifdef HAVE_LIBLASTFM
|
#ifdef HAVE_LIBLASTFM
|
||||||
LastFMService* lastfm_;
|
LastFMService* lastfm_;
|
||||||
|
|
63
src/main.cpp
63
src/main.cpp
|
@ -33,16 +33,21 @@
|
||||||
#include "core/player.h"
|
#include "core/player.h"
|
||||||
#include "core/potranslator.h"
|
#include "core/potranslator.h"
|
||||||
#include "core/song.h"
|
#include "core/song.h"
|
||||||
|
#include "core/taskmanager.h"
|
||||||
#include "core/utilities.h"
|
#include "core/utilities.h"
|
||||||
#include "engines/enginebase.h"
|
#include "engines/enginebase.h"
|
||||||
#include "library/directory.h"
|
#include "library/directory.h"
|
||||||
#include "playlist/playlist.h"
|
#include "playlist/playlist.h"
|
||||||
|
#include "playlist/playlistmanager.h"
|
||||||
|
#include "radio/radiomodel.h"
|
||||||
#include "remote/httpserver.h"
|
#include "remote/httpserver.h"
|
||||||
#include "remote/zeroconf.h"
|
#include "remote/zeroconf.h"
|
||||||
#include "smartplaylists/generator.h"
|
#include "smartplaylists/generator.h"
|
||||||
#include "ui/equalizer.h"
|
#include "ui/equalizer.h"
|
||||||
#include "ui/iconloader.h"
|
#include "ui/iconloader.h"
|
||||||
#include "ui/mainwindow.h"
|
#include "ui/mainwindow.h"
|
||||||
|
#include "ui/systemtrayicon.h"
|
||||||
|
#include "widgets/osd.h"
|
||||||
|
|
||||||
#include "qtsingleapplication.h"
|
#include "qtsingleapplication.h"
|
||||||
#include "qtsinglecoreapplication.h"
|
#include "qtsinglecoreapplication.h"
|
||||||
|
@ -59,6 +64,9 @@
|
||||||
#include <glib/gutils.h>
|
#include <glib/gutils.h>
|
||||||
#include <gst/gst.h>
|
#include <gst/gst.h>
|
||||||
|
|
||||||
|
#include <boost/scoped_ptr.hpp>
|
||||||
|
using boost::scoped_ptr;
|
||||||
|
|
||||||
#include <echonest/Config.h>
|
#include <echonest/Config.h>
|
||||||
|
|
||||||
#ifdef Q_OS_DARWIN
|
#ifdef Q_OS_DARWIN
|
||||||
|
@ -70,6 +78,18 @@
|
||||||
#include "radio/lastfmservice.h"
|
#include "radio/lastfmservice.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_DBUS
|
||||||
|
#include "core/mpris_common.h"
|
||||||
|
#include "core/mpris.h"
|
||||||
|
#include "core/mpris2.h"
|
||||||
|
#include <QDBusArgument>
|
||||||
|
#include <QDBusConnection>
|
||||||
|
#include <QImage>
|
||||||
|
|
||||||
|
QDBusArgument& operator<< (QDBusArgument& arg, const QImage& image);
|
||||||
|
const QDBusArgument& operator>> (const QDBusArgument& arg, QImage& image);
|
||||||
|
#endif
|
||||||
|
|
||||||
class GstEnginePipeline;
|
class GstEnginePipeline;
|
||||||
|
|
||||||
// Load sqlite plugin on windows and mac.
|
// Load sqlite plugin on windows and mac.
|
||||||
|
@ -267,6 +287,36 @@ int main(int argc, char *argv[]) {
|
||||||
// Seed the random number generator
|
// Seed the random number generator
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
|
|
||||||
|
scoped_ptr<BackgroundThread<Database> > database(
|
||||||
|
new BackgroundThreadImplementation<Database, Database>(NULL));
|
||||||
|
database->Start(true);
|
||||||
|
TaskManager task_manager;
|
||||||
|
PlaylistManager playlists(&task_manager, NULL);
|
||||||
|
|
||||||
|
RadioModel radio_model(database.get(), &task_manager, NULL);
|
||||||
|
Player player(&playlists,
|
||||||
|
#ifdef HAVE_LIBLASTFM
|
||||||
|
radio_model.GetLastFMService()
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
|
||||||
|
scoped_ptr<SystemTrayIcon> tray_icon(SystemTrayIcon::CreateSystemTrayIcon());
|
||||||
|
OSD osd(tray_icon.get());
|
||||||
|
|
||||||
|
#ifdef HAVE_DBUS
|
||||||
|
qDBusRegisterMetaType<QImage>();
|
||||||
|
qDBusRegisterMetaType<TrackMetadata>();
|
||||||
|
qDBusRegisterMetaType<TrackIds>();
|
||||||
|
|
||||||
|
mpris::ArtLoader art_loader;
|
||||||
|
mpris::Mpris1 mpris1(&player, &art_loader);
|
||||||
|
mpris::Mpris2 mpris2(&player, &art_loader, &mpris1);
|
||||||
|
|
||||||
|
QObject::connect(&playlists, SIGNAL(CurrentSongChanged(Song)), &art_loader, SLOT(LoadArt(Song)));
|
||||||
|
QObject::connect(&art_loader, SIGNAL(ThumbnailLoaded(Song, QString)),
|
||||||
|
&osd, SLOT(CoverArtPathReady(Song, QString)));
|
||||||
|
#endif
|
||||||
|
|
||||||
Zeroconf* zeroconf = Zeroconf::GetZeroconf();
|
Zeroconf* zeroconf = Zeroconf::GetZeroconf();
|
||||||
if (zeroconf) {
|
if (zeroconf) {
|
||||||
HttpServer* server = new HttpServer;
|
HttpServer* server = new HttpServer;
|
||||||
|
@ -276,8 +326,17 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Window
|
// Window
|
||||||
MainWindow w;
|
MainWindow w(
|
||||||
|
database.get(),
|
||||||
|
&task_manager,
|
||||||
|
&playlists,
|
||||||
|
&radio_model,
|
||||||
|
&player,
|
||||||
|
tray_icon.get(),
|
||||||
|
&osd);
|
||||||
|
#ifdef HAVE_DBUS
|
||||||
|
QObject::connect(&mpris2, SIGNAL(RaiseMainWindow()), &w, SLOT(Raise()));
|
||||||
|
#endif
|
||||||
QObject::connect(&a, SIGNAL(messageReceived(QByteArray)), &w, SLOT(CommandlineOptionsReceived(QByteArray)));
|
QObject::connect(&a, SIGNAL(messageReceived(QByteArray)), &w, SLOT(CommandlineOptionsReceived(QByteArray)));
|
||||||
w.CommandlineOptionsReceived(options);
|
w.CommandlineOptionsReceived(options);
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,6 @@ IcecastFilterWidget::IcecastFilterWidget(QWidget *parent)
|
||||||
MacLineEdit* lineedit = new MacLineEdit(this);
|
MacLineEdit* lineedit = new MacLineEdit(this);
|
||||||
ui_->horizontalLayout->insertWidget(1, lineedit);
|
ui_->horizontalLayout->insertWidget(1, lineedit);
|
||||||
filter_ = lineedit;
|
filter_ = lineedit;
|
||||||
ui_->clear->setHidden(true);
|
|
||||||
#else
|
#else
|
||||||
filter_ = ui_->filter;
|
filter_ = ui_->filter;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -136,17 +136,25 @@ const char* MainWindow::kMusicFilterSpec =
|
||||||
const char* MainWindow::kAllFilesFilterSpec =
|
const char* MainWindow::kAllFilesFilterSpec =
|
||||||
QT_TR_NOOP("All Files (*)");
|
QT_TR_NOOP("All Files (*)");
|
||||||
|
|
||||||
MainWindow::MainWindow(QWidget* parent)
|
MainWindow::MainWindow(
|
||||||
|
BackgroundThread<Database>* database,
|
||||||
|
TaskManager* task_manager,
|
||||||
|
PlaylistManager* playlist_manager,
|
||||||
|
RadioModel* radio_model,
|
||||||
|
Player* player,
|
||||||
|
SystemTrayIcon* tray_icon,
|
||||||
|
OSD* osd,
|
||||||
|
QWidget* parent)
|
||||||
: QMainWindow(parent),
|
: QMainWindow(parent),
|
||||||
ui_(new Ui_MainWindow),
|
ui_(new Ui_MainWindow),
|
||||||
tray_icon_(SystemTrayIcon::CreateSystemTrayIcon(this)),
|
tray_icon_(tray_icon),
|
||||||
osd_(new OSD(tray_icon_, this)),
|
osd_(osd),
|
||||||
task_manager_(new TaskManager(this)),
|
task_manager_(task_manager),
|
||||||
database_(new BackgroundThreadImplementation<Database, Database>(this)),
|
database_(database),
|
||||||
radio_model_(NULL),
|
radio_model_(radio_model),
|
||||||
playlist_backend_(NULL),
|
playlist_backend_(NULL),
|
||||||
playlists_(new PlaylistManager(task_manager_, this)),
|
playlists_(playlist_manager),
|
||||||
player_(NULL),
|
player_(player),
|
||||||
library_(NULL),
|
library_(NULL),
|
||||||
global_shortcuts_(new GlobalShortcuts(this)),
|
global_shortcuts_(new GlobalShortcuts(this)),
|
||||||
devices_(NULL),
|
devices_(NULL),
|
||||||
|
@ -176,21 +184,12 @@ MainWindow::MainWindow(QWidget* parent)
|
||||||
track_position_timer_(new QTimer(this)),
|
track_position_timer_(new QTimer(this)),
|
||||||
was_maximized_(false)
|
was_maximized_(false)
|
||||||
{
|
{
|
||||||
// Wait for the database thread to start - lots of stuff depends on it.
|
|
||||||
database_->Start(true);
|
|
||||||
|
|
||||||
// Create some objects in the database thread
|
// Create some objects in the database thread
|
||||||
playlist_backend_ = new PlaylistBackend;
|
playlist_backend_ = new PlaylistBackend;
|
||||||
playlist_backend_->moveToThread(database_);
|
playlist_backend_->moveToThread(database_);
|
||||||
playlist_backend_->SetDatabase(database_->Worker());
|
playlist_backend_->SetDatabase(database_->Worker());
|
||||||
|
|
||||||
// Create stuff that needs the database
|
// Create stuff that needs the database
|
||||||
radio_model_ = new RadioModel(database_, task_manager_, this);
|
|
||||||
player_ = new Player(this, playlists_,
|
|
||||||
#ifdef HAVE_LIBLASTFM
|
|
||||||
radio_model_->GetLastFMService(),
|
|
||||||
#endif
|
|
||||||
this);
|
|
||||||
library_ = new Library(database_, task_manager_, this);
|
library_ = new Library(database_, task_manager_, this);
|
||||||
devices_ = new DeviceManager(database_, task_manager_, this);
|
devices_ = new DeviceManager(database_, task_manager_, this);
|
||||||
|
|
||||||
|
@ -389,8 +388,6 @@ MainWindow::MainWindow(QWidget* parent)
|
||||||
connect(playlists_, SIGNAL(SummaryTextChanged(QString)), ui_->playlist_summary, SLOT(setText(QString)));
|
connect(playlists_, SIGNAL(SummaryTextChanged(QString)), ui_->playlist_summary, SLOT(setText(QString)));
|
||||||
connect(playlists_, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
|
connect(playlists_, SIGNAL(PlayRequested(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
|
||||||
|
|
||||||
connect(player_->ArtLoader(), SIGNAL(ThumbnailLoaded(Song,QString)), osd_, SLOT(CoverArtPathReady(Song,QString)));
|
|
||||||
|
|
||||||
connect(ui_->playlist->view(), SIGNAL(doubleClicked(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
|
connect(ui_->playlist->view(), SIGNAL(doubleClicked(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
|
||||||
connect(ui_->playlist->view(), SIGNAL(PlayPauseItem(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
|
connect(ui_->playlist->view(), SIGNAL(PlayPauseItem(QModelIndex)), SLOT(PlayIndex(QModelIndex)));
|
||||||
connect(ui_->playlist->view(), SIGNAL(RightClicked(QPoint,QModelIndex)), SLOT(PlaylistRightClick(QPoint,QModelIndex)));
|
connect(ui_->playlist->view(), SIGNAL(RightClicked(QPoint,QModelIndex)), SLOT(PlaylistRightClick(QPoint,QModelIndex)));
|
||||||
|
@ -1802,6 +1799,11 @@ void MainWindow::PlaylistCurrentChanged(const QModelIndex& proxy_current) {
|
||||||
playlist_menu_index_ = QModelIndex();
|
playlist_menu_index_ = QModelIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::Raise() {
|
||||||
|
show();
|
||||||
|
activateWindow();
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::ShowScriptDialog() {
|
void MainWindow::ShowScriptDialog() {
|
||||||
if (!script_dialog_) {
|
if (!script_dialog_) {
|
||||||
script_dialog_.reset(new ScriptDialog);
|
script_dialog_.reset(new ScriptDialog);
|
||||||
|
|
|
@ -79,7 +79,14 @@ class MainWindow : public QMainWindow, public PlatformInterface {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MainWindow(QWidget *parent = 0);
|
MainWindow(BackgroundThread<Database>* database,
|
||||||
|
TaskManager* task_manager,
|
||||||
|
PlaylistManager* playlists,
|
||||||
|
RadioModel* radio_model,
|
||||||
|
Player* player,
|
||||||
|
SystemTrayIcon* tray_icon,
|
||||||
|
OSD* osd,
|
||||||
|
QWidget *parent = 0);
|
||||||
~MainWindow();
|
~MainWindow();
|
||||||
|
|
||||||
static const char* kSettingsGroup;
|
static const char* kSettingsGroup;
|
||||||
|
@ -216,6 +223,8 @@ class MainWindow : public QMainWindow, public PlatformInterface {
|
||||||
|
|
||||||
void DeleteFinished(const SongList& songs_with_errors);
|
void DeleteFinished(const SongList& songs_with_errors);
|
||||||
|
|
||||||
|
void Raise();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void AddFilesToPlaylist(bool clear_first, const QList<QUrl>& urls);
|
void AddFilesToPlaylist(bool clear_first, const QList<QUrl>& urls);
|
||||||
void AddLibraryItemToPlaylist(bool clear_first, bool enqueue, const QModelIndexList& indexes);
|
void AddLibraryItemToPlaylist(bool clear_first, bool enqueue, const QModelIndexList& indexes);
|
||||||
|
|
Loading…
Reference in New Issue