diff options
Diffstat (limited to 'src/Body.cpp')
-rw-r--r-- | src/Body.cpp | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/src/Body.cpp b/src/Body.cpp index 1b1d35a..5a23694 100644 --- a/src/Body.cpp +++ b/src/Body.cpp @@ -288,11 +288,12 @@ namespace QuickMedia { //item_background.set_position(sf::Vector2f(body_pos.x, item_background_target_pos_y)); } - void Body::select_last_item() { + void Body::select_last_item(bool reset_prev_select) { int new_selected_item = std::max(0, (int)items.size() - 1); selected_scrolled = 0.0f; selected_item = new_selected_item; - //prev_selected_item = selected_item; + if(reset_prev_select) + prev_selected_item = selected_item; //page_scroll = 0.0f; clamp_selection(); clamp_selected_item_to_body_count = 1; @@ -312,8 +313,8 @@ namespace QuickMedia { //item_background.set_position(sf::Vector2f(body_pos.x, item_background_target_pos_y)); } - void Body::prepend_items(BodyItems new_items) { - items.insert(items.begin(), std::make_move_iterator(new_items.begin()), std::make_move_iterator(new_items.end())); + void Body::prepend_items_reverse(BodyItems new_items) { + items.insert(items.begin(), std::make_move_iterator(new_items.rbegin()), std::make_move_iterator(new_items.rend())); items_set_dirty(); } @@ -1006,30 +1007,32 @@ namespace QuickMedia { if(body_item->dirty_timestamp) { body_item->dirty_timestamp = false; - //time_t time_now = time(NULL); - //struct tm *now_tm = localtime(&time_now); + if(body_item->get_timestamp() != 0) { + //time_t time_now = time(NULL); + //struct tm *now_tm = localtime(&time_now); - time_t message_timestamp = body_item->get_timestamp() / 1000; - struct tm message_tm; - localtime_r(&message_timestamp, &message_tm); + time_t message_timestamp = body_item->get_timestamp() / 1000; + struct tm message_tm; + localtime_r(&message_timestamp, &message_tm); - //bool is_same_year = message_tm->tm_year == now_tm->tm_year; - - char time_str[128] = {0}; - /* - if(is_same_year) - strftime(time_str, sizeof(time_str) - 1, "%a %b %d %H:%M:%S", message_tm); - else - strftime(time_str, sizeof(time_str) - 1, "%a %b %d %H:%M:%S %Y", message_tm); - */ - strftime(time_str, sizeof(time_str) - 1, "%a %b %d %H:%M", &message_tm); + //bool is_same_year = message_tm->tm_year == now_tm->tm_year; + + char time_str[128] = {0}; + /* + if(is_same_year) + strftime(time_str, sizeof(time_str) - 1, "%a %b %d %H:%M:%S", message_tm); + else + strftime(time_str, sizeof(time_str) - 1, "%a %b %d %H:%M:%S %Y", message_tm); + */ + strftime(time_str, sizeof(time_str) - 1, "%a %b %d %H:%M", &message_tm); - if(body_item->timestamp_text) - body_item->timestamp_text->setString(time_str); - else - body_item->timestamp_text = std::make_unique<sf::Text>(time_str, *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(10 * get_ui_scale())); + if(body_item->timestamp_text) + body_item->timestamp_text->setString(time_str); + else + body_item->timestamp_text = std::make_unique<sf::Text>(time_str, *FontLoader::get_font(FontLoader::FontType::LATIN), std::floor(10 * get_ui_scale())); - body_item->timestamp_text->setFillColor(sf::Color(185, 190, 198, 100)); + body_item->timestamp_text->setFillColor(sf::Color(185, 190, 198, 100)); + } } } |