From 2fe6bc47ed5f3d52d33d164af9a2176eb7d29026 Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 6 May 2013 16:50:52 -0500 Subject: Removed files I forgot to remove earlier (oops) --- libmultimc/include/pluginmanager.h | 74 -------------------------- libmultimc/src/pluginmanager.cpp | 105 ------------------------------------- 2 files changed, 179 deletions(-) delete mode 100644 libmultimc/include/pluginmanager.h delete mode 100644 libmultimc/src/pluginmanager.cpp (limited to 'libmultimc') diff --git a/libmultimc/include/pluginmanager.h b/libmultimc/include/pluginmanager.h deleted file mode 100644 index 1fc22a6c..00000000 --- a/libmultimc/include/pluginmanager.h +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright 2013 MultiMC Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef PLUGINMANAGER_H -#define PLUGINMANAGER_H - -#include -#include -#include - -#include "libmmc_config.h" - -/*! - * \brief This class is a singleton that manages loading plugins. - */ -class LIBMULTIMC_EXPORT PluginManager : public QObject -{ - Q_OBJECT -public: - /*! - * \brief Gets the plugin manager instance. - */ - static PluginManager &get() { return manager; } - - /*! - * \brief Loads plugins from the given directory. - * This function does \e not initialize the plugins. It simply loads their - * classes. Use the init functions to initialize the various plugin types. - * \param The directory to load plugins from. - * \return True if successful. False on failure. - */ - bool loadPlugins(QString pluginDir); - - /*! - * \brief Checks how many plugins are loaded. - * \return The number of plugins. - */ - int count() { return m_plugins.count(); } - - /*! - * \brief Gets the plugin at the given index. - * \param index The index of the plugin to get. - * \return The plugin at the given index. - */ - QPluginLoader *getPlugin(int index); - - /*! - * \brief Initializes and registers all the instance types. - * This is done by going through the plugin list and registering all of the - * plugins that derive from the InstanceTypeInterface with the InstanceLoader. - */ - void initInstanceTypes(); - -private: - PluginManager(); - - QList m_plugins; - - static PluginManager manager; -}; - -#endif // PLUGINMANAGER_H diff --git a/libmultimc/src/pluginmanager.cpp b/libmultimc/src/pluginmanager.cpp deleted file mode 100644 index 2f066293..00000000 --- a/libmultimc/src/pluginmanager.cpp +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright 2013 MultiMC Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "pluginmanager.h" - -#include -#include -#include -#include - -#include - -#include - -#include "instancetypeinterface.h" - -// MultiMC's API version. This must match the "api" field in each plugin's -// metadata or MultiMC won't consider them valid MultiMC plugin. -#define MMC_API_VERSION "MultiMC5-API-1" - -PluginManager PluginManager::manager; - -PluginManager::PluginManager() : - QObject(NULL) -{ - -} - -bool PluginManager::loadPlugins(QString pluginDir) -{ - // Delete the loaded plugins and clear the list. - for (int i = 0; i < m_plugins.count(); i++) - { - delete m_plugins[i]; - } - m_plugins.clear(); - - qDebug(QString("Loading plugins from directory: %1"). - arg(pluginDir).toUtf8()); - - QDir dir(pluginDir); - QDirIterator iter(dir); - - while (iter.hasNext()) - { - QFileInfo pluginFile(dir.absoluteFilePath(iter.next())); - - if (pluginFile.exists() && pluginFile.isFile()) - { - qDebug(QString("Attempting to load plugin: %1"). - arg(pluginFile.canonicalFilePath()).toUtf8()); - - QPluginLoader *pluginLoader = new QPluginLoader(pluginFile.absoluteFilePath()); - - QJsonObject pluginInfo = pluginLoader->metaData(); - QJsonObject pluginMetadata = pluginInfo.value("MetaData").toObject(); - - if (pluginMetadata.value("api").toString("") != MMC_API_VERSION) - { - // If "api" is not specified, it's not a MultiMC plugin. - qDebug(QString("Not loading plugin %1. Not a valid MultiMC plugin. " - "API: %2"). - arg(pluginFile.canonicalFilePath(), pluginMetadata.value("api").toString("")).toUtf8()); - continue; - } - - qDebug(QString("Loaded plugin: %1"). - arg(pluginInfo.value("IID").toString()).toUtf8()); - m_plugins.push_back(pluginLoader); - } - } - - return true; -} - -QPluginLoader *PluginManager::getPlugin(int index) -{ - return m_plugins[index]; -} - -void PluginManager::initInstanceTypes() -{ - for (int i = 0; i < m_plugins.count(); i++) - { - InstanceTypeInterface *instType = qobject_cast(m_plugins[i]->instance()); - - if (instType) - { - // TODO: Handle errors - InstanceLoader::get().registerInstanceType(instType); - } - } -} -- cgit v1.2.3