Skip to content
Snippets Groups Projects
Select Git revision
  • 477f4f668efbc662d42833221a095e55a743b340
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/releaseTest
  • release/releaseWindowsTest
  • release/windowsReleaseTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 1.0.0
  • 0.3.0
  • 0.2.1
  • 0.2.0
  • 0.1.0
26 results

credentialmodel.cpp

Blame
  • user avatar
    Emmanuel Lepage Vallee authored and Guillaume Roguez committed
    Refs #68972
    
    (cherry picked from commit d100b1af)
    477f4f66
    History
    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