Select Git revision
credentialmodel.cpp
Emmanuel Lepage Vallee
authored and
Guillaume Roguez
committed
Refs #68972 (cherry picked from commit d100b1af)
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
credentialmodel.cpp 9.96 KiB
/****************************************************************************
* Copyright (C) 2012-2015 by Savoir-Faire Linux *
* Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
* *
* This library is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 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 *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#include "credentialmodel.h"
//Qt
#include <QtCore/QDebug>
#include <QtCore/QCoreApplication>
//Ring
#include <account.h>
#include <private/matrixutils.h>
//Dring
#include "dbus/configurationmanager.h"
#include <account_const.h>
typedef void (CredentialModelPrivate::*CredModelFct)();
class CredentialModelPrivate
{
public:
///@struct CredentialData store credential information
struct CredentialData {
QString name ;
QString password;
QString realm ;
};
//Attributes
QList<CredentialData*> m_lCredentials;
Account* m_pAccount ;
CredentialModel::EditState m_EditState ;
CredentialModel* q_ptr ;
static Matrix2D<CredentialModel::EditState, CredentialModel::EditAction,CredModelFct> m_mStateMachine;
//Callbacks
void clear ();
void save ();
void reload ();
void nothing();
void modify ();
//Helper
inline void performAction(const CredentialModel::EditAction action);
};
#define CMP &CredentialModelPrivate
Matrix2D<CredentialModel::EditState, CredentialModel::EditAction,CredModelFct> CredentialModelPrivate::m_mStateMachine ={{
/* SAVE MODIFY RELOAD CLEAR */
/* LOADING */ {{ CMP::nothing, CMP::nothing, CMP::reload, CMP::nothing }},
/* READY */ {{ CMP::nothing, CMP::modify , CMP::reload, CMP::clear }},
/* MODIFIED */ {{ CMP::save , CMP::nothing, CMP::reload, CMP::clear }},
/* OUTDATED */ {{ CMP::save , CMP::nothing, CMP::reload, CMP::clear }},
}};
#undef CMP