From 5d2a7d977f9b0a1604e106f4e2b0c2c9b89c3235 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 10 Nov 2022 11:53:58 +0100 Subject: Matrix: add settings page with join room and logout button --- src/QuickMedia.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/QuickMedia.cpp') 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(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(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) { -- cgit v1.2.3