AbstractView* ViewLoader::load(AbstractView *currentView, const QString &menuAction) { if (currentView) { QPair<QString, QObjectList> extensions = currentView->extensionPoints(); _pluginManager->unregisterExtensionPoint(extensions.first); } AbstractView *view = nullptr; if (menuAction == "actionViewPlaylists" || menuAction == "actionViewUniqueLibrary") { if (menuAction == "actionViewPlaylists") { ViewPlaylists *viewPlaylists = new ViewPlaylists(_mediaPlayer, _parent); view = viewPlaylists; } else { UniqueLibrary *uniqueLibrary = new UniqueLibrary(_mediaPlayer, _parent); UniqueLibraryMediaPlayerControl *control = static_cast<UniqueLibraryMediaPlayerControl*>(uniqueLibrary->mediaPlayerControl()); control->setUniqueLibrary(uniqueLibrary); view = uniqueLibrary; } this->attachPluginToBuiltInView(view); } else if (currentView != nullptr) { view = this->loadFromPlugin(currentView, menuAction); } return view; }
AbstractView* ViewLoader::load(AbstractView *currentView, const QString &menuAction) { // Check if we really need to load the view, maybe one has misclicked! if (currentView != nullptr && menuAction == "actionViewPlaylists") { ViewPlaylists *vp = dynamic_cast<ViewPlaylists*>(currentView); if (vp && vp == currentView) { return currentView; } } else if (currentView != nullptr && menuAction == "actionViewUniqueLibrary") { UniqueLibrary *ul = dynamic_cast<UniqueLibrary*>(currentView); if (ul && ul == currentView) { return currentView; } } // Loading can start if (currentView) { QPair<QString, QObjectList> extensions = currentView->extensionPoints(); _pluginManager->unregisterExtensionPoint(extensions.first); } AbstractView *view = nullptr; if (menuAction == "actionViewPlaylists" || menuAction == "actionViewUniqueLibrary") { if (menuAction == "actionViewPlaylists") { ViewPlaylists *viewPlaylists = new ViewPlaylists(_mediaPlayer, _parent); view = viewPlaylists; } else { UniqueLibrary *uniqueLibrary = new UniqueLibrary(_mediaPlayer, _parent); UniqueLibraryMediaPlayerControl *control = static_cast<UniqueLibraryMediaPlayerControl*>(uniqueLibrary->mediaPlayerControl()); control->setUniqueLibrary(uniqueLibrary); view = uniqueLibrary; } this->attachPluginToBuiltInView(view); } else if (currentView != nullptr) { view = this->loadFromPlugin(currentView, menuAction); } return view; }