diff --git a/libs/wxutil/EntityClassChooser.cpp b/libs/wxutil/EntityClassChooser.cpp index e8dfc5dd5a..f901ab14a1 100644 --- a/libs/wxutil/EntityClassChooser.cpp +++ b/libs/wxutil/EntityClassChooser.cpp @@ -109,7 +109,7 @@ class EntityClassTreePopulator: row[_columns.isFolder] = isFolder; row[_columns.isFavourite] = isFavourite; - row[_columns.iconAndName] = TreeViewItemStyle::Declaration(isFavourite); // assign attributes + row[_columns.iconAndName].setAttr(TreeViewItemStyle::Declaration(isFavourite)); // assign attributes row.SendItemAdded(); } ); diff --git a/libs/wxutil/dataview/KeyValueTable.cpp b/libs/wxutil/dataview/KeyValueTable.cpp index e32c8ca255..1403e1e3ad 100644 --- a/libs/wxutil/dataview/KeyValueTable.cpp +++ b/libs/wxutil/dataview/KeyValueTable.cpp @@ -58,7 +58,7 @@ void KeyValueTable::Append(const std::string& key, const std::string& value) bold.SetBold(true); row[COLUMNS().key] = key; - row[COLUMNS().key] = bold; + row[COLUMNS().key].setAttr(bold); row[COLUMNS().value] = value; row.SendItemAdded(); diff --git a/libs/wxutil/dataview/ResourceTreeView.cpp b/libs/wxutil/dataview/ResourceTreeView.cpp index 0833061c60..7c7d3b7c52 100644 --- a/libs/wxutil/dataview/ResourceTreeView.cpp +++ b/libs/wxutil/dataview/ResourceTreeView.cpp @@ -513,7 +513,7 @@ void ResourceTreeView::SetFavouriteRecursively(TreeModel::Row& row, bool isFavou void ResourceTreeView::SetFavourite(TreeModel::Row& row, bool isFavourite) { row[_columns.isFavourite] = isFavourite; - row[_columns.iconAndName] = TreeViewItemStyle::Declaration(isFavourite); + row[_columns.iconAndName].setAttr(TreeViewItemStyle::Declaration(isFavourite)); // Keep track of this choice if (isFavourite) diff --git a/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h b/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h index d3c30e8ee1..34004a12e6 100644 --- a/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h +++ b/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h @@ -79,7 +79,7 @@ class ThreadedDeclarationTreePopulator : auto isFavourite = IsFavourite(declName); row[_columns.iconAndName] = wxVariant(wxDataViewIconText(leafName, !isFolder ? _declIcon : _folderIcon)); - row[_columns.iconAndName] = TreeViewItemStyle::Declaration(isFavourite); + row[_columns.iconAndName].setAttr(TreeViewItemStyle::Declaration(isFavourite)); row[_columns.fullName] = fullPath; row[_columns.leafName] = leafName; row[_columns.declName] = declName; diff --git a/libs/wxutil/dataview/TreeModel.h b/libs/wxutil/dataview/TreeModel.h index 3ebbd1251d..6df7636d33 100644 --- a/libs/wxutil/dataview/TreeModel.h +++ b/libs/wxutil/dataview/TreeModel.h @@ -187,7 +187,7 @@ class TreeModel : } // get/set operators for dataview attributes - ItemValueProxy& operator=(const wxDataViewItemAttr& attr) + ItemValueProxy& setAttr(const wxDataViewItemAttr& attr) { _model.SetAttr(_item, _column.getColumnIndex(), attr); return *this; diff --git a/plugins/dm.difficulty/DifficultySettings.cpp b/plugins/dm.difficulty/DifficultySettings.cpp index 856feca3dc..9d6d126046 100644 --- a/plugins/dm.difficulty/DifficultySettings.cpp +++ b/plugins/dm.difficulty/DifficultySettings.cpp @@ -166,7 +166,7 @@ void DifficultySettings::updateTreeModel() colour.SetColour(setting.isDefault ? wxColor(112,112,112) : wxColor(0,0,0)); row[_columns.description] = setting.getDescString() + (overridden ? _(" (overridden)") : ""); - row[_columns.description] = colour; + row[_columns.description].setAttr(colour); row[_columns.classname] = setting.className; row[_columns.settingId] = setting.id; @@ -285,7 +285,7 @@ wxDataViewItem DifficultySettings::insertClassName(const std::string& className, black.SetColour(wxColor(0,0,0)); row[_columns.description] = className; - row[_columns.description] = black; + row[_columns.description].setAttr(black); row[_columns.classname] = className; row[_columns.settingId] = -1; diff --git a/plugins/dm.stimresponse/SREntity.cpp b/plugins/dm.stimresponse/SREntity.cpp index b1365a3775..231ac45d96 100644 --- a/plugins/dm.stimresponse/SREntity.cpp +++ b/plugins/dm.stimresponse/SREntity.cpp @@ -239,10 +239,10 @@ void SREntity::writeToListRow(wxutil::TreeModel::Row& row, StimResponse& sr) const SRListColumns& cols = getColumns(); row[cols.index] = sr.getIndex(); - row[cols.index] = colour; + row[cols.index].setAttr(colour); row[cols.srClass] = wxVariant(wxutil::GetLocalBitmap(classIcon)); row[cols.caption] = wxVariant(wxDataViewIconText(stimTypeStr, icon)); - row[cols.caption] = colour; + row[cols.caption].setAttr(colour); row[cols.inherited] = sr.inherited(); } diff --git a/radiant/ui/eclasstree/EClassTree.cpp b/radiant/ui/eclasstree/EClassTree.cpp index 0aed2687d5..4346ff734c 100644 --- a/radiant/ui/eclasstree/EClassTree.cpp +++ b/radiant/ui/eclasstree/EClassTree.cpp @@ -138,10 +138,10 @@ void EClassTree::addToListStore(const EntityClassAttribute& attr, bool inherited colour.SetColour(inherited ? wxColor(127, 127, 127) : wxColor(0, 0, 0)); row[_propertyColumns.name] = attr.getName(); - row[_propertyColumns.name] = colour; + row[_propertyColumns.name].setAttr(colour); row[_propertyColumns.value] = attr.getValue(); - row[_propertyColumns.value] = colour; + row[_propertyColumns.value].setAttr(colour); row[_propertyColumns.inherited] = inherited ? "1" : "0"; diff --git a/radiant/ui/einspector/AddPropertyDialog.cpp b/radiant/ui/einspector/AddPropertyDialog.cpp index 44e527ecd7..1a1fe1a24d 100644 --- a/radiant/ui/einspector/AddPropertyDialog.cpp +++ b/radiant/ui/einspector/AddPropertyDialog.cpp @@ -161,7 +161,7 @@ void AddPropertyDialog::populateTreeView() blueBold.SetBold(true); defRoot[_columns.displayName] = wxVariant(wxDataViewIconText(cName, folderIcon)); - defRoot[_columns.displayName] = blueBold; + defRoot[_columns.displayName].setAttr(blueBold); defRoot[_columns.propertyName] = ""; defRoot[_columns.description] = _(CUSTOM_PROPERTY_TEXT); diff --git a/radiant/ui/einspector/EntityInspector.cpp b/radiant/ui/einspector/EntityInspector.cpp index e76d9ba967..c43e5a3a5e 100644 --- a/radiant/ui/einspector/EntityInspector.cpp +++ b/radiant/ui/einspector/EntityInspector.cpp @@ -222,8 +222,8 @@ void EntityInspector::onKeyChange(const std::string& key, const std::string& val setOldAndNewValueColumns(row, key, style); // Apply background style to all other columns - row[_columns.name] = style; - row[_columns.booleanValue] = style; + row[_columns.name].setAttr(style); + row[_columns.booleanValue].setAttr(style); // Before applying the style to the value, check if the value is ambiguous if (isMultiValue) @@ -231,7 +231,7 @@ void EntityInspector::onKeyChange(const std::string& key, const std::string& val wxutil::TreeViewItemStyle::ApplyKeyValueAmbiguousStyle(style); } - row[_columns.value] = style; + row[_columns.value].setAttr(style); row[_columns.isInherited] = false; updateKeyType(row); @@ -306,14 +306,14 @@ void EntityInspector::setOldAndNewValueColumns(wxutil::TreeModel::Row& row, cons if (action->second->getType() == scene::merge::ActionType::AddKeyValue) { row[_columns.oldValue] = std::string(); // no old value to show - row[_columns.oldValue] = style; + row[_columns.oldValue].setAttr(style); } else { wxDataViewItemAttr oldAttr = style; wxutil::TreeViewItemStyle::SetStrikethrough(oldAttr, true); row[_columns.oldValue] = action->second->getUnchangedValue(); - row[_columns.oldValue] = oldAttr; + row[_columns.oldValue].setAttr(oldAttr); } row[_columns.newValue] = action->second->getValue(); @@ -321,7 +321,7 @@ void EntityInspector::setOldAndNewValueColumns(wxutil::TreeModel::Row& row, cons wxDataViewItemAttr newAttr = style; newAttr.SetBold(true); - row[_columns.newValue] = newAttr; + row[_columns.newValue].setAttr(newAttr); } else { @@ -1326,13 +1326,9 @@ void EntityInspector::_onEntryActivate(wxCommandEvent& ev) void EntityInspector::handleShowInheritedChanged() { if (_showInheritedCheckbox->IsChecked()) - { addClassProperties(); - } else - { removeClassProperties(); - } } void EntityInspector::updateHelpTextPanel() @@ -1597,8 +1593,6 @@ void EntityInspector::addClassAttribute(const EntityClassAttribute& a) auto row = _kvStore->AddItem(); - auto style = wxutil::TreeViewItemStyle::Inherited(); - row[_columns.name] = wxVariant(wxDataViewIconText(a.getName(), _emptyIcon)); row[_columns.value] = a.getValue(); @@ -1616,8 +1610,11 @@ void EntityInspector::addClassAttribute(const EntityClassAttribute& a) row[_columns.booleanValue].setEnabled(false); } - row[_columns.name] = style; - row[_columns.value] = style; + // Set style attributes + auto style = wxutil::TreeViewItemStyle::Inherited(); + row[_columns.name].setAttr(style); + row[_columns.value].setAttr(style); + row[_columns.oldValue] = std::string(); row[_columns.newValue] = std::string(); @@ -1629,19 +1626,12 @@ void EntityInspector::addClassAttribute(const EntityClassAttribute& a) // Append inherited (entityclass) properties void EntityInspector::addClassProperties() { - // Get the entityclass for the current entities - auto eclass = _entitySelection->getSingleSharedEntityClass(); - - if (!eclass) - { - return; + // Visit the entityclass for the current entities + if (auto eclass = _entitySelection->getSingleSharedEntityClass(); eclass) { + eclass->forEachAttribute( + [&](const EntityClassAttribute& a, bool) { addClassAttribute(a); } + ); } - - // Visit the entity class - eclass->forEachAttribute([&] (const EntityClassAttribute& a, bool) - { - addClassAttribute(a); - }); } // Remove the inherited properties diff --git a/radiant/ui/filters/editor/FilterDialog.cpp b/radiant/ui/filters/editor/FilterDialog.cpp index ba775f7fb0..f8b53b0559 100644 --- a/radiant/ui/filters/editor/FilterDialog.cpp +++ b/radiant/ui/filters/editor/FilterDialog.cpp @@ -128,8 +128,8 @@ void FilterDialog::update() row[_columns.name] = i->first; row[_columns.state] = filter.state ? std::string(_("enabled")) : std::string(_("disabled")); - row[_columns.name] = filter.readOnly ? grey : black; - row[_columns.state] = filter.readOnly ? grey : black; + row[_columns.name].setAttr(filter.readOnly ? grey : black); + row[_columns.state].setAttr(filter.readOnly ? grey : black); row[_columns.readonly] = filter.readOnly; diff --git a/radiant/ui/layers/LayerControlDialog.cpp b/radiant/ui/layers/LayerControlDialog.cpp index 0d3aaf653a..b4b4e453ac 100644 --- a/radiant/ui/layers/LayerControlDialog.cpp +++ b/radiant/ui/layers/LayerControlDialog.cpp @@ -205,7 +205,7 @@ class LayerControlDialog::TreePopulator if (_activeLayerId == layerId) { - row[_columns.name] = wxutil::TreeViewItemStyle::ActiveItemStyle(); + row[_columns.name].setAttr(wxutil::TreeViewItemStyle::ActiveItemStyle()); } if (_layerManager.layerIsVisible(layerId)) @@ -304,8 +304,10 @@ void LayerControlDialog::update() row[_columns.name] = layerName; - row[_columns.name] = activeLayerId == layerId ? - wxutil::TreeViewItemStyle::ActiveItemStyle() : wxDataViewItemAttr(); // no style + row[_columns.name].setAttr( + activeLayerId == layerId ? wxutil::TreeViewItemStyle::ActiveItemStyle() + : wxDataViewItemAttr() // no style + ); if (layerManager.layerIsVisible(layerId)) { diff --git a/radiant/ui/materials/editor/MaterialEditor.cpp b/radiant/ui/materials/editor/MaterialEditor.cpp index de6ae8d0db..d734a08580 100644 --- a/radiant/ui/materials/editor/MaterialEditor.cpp +++ b/radiant/ui/materials/editor/MaterialEditor.cpp @@ -1206,7 +1206,7 @@ void MaterialEditor::setupMaterialStageView() wxDataViewItemAttr globalStyle; globalStyle.SetColour(wxColor(15, 15, 15)); globalStyle.SetBold(true); - row[STAGE_COLS().name] = globalStyle; + row[STAGE_COLS().name].setAttr(globalStyle); row.SendItemAdded(); @@ -3042,13 +3042,9 @@ void MaterialEditor::updateMaterialTreeItem() wxutil::TreeModel::Row row(item, *_treeView->GetModel()); if (!row[columns.isFolder].getBool()) - { - row[columns.iconAndName] = wxutil::TreeViewItemStyle::Modified(isModified); - } + row[columns.iconAndName].setAttr(wxutil::TreeViewItemStyle::Modified(isModified)); else - { - row[columns.iconAndName] = wxDataViewItemAttr(); - } + row[columns.iconAndName].setAttr(wxDataViewItemAttr()); wxDataViewIconText value = row[columns.iconAndName]; diff --git a/radiant/ui/modelselector/ModelDataInserter.h b/radiant/ui/modelselector/ModelDataInserter.h index 21de38f40b..c625f9e5f6 100644 --- a/radiant/ui/modelselector/ModelDataInserter.h +++ b/radiant/ui/modelselector/ModelDataInserter.h @@ -72,7 +72,7 @@ class ModelDataInserter : // Pixbuf depends on model type row[_columns.iconAndName] = wxVariant(wxDataViewIconText(displayName, isExplicit ? _modelIcon : _folderIcon)); - row[_columns.iconAndName] = wxutil::TreeViewItemStyle::Declaration(isFavourite); // assign attributes + row[_columns.iconAndName].setAttr(wxutil::TreeViewItemStyle::Declaration(isFavourite)); // assign attributes row[_columns.fullName] = fullPath; row[_columns.modelPath] = fullPath; row[_columns.leafName] = displayName; @@ -97,7 +97,7 @@ class ModelDataInserter : isFavourite = isExplicit && _favourites.count(fullSkinPath) > 0; skinRow[_columns.iconAndName] = wxVariant(wxDataViewIconText(skinName, _skinIcon)); - skinRow[_columns.iconAndName] = wxutil::TreeViewItemStyle::Declaration(isFavourite); // assign attributes + skinRow[_columns.iconAndName].setAttr(wxutil::TreeViewItemStyle::Declaration(isFavourite)); // assign attributes skinRow[_columns.fullName] = fullSkinPath; // model path + skin skinRow[_columns.modelPath] = fullPath; // this is the model path skinRow[_columns.leafName] = skinName; diff --git a/radiant/ui/particles/ParticleEditor.cpp b/radiant/ui/particles/ParticleEditor.cpp index 05d0a08247..8654ced98b 100644 --- a/radiant/ui/particles/ParticleEditor.cpp +++ b/radiant/ui/particles/ParticleEditor.cpp @@ -1041,7 +1041,7 @@ void ParticleEditor::reloadStageList() colour.SetColour(stage->isVisible() ? wxColour(0, 0, 0) : wxColour(127, 127, 127)); row[STAGE_COLS().name] = fmt::format("Stage {0}", static_cast(i)); - row[STAGE_COLS().name] = colour; + row[STAGE_COLS().name].setAttr(colour); row[STAGE_COLS().index] = static_cast(i); row[STAGE_COLS().visible] = true;