aboutsummaryrefslogtreecommitdiff
path: root/src/QuickMedia.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-11-10 11:53:58 +0100
committerdec05eba <dec05eba@protonmail.com>2022-11-10 11:55:24 +0100
commit5d2a7d977f9b0a1604e106f4e2b0c2c9b89c3235 (patch)
tree88622d3dd853a3642ac6f181952af3c7f73aed82 /src/QuickMedia.cpp
parent60f37ebeb130bd58adece6bee06420b40c4e5a05 (diff)
Matrix: add settings page with join room and logout button
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r--src/QuickMedia.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp
index c9c7603..c528056 100644
--- a/src/QuickMedia.cpp
+++ b/src/QuickMedia.cpp
@@ -7845,6 +7845,16 @@ namespace QuickMedia {
room_directory_body->set_items(std::move(room_dir_body_items));
auto matrix_room_directory_page = std::make_unique<MatrixRoomDirectoryPage>(this, matrix);
+ auto settings_body = create_body();
+ auto join_body_item = BodyItem::create("Join room");
+ join_body_item->url = "join";
+ settings_body->append_item(std::move(join_body_item));
+ auto logout_body_item = BodyItem::create("Logout");
+ logout_body_item->url = "logout";
+ settings_body->append_item(std::move(logout_body_item));
+ auto matrix_settings_page_search_bar = create_search_bar("Search...", SEARCH_DELAY_FILTER);
+ auto matrix_settings_page = std::make_unique<MatrixSettingsPage>(this, matrix);
+
MatrixQuickMedia matrix_handler(this, matrix, matrix_rooms_page.get(), matrix_rooms_tag_page.get(), matrix_invites_page.get(), matrix_notifications_page.get());
bool sync_cached = false;
if(!matrix->start_sync(&matrix_handler, sync_cached)) {
@@ -7860,9 +7870,19 @@ namespace QuickMedia {
tabs.push_back(Tab{std::move(rooms_body), std::move(matrix_rooms_page), std::move(rooms_page_search_bar)});
tabs.push_back(Tab{std::move(invites_body), std::move(matrix_invites_page), create_search_bar("Search...", SEARCH_DELAY_FILTER)});
tabs.push_back(Tab{std::move(room_directory_body), std::move(matrix_room_directory_page), create_search_bar("Server to search on...", SEARCH_DELAY_FILTER)});
+ tabs.push_back(Tab{std::move(settings_body), std::move(matrix_settings_page), std::move(matrix_settings_page_search_bar)});
- page_loop(tabs, 2, nullptr, false);
+ const bool go_to_login_page = page_loop(tabs, 2, nullptr, false);
matrix->stop_sync();
+ if(go_to_login_page) {
+ delete matrix;
+ matrix = new Matrix();
+ current_page = PageType::CHAT_LOGIN;
+ chat_login_page();
+ after_matrix_login_page();
+ window.close();
+ exit(exit_code);
+ }
}
static int accumulate_string(char *data, int size, void *userdata) {