mirror of
https://github.com/clementine-player/Clementine
synced 2025-02-02 20:36:44 +01:00
Convert edit tag & settings dialog to Lazy.
This commit is contained in:
parent
589f2ff62e
commit
74e6a1744f
@ -172,6 +172,7 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
|
|||||||
app_(app),
|
app_(app),
|
||||||
tray_icon_(tray_icon),
|
tray_icon_(tray_icon),
|
||||||
osd_(osd),
|
osd_(osd),
|
||||||
|
edit_tag_dialog_(std::bind(&MainWindow::CreateEditTagDialog, this)),
|
||||||
global_shortcuts_(new GlobalShortcuts(this)),
|
global_shortcuts_(new GlobalShortcuts(this)),
|
||||||
global_search_view_(new GlobalSearchView(app_, this)),
|
global_search_view_(new GlobalSearchView(app_, this)),
|
||||||
library_view_(new LibraryViewContainer(this)),
|
library_view_(new LibraryViewContainer(this)),
|
||||||
@ -182,11 +183,11 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd,
|
|||||||
device_view_(device_view_container_->view()),
|
device_view_(device_view_container_->view()),
|
||||||
song_info_view_(new SongInfoView(this)),
|
song_info_view_(new SongInfoView(this)),
|
||||||
artist_info_view_(new ArtistInfoView(this)),
|
artist_info_view_(new ArtistInfoView(this)),
|
||||||
|
settings_dialog_(std::bind(&MainWindow::CreateSettingsDialog, this)),
|
||||||
equalizer_(new Equalizer),
|
equalizer_(new Equalizer),
|
||||||
organise_dialog_([=]() {
|
organise_dialog_([=]() {
|
||||||
OrganiseDialog* dialog = new OrganiseDialog(app->task_manager());
|
OrganiseDialog* dialog = new OrganiseDialog(app->task_manager());
|
||||||
dialog->SetDestinationModel(
|
dialog->SetDestinationModel(app->library()->model()->directory_model());
|
||||||
app->library()->model()->directory_model());
|
|
||||||
return dialog;
|
return dialog;
|
||||||
}),
|
}),
|
||||||
playlist_menu_(new QMenu(this)),
|
playlist_menu_(new QMenu(this)),
|
||||||
@ -1833,7 +1834,6 @@ void MainWindow::EditTracks() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EnsureEditTagDialogCreated();
|
|
||||||
edit_tag_dialog_->SetSongs(songs, items);
|
edit_tag_dialog_->SetSongs(songs, items);
|
||||||
edit_tag_dialog_->show();
|
edit_tag_dialog_->show();
|
||||||
}
|
}
|
||||||
@ -2218,7 +2218,6 @@ void MainWindow::AddFilesToTranscoder() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::ShowLibraryConfig() {
|
void MainWindow::ShowLibraryConfig() {
|
||||||
EnsureSettingsDialogCreated();
|
|
||||||
settings_dialog_->OpenAtPage(SettingsDialog::Page_Library);
|
settings_dialog_->OpenAtPage(SettingsDialog::Page_Library);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2271,8 +2270,6 @@ void MainWindow::CopyFilesToDevice(const QList<QUrl>& urls) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::EditFileTags(const QList<QUrl>& urls) {
|
void MainWindow::EditFileTags(const QList<QUrl>& urls) {
|
||||||
EnsureEditTagDialogCreated();
|
|
||||||
|
|
||||||
SongList songs;
|
SongList songs;
|
||||||
for (const QUrl& url : urls) {
|
for (const QUrl& url : urls) {
|
||||||
Song song;
|
Song song;
|
||||||
@ -2441,47 +2438,40 @@ void MainWindow::ShowCoverManager() {
|
|||||||
cover_manager_->show();
|
cover_manager_->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::EnsureSettingsDialogCreated() {
|
SettingsDialog* MainWindow::CreateSettingsDialog() {
|
||||||
if (settings_dialog_) return;
|
SettingsDialog* settings_dialog =
|
||||||
|
new SettingsDialog(app_, background_streams_);
|
||||||
settings_dialog_.reset(new SettingsDialog(app_, background_streams_));
|
settings_dialog->SetGlobalShortcutManager(global_shortcuts_);
|
||||||
settings_dialog_->SetGlobalShortcutManager(global_shortcuts_);
|
settings_dialog->SetSongInfoView(song_info_view_);
|
||||||
settings_dialog_->SetSongInfoView(song_info_view_);
|
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
connect(settings_dialog_.get(), SIGNAL(accepted()),
|
connect(settings_dialog, SIGNAL(accepted()), SLOT(ReloadAllSettings()));
|
||||||
SLOT(ReloadAllSettings()));
|
|
||||||
|
|
||||||
#ifdef HAVE_WIIMOTEDEV
|
#ifdef HAVE_WIIMOTEDEV
|
||||||
connect(settings_dialog_.get(), SIGNAL(SetWiimotedevInterfaceActived(bool)),
|
connect(settings_dialog, SIGNAL(SetWiimotedevInterfaceActived(bool)),
|
||||||
wiimotedev_shortcuts_.get(),
|
wiimotedev_shortcuts_.get(),
|
||||||
SLOT(SetWiimotedevInterfaceActived(bool)));
|
SLOT(SetWiimotedevInterfaceActived(bool)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Allows custom notification preview
|
// Allows custom notification preview
|
||||||
connect(settings_dialog_.get(),
|
connect(settings_dialog,
|
||||||
SIGNAL(NotificationPreview(OSD::Behaviour, QString, QString)),
|
SIGNAL(NotificationPreview(OSD::Behaviour, QString, QString)),
|
||||||
SLOT(HandleNotificationPreview(OSD::Behaviour, QString, QString)));
|
SLOT(HandleNotificationPreview(OSD::Behaviour, QString, QString)));
|
||||||
|
return settings_dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::OpenSettingsDialog() {
|
void MainWindow::OpenSettingsDialog() { settings_dialog_->show(); }
|
||||||
EnsureSettingsDialogCreated();
|
|
||||||
settings_dialog_->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::OpenSettingsDialogAtPage(SettingsDialog::Page page) {
|
void MainWindow::OpenSettingsDialogAtPage(SettingsDialog::Page page) {
|
||||||
EnsureSettingsDialogCreated();
|
|
||||||
settings_dialog_->OpenAtPage(page);
|
settings_dialog_->OpenAtPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::EnsureEditTagDialogCreated() {
|
EditTagDialog* MainWindow::CreateEditTagDialog() {
|
||||||
if (edit_tag_dialog_) return;
|
EditTagDialog* edit_tag_dialog = new EditTagDialog(app_);
|
||||||
|
connect(edit_tag_dialog, SIGNAL(accepted()), SLOT(EditTagDialogAccepted()));
|
||||||
edit_tag_dialog_.reset(new EditTagDialog(app_));
|
connect(edit_tag_dialog, SIGNAL(Error(QString)),
|
||||||
connect(edit_tag_dialog_.get(), SIGNAL(accepted()),
|
|
||||||
SLOT(EditTagDialogAccepted()));
|
|
||||||
connect(edit_tag_dialog_.get(), SIGNAL(Error(QString)),
|
|
||||||
SLOT(ShowErrorDialog(QString)));
|
SLOT(ShowErrorDialog(QString)));
|
||||||
|
return edit_tag_dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::ShowAboutDialog() {
|
void MainWindow::ShowAboutDialog() {
|
||||||
|
@ -250,8 +250,8 @@ signals:
|
|||||||
void ShowErrorDialog(const QString& message);
|
void ShowErrorDialog(const QString& message);
|
||||||
void ShowQueueManager();
|
void ShowQueueManager();
|
||||||
void ShowVisualisations();
|
void ShowVisualisations();
|
||||||
void EnsureSettingsDialogCreated();
|
SettingsDialog* CreateSettingsDialog();
|
||||||
void EnsureEditTagDialogCreated();
|
EditTagDialog* CreateEditTagDialog();
|
||||||
void OpenSettingsDialog();
|
void OpenSettingsDialog();
|
||||||
void OpenSettingsDialogAtPage(SettingsDialog::Page page);
|
void OpenSettingsDialogAtPage(SettingsDialog::Page page);
|
||||||
void ShowSongInfoConfig();
|
void ShowSongInfoConfig();
|
||||||
@ -296,7 +296,7 @@ signals:
|
|||||||
Application* app_;
|
Application* app_;
|
||||||
SystemTrayIcon* tray_icon_;
|
SystemTrayIcon* tray_icon_;
|
||||||
OSD* osd_;
|
OSD* osd_;
|
||||||
std::unique_ptr<EditTagDialog> edit_tag_dialog_;
|
Lazy<EditTagDialog> edit_tag_dialog_;
|
||||||
std::unique_ptr<About> about_dialog_;
|
std::unique_ptr<About> about_dialog_;
|
||||||
|
|
||||||
GlobalShortcuts* global_shortcuts_;
|
GlobalShortcuts* global_shortcuts_;
|
||||||
@ -314,7 +314,7 @@ signals:
|
|||||||
SongInfoView* song_info_view_;
|
SongInfoView* song_info_view_;
|
||||||
ArtistInfoView* artist_info_view_;
|
ArtistInfoView* artist_info_view_;
|
||||||
|
|
||||||
std::unique_ptr<SettingsDialog> settings_dialog_;
|
Lazy<SettingsDialog> settings_dialog_;
|
||||||
std::unique_ptr<AddStreamDialog> add_stream_dialog_;
|
std::unique_ptr<AddStreamDialog> add_stream_dialog_;
|
||||||
std::unique_ptr<AlbumCoverManager> cover_manager_;
|
std::unique_ptr<AlbumCoverManager> cover_manager_;
|
||||||
std::unique_ptr<Equalizer> equalizer_;
|
std::unique_ptr<Equalizer> equalizer_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user