transferdbrecord.h 2.94 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
/****************************************************************************************
**
** Copyright (C) 2013 Jolla Ltd.
** Contact: Marko Mattila <marko.mattila@jollamobile.com>
** All rights reserved.
**
** This file is part of Nemo Transfer Engine package.
**
** You may use this file under the terms of the GNU Lesser General
** Public License version 2.1 as published by the Free Software Foundation
** and appearing in the file license.lgpl included in the packaging
** of this file.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation
** and appearing in the file license.lgpl included in the packaging
** of this file.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
**
****************************************************************************************/

#ifndef TRANSFERDBRECORD_H
#define TRANSFERDBRECORD_H

#include <QtGlobal>
#include <QDBusArgument>

class TransferDBRecord
{

public:

    enum TransferDBRecordField {
        TransferID = 0,
        TransferType,
        Progress,
        URL,
        Status,
        PluginID,
        Timestamp,
        DisplayName,
        ResourceName,
        MimeType,
        FileSize,
        ServiceIcon,
        ApplicationIcon,
        ThumbnailIcon,
        CancelSupported,
        RestartSupported
    };

    TransferDBRecord();
    TransferDBRecord &operator=(const TransferDBRecord &other);
    TransferDBRecord(const TransferDBRecord &other);
    ~TransferDBRecord();


    friend QDBusArgument &operator<<(QDBusArgument &argument, const TransferDBRecord &record);
    friend const QDBusArgument &operator>>(const QDBusArgument &argument, TransferDBRecord &record);

    static void registerType();

    QVariant value(int index) const;

70 71 72 73 74 75
    bool isValid() const;

    friend bool operator ==(const TransferDBRecord &left, const TransferDBRecord &right);
    friend bool operator !=(const TransferDBRecord &left, const TransferDBRecord &right);


76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
// TODO: Maybe this could use QVariantList internally to ease of pain of keeping thigs up to date
//       when database structure / fields change
    int     transfer_id;
    int     transfer_type;
    int     status;
    qint64  size;
    double  progress;
    QString plugin_id;
    QString url;
    QString timestamp;
    QString display_name;
    QString resource_name;
    QString mime_type;
    QString service_icon;
    QString application_icon;
    QString thumbnail_icon;
    bool    cancel_supported;
    bool    restart_supported;
};

96 97 98
bool operator ==(const TransferDBRecord &left, const TransferDBRecord &right);
bool operator !=(const TransferDBRecord &left, const TransferDBRecord &right);

99 100 101


#endif // DBUSTYPES_H