Close updated item info notification at new item loading

This commit is contained in:
David Kocik 2021-09-30 17:29:34 +02:00
parent 5a45c94ccd
commit b1c1055963
3 changed files with 11 additions and 1 deletions

View File

@ -373,7 +373,7 @@ void NotificationManager::PopNotification::init()
void NotificationManager::PopNotification::set_next_window_size(ImGuiWrapper& imgui)
{
m_window_height = m_multiline ?
m_lines_count * m_line_height :
std::max(m_lines_count, (size_t)2) * m_line_height :
2 * m_line_height;
m_window_height += 1 * m_line_height; // top and bottom
}
@ -1055,6 +1055,8 @@ void NotificationManager::UpdatedItemsInfoNotification::add_type(InfoItemType ty
std::string text;
for (it = m_types_and_counts.begin(); it != m_types_and_counts.end(); ++it) {
if ((*it).second == 0)
continue;
text += std::to_string((*it).second);
text += _L_PLURAL(" Object was loaded with "," Objects were loaded with ", (*it).second).ToUTF8().data();
switch ((*it).first) {
@ -1066,6 +1068,7 @@ void NotificationManager::UpdatedItemsInfoNotification::add_type(InfoItemType ty
default: BOOST_LOG_TRIVIAL(error) << "Unknown InfoItemType: " << (*it).second; break;
}
}
m_state = EState::Unknown;
NotificationData data { get_data().type, get_data().level , get_data().duration, text };
update(data);
}

View File

@ -214,6 +214,7 @@ public:
bool is_hint_notification_open();
// Forces Hints to reload its content when next hint should be showed
void deactivate_loaded_hints();
// Adds counter to existing UpdatedItemsInfo notification or opens new one
void push_updated_item_info_notification(InfoItemType type);
// Close old notification ExportFinished.
void new_export_began(bool on_removable);
@ -653,6 +654,11 @@ private:
}
void count_spaces() override;
void add_type(InfoItemType type);
void close() override{
for (auto& tac : m_types_and_counts)
tac.second = 0;
PopNotification::close();
}
protected:
void render_left_sign(ImGuiWrapper& imgui) override;
std::vector<std::pair<InfoItemType, size_t>> m_types_and_counts;

View File

@ -2600,6 +2600,7 @@ std::vector<size_t> Plater::priv::load_model_objects(const ModelObjectPtrs& mode
// so 3D-scene should be updated before object additing to the ObjectList
this->view3D->reload_scene(false, (unsigned int)UpdateParams::FORCE_FULL_SCREEN_REFRESH);
notification_manager->close_notification_of_type(NotificationType::UpdatedItemsInfo);
for (const size_t idx : obj_idxs) {
wxGetApp().obj_list()->add_object_to_list(idx);
}