mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-19 06:41:14 -06:00
QoL: remember each printer's filament/bed/process settings (#1592)
* init work TODO: 1. support multi filament 2. support project * Properly handle filament number change when switching printers
This commit is contained in:
parent
6aa3e400d1
commit
7f6f01c4c9
6 changed files with 159 additions and 27 deletions
|
@ -167,7 +167,33 @@ public:
|
|||
void set_vendors(VendorMap &&vendors) { m_vendors = std::move(vendors); m_dirty = true; }
|
||||
const VendorMap& vendors() const { return m_vendors; }
|
||||
|
||||
const std::vector<std::string> &get_filament_presets() const { return m_filament_presets; }
|
||||
// Orca printer settings
|
||||
typedef std::map<std::string, nlohmann::json> MachineSettingMap;
|
||||
bool has_printer_settings(std::string printer) const {
|
||||
return m_printer_settings.find(printer) != m_printer_settings.end();
|
||||
}
|
||||
void clear_printer_settings(std::string printer) {
|
||||
m_printer_settings.erase(printer);
|
||||
m_dirty = true;
|
||||
}
|
||||
bool has_printer_setting(std::string printer, std::string name) {
|
||||
if (!has_printer_settings(printer))
|
||||
return false;
|
||||
if (!m_printer_settings[printer].contains(name))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
std::string get_printer_setting(std::string printer, std::string name) {
|
||||
if (!has_printer_setting(printer, name))
|
||||
return "";
|
||||
return m_printer_settings[printer][name];
|
||||
}
|
||||
std::string set_printer_setting(std::string printer, std::string name, std::string value) {
|
||||
return m_printer_settings[printer][name] = value;
|
||||
m_dirty = true;
|
||||
}
|
||||
|
||||
const std::vector<std::string> &get_filament_presets() const { return m_filament_presets; }
|
||||
void set_filament_presets(const std::vector<std::string> &filament_presets){
|
||||
m_filament_presets = filament_presets;
|
||||
m_dirty = true;
|
||||
|
@ -265,6 +291,9 @@ private:
|
|||
|
||||
// Map of enabled vendors / models / variants
|
||||
VendorMap m_vendors;
|
||||
|
||||
// Preset for each machine
|
||||
MachineSettingMap m_printer_settings;
|
||||
// Has any value been modified since the config.ini has been last saved or loaded?
|
||||
bool m_dirty;
|
||||
// Original version found in the ini file before it was overwritten
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue