keysmith/src/app/flows_p.h

74 lines
1.8 KiB
C++

/*
* SPDX-License-Identifier: GPL-3.0-or-later
* SPDX-FileCopyrightText: 2021 Johan Ouwerkerk <jm.ouwerkerk@gmail.com>
*/
#ifndef APP_FLOWS_P_H
#define APP_FLOWS_P_H
#include <QCommandLineParser>
#include "keysmith.h"
#include "vms.h"
#include "../model/accounts.h"
#include "../model/password.h"
namespace app
{
class InitialFlow: public QObject
{
Q_OBJECT
public:
explicit InitialFlow(Keysmith *app);
public:
void run(const QCommandLineParser &parser);
private Q_SLOTS:
void onNewAccountInvalid(void);
void onNewAccountProcessed(void);
void onNewAccountAccepted(void);
void onNewAccountRejected(void);
void resume(void);
private:
bool m_started;
bool m_uriToAdd;
bool m_uriParsed;
bool m_passwordPromptResolved;
private:
Keysmith * const m_app;
model::AccountInput * const m_input;
model::PasswordRequest * const m_passwordRequest;
};
class ManualAddAccountFlow: public QObject
{
Q_OBJECT
public:
explicit ManualAddAccountFlow(Keysmith *app);
void run(void);
private Q_SLOTS:
void back(void);
void onAccepted(void);
private:
Keysmith * const m_app;
model::AccountInput * const m_input;
};
class ExternalCommandLineFlow: public QObject
{
Q_OBJECT
public:
explicit ExternalCommandLineFlow(Keysmith *app);
public:
void run(const QCommandLineParser &parser);
private Q_SLOTS:
void onNewAccountInvalid(void);
void onNewAccountProcessed(void);
void back(void);
void onAccepted(void);
private:
Keysmith * const m_app;
model::AccountInput * const m_input;
};
}
#endif