1 /* 2 * %kadu copyright begin% 3 * Copyright 2011, 2012 Wojciech Treter (juzefwt@gmail.com) 4 * Copyright 2011 Bartosz Brachaczek (b.brachaczek@gmail.com) 5 * Copyright 2011, 2013, 2014 Rafał Przemysław Malinowski (rafal.przemyslaw.malinowski@gmail.com) 6 * %kadu copyright end% 7 * 8 * This program is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU General Public License as 10 * published by the Free Software Foundation; either version 2 of 11 * the License, or (at your option) any later version. 12 * 13 * This program is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 * GNU General Public License for more details. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program. If not, see <http://www.gnu.org/licenses/>. 20 */ 21 22 #pragma once 23 24 #include "accounts/account-details.h" 25 #include "open-chat-with/jabber-open-chat-with-runner.h" 26 #include "protocols/protocol.h" 27 28 #include <QtCore/QObject> 29 #include <QtCore/QPointer> 30 #include <injeqt/injeqt.h> 31 32 class PluginInjectedFactory; 33 class SystemInfo; 34 35 class JabberAccountDetails : public AccountDetails 36 { 37 Q_OBJECT 38 39 JabberOpenChatWithRunner *OpenChatRunner; 40 41 public: 42 enum EncryptionFlag 43 { 44 Encryption_No = 0, 45 Encryption_Yes = 1, 46 Encryption_Auto = 2, 47 Encryption_Legacy = 3 48 }; 49 50 enum AllowPlainType 51 { 52 NoAllowPlain = 0, 53 AllowPlain = 1, 54 AllowPlainOverTLS = 2 55 }; 56 57 private: 58 QPointer<PluginInjectedFactory> m_pluginInjectedFactory; 59 QPointer<SystemInfo> m_systemInfo; 60 61 PROPERTY_DEC(QString, Resource) 62 PROPERTY_DEC(bool, AutoResource) 63 PROPERTY_DEC(int, Priority) 64 PROPERTY_DEC(bool, UseCustomHostPort) 65 PROPERTY_DEC(QString, CustomHost) 66 PROPERTY_DEC(int, CustomPort) 67 PROPERTY_DEC(EncryptionFlag, EncryptionMode) 68 PROPERTY_DEC(AllowPlainType, PlainAuthMode) 69 PROPERTY_DEC(QByteArray, TlsOverrideCert) 70 PROPERTY_DEC(QString, TlsOverrideDomain) 71 PROPERTY_DEC(QString, DataTransferProxy) 72 PROPERTY_DEC(bool, RequireDataTransferProxy) 73 PROPERTY_DEC(bool, SendTypingNotification) 74 PROPERTY_DEC(bool, SendGoneNotification) 75 PROPERTY_DEC(bool, PublishSystemInfo) 76 77 private slots: 78 INJEQT_SET void setPluginInjectedFactory(PluginInjectedFactory *pluginInjectedFactory); 79 INJEQT_SET void setSystemInfo(SystemInfo *systemInfo); 80 INJEQT_INIT void init(); 81 82 protected: 83 virtual void load(); 84 virtual void store(); 85 86 public: 87 explicit JabberAccountDetails(AccountShared *data, QObject *parent = nullptr); 88 virtual ~JabberAccountDetails(); 89 90 PROPERTY_DEF(QString, resource, setResource, Resource) 91 PROPERTY_DEF(bool, autoResource, setAutoResource, AutoResource) 92 PROPERTY_DEF(bool, useCustomHostPort, setUseCustomHostPort, UseCustomHostPort) 93 PROPERTY_DEF(QString, customHost, setCustomHost, CustomHost) 94 PROPERTY_DEF(int, customPort, setCustomPort, CustomPort) 95 PROPERTY_DEF(EncryptionFlag, encryptionMode, setEncryptionMode, EncryptionMode) 96 PROPERTY_DEF(AllowPlainType, plainAuthMode, setPlainAuthMode, PlainAuthMode) 97 PROPERTY_DEF(QByteArray, tlsOverrideCert, setTlsOverrideCert, TlsOverrideCert) 98 PROPERTY_DEF(QString, tlsOverrideDomain, setTlsOverrideDomain, TlsOverrideDomain) 99 PROPERTY_DEF(bool, sendTypingNotification, setSendTypingNotification, SendTypingNotification) 100 PROPERTY_DEF(bool, sendGoneNotification, setSendGoneNotification, SendGoneNotification) 101 PROPERTY_DEF(bool, publishSystemInfo, setPublishSystemInfo, PublishSystemInfo) 102 103 int priority(); 104 void setPriority(int priority); 105 106 QString dataTransferProxy(); 107 void setDataTransferProxy(const QString &dataTransferProxy); 108 109 bool requireDataTransferProxy(); 110 void setRequireDataTransferProxy(bool requireDataTransferProxy); 111 112 signals: 113 void priorityChanged(); 114 void dataTransferProxyChanged(); 115 116 }; 117