/****************************************************************************
**
** Copyright (C) 2012 - 2014 Jolla Ltd.
** Contact: http://jolla.com/
**
** This file is part of Qt Creator.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file.  Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** Other Usage
**
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Digia.
**
****************************************************************************/

#ifndef NXTHARDWAREDEVICEWIZARD_H
#define NXTHARDWAREDEVICEWIZARD_H

#include <device/hardware/nxthardwaredevicewizardpages.h>

#include <projectexplorer/abi.h>
#include <remotelinux/genericlinuxdeviceconfigurationwizardpages.h>

#include <QWizard>

namespace QSsh {
    class SshConnectionParameters;
}

namespace Nxt {
namespace Internal {

class NxtHardwareDeviceWizard : public QWizard
{
    Q_OBJECT
public:
    explicit NxtHardwareDeviceWizard(QWidget *parent = 0);
    ~NxtHardwareDeviceWizard() override;
    QString hostName() const;
    QString userName() const;
    QString password() const;
    ProjectExplorer::Abi::Architecture architecture() const;
    QString deviceName() const;
    QString deviceType() const;
    QString privateKeyFilePath() const;
    QString publicKeyFilePath() const;
    QString configurationName() const;
#if 0 /* ssh */
    int sshPort() const;
    int timeout() const;
    QString freePorts() const;
    bool isNewSshKeysRquired() const;
#endif /* ssh */
    QString sharedSshPath() const;

private:
    NxtHardwareDeviceWizardSelectionPage m_selectionPage;
    NxtHardwareDeviceWizardSetupPage m_setupPage;
    RemoteLinux::GenericLinuxDeviceConfigurationWizardFinalPage m_finalPage;
};

} // namespace Internal
} // namespace Nxt

#endif
