aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/remotelinux/genericlinuxdeviceconfigurationwidget.h
blob: bc720463b1adaa2b7962a3a650351cbd84642f0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0+ OR GPL-3.0 WITH Qt-GPL-exception-1.0

#pragma once

#include <projectexplorer/devicesupport/idevicewidget.h>

QT_BEGIN_NAMESPACE
class QCheckBox;
class QLabel;
class QLineEdit;
class QRadioButton;
class QSpinBox;
QT_END_NAMESPACE

namespace Utils {
class FilePath;
class PathChooser;
} // Utils

namespace RemoteLinux::Internal {

class GenericLinuxDeviceConfigurationWidget
        : public ProjectExplorer::IDeviceWidget
{
    Q_OBJECT

public:
    explicit GenericLinuxDeviceConfigurationWidget(const ProjectExplorer::IDevicePtr &device);
    ~GenericLinuxDeviceConfigurationWidget() override;

private:
    void authenticationTypeChanged();
    void hostNameEditingFinished();
    void sshPortEditingFinished();
    void timeoutEditingFinished();
    void userNameEditingFinished();
    void keyFileEditingFinished();
    void gdbServerEditingFinished();
    void handleFreePortsChanged();
    void setPrivateKey(const Utils::FilePath &path);
    void createNewKey();
    void hostKeyCheckingChanged(bool doCheck);

    void updateDeviceFromUi() override;
    void updatePortsWarningLabel();
    void initGui();

    QRadioButton *m_defaultAuthButton;
    QLabel *m_keyLabel;
    QRadioButton *m_keyButton;
    QLineEdit *m_hostLineEdit;
    QSpinBox *m_sshPortSpinBox;
    QCheckBox *m_hostKeyCheckBox;
    QLineEdit *m_portsLineEdit;
    QLabel *m_portsWarningLabel;
    QLineEdit *m_userLineEdit;
    QSpinBox *m_timeoutSpinBox;
    Utils::PathChooser *m_keyFileLineEdit;
    QLabel *m_machineTypeValueLabel;
    QLineEdit *m_gdbServerLineEdit;
};

} // RemoteLinux::Internal