mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-16 11:17:51 -06:00
Added lock icons to system presets in ComboBoxes.
Added right event handling if informative string is selected in ComboBoxes
This commit is contained in:
parent
f38f0edaaf
commit
7083f58326
5 changed files with 106 additions and 48 deletions
|
@ -2,6 +2,7 @@
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
#include "Preset.hpp"
|
#include "Preset.hpp"
|
||||||
|
#include "BitmapCache.hpp"
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
@ -252,7 +253,8 @@ PresetCollection::PresetCollection(Preset::Type type, const std::vector<std::str
|
||||||
m_type(type),
|
m_type(type),
|
||||||
m_edited_preset(type, "", false),
|
m_edited_preset(type, "", false),
|
||||||
m_idx_selected(0),
|
m_idx_selected(0),
|
||||||
m_bitmap_main_frame(new wxBitmap)
|
m_bitmap_main_frame(new wxBitmap),
|
||||||
|
m_bitmap_cache(new GUI::BitmapCache)
|
||||||
{
|
{
|
||||||
// Insert just the default preset.
|
// Insert just the default preset.
|
||||||
m_presets.emplace_back(Preset(type, "- default -", true));
|
m_presets.emplace_back(Preset(type, "- default -", true));
|
||||||
|
@ -264,6 +266,8 @@ PresetCollection::~PresetCollection()
|
||||||
{
|
{
|
||||||
delete m_bitmap_main_frame;
|
delete m_bitmap_main_frame;
|
||||||
m_bitmap_main_frame = nullptr;
|
m_bitmap_main_frame = nullptr;
|
||||||
|
delete m_bitmap_cache;
|
||||||
|
m_bitmap_cache = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PresetCollection::reset(bool delete_files)
|
void PresetCollection::reset(bool delete_files)
|
||||||
|
@ -511,17 +515,41 @@ void PresetCollection::update_platter_ui(wxBitmapComboBox *ui)
|
||||||
// Otherwise fill in the list from scratch.
|
// Otherwise fill in the list from scratch.
|
||||||
ui->Freeze();
|
ui->Freeze();
|
||||||
ui->Clear();
|
ui->Clear();
|
||||||
std::map<wxString, bool> nonsys_presets;
|
|
||||||
|
const Preset &selected_preset = this->get_selected_preset();
|
||||||
|
// Show wide icons if the currently selected preset is not compatible with the current printer,
|
||||||
|
// and draw a red flag in front of the selected preset.
|
||||||
|
bool wide_icons = !selected_preset.is_compatible && m_bitmap_incompatible != nullptr;
|
||||||
|
|
||||||
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
wxString selected = "";
|
wxString selected = "";
|
||||||
for (size_t i = this->m_presets.front().is_visible ? 0 : 1; i < this->m_presets.size(); ++ i) {
|
if (!this->m_presets.front().is_visible)
|
||||||
|
ui->Append("------- System presets -------", wxNullBitmap);
|
||||||
|
for (size_t i = this->m_presets.front().is_visible ? 0 : 1; i < this->m_presets.size(); ++i) {
|
||||||
const Preset &preset = this->m_presets[i];
|
const Preset &preset = this->m_presets[i];
|
||||||
if (! preset.is_visible || (! preset.is_compatible && i != m_idx_selected))
|
if (! preset.is_visible || (! preset.is_compatible && i != m_idx_selected))
|
||||||
continue;
|
continue;
|
||||||
const wxBitmap *bmp = (i == 0 || preset.is_compatible) ? m_bitmap_main_frame : m_bitmap_incompatible;
|
std::string bitmap_key = "";
|
||||||
// ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
// If the filament preset is not compatible and there is a "red flag" icon loaded, show it left
|
||||||
// (bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
// to the filament color image.
|
||||||
// if (i == m_idx_selected)
|
if (wide_icons)
|
||||||
// ui->SetSelection(ui->GetCount() - 1);
|
bitmap_key += preset.is_compatible ? ",cmpt" : ",ncmpt";
|
||||||
|
bitmap_key += (preset.is_system || preset.is_default) ? ",syst" : ",nsyst";
|
||||||
|
wxBitmap *bmp = m_bitmap_cache->find(bitmap_key);
|
||||||
|
if (bmp == nullptr) {
|
||||||
|
// Create the bitmap with color bars.
|
||||||
|
std::vector<wxBitmap> bmps;
|
||||||
|
if (wide_icons)
|
||||||
|
// Paint a red flag for incompatible presets.
|
||||||
|
bmps.emplace_back(preset.is_compatible ? m_bitmap_cache->mkclear(16, 16) : *m_bitmap_incompatible);
|
||||||
|
// Paint the color bars.
|
||||||
|
bmps.emplace_back(m_bitmap_cache->mkclear(4, 16));
|
||||||
|
bmps.emplace_back(*m_bitmap_main_frame);
|
||||||
|
// Paint a lock at the system presets.
|
||||||
|
bmps.emplace_back(m_bitmap_cache->mkclear(6, 16));
|
||||||
|
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmap_lock : m_bitmap_cache->mkclear(16, 16));
|
||||||
|
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
||||||
|
}
|
||||||
|
|
||||||
if (preset.is_default || preset.is_system){
|
if (preset.is_default || preset.is_system){
|
||||||
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
||||||
|
@ -531,20 +559,18 @@ void PresetCollection::update_platter_ui(wxBitmapComboBox *ui)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()), preset.is_compatible);
|
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()), bmp/*preset.is_compatible*/);
|
||||||
if (i == m_idx_selected)
|
if (i == m_idx_selected)
|
||||||
selected = wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str());
|
selected = wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str());
|
||||||
}
|
}
|
||||||
if (preset.is_default)
|
if (preset.is_default)
|
||||||
ui->Append("------------------------------------", wxNullBitmap);
|
ui->Append("------- System presets -------", wxNullBitmap);
|
||||||
}
|
}
|
||||||
if (!nonsys_presets.empty())
|
if (!nonsys_presets.empty())
|
||||||
{
|
{
|
||||||
ui->Append("------------------------------------", wxNullBitmap);
|
ui->Append("------- User presets -------", wxNullBitmap);
|
||||||
for (std::map<wxString, bool>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||||
const wxBitmap *bmp = it->second ? m_bitmap_compatible : m_bitmap_incompatible;
|
ui->Append(it->first, *it->second);
|
||||||
ui->Append(it->first,
|
|
||||||
(bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
|
||||||
if (it->first == selected)
|
if (it->first == selected)
|
||||||
ui->SetSelection(ui->GetCount() - 1);
|
ui->SetSelection(ui->GetCount() - 1);
|
||||||
}
|
}
|
||||||
|
@ -552,51 +578,63 @@ void PresetCollection::update_platter_ui(wxBitmapComboBox *ui)
|
||||||
ui->Thaw();
|
ui->Thaw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PresetCollection::update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible)
|
size_t PresetCollection::update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible)
|
||||||
{
|
{
|
||||||
if (ui == nullptr)
|
if (ui == nullptr)
|
||||||
return;
|
return 0;
|
||||||
ui->Freeze();
|
ui->Freeze();
|
||||||
ui->Clear();
|
ui->Clear();
|
||||||
std::map<wxString, bool> nonsys_presets;
|
size_t selected_preset_item = 0;
|
||||||
|
|
||||||
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
wxString selected = "";
|
wxString selected = "";
|
||||||
for (size_t i = this->m_presets.front().is_visible ? 0 : 1; i < this->m_presets.size(); ++ i) {
|
if (!this->m_presets.front().is_visible)
|
||||||
|
ui->Append("------- System presets -------", wxNullBitmap);
|
||||||
|
for (size_t i = this->m_presets.front().is_visible ? 0 : 1; i < this->m_presets.size(); ++i) {
|
||||||
const Preset &preset = this->m_presets[i];
|
const Preset &preset = this->m_presets[i];
|
||||||
if (! preset.is_visible || (! show_incompatible && ! preset.is_compatible && i != m_idx_selected))
|
if (! preset.is_visible || (! show_incompatible && ! preset.is_compatible && i != m_idx_selected))
|
||||||
continue;
|
continue;
|
||||||
const wxBitmap *bmp = preset.is_compatible ? m_bitmap_compatible : m_bitmap_incompatible;
|
std::string bitmap_key = "tab";
|
||||||
// ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
bitmap_key += preset.is_compatible ? ",cmpt" : ",ncmpt";
|
||||||
// (bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
bitmap_key += (preset.is_system || preset.is_default) ? ",syst" : ",nsyst";
|
||||||
// if (i == m_idx_selected)
|
wxBitmap *bmp = m_bitmap_cache->find(bitmap_key);
|
||||||
// ui->SetSelection(ui->GetCount() - 1);
|
if (bmp == nullptr) {
|
||||||
|
// Create the bitmap with color bars.
|
||||||
|
std::vector<wxBitmap> bmps;
|
||||||
|
const wxBitmap* tmp_bmp = preset.is_compatible ? m_bitmap_compatible : m_bitmap_incompatible;
|
||||||
|
bmps.emplace_back((tmp_bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *tmp_bmp);
|
||||||
|
// Paint a lock at the system presets.
|
||||||
|
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmap_lock : m_bitmap_cache->mkclear(16, 16));
|
||||||
|
bmp = m_bitmap_cache->insert(bitmap_key, bmps);
|
||||||
|
}
|
||||||
|
|
||||||
if (preset.is_default || preset.is_system){
|
if (preset.is_default || preset.is_system){
|
||||||
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()),
|
||||||
(bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
(bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
||||||
if (i == m_idx_selected)
|
if (i == m_idx_selected)
|
||||||
ui->SetSelection(ui->GetCount() - 1);
|
selected_preset_item = ui->GetCount() - 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()), preset.is_compatible);
|
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str()), bmp/*preset.is_compatible*/);
|
||||||
if (i == m_idx_selected)
|
if (i == m_idx_selected)
|
||||||
selected = wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str());
|
selected = wxString::FromUTF8((preset.name + (preset.is_dirty ? g_suffix_modified : "")).c_str());
|
||||||
}
|
}
|
||||||
if (preset.is_default)
|
if (preset.is_default)
|
||||||
ui->Append("------------------------------------", wxNullBitmap);
|
ui->Append("------- System presets -------", wxNullBitmap);
|
||||||
}
|
}
|
||||||
if (!nonsys_presets.empty())
|
if (!nonsys_presets.empty())
|
||||||
{
|
{
|
||||||
ui->Append("------------------------------------", wxNullBitmap);
|
ui->Append("------- User presets -------", wxNullBitmap);
|
||||||
for (std::map<wxString, bool>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||||
const wxBitmap *bmp = it->second ? m_bitmap_compatible : m_bitmap_incompatible;
|
ui->Append(it->first, *it->second);
|
||||||
ui->Append(it->first,
|
|
||||||
(bmp == 0) ? (m_bitmap_main_frame ? *m_bitmap_main_frame : wxNullBitmap) : *bmp);
|
|
||||||
if (it->first == selected)
|
if (it->first == selected)
|
||||||
ui->SetSelection(ui->GetCount() - 1);
|
selected_preset_item = ui->GetCount() - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ui->SetSelection(selected_preset_item);
|
||||||
ui->Thaw();
|
ui->Thaw();
|
||||||
|
return selected_preset_item;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update a dirty floag of the current preset, update the labels of the UI component accordingly.
|
// Update a dirty floag of the current preset, update the labels of the UI component accordingly.
|
||||||
|
@ -692,6 +730,11 @@ bool PresetCollection::select_preset_by_name(const std::string &name_w_suffix, b
|
||||||
// If the first visible preset was not found, return the 0th element, which is the default preset.
|
// If the first visible preset was not found, return the 0th element, which is the default preset.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Temporary decision
|
||||||
|
if (name_w_suffix == "------- System presets -------" ||
|
||||||
|
name_w_suffix == "------- User presets -------")
|
||||||
|
return true;
|
||||||
|
|
||||||
// 2) Select the new preset.
|
// 2) Select the new preset.
|
||||||
if (m_idx_selected != idx || force) {
|
if (m_idx_selected != idx || force) {
|
||||||
this->select_preset(idx);
|
this->select_preset(idx);
|
||||||
|
|
|
@ -13,6 +13,10 @@ class wxItemContainer;
|
||||||
|
|
||||||
namespace Slic3r {
|
namespace Slic3r {
|
||||||
|
|
||||||
|
namespace GUI {
|
||||||
|
class BitmapCache;
|
||||||
|
}
|
||||||
|
|
||||||
enum ConfigFileType
|
enum ConfigFileType
|
||||||
{
|
{
|
||||||
CONFIG_FILE_TYPE_UNKNOWN,
|
CONFIG_FILE_TYPE_UNKNOWN,
|
||||||
|
@ -264,7 +268,7 @@ public:
|
||||||
// Update the choice UI from the list of presets.
|
// Update the choice UI from the list of presets.
|
||||||
// If show_incompatible, all presets are shown, otherwise only the compatible presets are shown.
|
// If show_incompatible, all presets are shown, otherwise only the compatible presets are shown.
|
||||||
// If an incompatible preset is selected, it is shown as well.
|
// If an incompatible preset is selected, it is shown as well.
|
||||||
void update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible);
|
size_t update_tab_ui(wxBitmapComboBox *ui, bool show_incompatible);
|
||||||
// Update the choice UI from the list of presets.
|
// Update the choice UI from the list of presets.
|
||||||
// Only the compatible presets are shown.
|
// Only the compatible presets are shown.
|
||||||
// If an incompatible preset is selected, it is shown as well.
|
// If an incompatible preset is selected, it is shown as well.
|
||||||
|
@ -324,6 +328,8 @@ private:
|
||||||
wxBitmap *m_bitmap_main_frame;
|
wxBitmap *m_bitmap_main_frame;
|
||||||
// Path to the directory to store the config files into.
|
// Path to the directory to store the config files into.
|
||||||
std::string m_dir_path;
|
std::string m_dir_path;
|
||||||
|
// Caching color bitmaps for the filament combo box.
|
||||||
|
GUI::BitmapCache *m_bitmap_cache = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Slic3r
|
} // namespace Slic3r
|
||||||
|
|
|
@ -1025,9 +1025,11 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, wxBitma
|
||||||
// and draw a red flag in front of the selected preset.
|
// and draw a red flag in front of the selected preset.
|
||||||
bool wide_icons = selected_preset != nullptr && ! selected_preset->is_compatible && m_bitmapIncompatible != nullptr;
|
bool wide_icons = selected_preset != nullptr && ! selected_preset->is_compatible && m_bitmapIncompatible != nullptr;
|
||||||
assert(selected_preset != nullptr);
|
assert(selected_preset != nullptr);
|
||||||
std::map<wxString, wxBitmap> nonsys_presets;
|
std::map<wxString, wxBitmap*> nonsys_presets;
|
||||||
wxString selected_str = "";
|
wxString selected_str = "";
|
||||||
for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++ i) {
|
if (!this->filaments().front().is_visible)
|
||||||
|
ui->Append("------- System presets -------", wxNullBitmap);
|
||||||
|
for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++i) {
|
||||||
const Preset &preset = this->filaments.preset(i);
|
const Preset &preset = this->filaments.preset(i);
|
||||||
bool selected = this->filament_presets[idx_extruder] == preset.name;
|
bool selected = this->filament_presets[idx_extruder] == preset.name;
|
||||||
if (! preset.is_visible || (! preset.is_compatible && ! selected))
|
if (! preset.is_visible || (! preset.is_compatible && ! selected))
|
||||||
|
@ -1059,14 +1061,11 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, wxBitma
|
||||||
bmps.emplace_back(m_bitmapCache->mksolid(8, 16, rgb));
|
bmps.emplace_back(m_bitmapCache->mksolid(8, 16, rgb));
|
||||||
}
|
}
|
||||||
// Paint a lock at the system presets.
|
// Paint a lock at the system presets.
|
||||||
bmps.emplace_back(m_bitmapCache->mkclear(4, 16));
|
bmps.emplace_back(m_bitmapCache->mkclear(2, 16));
|
||||||
bmps.emplace_back((preset.is_system || preset.is_default) ?
|
bmps.emplace_back((preset.is_system || preset.is_default) ? *m_bitmapLock : m_bitmapCache->mkclear(16, 16));
|
||||||
(preset.is_dirty ? *m_bitmapLockOpen : *m_bitmapLock) : m_bitmapCache->mkclear(16, 16));
|
// (preset.is_dirty ? *m_bitmapLockOpen : *m_bitmapLock) : m_bitmapCache->mkclear(16, 16));
|
||||||
bitmap = m_bitmapCache->insert(bitmap_key, bmps);
|
bitmap = m_bitmapCache->insert(bitmap_key, bmps);
|
||||||
}
|
}
|
||||||
// ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()), (bitmap == 0) ? wxNullBitmap : *bitmap);
|
|
||||||
// if (selected)
|
|
||||||
// ui->SetSelection(ui->GetCount() - 1);
|
|
||||||
|
|
||||||
if (preset.is_default || preset.is_system){
|
if (preset.is_default || preset.is_system){
|
||||||
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
ui->Append(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
||||||
|
@ -1077,19 +1076,19 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, wxBitma
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
nonsys_presets.emplace(wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str()),
|
||||||
(bitmap == 0) ? wxNullBitmap : *bitmap);
|
(bitmap == 0) ? &wxNullBitmap : bitmap);
|
||||||
if (selected)
|
if (selected)
|
||||||
selected_str = wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str());
|
selected_str = wxString::FromUTF8((preset.name + (preset.is_dirty ? Preset::suffix_modified() : "")).c_str());
|
||||||
}
|
}
|
||||||
if (preset.is_default)
|
if (preset.is_default)
|
||||||
ui->Append("------------------------------------", wxNullBitmap);
|
ui->Append("------- System presets -------", wxNullBitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!nonsys_presets.empty())
|
if (!nonsys_presets.empty())
|
||||||
{
|
{
|
||||||
ui->Append("------------------------------------", wxNullBitmap);
|
ui->Append("------- User presets -------", wxNullBitmap);
|
||||||
for (std::map<wxString, wxBitmap>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
for (std::map<wxString, wxBitmap*>::iterator it = nonsys_presets.begin(); it != nonsys_presets.end(); ++it) {
|
||||||
ui->Append(it->first, it->second);
|
ui->Append(it->first, *it->second);
|
||||||
if (it->first == selected_str)
|
if (it->first == selected_str)
|
||||||
ui->SetSelection(ui->GetCount() - 1);
|
ui->SetSelection(ui->GetCount() - 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,8 +198,16 @@ void Tab::create_preset_tab(PresetBundle *preset_bundle)
|
||||||
//! select_preset(m_presets_choice->GetStringSelection().ToStdString());
|
//! select_preset(m_presets_choice->GetStringSelection().ToStdString());
|
||||||
//! we doing next:
|
//! we doing next:
|
||||||
int selected_item = m_presets_choice->GetSelection();
|
int selected_item = m_presets_choice->GetSelection();
|
||||||
|
if (m_selected_preset_item == selected_item)
|
||||||
|
return;
|
||||||
if (selected_item >= 0){
|
if (selected_item >= 0){
|
||||||
std::string selected_string = m_presets_choice->GetString(selected_item).ToUTF8().data();
|
std::string selected_string = m_presets_choice->GetString(selected_item).ToUTF8().data();
|
||||||
|
if (selected_string == "------- System presets -------" ||
|
||||||
|
selected_string == "------- User presets -------"){
|
||||||
|
m_presets_choice->SetSelection(m_selected_preset_item);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_selected_preset_item = selected_item;
|
||||||
select_preset(selected_string);
|
select_preset(selected_string);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
@ -488,7 +496,7 @@ void Tab::update_dirty(){
|
||||||
|
|
||||||
void Tab::update_tab_ui()
|
void Tab::update_tab_ui()
|
||||||
{
|
{
|
||||||
m_presets->update_tab_ui(m_presets_choice, m_show_incompatible_presets);
|
m_selected_preset_item = m_presets->update_tab_ui(m_presets_choice, m_show_incompatible_presets);
|
||||||
// update_tab_presets(m_cc_presets_choice, m_show_incompatible_presets);
|
// update_tab_presets(m_cc_presets_choice, m_show_incompatible_presets);
|
||||||
// update_presetsctrl(m_presetctrl, m_show_incompatible_presets);
|
// update_presetsctrl(m_presetctrl, m_show_incompatible_presets);
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,6 +154,8 @@ protected:
|
||||||
bool m_is_nonsys_values{ true };
|
bool m_is_nonsys_values{ true };
|
||||||
bool m_postpone_update_ui {false};
|
bool m_postpone_update_ui {false};
|
||||||
|
|
||||||
|
size_t m_selected_preset_item{ 0 };
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PresetBundle* m_preset_bundle;
|
PresetBundle* m_preset_bundle;
|
||||||
bool m_show_btn_incompatible_presets = false;
|
bool m_show_btn_incompatible_presets = false;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue