From 75c610d1f65d741bbeba9f1ddeef60a6e9315427 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 7 Feb 2022 22:54:20 +0100 Subject: Use one struct for all args in Page::submit instead of multiple args (easier to add new fields without changing code) Also remove submit_body_item from page. --- src/plugins/Matrix.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'src/plugins/Matrix.cpp') diff --git a/src/plugins/Matrix.cpp b/src/plugins/Matrix.cpp index c69a6df..a71b3a8 100644 --- a/src/plugins/Matrix.cpp +++ b/src/plugins/Matrix.cpp @@ -668,8 +668,8 @@ namespace QuickMedia { room_tags_page->set_current_rooms_page(nullptr); } - PluginResult MatrixRoomsPage::submit(const std::string&, const std::string &url, std::vector &result_tabs) { - result_tabs.push_back(Tab{nullptr, std::make_unique(program, url, this), nullptr}); + PluginResult MatrixRoomsPage::submit(const SubmitArgs &args, std::vector &result_tabs) { + result_tabs.push_back(Tab{nullptr, std::make_unique(program, args.url, this), nullptr}); return PluginResult::OK; } @@ -735,10 +735,10 @@ namespace QuickMedia { current_chat_page->should_clear_data = true; } - PluginResult MatrixRoomTagsPage::submit(const std::string&, const std::string &url, std::vector &result_tabs) { + PluginResult MatrixRoomTagsPage::submit(const SubmitArgs &args, std::vector &result_tabs) { auto body = create_body(true); Body *body_ptr = body.get(); - TagData &tag_data = tag_body_items_by_name[url]; + TagData &tag_data = tag_body_items_by_name[args.url]; BodyItems room_body_items = tag_data.room_body_items; sort_room_body_items(room_body_items); body->set_items(std::move(room_body_items)); @@ -834,15 +834,15 @@ namespace QuickMedia { } - PluginResult MatrixInvitesPage::submit(const std::string &title, const std::string &url, std::vector &result_tabs) { + PluginResult MatrixInvitesPage::submit(const SubmitArgs &args, std::vector &result_tabs) { auto body = create_body(); body->append_item(BodyItem::create("Accept")); body->append_item(BodyItem::create("Decline")); - result_tabs.push_back(Tab{std::move(body), std::make_unique(program, matrix, this, url, "Invite to " + title), nullptr}); + result_tabs.push_back(Tab{std::move(body), std::make_unique(program, matrix, this, args.url, "Invite to " + title), nullptr}); return PluginResult::OK; } - PluginResult MatrixInviteDetailsPage::submit(const std::string &title, const std::string&, std::vector&) { + PluginResult MatrixInviteDetailsPage::submit(const SubmitArgs &args, std::vector&) { if(title == "Accept") { if(matrix->join_room(room_id) == PluginResult::OK) { // TODO: Wait for room invite list change from the server instead of removing room here. @@ -982,8 +982,8 @@ namespace QuickMedia { rooms_page->set_room_as_read(room); } - PluginResult MatrixRoomDirectoryPage::submit(const std::string &title, const std::string&, std::vector &result_tabs) { - std::string server_name = title; + PluginResult MatrixRoomDirectoryPage::submit(const SubmitArgs &args, std::vector &result_tabs) { + std::string server_name = args.title; if(strncmp(server_name.c_str(), "http://", 7) == 0) server_name.erase(0, 7); @@ -1017,12 +1017,12 @@ namespace QuickMedia { return plugin_result_to_search_result(lazy_fetch(result_items)); } - PluginResult MatrixServerRoomListPage::submit(const std::string &title, const std::string &url, std::vector&) { - if(matrix->join_room(url) == PluginResult::OK) { - show_notification("QuickMedia", "You joined " + title, Urgency::NORMAL); + PluginResult MatrixServerRoomListPage::submit(const SubmitArgs &args, std::vector&) { + if(matrix->join_room(args.url) == PluginResult::OK) { + show_notification("QuickMedia", "You joined " + args.title, Urgency::NORMAL); program->set_go_to_previous_page(); } else { - show_notification("QuickMedia", "Failed to join " + title, Urgency::CRITICAL); + show_notification("QuickMedia", "Failed to join " + args.title, Urgency::CRITICAL); } return PluginResult::OK; } @@ -1060,7 +1060,7 @@ namespace QuickMedia { MatrixNotificationsPage::MatrixNotificationsPage(Program *program, Matrix *matrix, Body *notifications_body, MatrixRoomsPage *all_rooms_page) : LazyFetchPage(program), matrix(matrix), notifications_body(notifications_body), all_rooms_page(all_rooms_page) {} - PluginResult MatrixNotificationsPage::submit(const std::string&, const std::string&, std::vector &result_tabs) { + PluginResult MatrixNotificationsPage::submit(const SubmitArgs&, std::vector &result_tabs) { BodyItem *selected_item = notifications_body->get_selected(); if(!selected_item) return PluginResult::OK; @@ -1145,8 +1145,8 @@ namespace QuickMedia { return plugin_result_to_search_result(matrix->search_user(str, 20, result_items)); } - PluginResult MatrixInviteUserPage::submit(const std::string&, const std::string &url, std::vector&) { - PluginResult result = matrix->invite_user(room_id, url); + PluginResult MatrixInviteUserPage::submit(const SubmitArgs &args, std::vector&) { + PluginResult result = matrix->invite_user(room_id, args.url); if(result != PluginResult::OK) return result; program->set_go_to_previous_page(); return PluginResult::OK; -- cgit v1.2.3