mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-23 16:51:21 -06:00
Merge remote-tracking branch 'remotes/origin/dk_refresh' into vb_osx_eject
This commit is contained in:
commit
8c597e9533
7 changed files with 64 additions and 30 deletions
|
|
@ -2996,6 +2996,7 @@ void GLCanvas3D::on_render_timer(wxTimerEvent& evt)
|
|||
}
|
||||
//render();
|
||||
m_dirty = true;
|
||||
wxWakeUpIdle();
|
||||
}
|
||||
|
||||
void GLCanvas3D::request_extra_frame_delayed(int miliseconds)
|
||||
|
|
|
|||
|
|
@ -1197,7 +1197,7 @@ void ObjectList::OnBeginDrag(wxDataViewEvent &event)
|
|||
**/
|
||||
m_prevent_list_events = true;//it's needed for GTK
|
||||
|
||||
/* Under GTK, DnD requires to the wxTextDataObject been initialized with some valid value,
|
||||
/* Under GTK, DnD requires to the wxTextDataObject been initialized with some valid vaSome textlue,
|
||||
* so set some nonempty string
|
||||
*/
|
||||
wxTextDataObject* obj = new wxTextDataObject;
|
||||
|
|
@ -1229,8 +1229,10 @@ void ObjectList::OnDropPossible(wxDataViewEvent &event)
|
|||
{
|
||||
const wxDataViewItem& item = event.GetItem();
|
||||
|
||||
if (!can_drop(item))
|
||||
if (!can_drop(item)) {
|
||||
event.Veto();
|
||||
m_prevent_list_events = false;
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectList::OnDrop(wxDataViewEvent &event)
|
||||
|
|
@ -1255,7 +1257,7 @@ void ObjectList::OnDrop(wxDataViewEvent &event)
|
|||
// It looks like a fixed in current version of the wxWidgets
|
||||
// #ifdef __WXGTK__
|
||||
// /* Under GTK, DnD moves an item between another two items.
|
||||
// * And event.GetItem() return item, which is under "insertion line"
|
||||
// * And event.GetItem() return item, which is under "insertion line"Some text
|
||||
// * So, if we move item down we should to decrease the to_volume_id value
|
||||
// **/
|
||||
// if (to_volume_id > from_volume_id) to_volume_id--;
|
||||
|
|
|
|||
|
|
@ -1233,11 +1233,11 @@ bool NotificationManager::push_notification_data(std::unique_ptr<NotificationMan
|
|||
|
||||
if (this->activate_existing(notification.get())) {
|
||||
m_pop_notifications.back()->update(notification->get_data());
|
||||
canvas.request_extra_frame();
|
||||
canvas.request_extra_frame_delayed(33);
|
||||
return false;
|
||||
} else {
|
||||
m_pop_notifications.emplace_back(std::move(notification));
|
||||
canvas.request_extra_frame();
|
||||
canvas.request_extra_frame_delayed(33);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1387,15 +1387,19 @@ void NotificationManager::update_notifications()
|
|||
if (!top_level_wnd->IsActive())
|
||||
return;
|
||||
|
||||
static size_t last_size = m_pop_notifications.size();
|
||||
//static size_t last_size = m_pop_notifications.size();
|
||||
|
||||
//request frames
|
||||
int64_t next_render = std::numeric_limits<int64_t>::max();
|
||||
for (auto it = m_pop_notifications.begin(); it != m_pop_notifications.end();) {
|
||||
std::unique_ptr<PopNotification>& notification = *it;
|
||||
notification->set_paused(m_hovered);
|
||||
notification->update_state();
|
||||
next_render = std::min<int64_t>(next_render, notification->next_render());
|
||||
if (notification->get_state() == PopNotification::EState::Finished)
|
||||
it = m_pop_notifications.erase(it);
|
||||
else {
|
||||
notification->set_paused(m_hovered);
|
||||
notification->update_state();
|
||||
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
|
@ -1436,16 +1440,11 @@ void NotificationManager::update_notifications()
|
|||
if (m_requires_render)
|
||||
m_requires_update = true;
|
||||
*/
|
||||
//request frames
|
||||
int64_t next_render = std::numeric_limits<int64_t>::max();
|
||||
const int64_t max = std::numeric_limits<int64_t>::max();
|
||||
for (const std::unique_ptr<PopNotification>& notification : m_pop_notifications) {
|
||||
next_render = std::min<int64_t>(next_render, notification->next_render());
|
||||
}
|
||||
|
||||
|
||||
if (next_render == 0)
|
||||
wxGetApp().plater()->get_current_canvas3D()->request_extra_frame();
|
||||
else if (next_render < max)
|
||||
wxGetApp().plater()->get_current_canvas3D()->request_extra_frame_delayed(33); //few milliseconds to get from GLCanvas::render
|
||||
else if (next_render < std::numeric_limits<int64_t>::max())
|
||||
wxGetApp().plater()->get_current_canvas3D()->request_extra_frame_delayed(int(next_render));
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -501,7 +501,7 @@ void Tab::update_labels_colour()
|
|||
if (opt.first == "bed_shape" || opt.first == "filament_ramming_parameters" ||
|
||||
opt.first == "compatible_prints" || opt.first == "compatible_printers" ) {
|
||||
if (m_colored_Label_colors.find(opt.first) != m_colored_Label_colors.end())
|
||||
*m_colored_Label_colors.at(opt.first) = *color;
|
||||
m_colored_Label_colors.at(opt.first) = *color;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -540,7 +540,7 @@ void Tab::decorate()
|
|||
|
||||
if (opt.first == "bed_shape" || opt.first == "filament_ramming_parameters" ||
|
||||
opt.first == "compatible_prints" || opt.first == "compatible_printers")
|
||||
colored_label_clr = (m_colored_Label_colors.find(opt.first) == m_colored_Label_colors.end()) ? nullptr : m_colored_Label_colors.at(opt.first);
|
||||
colored_label_clr = (m_colored_Label_colors.find(opt.first) == m_colored_Label_colors.end()) ? nullptr : &m_colored_Label_colors.at(opt.first);
|
||||
|
||||
if (!colored_label_clr) {
|
||||
field = get_field(opt.first);
|
||||
|
|
@ -3553,8 +3553,8 @@ void Tab::create_line_with_widget(ConfigOptionsGroup* optgroup, const std::strin
|
|||
line.widget = widget;
|
||||
line.label_path = path;
|
||||
|
||||
m_colored_Label_colors[opt_key] = &m_default_text_clr;
|
||||
line.full_Label_color = m_colored_Label_colors[opt_key];
|
||||
m_colored_Label_colors[opt_key] = m_default_text_clr;
|
||||
line.full_Label_color = &m_colored_Label_colors[opt_key];
|
||||
|
||||
optgroup->append_line(line);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ public:
|
|||
|
||||
// map of option name -> wxColour (color of the colored label, associated with option)
|
||||
// Used for options which don't have corresponded field
|
||||
std::map<std::string, wxColour*> m_colored_Label_colors;
|
||||
std::map<std::string, wxColour> m_colored_Label_colors;
|
||||
|
||||
// Counter for the updating (because of an update() function can have a recursive behavior):
|
||||
// 1. increase value from the very beginning of an update() function
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue