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),
|
||||
tray_icon_(tray_icon),
|
||||
osd_(osd),
|
||||
edit_tag_dialog_(std::bind(&MainWindow::CreateEditTagDialog, this)),
|
||||
global_shortcuts_(new GlobalShortcuts(this)),
|
||||
global_search_view_(new GlobalSearchView(app_, 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()),
|
||||
song_info_view_(new SongInfoView(this)),
|
||||
artist_info_view_(new ArtistInfoView(this)),
|
||||
settings_dialog_(std::bind(&MainWindow::CreateSettingsDialog, this)),
|
||||
equalizer_(new Equalizer),
|
||||
organise_dialog_([=]() {
|
||||
OrganiseDialog* dialog = new OrganiseDialog(app->task_manager());
|
||||
dialog->SetDestinationModel(
|
||||
app->library()->model()->directory_model());
|
||||
dialog->SetDestinationModel(app->library()->model()->directory_model());
|
||||
return dialog;
|
||||
}),
|
||||
playlist_menu_(new QMenu(this)),
|
||||
@ -1833,7 +1834,6 @@ void MainWindow::EditTracks() {
|
||||
}
|
||||
}
|
||||
|
||||
EnsureEditTagDialogCreated();
|
||||
edit_tag_dialog_->SetSongs(songs, items);
|
||||
edit_tag_dialog_->show();
|
||||
}
|
||||
@ -2218,7 +2218,6 @@ void MainWindow::AddFilesToTranscoder() {
|
||||
}
|
||||
|
||||
void MainWindow::ShowLibraryConfig() {
|
||||
EnsureSettingsDialogCreated();
|
||||
settings_dialog_->OpenAtPage(SettingsDialog::Page_Library);
|
||||
}
|
||||
|
||||
@ -2271,8 +2270,6 @@ void MainWindow::CopyFilesToDevice(const QList<QUrl>& urls) {
|
||||
}
|
||||
|
||||
void MainWindow::EditFileTags(const QList<QUrl>& urls) {
|
||||
EnsureEditTagDialogCreated();
|
||||
|
||||
SongList songs;
|
||||
for (const QUrl& url : urls) {
|
||||
Song song;
|
||||
@ -2441,47 +2438,40 @@ void MainWindow::ShowCoverManager() {
|
||||
cover_manager_->show();
|
||||
}
|
||||
|
||||
void MainWindow::EnsureSettingsDialogCreated() {
|
||||
if (settings_dialog_) return;
|
||||
|
||||
settings_dialog_.reset(new SettingsDialog(app_, background_streams_));
|
||||
settings_dialog_->SetGlobalShortcutManager(global_shortcuts_);
|
||||
settings_dialog_->SetSongInfoView(song_info_view_);
|
||||
SettingsDialog* MainWindow::CreateSettingsDialog() {
|
||||
SettingsDialog* settings_dialog =
|
||||
new SettingsDialog(app_, background_streams_);
|
||||
settings_dialog->SetGlobalShortcutManager(global_shortcuts_);
|
||||
settings_dialog->SetSongInfoView(song_info_view_);
|
||||
|
||||
// Settings
|
||||
connect(settings_dialog_.get(), SIGNAL(accepted()),
|
||||
SLOT(ReloadAllSettings()));
|
||||
connect(settings_dialog, SIGNAL(accepted()), SLOT(ReloadAllSettings()));
|
||||
|
||||
#ifdef HAVE_WIIMOTEDEV
|
||||
connect(settings_dialog_.get(), SIGNAL(SetWiimotedevInterfaceActived(bool)),
|
||||
connect(settings_dialog, SIGNAL(SetWiimotedevInterfaceActived(bool)),
|
||||
wiimotedev_shortcuts_.get(),
|
||||
SLOT(SetWiimotedevInterfaceActived(bool)));
|
||||
#endif
|
||||
|
||||
// Allows custom notification preview
|
||||
connect(settings_dialog_.get(),
|
||||
connect(settings_dialog,
|
||||
SIGNAL(NotificationPreview(OSD::Behaviour, QString, QString)),
|
||||
SLOT(HandleNotificationPreview(OSD::Behaviour, QString, QString)));
|
||||
return settings_dialog;
|
||||
}
|
||||
|
||||
void MainWindow::OpenSettingsDialog() {
|
||||
EnsureSettingsDialogCreated();
|
||||
settings_dialog_->show();
|
||||
}
|
||||
void MainWindow::OpenSettingsDialog() { settings_dialog_->show(); }
|
||||
|
||||
void MainWindow::OpenSettingsDialogAtPage(SettingsDialog::Page page) {
|
||||
EnsureSettingsDialogCreated();
|
||||
settings_dialog_->OpenAtPage(page);
|
||||
}
|
||||
|
||||
void MainWindow::EnsureEditTagDialogCreated() {
|
||||
if (edit_tag_dialog_) return;
|
||||
|
||||
edit_tag_dialog_.reset(new EditTagDialog(app_));
|
||||
connect(edit_tag_dialog_.get(), SIGNAL(accepted()),
|
||||
SLOT(EditTagDialogAccepted()));
|
||||
connect(edit_tag_dialog_.get(), SIGNAL(Error(QString)),
|
||||
EditTagDialog* MainWindow::CreateEditTagDialog() {
|
||||
EditTagDialog* edit_tag_dialog = new EditTagDialog(app_);
|
||||
connect(edit_tag_dialog, SIGNAL(accepted()), SLOT(EditTagDialogAccepted()));
|
||||
connect(edit_tag_dialog, SIGNAL(Error(QString)),
|
||||
SLOT(ShowErrorDialog(QString)));
|
||||
return edit_tag_dialog;
|
||||
}
|
||||
|
||||
void MainWindow::ShowAboutDialog() {
|
||||
|
@ -250,8 +250,8 @@ signals:
|
||||
void ShowErrorDialog(const QString& message);
|
||||
void ShowQueueManager();
|
||||
void ShowVisualisations();
|
||||
void EnsureSettingsDialogCreated();
|
||||
void EnsureEditTagDialogCreated();
|
||||
SettingsDialog* CreateSettingsDialog();
|
||||
EditTagDialog* CreateEditTagDialog();
|
||||
void OpenSettingsDialog();
|
||||
void OpenSettingsDialogAtPage(SettingsDialog::Page page);
|
||||
void ShowSongInfoConfig();
|
||||
@ -296,7 +296,7 @@ signals:
|
||||
Application* app_;
|
||||
SystemTrayIcon* tray_icon_;
|
||||
OSD* osd_;
|
||||
std::unique_ptr<EditTagDialog> edit_tag_dialog_;
|
||||
Lazy<EditTagDialog> edit_tag_dialog_;
|
||||
std::unique_ptr<About> about_dialog_;
|
||||
|
||||
GlobalShortcuts* global_shortcuts_;
|
||||
@ -314,7 +314,7 @@ signals:
|
||||
SongInfoView* song_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<AlbumCoverManager> cover_manager_;
|
||||
std::unique_ptr<Equalizer> equalizer_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user