aboutsummaryrefslogtreecommitdiff
path: root/xxcc.h
blob: f4825e144f58d7f2843ca8df683a6db80fac8384 (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
#ifndef XXCC_H
#define XXCC_H

#include "ui_xxcc.h"
#include "client.h"
#include "credentials.h"
#include "jiddb.h"
#include <QDateTime>
#include <QList>
#include <QWidget>
#include <QSqlDatabase>
#include <QString>
#include <QXmppMessage.h>

class xxcc : public QWidget
{
    Q_OBJECT

public:
    xxcc(QWidget *parent = nullptr);
    ~xxcc();

private:
    enum Tab {Conversations, Chat};
    Ui_main ui;
    QList<Client *> clients;
    Credentials creds;
    Client *selected;
    void connectAccounts(const QList<Credentials::Pair> &pairs);
    void storeMessage(const QXmppMessage &msg, Direction dir) const;
    void storeMessage(const QString &from, const QString &to,
        const QString &msg, const QDateTime &dt, Direction dir) const;
    void retrieveConversations();

private Q_SLOTS:
    void startChat(QString from, QString to);
    void addInMessage(const QXmppMessage &msg);
    void addOutMessage(const QString &msg, const QDateTime &dt);
    void addAccount(Client *c);
    void send(void);
};

#endif