harvester/contentinfodb/src/contentinfodbreadprivate.cpp
author hgs
Tue, 05 Oct 2010 13:15:12 +0530
changeset 23 d4d56f5e7c55
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:  read api implementation 
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
#include "contentinfodbreadprivate.h"
hgs
parents:
diff changeset
    18
#include "contentinfodb.h"
hgs
parents:
diff changeset
    19
#include "cpixcontentinfodbread.h"
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    23
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    24
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    25
//
hgs
parents:
diff changeset
    26
ContentInfoDbReadPrivate::ContentInfoDbReadPrivate(QObject* aParent)
hgs
parents:
diff changeset
    27
    {
hgs
parents:
diff changeset
    28
    iReadPtr = reinterpret_cast<ContentInfoDbRead*> (aParent);
hgs
parents:
diff changeset
    29
    mdb = ContentInfoDb::instance();
hgs
parents:
diff changeset
    30
    connect(mdb, SIGNAL(dbUpdated()),this, SLOT(slotdataChanged()));
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
    }
hgs
parents:
diff changeset
    33
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    34
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    35
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    36
//
hgs
parents:
diff changeset
    37
ContentInfoDbReadPrivate::~ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    ContentInfoDb::deleteinstance();
hgs
parents:
diff changeset
    40
    }
hgs
parents:
diff changeset
    41
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    42
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    43
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    44
//
hgs
parents:
diff changeset
    45
QStringList ContentInfoDbReadPrivate::getPrimaryKeys()
hgs
parents:
diff changeset
    46
    {
hgs
parents:
diff changeset
    47
    return mdb->readData(QString(QUERYSORT));
hgs
parents:
diff changeset
    48
    }
hgs
parents:
diff changeset
    49
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    50
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    51
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    52
//
hgs
parents:
diff changeset
    53
QString ContentInfoDbReadPrivate::getValues(QString Key, QString columnname)
hgs
parents:
diff changeset
    54
    {
hgs
parents:
diff changeset
    55
    return mdb->readStringData(
hgs
parents:
diff changeset
    56
            QString(QUERYDATARETRIVAL).arg(columnname).arg(MAINTABLENAME).arg(
hgs
parents:
diff changeset
    57
                    TAGPRIMARYKEY).arg(Key));
hgs
parents:
diff changeset
    58
    }
hgs
parents:
diff changeset
    59
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    60
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    61
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    62
//
hgs
parents:
diff changeset
    63
QStringList ContentInfoDbReadPrivate::getActionuri(QString Key)
hgs
parents:
diff changeset
    64
    {
hgs
parents:
diff changeset
    65
    QString tablename = mdb->readStringData(QString(QUERYDATARETRIVAL).arg(
hgs
parents:
diff changeset
    66
            TAGACTIONURI).arg(MAINTABLENAME).arg(TAGPRIMARYKEY).arg(Key));
hgs
parents:
diff changeset
    67
    if (!tablename.length())
hgs
parents:
diff changeset
    68
        return QStringList();
hgs
parents:
diff changeset
    69
    return mdb->readData(
hgs
parents:
diff changeset
    70
            QString(QUERYPRIMARYKEYS).arg(TAGACTIONURISTRING).arg(tablename));
hgs
parents:
diff changeset
    71
    }
hgs
parents:
diff changeset
    72
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    73
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    74
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    75
//
hgs
parents:
diff changeset
    76
QString ContentInfoDbReadPrivate::getShortTaburi(QString Key)
hgs
parents:
diff changeset
    77
    {
hgs
parents:
diff changeset
    78
    QString tablename = mdb->readStringData(QString(QUERYDATARETRIVAL).arg(
hgs
parents:
diff changeset
    79
            TAGACTIONURI).arg(MAINTABLENAME).arg(TAGPRIMARYKEY).arg(Key));
hgs
parents:
diff changeset
    80
    if (!tablename.length())
hgs
parents:
diff changeset
    81
        return NULL;
hgs
parents:
diff changeset
    82
    return mdb->readStringData(QString(QUERYFILTERDATA).arg(
hgs
parents:
diff changeset
    83
            TAGACTIONURISTRING).arg(tablename).arg(TAGACTION).arg(
hgs
parents:
diff changeset
    84
            PRIMARYVALUE));
hgs
parents:
diff changeset
    85
    }
hgs
parents:
diff changeset
    86
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    87
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
    88
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    89
//
hgs
parents:
diff changeset
    90
QStringList ContentInfoDbReadPrivate::getLongTaburi(QString Key,
hgs
parents:
diff changeset
    91
        QString FieldName)
