diff -r b852595f5cbe -r 63be7eb3fc78 wlanutilities/wlanindicatorplugin/src/wlanindicatorplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlanutilities/wlanindicatorplugin/src/wlanindicatorplugin.cpp Tue Aug 31 16:18:40 2010 +0300 @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include "wlanindicatorplugin.h" +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "wlanindicatorpluginTraces.h" +#endif + +Q_EXPORT_PLUGIN(WlanIndicatorPlugin) + +const static char IndicatorType[] = "com.nokia.hb.indicator.connectivity.wlanindicatorplugin/1.0"; + + +/*! + WlanIndicatorPlugin constructor. +*/ +WlanIndicatorPlugin::WlanIndicatorPlugin() : + HbIndicatorInterface(IndicatorType, SettingCategory, InteractionActivated), + mError(0) +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_WLANINDICATORPLUGIN_ENTRY, this); + mIndicatorTypes << "com.nokia.hb.indicator.connectivity.wlanindicatorplugin/1.0"; + OstTraceFunctionExit1(WLANINDICATORPLUGIN_WLANINDICATORPLUGIN_ENTRY_EXIT, this); +} + +/*! + WlanIndicatorPlugin destructor. +*/ +WlanIndicatorPlugin::~WlanIndicatorPlugin() +{ + OstTraceFunctionEntry1(DUP1_WLANINDICATORPLUGIN_WLANINDICATORPLUGIN_ENTRY, this); + OstTraceFunctionExit1(DUP1_WLANINDICATORPLUGIN_WLANINDICATORPLUGIN_EXIT, this); +} + +/*! + The indicatorTypes returns type of indicator. In this case it is wlanindicatorplugin. +*/ +QStringList WlanIndicatorPlugin::indicatorTypes() const +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_INDICATORTYPES_ENTRY, this); + OstTraceFunctionExit1(WLANINDICATORPLUGIN_INDICATORTYPES_EXIT, this); + + return mIndicatorTypes; +} + +/*! + The handleClientRequest handles client request to change indicators parameters. +*/ +bool WlanIndicatorPlugin::accessAllowed(const QString &indicatorType, + const QVariantMap &securityInfo) const +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_ACCESSALLOWED_ENTRY, this); + + Q_UNUSED(indicatorType) + Q_UNUSED(securityInfo) + + OstTraceFunctionExit1(WLANINDICATORPLUGIN_ACCESSALLOWED_EXIT, this); + + return true; +} + +/*! + The createIndicator creates indicator plugin instance. +*/ +HbIndicatorInterface* WlanIndicatorPlugin::createIndicator( + const QString &indicatorType) +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_CREATEINDICATOR_ENTRY, this); + Q_UNUSED(indicatorType) + + // Install localization + mTranslator = QSharedPointer(new HbTranslator("wlanindicatorplugin")); + + OstTraceFunctionExit1(WLANINDICATORPLUGIN_CREATEINDICATOR_EXIT, this); + return this; +} + +/*! + The error returns indicator error to HbIndicatorPluginInterface. +*/ +int WlanIndicatorPlugin::error() const +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_ERROR_ENTRY, this); + OstTrace1( WLANINDICATORPLUGIN_ERR,ERROR,"WlanIndicatorPlugin error %u", mError); + OstTraceFunctionExit1(WLANINDICATORPLUGIN_ERROR_EXIT, this); + return mError; +} + +/*! + The handleInteraction is used launch WLAN list view. +*/ +bool WlanIndicatorPlugin::handleInteraction(InteractionType type) +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_HANDLEINTERACTION_ENTRY, this); + + bool handled = false; + QVariantMap data; + switch (type) { + case InteractionActivated: + // Emit a signal that will inform the client to start the wlan list view + emit userActivated(data); + handled = true; + break; + default: + break; + } + + OstTraceFunctionExit1(WLANINDICATORPLUGIN_HANDLEINTERACTION_EXIT, this); + + return handled; +} + +/*! + The handleClientRequest handles client request to change indicators paramters. +*/ +bool WlanIndicatorPlugin::handleClientRequest(RequestType type, const QVariant ¶meter) +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_CLIENTREQUEST_ENTRY, this); + + Q_UNUSED(parameter) + bool handled(false); + switch (type) { + case RequestActivate: + if (mParameter != parameter) { + mParameter = parameter; + emit dataChanged(); + } + handled = true; + break; + default: + mParameter.clear(); + } + + OstTraceFunctionExit1(WLANINDICATORPLUGIN_CLIENTREQUEST_EXIT, this); + return handled; +} + +/*! + The indicatorData takes care of showing indicator's data. +*/ +QVariant WlanIndicatorPlugin::indicatorData(int role) const +{ + OstTraceFunctionEntry1(WLANINDICATORPLUGIN_INDICATORDATA_ENTRY, this); + + QVariant qvariant(""); + QList indicatorText; + bool validParameters = false; + + switch (role) { + case PrimaryTextRole: + qvariant = QString(hbTrId("txt_occ_dblist_indi_menu_wireless_lan")); + break; + case SecondaryTextRole: + if (mParameter.isValid() && mParameter.type() == QVariant::List) { + + indicatorText = mParameter.toList(); + validParameters = true; + } + if (validParameters && (indicatorText.size() > 0)) { + + if (indicatorText[0] == wlanNotConnected){ + qvariant = QString(hbTrId("txt_occ_dblist_wireless_lan_val_not_connected")); + } + + else if (indicatorText[0] == wlanConnected){ + qvariant = indicatorText[1].toString(); + } + } + else + { + OstTrace0( WLANINDICATORPLUGIN_ERR,INVALID_PARAMS,"Invalid indicator parameters"); + } + break; + // this is the statusbar icon, which is shown only when a connection is active + case MonoDecorationNameRole: + OstTraceFunctionExit1(DUP1_WLANINDICATORPLUGIN_INDICATORDATA_EXIT, this); + + if (mParameter.isValid() && mParameter.type() == QVariant::List) { + indicatorText = mParameter.toList(); + if ((indicatorText.size() > 0) && (indicatorText[0] == wlanConnected)) { + qvariant = QString("qtg_status_wlan"); + } + } + break; + // this is the icon in the indicator + case DecorationNameRole: + OstTraceFunctionExit1(DUP2_WLANINDICATORPLUGIN_INDICATORDATA_EXIT, this); + qvariant = QString("qtg_small_wlan"); + break; + default: + OstTraceFunctionExit1(DUP3_WLANINDICATORPLUGIN_INDICATORDATA_EXIT, this); + break; + } + return qvariant; +} +