commondrm/drmui/drmuinotifications/src/drmuidialogplugin.cpp
author hgs
Thu, 24 Jun 2010 12:39:58 +0300
changeset 49 69d8e75812b7
permissions -rw-r--r--
201025_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     1
/*
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     3
 * All rights reserved.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     8
 *
69d8e75812b7 201025_01
hgs
parents:
diff changeset
     9
 * Initial Contributors:
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    11
 *
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    12
 * Contributors:
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    13
 *
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    14
 * Description:  DrmUIDialogPlugin class implementation.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    15
 *
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    16
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    17
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    18
#include "DrmUIDialogPlugin.h"
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    19
#include <QtPlugin>
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    20
#include <hbdevicedialog.h>
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    21
#include "drmuidialogsbuilder.h"
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    22
#include "drmuidialogpluginkeys.h"
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    23
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    24
Q_EXPORT_PLUGIN2(DrmUIDialogPlugin, DrmUIDialogPlugin)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    25
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    26
const int NmMaxDialogCount = 10;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    27
static const QString drmUiDialog = "com.nokia.hb.drmuidialog/1.0";
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    28
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    29
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    30
 DrmUIDialogPlugin Constructor
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    31
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    32
DrmUIDialogPlugin::DrmUIDialogPlugin()
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    33
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    34
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    35
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    36
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    37
/*!
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    38
 Destructor
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    39
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    40
DrmUIDialogPlugin::~DrmUIDialogPlugin()
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    41
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    42
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    43
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    44
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    45
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    46
 Check if client is allowed to use device dialog widget
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    47
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    48
bool DrmUIDialogPlugin::accessAllowed(const QString &deviceDialogType,
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    49
        const QVariantMap &parameters, const QVariantMap &securityInfo) const
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    50
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    51
    Q_UNUSED (deviceDialogType)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    52
    Q_UNUSED(parameters)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    53
    Q_UNUSED(securityInfo)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    54
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    55
    // This plugin doesn't perform operations that may compromise security.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    56
    // All clients are allowed to use.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    57
    return true;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    58
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    59
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    60
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    61
 From interface class.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    62
 Use the dialog type in the parameter to create widget.    
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    63
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    64
HbDeviceDialogInterface *DrmUIDialogPlugin::createDeviceDialog(
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    65
        const QString &deviceDialogType, const QVariantMap &parameters)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    66
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    67
    Q_UNUSED(deviceDialogType)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    68
    return new DrmUiDialogsBuilder(parameters);
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    69
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    70
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    71
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    72
 Return information of device dialog the plugin creates
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    73
 Currently only supporting 1 device dialog type, so no need to check the type.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    74
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    75
bool DrmUIDialogPlugin::deviceDialogInfo(const QString &deviceDialogType,
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    76
        const QVariantMap &parameters, DeviceDialogInfo *info) const
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    77
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    78
    Q_UNUSED(parameters)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    79
    Q_UNUSED(deviceDialogType)
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    80
    // set return values
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    81
    info->group = GenericDeviceDialogGroup;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    82
    info->flags = NoDeviceDialogFlags;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    83
    info->priority = DefaultPriority;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    84
    return true;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    85
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    86
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    87
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    88
 Return device dialog types this plugin implements
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    89
 Function will work fine (unchanged) when new dialogs are added.
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    90
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    91
QStringList DrmUIDialogPlugin::deviceDialogTypes() const
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    92
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    93
    QStringList types;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    94
    types.append(drmUiDialog);
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    95
    return types;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    96
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    97
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    98
69d8e75812b7 201025_01
hgs
parents:
diff changeset
    99
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   100
 Return plugin flags
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   101
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   102
HbDeviceDialogPlugin::PluginFlags DrmUIDialogPlugin::pluginFlags() const
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   103
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   104
    return NoPluginFlags;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   105
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   106
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   107
/*! 
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   108
 Return last error
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   109
 */
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   110
int DrmUIDialogPlugin::error() const
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   111
    {
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   112
    return 0;
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   113
    }
69d8e75812b7 201025_01
hgs
parents:
diff changeset
   114