/* * Copyright (C) 2014-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 . */ #include "UsersModelPrivate.h" #include "UsersModel.h" #include namespace QLightDM { UsersModelPrivate::UsersModelPrivate(UsersModel* parent) : mockMode("single") , q_ptr(parent) { char *envMockMode = getenv("LIBLIGHTDM_MOCK_MODE"); if (envMockMode) { mockMode = envMockMode; } resetEntries(); } void UsersModelPrivate::resetEntries() { Q_Q(UsersModel); q->beginResetModel(); if (mockMode == "single") { resetEntries_single(); } else if (mockMode == "single-passphrase") { resetEntries_singlePassphrase(); } else if (mockMode == "single-pin") { resetEntries_singlePin(); } else if (mockMode == "full") { resetEntries_full(); } // Assign uids in a loop, just to avoid having to muck with them when // adding or removing test users. for (int i = 0; i < entries.size(); i++) { entries[i].uid = i + 1; } // Assign backgrounds QDir backgroundDir("/usr/share/backgrounds"); QStringList backgrounds = backgroundDir.entryList(QDir::Files); if (!backgrounds.empty()) { for (int i = 0; i < entries.size(); i++) { if (entries[i].background.isNull()) { entries[i].background = backgroundDir.filePath(backgrounds[i % backgrounds.size()]); } } } q->endResetModel(); } void UsersModelPrivate::resetEntries_single() { entries = { { "single", "Single User", 0, 0, false, false, "ubuntu", 0 }, }; } void UsersModelPrivate::resetEntries_singlePassphrase() { entries = { { "single", "Single User", 0, 0, false, false, "ubuntu", 0 }, }; } void UsersModelPrivate::resetEntries_singlePin() { entries = { { "has-pin", "Has PIN", 0, 0, false, false, "ubuntu", 0 }, }; } void UsersModelPrivate::resetEntries_full() { entries = { { "has-password", "Has Password", 0, 0, false, false, "ubuntu", 0 }, { "has-pin", "Has PIN", 0, 0, false, false, "ubuntu", 0 }, { "different-prompt", "Different Prompt", 0, 0, false, false, "ubuntu", 0 }, { "no-password", "No Password", 0, 0, false, false, "ubuntu", 0 }, { "auth-error", "Auth Error", 0, 0, false, false, "ubuntu", 0 }, { "two-factor", "Two Factor", 0, 0, false, false, "ubuntu", 0 }, { "info-prompt", "Info Prompt", 0, 0, false, false, "ubuntu", 0 }, { "html-info-prompt", "HTML Info Prompt", 0, 0, false, false, "ubuntu", 0 }, { "long-info-prompt", "Long Info Prompt", 0, 0, false, false, "ubuntu", 0 }, { "wide-info-prompt", "Wide Info Prompt", 0, 0, false, false, "ubuntu", 0 }, { "multi-info-prompt", "Multi Info Prompt", 0, 0, false, false, "ubuntu", 0 }, { "long-name", "Long name (far far too long to fit, seriously this would never fit on the screen, you will never see this part of the name)", 0, 0, false, false, "ubuntu", 0 }, { "color-background", "Color Background", "#E95420", 0, false, false, "ubuntu", 0 }, // white and black are a bit redundant, but useful for manually testing if UI is still readable { "white-background", "White Background", "#ffffff", 0, false, false, "ubuntu", 0 }, { "black-background", "Black Background", "#000000", 0, false, false, "ubuntu", 0 }, { "no-background", "No Background", "", 0, false, false, "ubuntu", 0 }, { "unicode", "가나다라마", 0, 0, false, false, "ubuntu", 0 }, { "no-response", "No Response", 0, 0, false, false, "ubuntu", 0 }, { "empty-name", "", 0, 0, false, false, "ubuntu", 0 }, { "active", "Active Account", 0, 0, true, false, "ubuntu", 0 }, }; } } // namespace QLightDM