ObjectDataViewModel: Fixed a check of m_bitmap_cache existence.
There was a crash after app's recreation, when we try to get some bitmap from m_bitmap_cache, but it is null for this moment
This commit is contained in:
parent
69d1ad2cad
commit
0468250298
@ -19,6 +19,14 @@ wxDEFINE_EVENT(wxCUSTOMEVT_LAST_VOLUME_IS_DELETED, wxCommandEvent);
|
|||||||
|
|
||||||
BitmapCache* m_bitmap_cache = nullptr;
|
BitmapCache* m_bitmap_cache = nullptr;
|
||||||
|
|
||||||
|
wxBitmapBundle* find_bndl(const std::string& bmp_name)
|
||||||
|
{
|
||||||
|
if (!m_bitmap_cache)
|
||||||
|
m_bitmap_cache = new BitmapCache;
|
||||||
|
|
||||||
|
return m_bitmap_cache->find_bndl(bmp_name);
|
||||||
|
}
|
||||||
|
|
||||||
// *****************************************************************************
|
// *****************************************************************************
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// ObjectDataViewModelNode
|
// ObjectDataViewModelNode
|
||||||
@ -186,7 +194,7 @@ void ObjectDataViewModelNode::update_settings_digest_bitmaps()
|
|||||||
std::string scaled_bitmap_name = m_name.ToUTF8().data();
|
std::string scaled_bitmap_name = m_name.ToUTF8().data();
|
||||||
scaled_bitmap_name += (wxGetApp().dark_mode() ? "-dm" : "");
|
scaled_bitmap_name += (wxGetApp().dark_mode() ? "-dm" : "");
|
||||||
|
|
||||||
wxBitmapBundle *bmp = m_bitmap_cache->find_bndl(scaled_bitmap_name);
|
wxBitmapBundle *bmp = find_bndl(scaled_bitmap_name);
|
||||||
if (bmp == nullptr) {
|
if (bmp == nullptr) {
|
||||||
std::vector<wxBitmapBundle*> bmps;
|
std::vector<wxBitmapBundle*> bmps;
|
||||||
for (auto& category : m_opt_categories)
|
for (auto& category : m_opt_categories)
|
||||||
@ -321,8 +329,6 @@ static int get_root_idx(ObjectDataViewModelNode *parent_node, const ItemType roo
|
|||||||
|
|
||||||
ObjectDataViewModel::ObjectDataViewModel()
|
ObjectDataViewModel::ObjectDataViewModel()
|
||||||
{
|
{
|
||||||
m_bitmap_cache = new Slic3r::GUI::BitmapCache;
|
|
||||||
|
|
||||||
m_volume_bmps = MenuFactory::get_volume_bitmaps();
|
m_volume_bmps = MenuFactory::get_volume_bitmaps();
|
||||||
m_warning_bmp = *get_bmp_bundle(WarningIcon);
|
m_warning_bmp = *get_bmp_bundle(WarningIcon);
|
||||||
m_warning_manifold_bmp = *get_bmp_bundle(WarningManifoldIcon);
|
m_warning_manifold_bmp = *get_bmp_bundle(WarningManifoldIcon);
|
||||||
@ -359,7 +365,7 @@ void ObjectDataViewModel::UpdateBitmapForNode(ObjectDataViewModelNode* node)
|
|||||||
scaled_bitmap_name += std::to_string(vol_type);
|
scaled_bitmap_name += std::to_string(vol_type);
|
||||||
scaled_bitmap_name += (wxGetApp().dark_mode() ? "-dm" : "-lm");
|
scaled_bitmap_name += (wxGetApp().dark_mode() ? "-dm" : "-lm");
|
||||||
|
|
||||||
wxBitmapBundle* bmp = m_bitmap_cache->find_bndl(scaled_bitmap_name);
|
wxBitmapBundle* bmp = find_bndl(scaled_bitmap_name);
|
||||||
if (!bmp) {
|
if (!bmp) {
|
||||||
std::vector<wxBitmapBundle*> bmps;
|
std::vector<wxBitmapBundle*> bmps;
|
||||||
if (node->has_warning_icon())
|
if (node->has_warning_icon())
|
||||||
|
Loading…
Reference in New Issue
Block a user