squawk/ui/squawk.h

57 lines
1.2 KiB
C
Raw Normal View History

2019-03-29 14:54:34 +00:00
#ifndef SQUAWK_H
#define SQUAWK_H
#include <QMainWindow>
#include <QScopedPointer>
#include <QCloseEvent>
2019-03-30 20:13:13 +00:00
#include <deque>
2019-04-02 15:46:18 +00:00
#include <map>
2019-03-29 14:54:34 +00:00
#include "accounts.h"
#include "models/roster.h"
#include "../global.h"
2019-03-29 14:54:34 +00:00
namespace Ui {
class Squawk;
}
class Squawk : public QMainWindow
{
Q_OBJECT
public:
explicit Squawk(QWidget *parent = nullptr);
~Squawk() override;
2019-03-30 20:13:13 +00:00
signals:
void newAccountRequest(const QMap<QString, QVariant>&);
void connectAccount(const QString&);
void disconnectAccount(const QString&);
2019-03-30 20:13:13 +00:00
public slots:
void newAccount(const QMap<QString, QVariant>& account);
void accountConnectionStateChanged(const QString& account, int state);
2019-03-30 20:13:13 +00:00
2019-03-29 14:54:34 +00:00
private:
2019-03-30 20:13:13 +00:00
typedef std::deque<QMap<QString, QVariant>> AC;
2019-04-02 15:46:18 +00:00
typedef std::map<QString, QMap<QString, QVariant>*> AI;
2019-03-29 14:54:34 +00:00
QScopedPointer<Ui::Squawk> m_ui;
Accounts* accounts;
2019-03-30 20:13:13 +00:00
AC accountsCache;
2019-04-02 15:46:18 +00:00
AI accountsIndex;
Models::Roster rosterModel;
2019-03-29 14:54:34 +00:00
protected:
void closeEvent(QCloseEvent * event) override;
private slots:
void onAccounts();
void onAccountsClosed(QObject* parent = 0);
void onComboboxActivated(int index);
2019-03-29 14:54:34 +00:00
};
#endif // SQUAWK_H