From 4b1798f0cdf87361869e7cf2b341acacd056c410 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Wed, 5 Apr 2017 15:04:00 +0200 Subject: Moved cpp code into src directory --- framework/src/accounts/accountfactory.cpp | 71 +++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 framework/src/accounts/accountfactory.cpp (limited to 'framework/src/accounts/accountfactory.cpp') diff --git a/framework/src/accounts/accountfactory.cpp b/framework/src/accounts/accountfactory.cpp new file mode 100644 index 00000000..9dbb402b --- /dev/null +++ b/framework/src/accounts/accountfactory.cpp @@ -0,0 +1,71 @@ +/* + Copyright (c) 2016 Christian Mollekopf + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published by + the Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + This library is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public + License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to the + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. +*/ +#include "accountfactory.h" + +#include + +#include +#include +#include + +#include "settings/settings.h" +#include + +AccountFactory::AccountFactory(QObject *parent) + : QObject(parent) +{ +} + +QString AccountFactory::name() const +{ + if (mName.isEmpty()) { + return tr("Account"); + } + return mName; +} + +void AccountFactory::setAccountId(const QString &accountId) +{ + mAccountId = accountId; + Sink::Store::fetchOne(Sink::Query().filter(accountId.toUtf8())) + .then([this](const Sink::ApplicationDomain::SinkAccount &account) { + mAccountType = account.getProperty("type").toByteArray(); + loadPackage(); + }).exec(); +} + +void AccountFactory::setAccountType(const QString &type) +{ + mAccountType = type.toLatin1(); + loadPackage(); +} + +void AccountFactory::loadPackage() +{ + auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.accounts." + mAccountType); + if (!package.isValid()) { + qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType; + return; + } + Q_ASSERT(package.isValid()); + mUiPath = package.filePath("mainscript"); + mName = package.metadata().name(); + mIcon = package.metadata().iconName(); + emit accountLoaded(); +} -- cgit v1.2.3