aboutsummaryrefslogtreecommitdiff
path: root/accounts.cpp
blob: b0d2f97797be2e30e215919ddb535120cb265fa3 (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
#include "accounts.h"
#include "account.h"
#include "login.h"
#include <utility>
#include <QListWidgetItem>
#include <QScroller>

Accounts::Accounts(const QList<Client *> &accounts,
    QWidget *const parent) :
    QDialog(parent)
{
    ui.setupUi(this);
    QScroller::grabGesture(ui.accounts_list, QScroller::TouchGesture);

    for (const auto &a : accounts)
        add(a);

    connect(ui.add, &QPushButton::released, this,
    [this]
    {
        Login l(this);

        l.connect(&l, &Login::auth_success, this,
        [this] (Client *c)
        {
            add(c);
            Q_EMIT new_account(c);
        });

        l.exec();
    });

    showMaximized();
}

void Accounts::add(Client *c)
{
    new Account(c, ui.accounts_list, this);
}