Add option to diable Tidal and Deezer
This commit is contained in:
@@ -280,16 +280,16 @@ optional_component(VLC ON "Engine: VLC backend"
|
|||||||
DEPENDS "libvlc" LIBVLC_FOUND
|
DEPENDS "libvlc" LIBVLC_FOUND
|
||||||
)
|
)
|
||||||
|
|
||||||
optional_component(PHONON OFF "Engine: Phonon backend"
|
optional_component(PHONON OFF "Engine: Phonon backend (UNSTABLE)"
|
||||||
DEPENDS "phonon4qt5" PHONON_FOUND
|
DEPENDS "phonon4qt5" PHONON_FOUND
|
||||||
)
|
)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
optional_component(DEEZER ON "Engine: Deezer backend"
|
optional_component(DEEZER OFF "Engine: Deezer backend (UNSTABLE)"
|
||||||
DEPENDS "libdeezer" LIBDEEZER_FOUND
|
DEPENDS "libdeezer" LIBDEEZER_FOUND
|
||||||
)
|
)
|
||||||
else ()
|
else ()
|
||||||
optional_component(DEEZER ON "Engine: Deezer backend"
|
optional_component(DEEZER OFF "Engine: Deezer backend (UNSTABLE)"
|
||||||
DEPENDS "Linux" LINUX
|
DEPENDS "Linux" LINUX
|
||||||
DEPENDS "libdeezer" LIBDEEZER_FOUND
|
DEPENDS "libdeezer" LIBDEEZER_FOUND
|
||||||
DEPENDS "libpulse" LIBPULSE_FOUND
|
DEPENDS "libpulse" LIBPULSE_FOUND
|
||||||
@@ -345,8 +345,12 @@ optional_component(SPARKLE ON "Sparkle integration"
|
|||||||
DEPENDS "Sparkle" SPARKLE
|
DEPENDS "Sparkle" SPARKLE
|
||||||
)
|
)
|
||||||
|
|
||||||
|
optional_component(STREAM_TIDAL ON "Streaming: Tidal support")
|
||||||
|
optional_component(STREAM_DEEZER ON "Streaming: Deezer support")
|
||||||
|
|
||||||
optional_component(DZMEDIA ON "DZMedia"
|
optional_component(DZMEDIA ON "DZMedia"
|
||||||
DEPENDS "libdzmedia" LIBDZMEDIA_FOUND
|
DEPENDS "libdzmedia" LIBDZMEDIA_FOUND
|
||||||
|
DEPENDS "Deezer support" HAVE_STREAM_DEEZER
|
||||||
)
|
)
|
||||||
|
|
||||||
#if(IMOBILEDEVICE_FOUND AND PLIST_FOUND)
|
#if(IMOBILEDEVICE_FOUND AND PLIST_FOUND)
|
||||||
@@ -388,5 +392,7 @@ add_custom_target(uninstall
|
|||||||
# Show a summary of what we have enabled
|
# Show a summary of what we have enabled
|
||||||
summary_show()
|
summary_show()
|
||||||
if(NOT HAVE_GSTREAMER AND NOT HAVE_XINE AND NOT HAVE_VLC AND NOT HAVE_PHONON AND NOT HAVE_DEEZER)
|
if(NOT HAVE_GSTREAMER AND NOT HAVE_XINE AND NOT HAVE_VLC AND NOT HAVE_PHONON AND NOT HAVE_DEEZER)
|
||||||
message(FATAL_ERROR "You need to enable either GStreamer, Xine, VLC, Phonon or Deezer to compile!")
|
message(FATAL_ERROR "You need to have either GStreamer, Xine, VLC, Phonon or Deezer to compile!")
|
||||||
|
elseif(NOT HAVE_GSTREAMER)
|
||||||
|
message(WARNING "GStreamer is the only engine that is fully implemented. Using other engines is possible but not recommended.")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -217,8 +217,6 @@ set(SOURCES
|
|||||||
settings/shortcutssettingspage.cpp
|
settings/shortcutssettingspage.cpp
|
||||||
settings/appearancesettingspage.cpp
|
settings/appearancesettingspage.cpp
|
||||||
settings/notificationssettingspage.cpp
|
settings/notificationssettingspage.cpp
|
||||||
settings/tidalsettingspage.cpp
|
|
||||||
settings/deezersettingspage.cpp
|
|
||||||
|
|
||||||
dialogs/about.cpp
|
dialogs/about.cpp
|
||||||
dialogs/console.cpp
|
dialogs/console.cpp
|
||||||
@@ -271,11 +269,6 @@ set(SOURCES
|
|||||||
internet/internetsearchitemdelegate.cpp
|
internet/internetsearchitemdelegate.cpp
|
||||||
internet/localredirectserver.cpp
|
internet/localredirectserver.cpp
|
||||||
|
|
||||||
tidal/tidalservice.cpp
|
|
||||||
tidal/tidalurlhandler.cpp
|
|
||||||
deezer/deezerservice.cpp
|
|
||||||
deezer/deezerurlhandler.cpp
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(HEADERS
|
set(HEADERS
|
||||||
@@ -388,8 +381,6 @@ set(HEADERS
|
|||||||
settings/shortcutssettingspage.h
|
settings/shortcutssettingspage.h
|
||||||
settings/appearancesettingspage.h
|
settings/appearancesettingspage.h
|
||||||
settings/notificationssettingspage.h
|
settings/notificationssettingspage.h
|
||||||
settings/tidalsettingspage.h
|
|
||||||
settings/deezersettingspage.h
|
|
||||||
|
|
||||||
dialogs/about.h
|
dialogs/about.h
|
||||||
dialogs/errordialog.h
|
dialogs/errordialog.h
|
||||||
@@ -438,11 +429,6 @@ set(HEADERS
|
|||||||
internet/internetsearchmodel.h
|
internet/internetsearchmodel.h
|
||||||
internet/localredirectserver.h
|
internet/localredirectserver.h
|
||||||
|
|
||||||
tidal/tidalservice.h
|
|
||||||
tidal/tidalurlhandler.h
|
|
||||||
deezer/deezerservice.h
|
|
||||||
deezer/deezerurlhandler.h
|
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(UI
|
set(UI
|
||||||
@@ -478,8 +464,6 @@ set(UI
|
|||||||
settings/shortcutssettingspage.ui
|
settings/shortcutssettingspage.ui
|
||||||
settings/appearancesettingspage.ui
|
settings/appearancesettingspage.ui
|
||||||
settings/notificationssettingspage.ui
|
settings/notificationssettingspage.ui
|
||||||
settings/tidalsettingspage.ui
|
|
||||||
settings/deezersettingspage.ui
|
|
||||||
|
|
||||||
equalizer/equalizer.ui
|
equalizer/equalizer.ui
|
||||||
equalizer/equalizerslider.ui
|
equalizer/equalizerslider.ui
|
||||||
@@ -869,6 +853,32 @@ optional_source(WIN32
|
|||||||
widgets/osd_win.cpp
|
widgets/osd_win.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
optional_source(HAVE_STREAM_TIDAL
|
||||||
|
SOURCES
|
||||||
|
tidal/tidalservice.cpp
|
||||||
|
tidal/tidalurlhandler.cpp
|
||||||
|
settings/tidalsettingspage.cpp
|
||||||
|
HEADERS
|
||||||
|
tidal/tidalservice.h
|
||||||
|
tidal/tidalurlhandler.h
|
||||||
|
settings/tidalsettingspage.h
|
||||||
|
UI
|
||||||
|
settings/tidalsettingspage.ui
|
||||||
|
)
|
||||||
|
|
||||||
|
optional_source(HAVE_STREAM_DEEZER
|
||||||
|
SOURCES
|
||||||
|
deezer/deezerservice.cpp
|
||||||
|
deezer/deezerurlhandler.cpp
|
||||||
|
settings/deezersettingspage.cpp
|
||||||
|
HEADERS
|
||||||
|
deezer/deezerservice.h
|
||||||
|
deezer/deezerurlhandler.h
|
||||||
|
settings/deezersettingspage.h
|
||||||
|
UI
|
||||||
|
settings/deezersettingspage.ui
|
||||||
|
)
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||||
|
|
||||||
|
|||||||
@@ -52,5 +52,8 @@
|
|||||||
#cmakedefine HAVE_PHONON
|
#cmakedefine HAVE_PHONON
|
||||||
#cmakedefine HAVE_DEEZER
|
#cmakedefine HAVE_DEEZER
|
||||||
|
|
||||||
|
#cmakedefine HAVE_STREAM_TIDAL
|
||||||
|
#cmakedefine HAVE_STREAM_DEEZER
|
||||||
|
|
||||||
#endif // CONFIG_H_IN
|
#endif // CONFIG_H_IN
|
||||||
|
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
#include <QVariant>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
#include "core/closure.h"
|
#include "core/closure.h"
|
||||||
@@ -116,8 +117,13 @@ class ApplicationImpl {
|
|||||||
return lyrics_providers;
|
return lyrics_providers;
|
||||||
}),
|
}),
|
||||||
internet_model_([=]() { return new InternetModel(app, app); }),
|
internet_model_([=]() { return new InternetModel(app, app); }),
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
tidal_search_([=]() { return new InternetSearch(app, Song::Source_Tidal, app); }),
|
tidal_search_([=]() { return new InternetSearch(app, Song::Source_Tidal, app); }),
|
||||||
deezer_search_([=]() { return new InternetSearch(app, Song::Source_Deezer, app); })
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
|
deezer_search_([=]() { return new InternetSearch(app, Song::Source_Deezer, app); }),
|
||||||
|
#endif
|
||||||
|
dummy_([=]() { return new QVariant; })
|
||||||
{}
|
{}
|
||||||
|
|
||||||
Lazy<TagReaderClient> tag_reader_client_;
|
Lazy<TagReaderClient> tag_reader_client_;
|
||||||
@@ -137,8 +143,13 @@ class ApplicationImpl {
|
|||||||
Lazy<CurrentArtLoader> current_art_loader_;
|
Lazy<CurrentArtLoader> current_art_loader_;
|
||||||
Lazy<LyricsProviders> lyrics_providers_;
|
Lazy<LyricsProviders> lyrics_providers_;
|
||||||
Lazy<InternetModel> internet_model_;
|
Lazy<InternetModel> internet_model_;
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
Lazy<InternetSearch> tidal_search_;
|
Lazy<InternetSearch> tidal_search_;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
Lazy<InternetSearch> deezer_search_;
|
Lazy<InternetSearch> deezer_search_;
|
||||||
|
#endif
|
||||||
|
Lazy<QVariant> dummy_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -206,5 +217,9 @@ LyricsProviders *Application::lyrics_providers() const { return p_->lyrics_provi
|
|||||||
PlaylistBackend *Application::playlist_backend() const { return p_->playlist_backend_.get(); }
|
PlaylistBackend *Application::playlist_backend() const { return p_->playlist_backend_.get(); }
|
||||||
PlaylistManager *Application::playlist_manager() const { return p_->playlist_manager_.get(); }
|
PlaylistManager *Application::playlist_manager() const { return p_->playlist_manager_.get(); }
|
||||||
InternetModel *Application::internet_model() const { return p_->internet_model_.get(); }
|
InternetModel *Application::internet_model() const { return p_->internet_model_.get(); }
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
InternetSearch *Application::tidal_search() const { return p_->tidal_search_.get(); }
|
InternetSearch *Application::tidal_search() const { return p_->tidal_search_.get(); }
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
InternetSearch *Application::deezer_search() const { return p_->deezer_search_.get(); }
|
InternetSearch *Application::deezer_search() const { return p_->deezer_search_.get(); }
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -88,8 +88,12 @@ class Application : public QObject {
|
|||||||
LyricsProviders *lyrics_providers() const;
|
LyricsProviders *lyrics_providers() const;
|
||||||
|
|
||||||
InternetModel *internet_model() const;
|
InternetModel *internet_model() const;
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
InternetSearch *tidal_search() const;
|
InternetSearch *tidal_search() const;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
InternetSearch *deezer_search() const;
|
InternetSearch *deezer_search() const;
|
||||||
|
#endif
|
||||||
|
|
||||||
void MoveToNewThread(QObject *object);
|
void MoveToNewThread(QObject *object);
|
||||||
void MoveToThread(QObject *object, QThread *thread);
|
void MoveToThread(QObject *object, QThread *thread);
|
||||||
|
|||||||
@@ -133,8 +133,12 @@
|
|||||||
#include "settings/behavioursettingspage.h"
|
#include "settings/behavioursettingspage.h"
|
||||||
#include "settings/playbacksettingspage.h"
|
#include "settings/playbacksettingspage.h"
|
||||||
#include "settings/playlistsettingspage.h"
|
#include "settings/playlistsettingspage.h"
|
||||||
#include "settings/tidalsettingspage.h"
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
#include "settings/deezersettingspage.h"
|
# include "settings/tidalsettingspage.h"
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
|
# include "settings/deezersettingspage.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "internet/internetmodel.h"
|
#include "internet/internetmodel.h"
|
||||||
#include "internet/internetservice.h"
|
#include "internet/internetservice.h"
|
||||||
@@ -203,8 +207,12 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
manager->SetPlaylistManager(app->playlist_manager());
|
manager->SetPlaylistManager(app->playlist_manager());
|
||||||
return manager;
|
return manager;
|
||||||
}),
|
}),
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
tidal_search_view_(new InternetSearchView(app_, app_->tidal_search(), TidalSettingsPage::kSettingsGroup, SettingsDialog::Page_Tidal, this)),
|
tidal_search_view_(new InternetSearchView(app_, app_->tidal_search(), TidalSettingsPage::kSettingsGroup, SettingsDialog::Page_Tidal, this)),
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
deezer_search_view_(new InternetSearchView(app_, app_->deezer_search(), DeezerSettingsPage::kSettingsGroup, SettingsDialog::Page_Deezer, this)),
|
deezer_search_view_(new InternetSearchView(app_, app_->deezer_search(), DeezerSettingsPage::kSettingsGroup, SettingsDialog::Page_Deezer, this)),
|
||||||
|
#endif
|
||||||
playlist_menu_(new QMenu(this)),
|
playlist_menu_(new QMenu(this)),
|
||||||
playlist_add_to_another_(nullptr),
|
playlist_add_to_another_(nullptr),
|
||||||
playlistitem_actions_separator_(nullptr),
|
playlistitem_actions_separator_(nullptr),
|
||||||
@@ -259,8 +267,12 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
#ifndef Q_OS_WIN
|
#ifndef Q_OS_WIN
|
||||||
ui_->tabs->addTab(device_view_, IconLoader::Load("device"), tr("Devices"));
|
ui_->tabs->addTab(device_view_, IconLoader::Load("device"), tr("Devices"));
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
ui_->tabs->addTab(tidal_search_view_, IconLoader::Load("tidal"), tr("Tidal", "Tidal"));
|
ui_->tabs->addTab(tidal_search_view_, IconLoader::Load("tidal"), tr("Tidal", "Tidal"));
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
ui_->tabs->addTab(deezer_search_view_, IconLoader::Load("deezer"), tr("Deezer", "Deezer"));
|
ui_->tabs->addTab(deezer_search_view_, IconLoader::Load("deezer"), tr("Deezer", "Deezer"));
|
||||||
|
#endif
|
||||||
//ui_->tabs->AddSpacer();
|
//ui_->tabs->AddSpacer();
|
||||||
|
|
||||||
// Add the playing widget to the fancy tab widget
|
// Add the playing widget to the fancy tab widget
|
||||||
@@ -519,10 +531,12 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
collection_view_->filter()->AddMenuAction(separator);
|
collection_view_->filter()->AddMenuAction(separator);
|
||||||
collection_view_->filter()->AddMenuAction(collection_config_action);
|
collection_view_->filter()->AddMenuAction(collection_config_action);
|
||||||
|
|
||||||
// Tidal
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
connect(tidal_search_view_, SIGNAL(AddToPlaylist(QMimeData*)), SLOT(AddToPlaylist(QMimeData*)));
|
connect(tidal_search_view_, SIGNAL(AddToPlaylist(QMimeData*)), SLOT(AddToPlaylist(QMimeData*)));
|
||||||
// Deezer
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
connect(deezer_search_view_, SIGNAL(AddToPlaylist(QMimeData*)), SLOT(AddToPlaylist(QMimeData*)));
|
connect(deezer_search_view_, SIGNAL(AddToPlaylist(QMimeData*)), SLOT(AddToPlaylist(QMimeData*)));
|
||||||
|
#endif
|
||||||
|
|
||||||
// Playlist menu
|
// Playlist menu
|
||||||
playlist_play_pause_ = playlist_menu_->addAction(tr("Play"), this, SLOT(PlaylistPlay()));
|
playlist_play_pause_ = playlist_menu_->addAction(tr("Play"), this, SLOT(PlaylistPlay()));
|
||||||
@@ -810,8 +824,12 @@ void MainWindow::ReloadAllSettings() {
|
|||||||
osd_->ReloadSettings();
|
osd_->ReloadSettings();
|
||||||
collection_view_->ReloadSettings();
|
collection_view_->ReloadSettings();
|
||||||
ui_->playlist->view()->ReloadSettings();
|
ui_->playlist->view()->ReloadSettings();
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
tidal_search_view_->ReloadSettings();
|
tidal_search_view_->ReloadSettings();
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
deezer_search_view_->ReloadSettings();
|
deezer_search_view_->ReloadSettings();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -233,7 +233,7 @@ void DeezerService::FetchAccessTokenFinished(QNetworkReply *reply) {
|
|||||||
}
|
}
|
||||||
if (reply->atEnd()) break;
|
if (reply->atEnd()) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
QSettings s;
|
QSettings s;
|
||||||
s.beginGroup(DeezerSettingsPage::kSettingsGroup);
|
s.beginGroup(DeezerSettingsPage::kSettingsGroup);
|
||||||
s.setValue("access_token", access_token_);
|
s.setValue("access_token", access_token_);
|
||||||
|
|||||||
@@ -30,8 +30,12 @@
|
|||||||
#include "core/logging.h"
|
#include "core/logging.h"
|
||||||
#include "internetmodel.h"
|
#include "internetmodel.h"
|
||||||
#include "internetservice.h"
|
#include "internetservice.h"
|
||||||
#include "tidal/tidalservice.h"
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
#include "deezer/deezerservice.h"
|
# include "tidal/tidalservice.h"
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
|
# include "deezer/deezerservice.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
QMap<Song::Source, InternetService*>* InternetModel::sServices = nullptr;
|
QMap<Song::Source, InternetService*>* InternetModel::sServices = nullptr;
|
||||||
|
|
||||||
@@ -41,8 +45,12 @@ InternetModel::InternetModel(Application *app, QObject *parent)
|
|||||||
|
|
||||||
if (!sServices) sServices = new QMap<Song::Source, InternetService*>;
|
if (!sServices) sServices = new QMap<Song::Source, InternetService*>;
|
||||||
Q_ASSERT(sServices->isEmpty());
|
Q_ASSERT(sServices->isEmpty());
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
AddService(new TidalService(app, this));
|
AddService(new TidalService(app, this));
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
AddService(new DeezerService(app, this));
|
AddService(new DeezerService(app, this));
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,8 +62,12 @@
|
|||||||
#include "playlistsettingspage.h"
|
#include "playlistsettingspage.h"
|
||||||
#include "shortcutssettingspage.h"
|
#include "shortcutssettingspage.h"
|
||||||
#include "transcodersettingspage.h"
|
#include "transcodersettingspage.h"
|
||||||
#include "tidalsettingspage.h"
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
#include "deezersettingspage.h"
|
# include "tidalsettingspage.h"
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
|
# include "deezersettingspage.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "ui_settingsdialog.h"
|
#include "ui_settingsdialog.h"
|
||||||
|
|
||||||
@@ -125,9 +129,15 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent)
|
|||||||
AddPage(Page_Transcoding, new TranscoderSettingsPage(this), general);
|
AddPage(Page_Transcoding, new TranscoderSettingsPage(this), general);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_STREAM_TIDAL) || defined(HAVE_STREAM_DEEZER)
|
||||||
QTreeWidgetItem *internet = AddCategory(tr("Internet"));
|
QTreeWidgetItem *internet = AddCategory(tr("Internet"));
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_TIDAL
|
||||||
AddPage(Page_Tidal, new TidalSettingsPage(this), internet);
|
AddPage(Page_Tidal, new TidalSettingsPage(this), internet);
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STREAM_DEEZER
|
||||||
AddPage(Page_Deezer, new DeezerSettingsPage(this), internet);
|
AddPage(Page_Deezer, new DeezerSettingsPage(this), internet);
|
||||||
|
#endif
|
||||||
|
|
||||||
// User interface
|
// User interface
|
||||||
QTreeWidgetItem *iface = AddCategory(tr("User interface"));
|
QTreeWidgetItem *iface = AddCategory(tr("User interface"));
|
||||||
|
|||||||
Reference in New Issue
Block a user