1 /* 2 * %kadu copyright begin% 3 * Copyright 2013 Bartosz Brachaczek (b.brachaczek@gmail.com) 4 * Copyright 2011, 2013, 2014 Rafał Przemysław Malinowski (rafal.przemyslaw.malinowski@gmail.com) 5 * %kadu copyright end% 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of 10 * the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 21 #pragma once 22 23 #include "configuration/configuration-aware-object.h" 24 #include "network/proxy/network-proxy.h" 25 #include "storage/simple-manager.h" 26 #include "exports.h" 27 28 #include <QtCore/QList> 29 #include <QtCore/QObject> 30 #include <QtCore/QPointer> 31 #include <QtCore/QString> 32 #include <injeqt/injeqt.h> 33 34 class ConfigurationManager; 35 class Configuration; 36 class NetworkProxyStorage; 37 class NetworkProxy; 38 39 class KADUAPI NetworkProxyManager : public SimpleManager<NetworkProxy>, ConfigurationAwareObject 40 { 41 Q_OBJECT 42 43 public: 44 Q_INVOKABLE explicit NetworkProxyManager(QObject *parent = nullptr); 45 virtual ~NetworkProxyManager(); 46 storageNodeName()47 virtual QString storageNodeName() { return QStringLiteral("Proxys"); } storageNodeItemName()48 virtual QString storageNodeItemName() { return QStringLiteral("Proxy"); } 49 50 void setDefaultProxy(const NetworkProxy &proxy); 51 const NetworkProxy &defaultProxy(); 52 53 NetworkProxy byConfiguration(const QString &address, int port, 54 const QString &user, const QString &password, NotFoundAction action); 55 56 signals: 57 void networkProxyAboutToBeAdded(NetworkProxy networkProxy); 58 void networkProxyAdded(NetworkProxy networkProxy); 59 void networkProxyAboutToBeRemoved(NetworkProxy networkProxy); 60 void networkProxyRemoved(NetworkProxy networkProxy); 61 62 void networkProxyUpdated(NetworkProxy networkProxy); 63 64 protected: 65 virtual void load(); 66 virtual void store(); 67 virtual NetworkProxy loadStubFromStorage(const std::shared_ptr<StoragePoint> &storagePoint); 68 69 virtual void itemAboutToBeAdded(NetworkProxy item); 70 virtual void itemAdded(NetworkProxy item); 71 virtual void itemAboutToBeRemoved(NetworkProxy item); 72 virtual void itemRemoved(NetworkProxy item); 73 74 virtual void configurationUpdated(); 75 76 private: 77 QPointer<ConfigurationManager> m_configurationManager; 78 QPointer<Configuration> m_configuration; 79 QPointer<NetworkProxyStorage> m_networkProxyStorage; 80 81 NetworkProxy DefaultProxy; 82 83 private slots: 84 INJEQT_SET void setConfigurationManager(ConfigurationManager *configurationManager); 85 INJEQT_SET void setConfiguration(Configuration *configuration); 86 INJEQT_SET void setNetworkProxyStorage(NetworkProxyStorage *networkProxyStorage); 87 INJEQT_INIT void init(); 88 INJEQT_DONE void done(); 89 90 void networkProxyDataUpdated(); 91 92 }; 93