diff --git a/lrcinstance.h b/lrcinstance.h index 7638040b22eaa3d048d00ff28514490c9e250575..bcc8a5f03b74bc0ddffbb40d65a34c0666a4913f 100644 --- a/lrcinstance.h +++ b/lrcinstance.h @@ -1,5 +1,5 @@ /************************************************************************** -| Copyright (C) 2015-2019 by Savoir-faire Linux | +| Copyright (C) 2019 by Savoir-faire Linux | | Author: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> | | Author: Isa Nanic <isa.nanic@savoirfairelinux.com> | | | @@ -28,10 +28,14 @@ #include <QPixmap> #include <QBuffer> +#include "settingskey.h" + #include "api/lrc.h" #include "api/account.h" #include "api/newaccountmodel.h" #include "api/newcallmodel.h" +#include "api/newdevicemodel.h" +#include "api/newcodecmodel.h" #include "api/behaviorcontroller.h" #include "api/conversation.h" #include "api/contactmodel.h" @@ -41,9 +45,8 @@ #include "accountlistmodel.h" #include "account.h" -//#include "instancemanager.cpp" -#include <settingskey.h> +using namespace lrc::api; class LRCInstance : public QObject { @@ -57,42 +60,48 @@ public: static void init() { instance(); }; - static lrc::api::Lrc& getAPI() { + static Lrc& getAPI() { return *(instance().lrc_); }; static void connectivityChanged() { instance().lrc_->connectivityChanged(); }; - static const lrc::api::NewAccountModel& accountModel() { + static const NewAccountModel& accountModel() { return instance().lrc_->getAccountModel(); }; - static lrc::api::NewAccountModel* editableAccountModel() { - return const_cast<lrc::api::NewAccountModel*>(&instance().lrc_->getAccountModel()); + static NewAccountModel* editableAccountModel() { + return const_cast<NewAccountModel*>(&instance().lrc_->getAccountModel()); }; - static const lrc::api::BehaviorController& behaviorController() { + static const BehaviorController& behaviorController() { return instance().lrc_->getBehaviorController(); }; - static const lrc::api::DataTransferModel& dataTransferModel() { + static const DataTransferModel& dataTransferModel() { return instance().lrc_->getDataTransferModel(); }; - static lrc::api::DataTransferModel* editableDataTransferModel() { - return const_cast<lrc::api::DataTransferModel*>(&instance().lrc_->getDataTransferModel()); + static DataTransferModel* editableDataTransferModel() { + return const_cast<DataTransferModel*>(&instance().lrc_->getDataTransferModel()); }; static bool isConnected() { return instance().lrc_->isConnected(); }; - static const lrc::api::account::Info& + static const account::Info& getCurrentAccountInfo() { - return accountModel().getAccountInfo(getCurrAccId()); + try { + return accountModel().getAccountInfo(getCurrAccId()); + } catch (...) { + static account::Info invalid = {}; + qWarning() << "getAccountInfo exception"; + return std::reference_wrapper<account::Info>{invalid}; + } }; - static lrc::api::ConversationModel* + static ConversationModel* getCurrentConversationModel() { return getCurrentAccountInfo().conversationModel.get(); }; - static lrc::api::NewCallModel* + static NewCallModel* getCurrentCallModel() { return getCurrentAccountInfo().callModel.get(); }; @@ -102,29 +111,29 @@ public: }; static const std::string& getCurrAccId() { - if (instance().selectedAccountId.empty()) { - instance().selectedAccountId = accountModel().getAccountList().at(0); + if (instance().selectedAccountId_.empty()) { + instance().selectedAccountId_ = accountModel().getAccountList().at(0); } - return instance().selectedAccountId; + return instance().selectedAccountId_; }; static void setSelectedAccountId(const std::string& accountId) { - instance().selectedAccountId = accountId; + instance().selectedAccountId_ = accountId; QSettings settings; settings.setValue(SettingsKey::selectedAccount, QString::fromStdString(accountId)); }; static const std::string& getSelectedConvUid() { - return instance().selectedConvUid; + return instance().selectedConvUid_; }; static void setSelectedConvId(const std::string& convUid) { - instance().selectedConvUid = convUid; + instance().selectedConvUid_ = convUid; }; static void reset(bool newInstance = false) { if (newInstance) { - instance().lrc_.reset(new lrc::api::Lrc()); + instance().lrc_.reset(new Lrc()); } else { instance().lrc_.reset(); } @@ -160,7 +169,7 @@ public: instance().editableAccountModel()->setAlias(getCurrAccId(), alias); }; - static const lrc::api::account::ConfProperties_t& getCurrAccConfig() { + static const account::ConfProperties_t& getCurrAccConfig() { return instance().getCurrentAccountInfo().confProperties; } @@ -169,13 +178,13 @@ signals: void accountOnBoarded(); private: - std::unique_ptr<lrc::api::Lrc> lrc_; + std::unique_ptr<Lrc> lrc_; AccountListModel accountListModel_; LRCInstance() { - lrc_ = std::make_unique<lrc::api::Lrc>(); + lrc_ = std::make_unique<Lrc>(); }; - std::string selectedAccountId; - std::string selectedConvUid; + std::string selectedAccountId_; + std::string selectedConvUid_; }; diff --git a/settingswidget.cpp b/settingswidget.cpp index 7c83e159577cc6a9d7dbcdb6675fcb6b5ef957cb..9d83be82703acd29e0f7011a0e56d7b615f765b9 100644 --- a/settingswidget.cpp +++ b/settingswidget.cpp @@ -34,6 +34,7 @@ #include <QSettings> #include <QScrollBar> +#include "settingskey.h" #include "utils.h" #include "settingsitemwidget.h" #include "passworddialog.h"