/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef CORECONNECTION_H_
-#define CORECONNECTION_H_
+#pragma once
-#include "QPointer"
-#include "QTimer"
+#include "client-export.h"
+
+#include <QNetworkConfigurationManager>
+#include <QPointer>
+#include <QTimer>
#ifdef HAVE_SSL
# include <QSslSocket>
# include <QTcpSocket>
#endif
-#ifdef HAVE_KDE4
-# include <Solid/Networking>
-#endif
-
-#include <QNetworkConfigurationManager>
-
#include "coreaccount.h"
#include "remotepeer.h"
#include "types.h"
class Peer;
class SignalProxy;
-class CoreConnection : public QObject
+class CLIENT_EXPORT CoreConnection : public QObject
{
Q_OBJECT
Synchronized
};
- CoreConnection(QObject *parent = 0);
+ CoreConnection(QObject *parent = nullptr);
void init();
//! Check if we consider the last connect as reconnect
bool wasReconnect() const { return _wasReconnect; }
+ QPointer<Peer> peer() const;
+
public slots:
bool connectToCore(AccountId = 0);
void reconnectToCore();
void progressValueChanged(int value);
void progressTextChanged(const QString &);
- void startCoreSetup(const QVariantList &backendInfo);
+ void startCoreSetup(const QVariantList &backendInfo, const QVariantList &authenticatorInfo);
void coreSetupSuccess();
void coreSetupFailed(const QString &error);
- void startInternalCore();
- void connectToInternalCore(InternalPeer *connection);
+ void connectToInternalCore(QPointer<InternalPeer> connection);
// These signals MUST be handled synchronously!
void userAuthenticationRequired(CoreAccount *, bool *valid, const QString &errorMessage = QString());
void reconnectIntervalChanged(const QVariant &interval);
void reconnectTimeout();
-#ifdef HAVE_KDE4
- void solidNetworkStatusChanged(Solid::Networking::Status status);
-#endif
void onlineStateChanged(bool isOnline);
private:
QPointer<ClientAuthHandler> _authHandler;
QPointer<Peer> _peer;
- ConnectionState _state;
+ ConnectionState _state{Disconnected};
QTimer _reconnectTimer;
- bool _wantReconnect;
- bool _wasReconnect;
+ bool _wantReconnect{false};
+ bool _wasReconnect{false};
QSet<QObject *> _netsToSync;
int _numNetsToSync;
- int _progressMinimum, _progressMaximum, _progressValue;
+ int _progressMinimum{0}, _progressMaximum{-1}, _progressValue{-1};
QString _progressText;
- bool _resetting;
+ bool _resetting{false};
CoreAccount _account;
CoreAccountModel *accountModel() const;
inline CoreConnection::ConnectionState CoreConnection::state() const { return _state; }
inline bool CoreConnection::isConnected() const { return state() >= Connected; }
inline CoreAccount CoreConnection::currentAccount() const { return _account; }
-
-#endif