#ifndef ORBITHUB_PROFILE_DIALOG_H #define ORBITHUB_PROFILE_DIALOG_H #include "profile_repository.h" #include class QComboBox; class QLabel; class QLineEdit; class QPushButton; class QSpinBox; class ProfileDialog : public QDialog { Q_OBJECT public: explicit ProfileDialog(QWidget* parent = nullptr); void setDialogTitle(const QString& title); void setDefaultFolderPath(const QString& folderPath); void setProfile(const Profile& profile); Profile profile() const; protected: void accept() override; private: QLineEdit* m_nameInput; QLineEdit* m_hostInput; QSpinBox* m_portInput; QLineEdit* m_usernameInput; QLineEdit* m_domainInput; QLineEdit* m_tagsInput; QComboBox* m_protocolInput; QComboBox* m_authModeInput; QLineEdit* m_privateKeyPathInput; QPushButton* m_browsePrivateKeyButton; QComboBox* m_knownHostsPolicyInput; QComboBox* m_rdpSecurityModeInput; QComboBox* m_rdpPerformanceProfileInput; QLabel* m_protocolHint; QLabel* m_folderHint; QString m_defaultFolderPath; void refreshAuthFields(); }; #endif