diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 79bb12014..35adf0cd1 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -183,7 +183,12 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd, song_info_view_(new SongInfoView(this)), artist_info_view_(new ArtistInfoView(this)), equalizer_(new Equalizer), - organise_dialog_(new OrganiseDialog(app_->task_manager())), + organise_dialog_([=]() { + OrganiseDialog* dialog = new OrganiseDialog(app->task_manager()); + dialog->SetDestinationModel( + app->library()->model()->directory_model()); + return dialog; + }), playlist_menu_(new QMenu(this)), playlist_add_to_another_(nullptr), playlistitem_actions_separator_(nullptr), @@ -293,9 +298,6 @@ MainWindow::MainWindow(Application* app, SystemTrayIcon* tray_icon, OSD* osd, device_view_->SetApplication(app_); playlist_list_->SetApplication(app_); - organise_dialog_->SetDestinationModel( - app_->library()->model()->directory_model()); - // Icons qLog(Debug) << "Creating UI"; ui_->action_about->setIcon(IconLoader::Load("help-about", IconLoader::Base)); diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index fba83e0eb..ba8b5fc75 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -25,11 +25,13 @@ #include #include "config.h" +#include "core/lazy.h" #include "core/mac_startup.h" #include "core/tagreaderclient.h" #include "engines/engine_fwd.h" #include "library/librarymodel.h" #include "playlist/playlistitem.h" +#include "ui/organisedialog.h" #include "ui/settingsdialog.h" class About; @@ -57,7 +59,6 @@ class Library; class LibraryViewContainer; class MimeData; class MultiLoadingIndicator; -class OrganiseDialog; class OSD; class Player; class PlaylistBackend; @@ -319,7 +320,7 @@ signals: std::unique_ptr equalizer_; std::unique_ptr transcode_dialog_; std::unique_ptr error_dialog_; - std::unique_ptr organise_dialog_; + Lazy organise_dialog_; std::unique_ptr queue_manager_; std::unique_ptr tag_fetcher_;