Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer
This commit is contained in:
commit
0599dc4df7
5 changed files with 26 additions and 29 deletions
|
@ -85,6 +85,8 @@ void PrintConfigDef::init_common_params()
|
|||
def->label = L("Max print height");
|
||||
def->tooltip = L("Set this to the maximum height that can be reached by your extruder while printing.");
|
||||
def->sidetext = L("mm");
|
||||
def->min = 0;
|
||||
def->max = 1200;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloat(200.0));
|
||||
|
||||
|
|
|
@ -715,16 +715,24 @@ void GUI_App::update_ui_from_settings()
|
|||
void GUI_App::persist_window_geometry(wxTopLevelWindow *window, bool default_maximized)
|
||||
{
|
||||
const std::string name = into_u8(window->GetName());
|
||||
wxTopLevelWindow* settings_dlg = dynamic_cast<MainFrame*>(window)->m_settings_dialog;
|
||||
const std::string settings_dlg_name = "settings_dialog";
|
||||
|
||||
window->Bind(wxEVT_CLOSE_WINDOW, [=](wxCloseEvent &event) {
|
||||
window_pos_save(window, name);
|
||||
if (settings_dlg)
|
||||
window_pos_save(settings_dlg, settings_dlg_name);
|
||||
event.Skip();
|
||||
});
|
||||
|
||||
window_pos_restore(window, name, default_maximized);
|
||||
if (settings_dlg)
|
||||
window_pos_restore(settings_dlg, settings_dlg_name, default_maximized);
|
||||
|
||||
on_window_geometry(window, [=]() {
|
||||
window_pos_sanitize(window);
|
||||
if (settings_dlg)
|
||||
window_pos_sanitize(settings_dlg);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -2696,6 +2696,9 @@ bool ObjectList::can_split_instances()
|
|||
|
||||
bool ObjectList::can_merge_to_multipart_object() const
|
||||
{
|
||||
if (printer_technology() == ptSLA)
|
||||
return false;
|
||||
|
||||
wxDataViewItemArray sels;
|
||||
GetSelections(sels);
|
||||
if (sels.IsEmpty())
|
||||
|
|
|
@ -365,13 +365,23 @@ bool GLGizmoFdmSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous
|
|||
}
|
||||
}
|
||||
|
||||
bool dragging_while_painting = (action == SLAGizmoEventType::Dragging && m_button_down != Button::None);
|
||||
|
||||
// The mouse button click detection is enabled when there is a valid hit
|
||||
// or when the user clicks the clipping plane. Missing the object entirely
|
||||
// shall not capture the mouse.
|
||||
if (closest_hit_mesh_id != -1 || clipped_mesh_was_hit) {
|
||||
if (m_button_down == Button::None)
|
||||
m_button_down = ((action == SLAGizmoEventType::LeftDown) ? Button::Left : Button::Right);
|
||||
}
|
||||
|
||||
if (closest_hit_mesh_id == -1) {
|
||||
// In case we have no valid hit, we can return. The event will
|
||||
// be stopped in following two cases:
|
||||
// 1. clicking the clipping plane
|
||||
// 2. dragging while painting (to prevent scene rotations and moving the object)
|
||||
return clipped_mesh_was_hit
|
||||
|| (action == SLAGizmoEventType::Dragging && m_button_down != Button::None);
|
||||
|| dragging_while_painting;
|
||||
}
|
||||
|
||||
// Now propagate the hits
|
||||
|
@ -472,10 +482,6 @@ bool GLGizmoFdmSupports::gizmo_event(SLAGizmoEventType action, const Vec2d& mous
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
if (m_button_down == Button::None)
|
||||
m_button_down = ((action == SLAGizmoEventType::LeftDown) ? Button::Left : Button::Right);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -204,29 +204,6 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S
|
|||
event.Skip();
|
||||
});
|
||||
|
||||
/*
|
||||
Bind(wxEVT_SYS_COLOUR_CHANGED, [this](wxSysColourChangedEvent& event)
|
||||
{
|
||||
bool recreate_gui = false;
|
||||
{
|
||||
// the dialog needs to be destroyed before the call to recreate_gui()
|
||||
// or sometimes the application crashes into wxDialogBase() destructor
|
||||
// so we put it into an inner scope
|
||||
wxMessageDialog dialog(nullptr,
|
||||
_L("System color mode was changed. "
|
||||
"It is possible to update the Slicer in respect to the system mode.") + "\n" +
|
||||
_L("You will lose content of the plater.") + "\n\n" +
|
||||
_L("Do you want to proceed?"),
|
||||
wxString(SLIC3R_APP_NAME) + " - " + _L("Switching system color mode"),
|
||||
wxICON_QUESTION | wxOK | wxCANCEL);
|
||||
recreate_gui = dialog.ShowModal() == wxID_OK;
|
||||
}
|
||||
if (recreate_gui)
|
||||
wxGetApp().recreate_GUI(_L("Changing of an application in respect to the system mode") + dots);
|
||||
event.Skip();
|
||||
});
|
||||
*/
|
||||
|
||||
wxGetApp().persist_window_geometry(this, true);
|
||||
|
||||
update_ui_from_settings(); // FIXME (?)
|
||||
|
@ -350,7 +327,8 @@ void MainFrame::init_tabpanel()
|
|||
m_tabpanel->Bind(wxEVT_NOTEBOOK_PAGE_CHANGED, [this](wxEvent&) {
|
||||
auto panel = m_tabpanel->GetCurrentPage();
|
||||
|
||||
if (panel == nullptr)
|
||||
// There shouldn't be a case, when we try to select a tab, which doesn't support a printer technology
|
||||
if (panel == nullptr || !static_cast<Tab*>(panel)->supports_printer_technology(m_plater->printer_technology()))
|
||||
return;
|
||||
|
||||
auto& tabs_list = wxGetApp().tabs_list;
|
||||
|
|
Loading…
Reference in a new issue