aboutsummaryrefslogtreecommitdiff
path: root/context.cpp
blob: 5bb0f4422245450eb4972d9f8a465932855bce28 (plain) (blame)
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "context.h"

Context::Context(QObject *parent)
    : QObject(parent)
{
}

Context::Context(dc_context_t *context)
    : QObject(nullptr)
    , m_context(context)
{
}

Context::~Context()
{
    dc_context_unref(m_context);
}

void
Context::configure()
{
    dc_configure(m_context);
}

bool
Context::isConfigured() const
{
    return dc_is_configured(m_context);
}

QString
Context::getInfo()
{
    char *info = dc_get_info(m_context);
    QString result{info};
    dc_str_unref(info);
    return result;
}

DcChatlist *
Context::getChatlist()
{
    dc_chatlist_t *chatlist = dc_get_chatlist(m_context, 0, NULL, 0);
    return new DcChatlist{chatlist};
}

DcChat *
Context::getChat(uint32_t chatId)
{
    dc_chat_t *chat = dc_get_chat(m_context, chatId);
    return new DcChat{chat};
}

QVariantList
Context::getMsgIdList(uint32_t chatId) {
    QVariantList result;
    dc_array_t *msgIdArray = dc_get_chat_msgs(m_context, chatId, 0, 0);
    for (size_t i = 0; i < dc_array_get_cnt(msgIdArray); i++) {
        result << dc_array_get_id(msgIdArray, i);
    }
    dc_array_unref(msgIdArray);
    return result;
}

DcMessage *
Context::getMessage(uint32_t msgId)
{
    dc_msg_t *message = dc_get_msg(m_context, msgId);
    return new DcMessage{message};
}

DcContact *
Context::getContact(uint32_t contactId)
{
    dc_contact_t *contact = dc_get_contact(m_context, contactId);
    return new DcContact{contact};
}

QString
Context::getBlobdir()
{
    char *blobdir = dc_get_blobdir(m_context);
    QString result{blobdir};
    dc_str_unref(blobdir);
    return result;
}

QString
Context::getMessageInfo(uint32_t msgId)
{
    char *info = dc_get_msg_info(m_context, msgId);
    QString result{info};
    dc_str_unref(info);
    return result;
}

uint32_t
Context::sendTextMessage(uint32_t chatId, QString textToSend)
{
    QByteArray utf8Text = textToSend.toUtf8();
    return dc_send_text_msg(m_context, chatId, utf8Text.constData());
}