diff options
Diffstat (limited to 'src/QuickMedia.cpp')
-rw-r--r-- | src/QuickMedia.cpp | 46 |
1 files changed, 8 insertions, 38 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 1095aaa..9b31580 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -1719,32 +1719,6 @@ namespace QuickMedia { } } - static void copy_body_item_text_to_clipboard(BodyItem *body_item) { - if(!body_item) - return; - - std::string title = body_item->get_title(); - std::string author = body_item->get_author(); - std::string description = body_item->get_description(); - - std::string clipboard = std::move(title); - - if(!author.empty()) { - if(!clipboard.empty()) - clipboard += '\n'; - clipboard += std::move(author); - } - - if(!description.empty()) { - if(!clipboard.empty()) - clipboard += '\n'; - clipboard += std::move(description); - } - - if(!clipboard.empty()) - sf::Clipboard::setString(sf::String::fromUtf8(clipboard.begin(), clipboard.end())); - } - static void set_search_bar_to_body_item_text(BodyItem *body_item, SearchBar *search_bar) { if(!body_item || !search_bar) return; @@ -1808,6 +1782,9 @@ namespace QuickMedia { window_size.y = window_size_u.y; std::function<void(const std::string&)> submit_handler = [this, &submit_handler, &after_submit_handler, &tabs, &tab_associated_data, &ui_tabs, &loop_running, &redraw](const std::string &search_text) { + sf::Event event; + while(window.pollEvent(event)) { common_event_handler(event); } + const int selected_tab = ui_tabs.get_selected(); auto selected_item = tabs[selected_tab].body->get_selected_shared(); if(!selected_item && search_text.empty()) @@ -2145,7 +2122,9 @@ namespace QuickMedia { } } } else if(event.key.code == sf::Keyboard::C && event.key.control) { - copy_body_item_text_to_clipboard(tabs[selected_tab].body->get_selected()); + BodyItem *selected_item = tabs[selected_tab].body->get_selected(); + if(selected_item) + tabs[selected_tab].page->copy_to_clipboard(selected_item); } else if(event.key.code == sf::Keyboard::I && event.key.control) { BodyItem *selected_item = tabs[selected_tab].body->get_selected(); if(show_info_page(selected_item, false)) @@ -4135,17 +4114,8 @@ namespace QuickMedia { selected_file_for_upload.clear(); } else if(event.key.code == sf::Keyboard::C && event.key.control) { BodyItem *selected_item = thread_body->get_selected(); - if(selected_item) { - std::string title = selected_item->get_title(); - std::string description = selected_item->get_description(); - std::string clipboard = title; - if(!clipboard.empty()) { - clipboard += '\n'; - clipboard += std::move(description); - } - if(!clipboard.empty()) - sf::Clipboard::setString(sf::String::fromUtf8(clipboard.begin(), clipboard.end())); - } + if(selected_item) + thread_page->copy_to_clipboard(selected_item); } else if(event.key.code == sf::Keyboard::I && event.key.control) { BodyItem *selected_item = thread_body->get_selected(); if(show_info_page(selected_item, true)) { |