hgs
parents:
diff changeset
    92
    {
hgs
parents:
diff changeset
    93
    QStringList longurilist;
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
    QString tablename = mdb->readStringData(QString(QUERYDATARETRIVAL).arg(
hgs
parents:
diff changeset
    96
            TAGACTIONURI).arg(MAINTABLENAME).arg(TAGPRIMARYKEY).arg(Key));
hgs
parents:
diff changeset
    97
    if (!tablename.length())
hgs
parents:
diff changeset
    98
        return QStringList();
hgs
parents:
diff changeset
    99
    QString fieldmaptable =
hgs
parents:
diff changeset
   100
            mdb->readStringData(
hgs
parents:
diff changeset
   101
                    QString(QUERYDATARETRIVAL).arg(TAGFIELDMAP).arg(
hgs
parents:
diff changeset
   102
                            MAINTABLENAME).arg(TAGPRIMARYKEY).arg(Key));
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
    QString
hgs
parents:
diff changeset
   105
            filedmapsubtable = mdb->readStringData(
hgs
parents:
diff changeset
   106
                    QString(QUERYDATARETRIVAL).arg(TAGURILIST).arg(
hgs
parents:
diff changeset
   107
                            fieldmaptable).arg(TAGFIELD).arg(FieldName));
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
    QStringList urireflist = mdb->readData(QString(QUERYPRIMARYKEYS).arg(
hgs
parents:
diff changeset
   110
            TAGAURI).arg(filedmapsubtable));
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
    for (int i = 0; i < urireflist.count(); i++)
hgs
parents:
diff changeset
   113
        {
hgs
parents:
diff changeset
   114
        QString str;
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
        str = mdb->readStringData(QString(QUERYDATARETRIVAL).arg(
hgs
parents:
diff changeset
   117
                TAGACTIONURISTRING).arg(tablename).arg(TAGURIREF).arg(
hgs
parents:
diff changeset
   118
                urireflist.at(i)));
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
        if (str.length())
hgs
parents:
diff changeset
   121
            longurilist.append(str);
hgs
parents:
diff changeset
   122
        }
hgs
parents:
diff changeset
   123
    return longurilist;
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   126
// ContentInfoDbReadPrivate::ContentInfoDbReadPrivate()
hgs
parents:
diff changeset
   127
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   128
//
hgs
parents:
diff changeset
   129
bool ContentInfoDbReadPrivate::geturiDetails(QString key, QString uri,
hgs
parents:
diff changeset
   130
        QString& iconname, QString& displayname)
hgs
parents:
diff changeset
   131
    {
hgs
parents:
diff changeset
   132
    QString tablename = mdb->readStringData(QString(QUERYDATARETRIVAL).arg(
hgs
parents:
diff changeset
   133
            TAGACTIONURI).arg(MAINTABLENAME).arg(TAGPRIMARYKEY).arg(key));
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
    if (!tablename.length())
hgs
parents:
diff changeset
   136
        return false;
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
    iconname = QString();
hgs
parents:
diff changeset
   139
    displayname = QString();
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    iconname = mdb->readStringData(
hgs
parents:
diff changeset
   142
            QString(QUERYDATARETRIVAL).arg(TAGLNAME).arg(tablename).arg(
hgs
parents:
diff changeset
   143
                    TAGACTIONURISTRING).arg(uri));
hgs
parents:
diff changeset
   144
hgs
parents:
diff changeset
   145
    displayname = mdb->readStringData(
hgs
parents:
diff changeset
   146
            QString(QUERYDATARETRIVAL).arg(TAGLICON).arg(tablename).arg(
hgs
parents:
diff changeset
   147
                    TAGACTIONURISTRING).arg(uri));
hgs
parents:
diff changeset
   148
    if (iconname.length() && displayname.length())
hgs
parents:
diff changeset
   149
        return true;
hgs
parents:
diff changeset
   150
    return false;
hgs
parents:
diff changeset
   151
    }
hgs
parents:
diff changeset
   152
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   153
// ContentInfoDbReadPrivate::slotdataChanged()
hgs
parents:
diff changeset
   154
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   155
//
hgs
parents:
diff changeset
   156
void ContentInfoDbReadPrivate::slotdataChanged()
hgs
parents:
diff changeset
   157
    {
hgs
parents:
diff changeset
   158
    if(iReadPtr)
hgs
parents:
diff changeset
   159
        emit iReadPtr->dataChanged();
hgs
parents:
diff changeset
   160
    }
hgs
parents:
diff changeset
   161
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   162
// ContentInfoDbReadPrivate::categoryCount()
hgs
parents:
diff changeset
   163
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   164
//
hgs
parents:
diff changeset
   165
int ContentInfoDbReadPrivate::categoryCount()
hgs
parents:
diff changeset
   166
    {
hgs
parents:
diff changeset
   167
    return (mdb->readStringData(QString(QUERYCOUNT))).toInt();
hgs
parents:
diff changeset
   168
    }