From f6eab52a1b8fd005d1d55ed9b164f76e225f8735 Mon Sep 17 00:00:00 2001 From: cc9cii Date: Tue, 29 Jun 2021 19:45:02 +1000 Subject: [PATCH] Added "Persistent" column to references table. --- apps/opencs/model/world/columnimp.hpp | 27 +++++++++++++++++++++++++++ apps/opencs/model/world/columns.cpp | 2 ++ apps/opencs/model/world/columns.hpp | 2 ++ apps/opencs/model/world/data.cpp | 1 + 4 files changed, 32 insertions(+) diff --git a/apps/opencs/model/world/columnimp.hpp b/apps/opencs/model/world/columnimp.hpp index 17518937c2..11b47e1a08 100644 --- a/apps/opencs/model/world/columnimp.hpp +++ b/apps/opencs/model/world/columnimp.hpp @@ -1429,6 +1429,33 @@ namespace CSMWorld } }; + template + struct PersistentColumn : public Column + { + PersistentColumn() + : Column (Columns::ColumnId_Persistent, ColumnBase::Display_Boolean) + {} + + QVariant get (const Record& record) const override + { + return record.get().mIsPersistent; + } + + void set (Record& record, const QVariant& data) override + { + ESXRecordT record2 = record.get(); + + record2.mIsPersistent = data.toInt(); + + record.setModified (record2); + } + + bool isEditable() const override + { + return true; + } + }; + template struct QuestStatusTypeColumn : public Column { diff --git a/apps/opencs/model/world/columns.cpp b/apps/opencs/model/world/columns.cpp index eaea66c2f9..1b91997a5f 100644 --- a/apps/opencs/model/world/columns.cpp +++ b/apps/opencs/model/world/columns.cpp @@ -371,6 +371,8 @@ namespace CSMWorld { ColumnId_Skill6, "Skill 6" }, { ColumnId_Skill7, "Skill 7" }, + { ColumnId_Persistent, "Persistent" }, + { -1, 0 } // end marker }; } diff --git a/apps/opencs/model/world/columns.hpp b/apps/opencs/model/world/columns.hpp index c85eaac5f1..b50fb71e04 100644 --- a/apps/opencs/model/world/columns.hpp +++ b/apps/opencs/model/world/columns.hpp @@ -343,6 +343,8 @@ namespace CSMWorld ColumnId_FactionAttrib1 = 311, ColumnId_FactionAttrib2 = 312, + ColumnId_Persistent = 313, + // Allocated to a separate value range, so we don't get a collision should we ever need // to extend the number of use values. ColumnId_UseValue1 = 0x10000, diff --git a/apps/opencs/model/world/data.cpp b/apps/opencs/model/world/data.cpp index 4ccd2a06db..0132584762 100644 --- a/apps/opencs/model/world/data.cpp +++ b/apps/opencs/model/world/data.cpp @@ -528,6 +528,7 @@ CSMWorld::Data::Data (ToUTF8::FromType encoding, bool fsStrict, const Files::Pat mRefs.addColumn (new TrapColumn); mRefs.addColumn (new OwnerGlobalColumn); mRefs.addColumn (new RefNumColumn); + mRefs.addColumn (new PersistentColumn); mFilters.addColumn (new StringIdColumn); mFilters.addColumn (new RecordStateColumn);