nopenpilot/selfdrive/ui/qt/widgets/ssh_keys.hpp

49 lines
904 B
C++

#pragma once
#include <QTimer>
#include <QPushButton>
#include <QNetworkAccessManager>
#include "widgets/controls.hpp"
#include "selfdrive/hardware/hw.h"
// SSH enable toggle
class SshToggle : public ToggleControl {
Q_OBJECT
public:
SshToggle() : ToggleControl("Enable SSH", "", "", Hardware::get_ssh_enabled()) {
QObject::connect(this, &SshToggle::toggleFlipped, [=](bool state) {
Hardware::set_ssh_enabled(state);
});
}
};
// SSH key management widget
class SshControl : public AbstractControl {
Q_OBJECT
public:
SshControl();
private:
QPushButton btn;
QString username;
QLabel username_label;
// networking
QTimer* networkTimer;
QNetworkReply* reply;
QNetworkAccessManager* manager;
void refresh();
void getUserKeys(QString username);
signals:
void failedResponse(QString errorString);
private slots:
void timeout();
void parseResponse();
};