mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-26 20:32:06 +00:00
NEW: Add FilamentMapDialog
support drag drop to modify the filament map jira: none Change-Id: I0ed3180a0fa8e95e7c871bb039eb844faccd1344 (cherry picked from commit 67f67d76889668fdd80ae5e496b6cbca5f771a43)
This commit is contained in:
@@ -153,6 +153,7 @@
|
||||
#include "CreatePresetsDialog.hpp"
|
||||
#include "FileArchiveDialog.hpp"
|
||||
#include "StepMeshDialog.hpp"
|
||||
#include "FilamentMapDialog.hpp"
|
||||
#include "CloneDialog.hpp"
|
||||
|
||||
using boost::optional;
|
||||
@@ -177,6 +178,7 @@ wxDEFINE_EVENT(EVT_IMPORT_MODEL_ID, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_DOWNLOAD_PROJECT, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_PUBLISH, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_OPEN_PLATESETTINGSDIALOG, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_OPEN_FILAMENT_MAP_SETTINGS_DIALOG, wxCommandEvent);
|
||||
// BBS: backup & restore
|
||||
wxDEFINE_EVENT(EVT_RESTORE_PROJECT, wxCommandEvent);
|
||||
wxDEFINE_EVENT(EVT_PRINT_FINISHED, wxCommandEvent);
|
||||
@@ -3362,6 +3364,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
||||
q->Bind(EVT_SEND_FINISHED, [q](wxCommandEvent& evt) { q->send_job_finished(evt); });
|
||||
q->Bind(EVT_PUBLISH_FINISHED, [q](wxCommandEvent& evt) { q->publish_job_finished(evt);});
|
||||
q->Bind(EVT_OPEN_PLATESETTINGSDIALOG, [q](wxCommandEvent& evt) { q->open_platesettings_dialog(evt);});
|
||||
q->Bind(EVT_OPEN_FILAMENT_MAP_SETTINGS_DIALOG, [q](wxCommandEvent &evt) { q->open_filament_map_setting_dialog(evt); });
|
||||
//q->Bind(EVT_GLVIEWTOOLBAR_ASSEMBLE, [q](SimpleEvent&) { q->select_view_3D("Assemble"); });
|
||||
}
|
||||
|
||||
@@ -14433,6 +14436,18 @@ void Plater::open_platesettings_dialog(wxCommandEvent& evt) {
|
||||
curr_plate->set_plate_name(dlg.get_plate_name().ToUTF8().data());
|
||||
}
|
||||
|
||||
void Plater::open_filament_map_setting_dialog(wxCommandEvent &evt)
|
||||
{
|
||||
PartPlate* curr_plate = p->partplate_list.get_curr_plate();
|
||||
FilamentMapDialog filament_dlg(this, config(), curr_plate->get_filament_maps(), curr_plate->get_filament_map_mode() == FilamentMapMode::fmmAuto);
|
||||
if (filament_dlg.ShowModal() == wxID_OK) {
|
||||
curr_plate->set_filament_maps(filament_dlg.get_filament_maps());
|
||||
curr_plate->set_filament_map_mode(filament_dlg.is_auto() ? FilamentMapMode::fmmAuto : FilamentMapMode::fmmManual);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//BBS: select Plate by hover_id
|
||||
int Plater::select_plate_by_hover_id(int hover_id, bool right_click, bool isModidyPlateName)
|
||||
{
|
||||
@@ -14589,6 +14604,18 @@ int Plater::select_plate_by_hover_id(int hover_id, bool right_click, bool isModi
|
||||
ret = -1;
|
||||
}
|
||||
}
|
||||
else if ((action == PartPlate::PLATE_FILAMENT_MAP_ID) && (!right_click)) {
|
||||
ret = select_plate(plate_index);
|
||||
if (!ret) {
|
||||
wxCommandEvent evt(EVT_OPEN_FILAMENT_MAP_SETTINGS_DIALOG);
|
||||
evt.SetInt(plate_index);
|
||||
evt.SetEventObject(this);
|
||||
wxPostEvent(this, evt);
|
||||
} else {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "can not select plate %1%" << plate_index;
|
||||
ret = -1;
|
||||
}
|
||||
}
|
||||
else if ((action == 6) && (!right_click)) {
|
||||
// set the plate type
|
||||
ret = select_plate(plate_index);
|
||||
|
||||
Reference in New Issue
Block a user