Added a text field that allows choosing custom homeserver in "Room directory" dialog. (#727)

* Added a text field that allows choosing custom homeserver in "Room directory" dialog.

* Moved "Choose custom homeserver" text field to the right and shrinked it to 30% of "Room directory" dialog's width.

* Adding "server_name=" when needed when joining room.

When joining room that is hosted on a different homeserver than
the account is registered on, the request fails. In such scenario
the server has to be explicitly mentioned in a server_name URL
parameter. More info here:
https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-join-roomidoralias

* Minor fix: intentation (4 spaces -> 8 spaces)

Co-authored-by: Patryk Cisek <patryk@cisek.email>
This commit is contained in:
Patryk Cisek 2021-09-17 03:12:56 -07:00 committed by GitHub
parent 22230ed0a9
commit d499fffb7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View File

@ -192,6 +192,17 @@ ApplicationWindow {
onTextChanged: searchTimer.restart()
}
MatrixTextField {
id: chooseServer
Layout.minimumWidth: 0.3 * header.width
Layout.maximumWidth: 0.3 * header.width
padding: Nheko.paddingMedium
color: Nheko.colors.text
placeholderText: qsTr("Choose custom homeserver")
onTextChanged: publicRooms.setMatrixServer(text)
}
Timer {
id: searchTimer

View File

@ -98,6 +98,15 @@ RoomDirectoryModel::getViasForRoom(const std::vector<std::string> &aliases)
std::back_inserter(vias),
[](const auto &alias) { return alias.substr(alias.find(":") + 1); });
// When joining a room hosted on a homeserver other than the one the
// account has been registered on, the room's server has to be explicitly
// specified in the "server_name=..." URL parameter of the Matrix Join Room
// request. For more details consult the specs:
// https://matrix.org/docs/spec/client_server/r0.6.1#post-matrix-client-r0-join-roomidoralias
if (!server_.empty()) {
vias.push_back(server_);
}
return vias;
}