Beispiel #1
0
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;
}
Beispiel #2
0
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;
}