/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 as published by the Free Software ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ****************************************************************************/ #include "projectpanelfactory.h" #include "project.h" #include "projectwindow.h" using namespace ProjectExplorer::Internal; using namespace Utils; namespace ProjectExplorer { static QList s_factories; ProjectPanelFactory::ProjectPanelFactory() : m_supportsFunction([] (Project *) { return true; }) { } int ProjectPanelFactory::priority() const { return m_priority; } void ProjectPanelFactory::setPriority(int priority) { m_priority = priority; } QString ProjectPanelFactory::displayName() const { return m_displayName; } void ProjectPanelFactory::setDisplayName(const QString &name) { m_displayName = name; } void ProjectPanelFactory::registerFactory(ProjectPanelFactory *factory) { auto it = std::lower_bound(s_factories.begin(), s_factories.end(), factory, [](ProjectPanelFactory *a, ProjectPanelFactory *b) { return (a->priority() == b->priority() && a < b) || a->priority() < b->priority(); }); s_factories.insert(it, factory); } QList ProjectPanelFactory::factories() { return s_factories; } void ProjectPanelFactory::destroyFactories() { qDeleteAll(s_factories); s_factories.clear(); } Utils::Id ProjectPanelFactory::id() const { return m_id; } void ProjectPanelFactory::setId(Utils::Id id) { m_id = id; } QString ProjectPanelFactory::icon() const { return m_icon; } void ProjectPanelFactory::setIcon(const QString &icon) { m_icon = icon; } QWidget *ProjectPanelFactory::createWidget(Project *project) const { return m_widgetCreator(project); } void ProjectPanelFactory::setCreateWidgetFunction(const WidgetCreator &createWidgetFunction) { m_widgetCreator = createWidgetFunction; } bool ProjectPanelFactory::supports(Project *project) { return m_supportsFunction(project); } void ProjectPanelFactory::setSupportsFunction(std::function function) { m_supportsFunction = function; } } // namespace ProjectExplorer