add remote HTTPS support to Qt GUI (#4622)

This commit is contained in:
anarcat 2023-01-26 01:24:04 -05:00 committed by GitHub
parent 23bb8fa32e
commit 331e1699bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 2 deletions

View File

@ -18,7 +18,7 @@ using namespace std::literals;
namespace
{
auto constexpr MyStatic = std::array<std::string_view, 401>{ ""sv,
auto constexpr MyStatic = std::array<std::string_view, 402>{ ""sv,
"activeTorrentCount"sv,
"activity-date"sv,
"activityDate"sv,
@ -284,6 +284,7 @@ auto constexpr MyStatic = std::array<std::string_view, 401>{ ""sv,
"recheckProgress"sv,
"remote-session-enabled"sv,
"remote-session-host"sv,
"remote-session-https"sv,
"remote-session-password"sv,
"remote-session-port"sv,
"remote-session-requres-authentication"sv,

View File

@ -287,6 +287,7 @@ enum
TR_KEY_recheckProgress,
TR_KEY_remote_session_enabled,
TR_KEY_remote_session_host,
TR_KEY_remote_session_https,
TR_KEY_remote_session_password,
TR_KEY_remote_session_port,
TR_KEY_remote_session_requres_authentication,

View File

@ -91,6 +91,7 @@ std::array<Prefs::PrefItem, Prefs::PREFS_COUNT> const Prefs::Items{
{ FILTER_TRACKERS, TR_KEY_filter_trackers, QVariant::String },
{ FILTER_TEXT, TR_KEY_filter_text, QVariant::String },
{ SESSION_IS_REMOTE, TR_KEY_remote_session_enabled, QVariant::Bool },
{ SESSION_REMOTE_HTTPS, TR_KEY_remote_session_https, QVariant::Bool },
{ SESSION_REMOTE_HOST, TR_KEY_remote_session_host, QVariant::String },
{ SESSION_REMOTE_PORT, TR_KEY_remote_session_port, QVariant::Int },
{ SESSION_REMOTE_AUTH, TR_KEY_remote_session_requres_authentication, QVariant::Bool },
@ -466,6 +467,7 @@ void Prefs::initDefaults(tr_variant* d) const
dictAdd(d, TR_KEY_filter_mode, FilterMode);
dictAdd(d, TR_KEY_main_window_layout_order, WindowLayout);
dictAdd(d, TR_KEY_open_dialog_dir, QDir::home().absolutePath());
dictAdd(d, TR_KEY_remote_session_https, false);
dictAdd(d, TR_KEY_remote_session_host, SessionHost);
dictAdd(d, TR_KEY_remote_session_password, SessionPassword);
dictAdd(d, TR_KEY_remote_session_username, SessionUsername);

View File

@ -70,6 +70,7 @@ public:
COMPLETE_SOUND_ENABLED,
USER_HAS_GIVEN_INFORMED_CONSENT,
READ_CLIPBOARD,
SESSION_REMOTE_HTTPS,
/* core prefs */
FIRST_CORE_PREF,
ALT_SPEED_LIMIT_UP = FIRST_CORE_PREF,

View File

@ -330,7 +330,14 @@ void Session::start()
if (prefs_.get<bool>(Prefs::SESSION_IS_REMOTE))
{
QUrl url;
url.setScheme(QStringLiteral("http"));
if (prefs_.get<bool>(Prefs::SESSION_REMOTE_HTTPS))
{
url.setScheme(QStringLiteral("https"));
}
else
{
url.setScheme(QStringLiteral("http"));
}
url.setHost(prefs_.get<QString>(Prefs::SESSION_REMOTE_HOST));
url.setPort(prefs_.get<int>(Prefs::SESSION_REMOTE_PORT));
url.setPath(QStringLiteral("/transmission/rpc"));