aboutsummaryrefslogtreecommitdiff
path: root/src/Body.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2021-08-09 18:22:43 +0200
committerdec05eba <dec05eba@protonmail.com>2021-08-09 18:22:43 +0200
commit44bc399ccbd7e37107ae754db7da3d918229422d (patch)
treecf989a2699c7638328f292bcde49ed66ac013640 /src/Body.cpp
parentc2efd1e6587223cf9fff302fbc0ef80fcb4340e2 (diff)
Youtube: show search suggestions instead of immediate search
Fix save file dialog not showing all files after navigating to another directory if the search is not empty. Fix matrix system message deletion reverting back to use message (for avatar) and text color.
Diffstat (limited to 'src/Body.cpp')
-rw-r--r--src/Body.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/Body.cpp b/src/Body.cpp
index 766542a..c3cbcda 100644
--- a/src/Body.cpp
+++ b/src/Body.cpp
@@ -261,6 +261,11 @@ namespace QuickMedia {
filter_search_fuzzy_item(current_filter, item.get());
}
this->items = std::move(items);
+ if(attach_side == AttachSide::TOP) {
+ selected_item = 0;
+ prev_selected_item = selected_item;
+ page_scroll = 0.0f;
+ }
}
void Body::clear_items() {
@@ -299,10 +304,6 @@ namespace QuickMedia {
items.insert(items.begin() + index, std::move(body_item));
}
- void Body::move_items_to(Body *other_body) {
- other_body->set_items(std::move(items));
- }
-
void Body::move_item(size_t src_index, size_t dst_index) {
assert(src_index < items.size());
assert(dst_index < items.size());
@@ -1661,11 +1662,20 @@ namespace QuickMedia {
}
void Body::filter_search_fuzzy_item(const std::string &text, BodyItem *body_item) {
+ const bool prev_visible = body_item->visible;
+
body_item->visible = string_find_fuzzy_case_insensitive(body_item->get_title(), text);
if(!body_item->visible && !body_item->get_description().empty())
body_item->visible = string_find_fuzzy_case_insensitive(body_item->get_description(), text);
if(!body_item->visible && !body_item->get_author().empty())
body_item->visible = string_find_fuzzy_case_insensitive(body_item->get_author(), text);
+
+ if(prev_visible && !body_item->visible) {
+ clear_body_item_cache(body_item);
+ // TODO: Make sure the embedded item is not referencing another item in the |items| list
+ if(body_item->embedded_item)
+ clear_body_item_cache(body_item->embedded_item.get());
+ }
}
bool Body::no_items_visible() const {