/*
* Copyright (C) 2016 Canonical, Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 3.
*
* This program 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 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 .
*/
#pragma once
#include
#include
namespace QLightDM
{
class Q_DECL_EXPORT MockController : public QObject
{
Q_OBJECT
Q_PROPERTY(QString selectUserHint READ selectUserHint WRITE setSelectUserHint NOTIFY selectUserHintChanged)
Q_PROPERTY(bool selectGuestHint READ selectGuestHint WRITE setSelectGuestHint NOTIFY selectGuestHintChanged)
Q_PROPERTY(bool hasGuestAccountHint READ hasGuestAccountHint WRITE setHasGuestAccountHint NOTIFY hasGuestAccountHintChanged)
Q_PROPERTY(bool showManualLoginHint READ showManualLoginHint WRITE setShowManualLoginHint NOTIFY showManualLoginHintChanged)
Q_PROPERTY(bool hideUsersHint READ hideUsersHint WRITE setHideUsersHint NOTIFY hideUsersHintChanged)
// single, single-pin, single-passphrase, full
Q_PROPERTY(QString userMode READ userMode WRITE setUserMode NOTIFY userModeChanged)
// single, none, full
Q_PROPERTY(QString sessionMode READ sessionMode WRITE setSessionMode NOTIFY sessionModeChanged)
Q_PROPERTY(int numAvailableSessions READ numFullSessions CONSTANT)
Q_PROPERTY(int numSessions READ numSessions WRITE setNumSessions NOTIFY numSessionsChanged)
public:
static MockController *instance();
virtual ~MockController();
Q_INVOKABLE void reset();
QString selectUserHint() const;
void setSelectUserHint(const QString &selectUserHint);
bool selectGuestHint() const;
void setSelectGuestHint(bool selectGuestHint);
bool hasGuestAccountHint() const;
void setHasGuestAccountHint(bool hasGuestAccountHint);
bool showManualLoginHint() const;
void setShowManualLoginHint(bool showManualLoginHint);
bool hideUsersHint() const;
void setHideUsersHint(bool hideUsersHint);
QString userMode() const;
void setUserMode(const QString &userMode);
QString sessionMode() const;
void setSessionMode(const QString &sessionMode);
class SessionItem
{
public:
QString key;
QString name;
};
int numFullSessions() const;
const QList &fullSessionItems() const;
int numSessions() const;
void setNumSessions(int numSessions);
Q_SIGNALS:
void selectUserHintChanged();
void selectGuestHintChanged();
void hasGuestAccountHintChanged();
void showManualLoginHintChanged();
void hideUsersHintChanged();
void userModeChanged();
void sessionModeChanged();
void numSessionsChanged();
private:
explicit MockController(QObject* parent=0);
QString m_selectUserHint;
bool m_selectGuestHint;
bool m_hasGuestAccountHint;
bool m_showManualLoginHint;
bool m_hideUsersHint;
QString m_userMode;
QString m_sessionMode;
QList m_fullSessions;
int m_numSessions;
};
}