on fa85355 help sign in
unity8/plugins/IndicatorsClient/indicatorsfactory.cpp
61 lines 2.0 kB history raw
1/*
2 * Copyright (C) 2013 Canonical, Ltd.
3 *
4 * Authors:
5 * Michał Sawicz <michal.sawicz@canonical.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 3.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
20// local
21#include "indicatorsfactory.h"
23// indicators
24#include "indicators/datetime/indicatorclient_datetime.h"
25#include "indicators/messaging/indicatorclient_messaging.h"
26#include "indicators/network/indicatorclient_network.h"
27#include "indicators/power/indicatorclient_power.h"
28#include "indicators/sound/indicatorclient_sound.h"
30IndicatorsFactory::IndicatorsFactory()
32 registerIndicator<IndicatorClientDateTime>("indicator-datetime");
33 registerIndicator<IndicatorClientMessaging>("indicator-messaging");
34 registerIndicator<IndicatorClientNetwork>("indicator-network");
35 registerIndicator<IndicatorClientPower>("indicator-power");
36 registerIndicator<IndicatorClientSound>("indicator-sound");
39IndicatorsFactory::~IndicatorsFactory()
41 qDeleteAll(m_factoryItems);
44IndicatorsFactory& IndicatorsFactory::instance()
46 static IndicatorsFactory factory;
47 return factory;
50IndicatorClientInterface::Ptr IndicatorsFactory::create(const QString& indicator, QObject* parent)
52 if (!m_factoryItems.contains(indicator))
53 return IndicatorClientInterface::Ptr();
54 return m_factoryItems[indicator]->create(parent);
58bool IndicatorsFactory::isRegistered(const QString& indicator)
60 return m_factoryItems.contains(indicator);