OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
columnimp.hpp
Go to the documentation of this file.
1 #ifndef CSM_WOLRD_COLUMNIMP_H
2 #define CSM_WOLRD_COLUMNIMP_H
3 
4 #include <cassert>
5 #include <cstdint>
6 #include <sstream>
7 #include <stdexcept>
8 
9 #include <QColor>
10 #include <QVector>
11 
15 
16 #include "columnbase.hpp"
17 #include "columns.hpp"
18 #include "info.hpp"
19 
20 #include "land.hpp"
21 #include "landtexture.hpp"
22 
23 namespace CSMWorld
24 {
26  template<typename ESXRecordT>
27  struct FloatValueColumn : public Column<ESXRecordT>
28  {
30 
31  virtual QVariant get (const Record<ESXRecordT>& record) const
32  {
33  return record.get().mValue.getFloat();
34  }
35 
36  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
37  {
38  ESXRecordT record2 = record.get();
39  record2.mValue.setFloat (data.toFloat());
40  record.setModified (record2);
41  }
42 
43  virtual bool isEditable() const
44  {
45  return true;
46  }
47  };
48 
49  template<typename ESXRecordT>
50  struct StringIdColumn : public Column<ESXRecordT>
51  {
52  StringIdColumn (bool hidden = false)
53  : Column<ESXRecordT> (Columns::ColumnId_Id, ColumnBase::Display_Id,
55  {}
56 
57  virtual QVariant get (const Record<ESXRecordT>& record) const
58  {
59  return QString::fromUtf8 (record.get().mId.c_str());
60  }
61 
62  virtual bool isEditable() const
63  {
64  return false;
65  }
66  };
67 
68  template<>
69  inline QVariant StringIdColumn<Land>::get(const Record<Land>& record) const
70  {
71  const Land& land = record.get();
72  return QString::fromUtf8(Land::createUniqueRecordId(land.mX, land.mY).c_str());
73  }
74 
75  template<>
76  inline QVariant StringIdColumn<LandTexture>::get(const Record<LandTexture>& record) const
77  {
78  const LandTexture& ltex = record.get();
79  return QString::fromUtf8(LandTexture::createUniqueRecordId(ltex.mPluginIndex, ltex.mIndex).c_str());
80  }
81 
82  template<typename ESXRecordT>
83  struct RecordStateColumn : public Column<ESXRecordT>
84  {
87  {}
88 
89  virtual QVariant get (const Record<ESXRecordT>& record) const
90  {
91  if (record.mState==Record<ESXRecordT>::State_Erased)
92  return static_cast<int> (Record<ESXRecordT>::State_Deleted);
93 
94  return static_cast<int> (record.mState);
95  }
96 
97  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
98  {
99  record.mState = static_cast<RecordBase::State> (data.toInt());
100  }
101 
102  virtual bool isEditable() const
103  {
104  return true;
105  }
106 
107  virtual bool isUserEditable() const
108  {
109  return false;
110  }
111  };
112 
113  template<typename ESXRecordT>
114  struct FixedRecordTypeColumn : public Column<ESXRecordT>
115  {
116  int mType;
117 
119  : Column<ESXRecordT> (Columns::ColumnId_RecordType, ColumnBase::Display_Integer, 0),
120  mType (type)
121  {}
122 
123  virtual QVariant get (const Record<ESXRecordT>& record) const
124  {
125  return mType;
126  }
127 
128  virtual bool isEditable() const
129  {
130  return false;
131  }
132  };
133 
135  template<typename ESXRecordT>
136  struct VarTypeColumn : public Column<ESXRecordT>
137  {
140  {}
141 
142  virtual QVariant get (const Record<ESXRecordT>& record) const
143  {
144  return static_cast<int> (record.get().mValue.getType());
145  }
146 
147  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
148  {
149  ESXRecordT record2 = record.get();
150  record2.mValue.setType (static_cast<ESM::VarType> (data.toInt()));
151  record.setModified (record2);
152  }
153 
154  virtual bool isEditable() const
155  {
156  return true;
157  }
158  };
159 
161  template<typename ESXRecordT>
162  struct VarValueColumn : public Column<ESXRecordT>
163  {
165 
166  virtual QVariant get (const Record<ESXRecordT>& record) const
167  {
168  switch (record.get().mValue.getType())
169  {
170  case ESM::VT_String:
171 
172  return QString::fromUtf8 (record.get().mValue.getString().c_str());
173 
174  case ESM::VT_Int:
175  case ESM::VT_Short:
176  case ESM::VT_Long:
177 
178  return record.get().mValue.getInteger();
179 
180  case ESM::VT_Float:
181 
182  return record.get().mValue.getFloat();
183 
184  default: return QVariant();
185  }
186  }
187 
188  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
189  {
190  ESXRecordT record2 = record.get();
191 
192  switch (record2.mValue.getType())
193  {
194  case ESM::VT_String:
195 
196  record2.mValue.setString (data.toString().toUtf8().constData());
197  break;
198 
199  case ESM::VT_Int:
200  case ESM::VT_Short:
201  case ESM::VT_Long:
202 
203  record2.mValue.setInteger (data.toInt());
204  break;
205 
206  case ESM::VT_Float:
207 
208  record2.mValue.setFloat (data.toFloat());
209  break;
210 
211  default: break;
212  }
213 
214  record.setModified (record2);
215  }
216 
217  virtual bool isEditable() const
218  {
219  return true;
220  }
221  };
222 
223  template<typename ESXRecordT>
224  struct DescriptionColumn : public Column<ESXRecordT>
225  {
227  : Column<ESXRecordT> (Columns::ColumnId_Description, ColumnBase::Display_LongString)
228  {}
229 
230  virtual QVariant get (const Record<ESXRecordT>& record) const
231  {
232  return QString::fromUtf8 (record.get().mDescription.c_str());
233  }
234 
235  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
236  {
237  ESXRecordT record2 = record.get();
238 
239  record2.mDescription = data.toString().toUtf8().constData();
240 
241  record.setModified (record2);
242  }
243 
244  virtual bool isEditable() const
245  {
246  return true;
247  }
248  };
249 
250  template<typename ESXRecordT>
251  struct SpecialisationColumn : public Column<ESXRecordT>
252  {
255  {}
256 
257  virtual QVariant get (const Record<ESXRecordT>& record) const
258  {
259  return record.get().mData.mSpecialization;
260  }
261 
262  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
263  {
264  ESXRecordT record2 = record.get();
265 
266  record2.mData.mSpecialization = data.toInt();
267 
268  record.setModified (record2);
269  }
270 
271  virtual bool isEditable() const
272  {
273  return true;
274  }
275  };
276 
277  template<typename ESXRecordT>
278  struct UseValueColumn : public Column<ESXRecordT>
279  {
280  int mIndex;
281 
282  UseValueColumn (int index)
283  : Column<ESXRecordT> (Columns::ColumnId_UseValue1 + index, ColumnBase::Display_Float),
284  mIndex (index)
285  {}
286 
287  virtual QVariant get (const Record<ESXRecordT>& record) const
288  {
289  return record.get().mData.mUseValue[mIndex];
290  }
291 
292  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
293  {
294  ESXRecordT record2 = record.get();
295 
296  record2.mData.mUseValue[mIndex] = data.toFloat();
297 
298  record.setModified (record2);
299  }
300 
301  virtual bool isEditable() const
302  {
303  return true;
304  }
305  };
306 
307  template<typename ESXRecordT>
308  struct AttributeColumn : public Column<ESXRecordT>
309  {
311  : Column<ESXRecordT> (Columns::ColumnId_Attribute, ColumnBase::Display_Attribute)
312  {}
313 
314  virtual QVariant get (const Record<ESXRecordT>& record) const
315  {
316  return record.get().mData.mAttribute;
317  }
318 
319  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
320  {
321  ESXRecordT record2 = record.get();
322 
323  record2.mData.mAttribute = data.toInt();
324 
325  record.setModified (record2);
326  }
327 
328  virtual bool isEditable() const
329  {
330  return true;
331  }
332  };
333 
334  template<typename ESXRecordT>
335  struct NameColumn : public Column<ESXRecordT>
336  {
337  NameColumn() : Column<ESXRecordT> (Columns::ColumnId_Name, ColumnBase::Display_String) {}
338 
339  virtual QVariant get (const Record<ESXRecordT>& record) const
340  {
341  return QString::fromUtf8 (record.get().mName.c_str());
342  }
343 
344  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
345  {
346  ESXRecordT record2 = record.get();
347 
348  record2.mName = data.toString().toUtf8().constData();
349 
350  record.setModified (record2);
351  }
352 
353  virtual bool isEditable() const
354  {
355  return true;
356  }
357  };
358 
359  template<typename ESXRecordT>
360  struct AttributesColumn : public Column<ESXRecordT>
361  {
362  int mIndex;
363 
364  AttributesColumn (int index)
365  : Column<ESXRecordT> (Columns::ColumnId_Attribute1 + index, ColumnBase::Display_Attribute),
366  mIndex (index)
367  {}
368 
369  virtual QVariant get (const Record<ESXRecordT>& record) const
370  {
371  return record.get().mData.mAttribute[mIndex];
372  }
373 
374  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
375  {
376  ESXRecordT record2 = record.get();
377 
378  record2.mData.mAttribute[mIndex] = data.toInt();
379 
380  record.setModified (record2);
381  }
382 
383  virtual bool isEditable() const
384  {
385  return true;
386  }
387  };
388 
389  template<typename ESXRecordT>
390  struct SkillsColumn : public Column<ESXRecordT>
391  {
392  int mIndex;
393  bool mMajor;
394 
395  SkillsColumn (int index, bool typePrefix = false, bool major = false)
396  : Column<ESXRecordT> ((typePrefix ? (
397  major ? Columns::ColumnId_MajorSkill1 : Columns::ColumnId_MinorSkill1) :
398  Columns::ColumnId_Skill1) + index, ColumnBase::Display_Skill),
399  mIndex (index), mMajor (major)
400  {}
401 
402  virtual QVariant get (const Record<ESXRecordT>& record) const
403  {
404  int skill = record.get().mData.getSkill (mIndex, mMajor);
405 
406  return QString::fromUtf8 (ESM::Skill::indexToId (skill).c_str());
407  }
408 
409  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
410  {
411  std::istringstream stream (data.toString().toUtf8().constData());
412 
413  int index = -1;
414  char c;
415 
416  stream >> c >> index;
417 
418  if (index!=-1)
419  {
420  ESXRecordT record2 = record.get();
421 
422  record2.mData.getSkill (mIndex, mMajor) = index;
423 
424  record.setModified (record2);
425  }
426  }
427 
428  virtual bool isEditable() const
429  {
430  return true;
431  }
432  };
433 
434  template<typename ESXRecordT>
435  struct PlayableColumn : public Column<ESXRecordT>
436  {
438  {}
439 
440  virtual QVariant get (const Record<ESXRecordT>& record) const
441  {
442  return record.get().mData.mIsPlayable!=0;
443  }
444 
445  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
446  {
447  ESXRecordT record2 = record.get();
448 
449  record2.mData.mIsPlayable = data.toInt();
450 
451  record.setModified (record2);
452  }
453 
454  virtual bool isEditable() const
455  {
456  return true;
457  }
458  };
459 
460  template<typename ESXRecordT>
461  struct HiddenColumn : public Column<ESXRecordT>
462  {
464 
465  virtual QVariant get (const Record<ESXRecordT>& record) const
466  {
467  return record.get().mData.mIsHidden!=0;
468  }
469 
470  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
471  {
472  ESXRecordT record2 = record.get();
473 
474  record2.mData.mIsHidden = data.toInt();
475 
476  record.setModified (record2);
477  }
478 
479  virtual bool isEditable() const
480  {
481  return true;
482  }
483  };
484 
485  template<typename ESXRecordT>
486  struct FlagColumn : public Column<ESXRecordT>
487  {
488  int mMask;
489  bool mInverted;
490 
491  FlagColumn (int columnId, int mask,
492  int flags = ColumnBase::Flag_Table | ColumnBase::Flag_Dialogue, bool inverted = false)
493  : Column<ESXRecordT> (columnId, ColumnBase::Display_Boolean, flags), mMask (mask),
494  mInverted (inverted)
495  {}
496 
497  virtual QVariant get (const Record<ESXRecordT>& record) const
498  {
499  bool flag = (record.get().mData.mFlags & mMask)!=0;
500 
501  if (mInverted)
502  flag = !flag;
503 
504  return flag;
505  }
506 
507  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
508  {
509  ESXRecordT record2 = record.get();
510 
511  int flags = record2.mData.mFlags & ~mMask;
512 
513  if ((data.toInt()!=0)!=mInverted)
514  flags |= mMask;
515 
516  record2.mData.mFlags = flags;
517 
518  record.setModified (record2);
519  }
520 
521  virtual bool isEditable() const
522  {
523  return true;
524  }
525  };
526 
527  template<typename ESXRecordT>
528  struct FlagColumn2 : public Column<ESXRecordT>
529  {
530  int mMask;
531  bool mInverted;
532 
533  FlagColumn2 (int columnId, int mask, bool inverted = false)
534  : Column<ESXRecordT> (columnId, ColumnBase::Display_Boolean), mMask (mask),
535  mInverted (inverted)
536  {}
537 
538  virtual QVariant get (const Record<ESXRecordT>& record) const
539  {
540  bool flag = (record.get().mFlags & mMask)!=0;
541 
542  if (mInverted)
543  flag = !flag;
544 
545  return flag;
546  }
547 
548  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
549  {
550  ESXRecordT record2 = record.get();
551 
552  int flags = record2.mFlags & ~mMask;
553 
554  if ((data.toInt()!=0)!=mInverted)
555  flags |= mMask;
556 
557  record2.mFlags = flags;
558 
559  record.setModified (record2);
560  }
561 
562  virtual bool isEditable() const
563  {
564  return true;
565  }
566  };
567 
568  template<typename ESXRecordT>
569  struct WeightHeightColumn : public Column<ESXRecordT>
570  {
571  bool mMale;
572  bool mWeight;
573 
574  WeightHeightColumn (bool male, bool weight)
575  : Column<ESXRecordT> (male ?
576  (weight ? Columns::ColumnId_MaleWeight : Columns::ColumnId_MaleHeight) :
577  (weight ? Columns::ColumnId_FemaleWeight : Columns::ColumnId_FemaleHeight),
579  mMale (male), mWeight (weight)
580  {}
581 
582  virtual QVariant get (const Record<ESXRecordT>& record) const
583  {
584  const ESM::Race::MaleFemaleF& value =
585  mWeight ? record.get().mData.mWeight : record.get().mData.mHeight;
586 
587  return mMale ? value.mMale : value.mFemale;
588  }
589 
590  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
591  {
592  ESXRecordT record2 = record.get();
593 
594  ESM::Race::MaleFemaleF& value =
595  mWeight ? record2.mData.mWeight : record2.mData.mHeight;
596 
597  (mMale ? value.mMale : value.mFemale) = data.toFloat();
598 
599  record.setModified (record2);
600  }
601 
602  virtual bool isEditable() const
603  {
604  return true;
605  }
606  };
607 
608  template<typename ESXRecordT>
609  struct SoundParamColumn : public Column<ESXRecordT>
610  {
611  enum Type
612  {
616  };
617 
619 
621  : Column<ESXRecordT> (type==Type_Volume ? Columns::ColumnId_Volume :
622  (type==Type_MinRange ? Columns::ColumnId_MinRange : Columns::ColumnId_MaxRange),
624  mType (type)
625  {}
626 
627  virtual QVariant get (const Record<ESXRecordT>& record) const
628  {
629  int value = 0;
630 
631  switch (mType)
632  {
633  case Type_Volume: value = record.get().mData.mVolume; break;
634  case Type_MinRange: value = record.get().mData.mMinRange; break;
635  case Type_MaxRange: value = record.get().mData.mMaxRange; break;
636  }
637 
638  return value;
639  }
640 
641  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
642  {
643  int value = data.toInt();
644 
645  if (value<0)
646  value = 0;
647  else if (value>255)
648  value = 255;
649 
650  ESXRecordT record2 = record.get();
651 
652  switch (mType)
653  {
654  case Type_Volume: record2.mData.mVolume = static_cast<unsigned char> (value); break;
655  case Type_MinRange: record2.mData.mMinRange = static_cast<unsigned char> (value); break;
656  case Type_MaxRange: record2.mData.mMaxRange = static_cast<unsigned char> (value); break;
657  }
658 
659  record.setModified (record2);
660  }
661 
662  virtual bool isEditable() const
663  {
664  return true;
665  }
666  };
667 
668  template<typename ESXRecordT>
669  struct SoundFileColumn : public Column<ESXRecordT>
670  {
672  : Column<ESXRecordT> (Columns::ColumnId_SoundFile, ColumnBase::Display_SoundRes)
673  {}
674 
675  virtual QVariant get (const Record<ESXRecordT>& record) const
676  {
677  return QString::fromUtf8 (record.get().mSound.c_str());
678  }
679 
680  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
681  {
682  ESXRecordT record2 = record.get();
683 
684  record2.mSound = data.toString().toUtf8().constData();
685 
686  record.setModified (record2);
687  }
688 
689  virtual bool isEditable() const
690  {
691  return true;
692  }
693  };
694 
695  template<typename ESXRecordT>
696  struct MapColourColumn : public Column<ESXRecordT>
697  {
699  : Column<ESXRecordT> (Columns::ColumnId_MapColour, ColumnBase::Display_Colour)
700  {}
701 
702  virtual QVariant get (const Record<ESXRecordT>& record) const
703  {
704  return record.get().mMapColor;
705  }
706 
707  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
708  {
709  ESXRecordT copy = record.get();
710  copy.mMapColor = data.toInt();
711  record.setModified (copy);
712  }
713 
714  virtual bool isEditable() const
715  {
716  return true;
717  }
718  };
719 
720  template<typename ESXRecordT>
721  struct SleepListColumn : public Column<ESXRecordT>
722  {
725  {}
726 
727  virtual QVariant get (const Record<ESXRecordT>& record) const
728  {
729  return QString::fromUtf8 (record.get().mSleepList.c_str());
730  }
731 
732  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
733  {
734  ESXRecordT record2 = record.get();
735 
736  record2.mSleepList = data.toString().toUtf8().constData();
737 
738  record.setModified (record2);
739  }
740 
741  virtual bool isEditable() const
742  {
743  return true;
744  }
745  };
746 
747  template<typename ESXRecordT>
748  struct TextureColumn : public Column<ESXRecordT>
749  {
751 
752  virtual QVariant get (const Record<ESXRecordT>& record) const
753  {
754  return QString::fromUtf8 (record.get().mTexture.c_str());
755  }
756 
757  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
758  {
759  ESXRecordT record2 = record.get();
760 
761  record2.mTexture = data.toString().toUtf8().constData();
762 
763  record.setModified (record2);
764  }
765 
766  virtual bool isEditable() const
767  {
768  return true;
769  }
770  };
771 
772  template<typename ESXRecordT>
773  struct SpellTypeColumn : public Column<ESXRecordT>
774  {
776  : Column<ESXRecordT> (Columns::ColumnId_SpellType, ColumnBase::Display_SpellType)
777  {}
778 
779  virtual QVariant get (const Record<ESXRecordT>& record) const
780  {
781  return record.get().mData.mType;
782  }
783 
784  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
785  {
786  ESXRecordT record2 = record.get();
787 
788  record2.mData.mType = data.toInt();
789 
790  record.setModified (record2);
791  }
792 
793  virtual bool isEditable() const
794  {
795  return true;
796  }
797  };
798 
799  template<typename ESXRecordT>
800  struct CostColumn : public Column<ESXRecordT>
801  {
802  CostColumn() : Column<ESXRecordT> (Columns::ColumnId_Cost, ColumnBase::Display_Integer) {}
803 
804  virtual QVariant get (const Record<ESXRecordT>& record) const
805  {
806  return record.get().mData.mCost;
807  }
808 
809  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
810  {
811  ESXRecordT record2 = record.get();
812  record2.mData.mCost = data.toInt();
813  record.setModified (record2);
814  }
815 
816  virtual bool isEditable() const
817  {
818  return true;
819  }
820  };
821 
822  template<typename ESXRecordT>
823  struct ScriptColumn : public Column<ESXRecordT>
824  {
825  enum Type
826  {
827  Type_File, // regular script record
828  Type_Lines, // console context
829  Type_Info // dialogue context (not implemented yet)
830  };
831 
833  : Column<ESXRecordT> (Columns::ColumnId_ScriptText,
835  type==Type_File ? 0 : ColumnBase::Flag_Dialogue)
836  {}
837 
838  virtual QVariant get (const Record<ESXRecordT>& record) const
839  {
840  return QString::fromUtf8 (record.get().mScriptText.c_str());
841  }
842 
843  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
844  {
845  ESXRecordT record2 = record.get();
846 
847  record2.mScriptText = data.toString().toUtf8().constData();
848 
849  record.setModified (record2);
850  }
851 
852  virtual bool isEditable() const
853  {
854  return true;
855  }
856  };
857 
858  template<typename ESXRecordT>
859  struct RegionColumn : public Column<ESXRecordT>
860  {
862 
863  virtual QVariant get (const Record<ESXRecordT>& record) const
864  {
865  return QString::fromUtf8 (record.get().mRegion.c_str());
866  }
867 
868  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
869  {
870  ESXRecordT record2 = record.get();
871 
872  record2.mRegion = data.toString().toUtf8().constData();
873 
874  record.setModified (record2);
875  }
876 
877  virtual bool isEditable() const
878  {
879  return true;
880  }
881  };
882 
883  template<typename ESXRecordT>
884  struct CellColumn : public Column<ESXRecordT>
885  {
886  bool mBlocked;
887 
889  CellColumn (bool blocked = false)
890  : Column<ESXRecordT> (Columns::ColumnId_Cell, ColumnBase::Display_Cell),
891  mBlocked (blocked)
892  {}
893 
894  virtual QVariant get (const Record<ESXRecordT>& record) const
895  {
896  return QString::fromUtf8 (record.get().mCell.c_str());
897  }
898 
899  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
900  {
901  ESXRecordT record2 = record.get();
902 
903  record2.mCell = data.toString().toUtf8().constData();
904 
905  record.setModified (record2);
906  }
907 
908  virtual bool isEditable() const
909  {
910  return true;
911  }
912 
913  virtual bool isUserEditable() const
914  {
915  return !mBlocked;
916  }
917  };
918 
919  template<typename ESXRecordT>
920  struct OriginalCellColumn : public Column<ESXRecordT>
921  {
923  : Column<ESXRecordT> (Columns::ColumnId_OriginalCell, ColumnBase::Display_Cell)
924  {}
925 
926  virtual QVariant get (const Record<ESXRecordT>& record) const
927  {
928  return QString::fromUtf8 (record.get().mOriginalCell.c_str());
929  }
930 
931  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
932  {
933  ESXRecordT record2 = record.get();
934 
935  record2.mOriginalCell = data.toString().toUtf8().constData();
936 
937  record.setModified (record2);
938  }
939 
940  virtual bool isEditable() const
941  {
942  return true;
943  }
944 
945  virtual bool isUserEditable() const
946  {
947  return false;
948  }
949  };
950 
951  template<typename ESXRecordT>
952  struct IdColumn : public Column<ESXRecordT>
953  {
954  IdColumn() : Column<ESXRecordT> (Columns::ColumnId_ReferenceableId,
956 
957  virtual QVariant get (const Record<ESXRecordT>& record) const
958  {
959  return QString::fromUtf8 (record.get().mRefID.c_str());
960  }
961 
962  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
963  {
964  ESXRecordT record2 = record.get();
965 
966  record2.mRefID = data.toString().toUtf8().constData();
967 
968  record.setModified (record2);
969  }
970 
971  virtual bool isEditable() const
972  {
973  return true;
974  }
975  };
976 
977  template<typename ESXRecordT>
978  struct ScaleColumn : public Column<ESXRecordT>
979  {
980  ScaleColumn() : Column<ESXRecordT> (Columns::ColumnId_Scale, ColumnBase::Display_Float) {}
981 
982  virtual QVariant get (const Record<ESXRecordT>& record) const
983  {
984  return record.get().mScale;
985  }
986 
987  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
988  {
989  ESXRecordT record2 = record.get();
990  record2.mScale = data.toFloat();
991  record.setModified (record2);
992  }
993 
994  virtual bool isEditable() const
995  {
996  return true;
997  }
998  };
999 
1000  template<typename ESXRecordT>
1001  struct OwnerColumn : public Column<ESXRecordT>
1002  {
1003  OwnerColumn() : Column<ESXRecordT> (Columns::ColumnId_Owner, ColumnBase::Display_Npc) {}
1004 
1005  virtual QVariant get (const Record<ESXRecordT>& record) const
1006  {
1007  return QString::fromUtf8 (record.get().mOwner.c_str());
1008  }
1009 
1010  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1011  {
1012  ESXRecordT record2 = record.get();
1013 
1014  record2.mOwner = data.toString().toUtf8().constData();
1015 
1016  record.setModified (record2);
1017  }
1018 
1019  virtual bool isEditable() const
1020  {
1021  return true;
1022  }
1023  };
1024 
1025  template<typename ESXRecordT>
1026  struct SoulColumn : public Column<ESXRecordT>
1027  {
1029 
1030  virtual QVariant get (const Record<ESXRecordT>& record) const
1031  {
1032  return QString::fromUtf8 (record.get().mSoul.c_str());
1033  }
1034 
1035  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1036  {
1037  ESXRecordT record2 = record.get();
1038 
1039  record2.mSoul = data.toString().toUtf8().constData();
1040 
1041  record.setModified (record2);
1042  }
1043 
1044  virtual bool isEditable() const
1045  {
1046  return true;
1047  }
1048  };
1049 
1050  template<typename ESXRecordT>
1051  struct FactionColumn : public Column<ESXRecordT>
1052  {
1054 
1055  virtual QVariant get (const Record<ESXRecordT>& record) const
1056  {
1057  return QString::fromUtf8 (record.get().mFaction.c_str());
1058  }
1059 
1060  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1061  {
1062  ESXRecordT record2 = record.get();
1063 
1064  record2.mFaction = data.toString().toUtf8().constData();
1065 
1066  record.setModified (record2);
1067  }
1068 
1069  virtual bool isEditable() const
1070  {
1071  return true;
1072  }
1073  };
1074 
1075  template<typename ESXRecordT>
1076  struct FactionIndexColumn : public Column<ESXRecordT>
1077  {
1079  : Column<ESXRecordT> (Columns::ColumnId_FactionIndex, ColumnBase::Display_Integer)
1080  {}
1081 
1082  virtual QVariant get (const Record<ESXRecordT>& record) const
1083  {
1084  return record.get().mFactionRank;
1085  }
1086 
1087  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1088  {
1089  ESXRecordT record2 = record.get();
1090  record2.mFactionRank = data.toInt();
1091  record.setModified (record2);
1092  }
1093 
1094  virtual bool isEditable() const
1095  {
1096  return true;
1097  }
1098  };
1099 
1100  template<typename ESXRecordT>
1101  struct ChargesColumn : public Column<ESXRecordT>
1102  {
1104 
1105  virtual QVariant get (const Record<ESXRecordT>& record) const
1106  {
1107  return record.get().mChargeInt;
1108  }
1109 
1110  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1111  {
1112  ESXRecordT record2 = record.get();
1113  record2.mChargeInt = data.toInt();
1114  record.setModified (record2);
1115  }
1116 
1117  virtual bool isEditable() const
1118  {
1119  return true;
1120  }
1121  };
1122 
1123  template<typename ESXRecordT>
1124  struct EnchantmentChargesColumn : public Column<ESXRecordT>
1125  {
1127  : Column<ESXRecordT> (Columns::ColumnId_Enchantment, ColumnBase::Display_Float)
1128  {}
1129 
1130  virtual QVariant get (const Record<ESXRecordT>& record) const
1131  {
1132  return record.get().mEnchantmentCharge;
1133  }
1134 
1135  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1136  {
1137  ESXRecordT record2 = record.get();
1138  record2.mEnchantmentCharge = data.toFloat();
1139  record.setModified (record2);
1140  }
1141 
1142  virtual bool isEditable() const
1143  {
1144  return true;
1145  }
1146  };
1147 
1148  template<typename ESXRecordT>
1149  struct GoldValueColumn : public Column<ESXRecordT>
1150  {
1152  : Column<ESXRecordT> (Columns::ColumnId_CoinValue, ColumnBase::Display_Integer) {}
1153 
1154  virtual QVariant get (const Record<ESXRecordT>& record) const
1155  {
1156  return record.get().mGoldValue;
1157  }
1158 
1159  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1160  {
1161  ESXRecordT record2 = record.get();
1162  record2.mGoldValue = data.toInt();
1163  record.setModified (record2);
1164  }
1165 
1166  virtual bool isEditable() const
1167  {
1168  return true;
1169  }
1170  };
1171 
1172  template<typename ESXRecordT>
1173  struct TeleportColumn : public Column<ESXRecordT>
1174  {
1176  : Column<ESXRecordT> (Columns::ColumnId_Teleport, ColumnBase::Display_Boolean)
1177  {}
1178 
1179  virtual QVariant get (const Record<ESXRecordT>& record) const
1180  {
1181  return record.get().mTeleport;
1182  }
1183 
1184  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1185  {
1186  ESXRecordT record2 = record.get();
1187 
1188  record2.mTeleport = data.toInt();
1189 
1190  record.setModified (record2);
1191  }
1192 
1193  virtual bool isEditable() const
1194  {
1195  return true;
1196  }
1197  };
1198 
1199  template<typename ESXRecordT>
1200  struct TeleportCellColumn : public Column<ESXRecordT>
1201  {
1203  : Column<ESXRecordT> (Columns::ColumnId_TeleportCell, ColumnBase::Display_Cell)
1204  {}
1205 
1206  virtual QVariant get (const Record<ESXRecordT>& record) const
1207  {
1208  return QString::fromUtf8 (record.get().mDestCell.c_str());
1209  }
1210 
1211  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1212  {
1213  ESXRecordT record2 = record.get();
1214 
1215  record2.mDestCell = data.toString().toUtf8().constData();
1216 
1217  record.setModified (record2);
1218  }
1219 
1220  virtual bool isEditable() const
1221  {
1222  return true;
1223  }
1224 
1225  virtual bool isUserEditable() const
1226  {
1227  return true;
1228  }
1229  };
1230 
1231  template<typename ESXRecordT>
1232  struct LockLevelColumn : public Column<ESXRecordT>
1233  {
1235  : Column<ESXRecordT> (Columns::ColumnId_LockLevel, ColumnBase::Display_Integer)
1236  {}
1237 
1238  virtual QVariant get (const Record<ESXRecordT>& record) const
1239  {
1240  return record.get().mLockLevel;
1241  }
1242 
1243  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1244  {
1245  ESXRecordT record2 = record.get();
1246  record2.mLockLevel = data.toInt();
1247  record.setModified (record2);
1248  }
1249 
1250  virtual bool isEditable() const
1251  {
1252  return true;
1253  }
1254  };
1255 
1256  template<typename ESXRecordT>
1257  struct KeyColumn : public Column<ESXRecordT>
1258  {
1260 
1261  virtual QVariant get (const Record<ESXRecordT>& record) const
1262  {
1263  return QString::fromUtf8 (record.get().mKey.c_str());
1264  }
1265 
1266  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1267  {
1268  ESXRecordT record2 = record.get();
1269 
1270  record2.mKey = data.toString().toUtf8().constData();
1271 
1272  record.setModified (record2);
1273  }
1274 
1275  virtual bool isEditable() const
1276  {
1277  return true;
1278  }
1279  };
1280 
1281  template<typename ESXRecordT>
1282  struct TrapColumn : public Column<ESXRecordT>
1283  {
1284  TrapColumn() : Column<ESXRecordT> (Columns::ColumnId_Trap, ColumnBase::Display_Spell) {}
1285 
1286  virtual QVariant get (const Record<ESXRecordT>& record) const
1287  {
1288  return QString::fromUtf8 (record.get().mTrap.c_str());
1289  }
1290 
1291  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1292  {
1293  ESXRecordT record2 = record.get();
1294 
1295  record2.mTrap = data.toString().toUtf8().constData();
1296 
1297  record.setModified (record2);
1298  }
1299 
1300  virtual bool isEditable() const
1301  {
1302  return true;
1303  }
1304  };
1305 
1306  template<typename ESXRecordT>
1307  struct FilterColumn : public Column<ESXRecordT>
1308  {
1310 
1311  virtual QVariant get (const Record<ESXRecordT>& record) const
1312  {
1313  return QString::fromUtf8 (record.get().mFilter.c_str());
1314  }
1315 
1316  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1317  {
1318  ESXRecordT record2 = record.get();
1319 
1320  record2.mFilter = data.toString().toUtf8().constData();
1321 
1322  record.setModified (record2);
1323  }
1324 
1325  virtual bool isEditable() const
1326  {
1327  return true;
1328  }
1329  };
1330 
1331  template<typename ESXRecordT>
1332  struct PosColumn : public Column<ESXRecordT>
1333  {
1334  ESM::Position ESXRecordT::* mPosition;
1335  int mIndex;
1336 
1337  PosColumn (ESM::Position ESXRecordT::* position, int index, bool door)
1338  : Column<ESXRecordT> (
1339  (door ? Columns::ColumnId_DoorPositionXPos : Columns::ColumnId_PositionXPos)+index,
1340  ColumnBase::Display_Float), mPosition (position), mIndex (index) {}
1341 
1342  virtual QVariant get (const Record<ESXRecordT>& record) const
1343  {
1344  const ESM::Position& position = record.get().*mPosition;
1345  return position.pos[mIndex];
1346  }
1347 
1348  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1349  {
1350  ESXRecordT record2 = record.get();
1351 
1352  ESM::Position& position = record2.*mPosition;
1353 
1354  position.pos[mIndex] = data.toFloat();
1355 
1356  record.setModified (record2);
1357  }
1358 
1359  virtual bool isEditable() const
1360  {
1361  return true;
1362  }
1363  };
1364 
1365  template<typename ESXRecordT>
1366  struct RotColumn : public Column<ESXRecordT>
1367  {
1368  ESM::Position ESXRecordT::* mPosition;
1369  int mIndex;
1370 
1371  RotColumn (ESM::Position ESXRecordT::* position, int index, bool door)
1372  : Column<ESXRecordT> (
1373  (door ? Columns::ColumnId_DoorPositionXRot : Columns::ColumnId_PositionXRot)+index,
1374  ColumnBase::Display_Double), mPosition (position), mIndex (index) {}
1375 
1376  virtual QVariant get (const Record<ESXRecordT>& record) const
1377  {
1378  const ESM::Position& position = record.get().*mPosition;
1379  return position.rot[mIndex];
1380  }
1381 
1382  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1383  {
1384  ESXRecordT record2 = record.get();
1385 
1386  ESM::Position& position = record2.*mPosition;
1387 
1388  position.rot[mIndex] = data.toFloat();
1389 
1390  record.setModified (record2);
1391  }
1392 
1393  virtual bool isEditable() const
1394  {
1395  return true;
1396  }
1397  };
1398 
1399  template<typename ESXRecordT>
1400  struct DialogueTypeColumn : public Column<ESXRecordT>
1401  {
1402  DialogueTypeColumn (bool hidden = false)
1403  : Column<ESXRecordT> (Columns::ColumnId_DialogueType, ColumnBase::Display_DialogueType,
1404  hidden ? 0 : ColumnBase::Flag_Table | ColumnBase::Flag_Dialogue)
1405  {}
1406 
1407  virtual QVariant get (const Record<ESXRecordT>& record) const
1408  {
1409  return static_cast<int> (record.get().mType);
1410  }
1411 
1412  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1413  {
1414  ESXRecordT record2 = record.get();
1415 
1416  record2.mType = data.toInt();
1417 
1418  record.setModified (record2);
1419  }
1420 
1421  virtual bool isEditable() const
1422  {
1423  return true;
1424  }
1425 
1426  virtual bool isUserEditable() const
1427  {
1428  return false;
1429  }
1430  };
1431 
1432  template<typename ESXRecordT>
1433  struct QuestStatusTypeColumn : public Column<ESXRecordT>
1434  {
1437  {}
1438 
1439  virtual QVariant get (const Record<ESXRecordT>& record) const
1440  {
1441  return static_cast<int> (record.get().mQuestStatus);
1442  }
1443 
1444  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1445  {
1446  ESXRecordT record2 = record.get();
1447 
1448  record2.mQuestStatus = static_cast<Info::QuestStatus> (data.toInt());
1449 
1450  record.setModified (record2);
1451  }
1452 
1453  virtual bool isEditable() const
1454  {
1455  return true;
1456  }
1457  };
1458 
1459  template<typename ESXRecordT>
1460  struct QuestDescriptionColumn : public Column<ESXRecordT>
1461  {
1463 
1464  virtual QVariant get (const Record<ESXRecordT>& record) const
1465  {
1466  return QString::fromUtf8 (record.get().mResponse.c_str());
1467  }
1468 
1469  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1470  {
1471  ESXRecordT record2 = record.get();
1472 
1473  record2.mResponse = data.toString().toUtf8().constData();
1474 
1475  record.setModified (record2);
1476  }
1477 
1478  virtual bool isEditable() const
1479  {
1480  return true;
1481  }
1482  };
1483 
1484  template<typename ESXRecordT>
1485  struct QuestIndexColumn : public Column<ESXRecordT>
1486  {
1488  : Column<ESXRecordT> (Columns::ColumnId_QuestIndex, ColumnBase::Display_Integer)
1489  {}
1490 
1491  virtual QVariant get (const Record<ESXRecordT>& record) const
1492  {
1493  return record.get().mData.mDisposition;
1494  }
1495 
1496  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1497  {
1498  ESXRecordT record2 = record.get();
1499  record2.mData.mDisposition = data.toInt();
1500  record.setModified (record2);
1501  }
1502 
1503  virtual bool isEditable() const
1504  {
1505  return true;
1506  }
1507  };
1508 
1509  template<typename ESXRecordT>
1510  struct TopicColumn : public Column<ESXRecordT>
1511  {
1512  TopicColumn (bool journal)
1513  : Column<ESXRecordT> (journal ? Columns::ColumnId_Journal : Columns::ColumnId_Topic,
1515  {}
1516 
1517  virtual QVariant get (const Record<ESXRecordT>& record) const
1518  {
1519  return QString::fromUtf8 (record.get().mTopicId.c_str());
1520  }
1521 
1522  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1523  {
1524  ESXRecordT record2 = record.get();
1525 
1526  record2.mTopicId = data.toString().toUtf8().constData();
1527 
1528  record.setModified (record2);
1529  }
1530 
1531  virtual bool isEditable() const
1532  {
1533  return true;
1534  }
1535 
1536  virtual bool isUserEditable() const
1537  {
1538  return false;
1539  }
1540  };
1541 
1542  template<typename ESXRecordT>
1543  struct ActorColumn : public Column<ESXRecordT>
1544  {
1545  ActorColumn() : Column<ESXRecordT> (Columns::ColumnId_Actor, ColumnBase::Display_Npc) {}
1546 
1547  virtual QVariant get (const Record<ESXRecordT>& record) const
1548  {
1549  return QString::fromUtf8 (record.get().mActor.c_str());
1550  }
1551 
1552  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1553  {
1554  ESXRecordT record2 = record.get();
1555 
1556  record2.mActor = data.toString().toUtf8().constData();
1557 
1558  record.setModified (record2);
1559  }
1560 
1561  virtual bool isEditable() const
1562  {
1563  return true;
1564  }
1565  };
1566 
1567  template<typename ESXRecordT>
1568  struct RaceColumn : public Column<ESXRecordT>
1569  {
1570  RaceColumn() : Column<ESXRecordT> (Columns::ColumnId_Race, ColumnBase::Display_Race) {}
1571 
1572  virtual QVariant get (const Record<ESXRecordT>& record) const
1573  {
1574  return QString::fromUtf8 (record.get().mRace.c_str());
1575  }
1576 
1577  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1578  {
1579  ESXRecordT record2 = record.get();
1580 
1581  record2.mRace = data.toString().toUtf8().constData();
1582 
1583  record.setModified (record2);
1584  }
1585 
1586  virtual bool isEditable() const
1587  {
1588  return true;
1589  }
1590  };
1591 
1592  template<typename ESXRecordT>
1593  struct ClassColumn : public Column<ESXRecordT>
1594  {
1596 
1597  virtual QVariant get (const Record<ESXRecordT>& record) const
1598  {
1599  return QString::fromUtf8 (record.get().mClass.c_str());
1600  }
1601 
1602  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1603  {
1604  ESXRecordT record2 = record.get();
1605 
1606  record2.mClass = data.toString().toUtf8().constData();
1607 
1608  record.setModified (record2);
1609  }
1610 
1611  virtual bool isEditable() const
1612  {
1613  return true;
1614  }
1615  };
1616 
1617  template<typename ESXRecordT>
1618  struct PcFactionColumn : public Column<ESXRecordT>
1619  {
1621 
1622  virtual QVariant get (const Record<ESXRecordT>& record) const
1623  {
1624  return QString::fromUtf8 (record.get().mPcFaction.c_str());
1625  }
1626 
1627  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1628  {
1629  ESXRecordT record2 = record.get();
1630 
1631  record2.mPcFaction = data.toString().toUtf8().constData();
1632 
1633  record.setModified (record2);
1634  }
1635 
1636  virtual bool isEditable() const
1637  {
1638  return true;
1639  }
1640  };
1641 
1642  template<typename ESXRecordT>
1643  struct ResponseColumn : public Column<ESXRecordT>
1644  {
1646 
1647  virtual QVariant get (const Record<ESXRecordT>& record) const
1648  {
1649  return QString::fromUtf8 (record.get().mResponse.c_str());
1650  }
1651 
1652  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1653  {
1654  ESXRecordT record2 = record.get();
1655 
1656  record2.mResponse = data.toString().toUtf8().constData();
1657 
1658  record.setModified (record2);
1659  }
1660 
1661  virtual bool isEditable() const
1662  {
1663  return true;
1664  }
1665  };
1666 
1667  template<typename ESXRecordT>
1668  struct DispositionColumn : public Column<ESXRecordT>
1669  {
1671  : Column<ESXRecordT> (Columns::ColumnId_Disposition, ColumnBase::Display_Integer)
1672  {}
1673 
1674  virtual QVariant get (const Record<ESXRecordT>& record) const
1675  {
1676  return record.get().mData.mDisposition;
1677  }
1678 
1679  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1680  {
1681  ESXRecordT record2 = record.get();
1682  record2.mData.mDisposition = data.toInt();
1683  record.setModified (record2);
1684  }
1685 
1686  virtual bool isEditable() const
1687  {
1688  return true;
1689  }
1690  };
1691 
1692  template<typename ESXRecordT>
1693  struct RankColumn : public Column<ESXRecordT>
1694  {
1696  : Column<ESXRecordT> (Columns::ColumnId_Rank, ColumnBase::Display_Integer)
1697  {}
1698 
1699  virtual QVariant get (const Record<ESXRecordT>& record) const
1700  {
1701  return static_cast<int> (record.get().mData.mRank);
1702  }
1703 
1704  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1705  {
1706  ESXRecordT record2 = record.get();
1707  record2.mData.mRank = static_cast<signed char> (data.toInt());
1708  record.setModified (record2);
1709  }
1710 
1711  virtual bool isEditable() const
1712  {
1713  return true;
1714  }
1715  };
1716 
1717  template<typename ESXRecordT>
1718  struct PcRankColumn : public Column<ESXRecordT>
1719  {
1721  : Column<ESXRecordT> (Columns::ColumnId_PcRank, ColumnBase::Display_Integer)
1722  {}
1723 
1724  virtual QVariant get (const Record<ESXRecordT>& record) const
1725  {
1726  return static_cast<int> (record.get().mData.mPCrank);
1727  }
1728 
1729  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1730  {
1731  ESXRecordT record2 = record.get();
1732  record2.mData.mPCrank = static_cast<signed char> (data.toInt());
1733  record.setModified (record2);
1734  }
1735 
1736  virtual bool isEditable() const
1737  {
1738  return true;
1739  }
1740  };
1741 
1742  template<typename ESXRecordT>
1743  struct GenderColumn : public Column<ESXRecordT>
1744  {
1746  : Column<ESXRecordT> (Columns::ColumnId_Gender, ColumnBase::Display_Gender)
1747  {}
1748 
1749  virtual QVariant get (const Record<ESXRecordT>& record) const
1750  {
1751  return static_cast<int> (record.get().mData.mGender);
1752  }
1753 
1754  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1755  {
1756  ESXRecordT record2 = record.get();
1757 
1758  record2.mData.mGender = data.toInt();
1759 
1760  record.setModified (record2);
1761  }
1762 
1763  virtual bool isEditable() const
1764  {
1765  return true;
1766  }
1767  };
1768 
1769  template<typename ESXRecordT>
1770  struct GenderNpcColumn : public Column<ESXRecordT>
1771  {
1773  : Column<ESXRecordT>(Columns::ColumnId_GenderNpc, ColumnBase::Display_GenderNpc)
1774  {}
1775 
1776  virtual QVariant get(const Record<ESXRecordT>& record) const
1777  {
1778  // Implemented this way to allow additional gender types in the future.
1779  if ((record.get().mData.mFlags & ESM::BodyPart::BPF_Female) == ESM::BodyPart::BPF_Female)
1780  return 1;
1781 
1782  return 0;
1783  }
1784 
1785  virtual void set(Record<ESXRecordT>& record, const QVariant& data)
1786  {
1787  ESXRecordT record2 = record.get();
1788 
1789  // Implemented this way to allow additional gender types in the future.
1790  if (data.toInt() == 1)
1791  record2.mData.mFlags = (record2.mData.mFlags & ~ESM::BodyPart::BPF_Female) | ESM::BodyPart::BPF_Female;
1792  else
1793  record2.mData.mFlags = record2.mData.mFlags & ~ESM::BodyPart::BPF_Female;
1794 
1795  record.setModified(record2);
1796  }
1797 
1798  virtual bool isEditable() const
1799  {
1800  return true;
1801  }
1802  };
1803 
1804  template<typename ESXRecordT>
1805  struct EnchantmentTypeColumn : public Column<ESXRecordT>
1806  {
1809  {}
1810 
1811  virtual QVariant get (const Record<ESXRecordT>& record) const
1812  {
1813  return static_cast<int> (record.get().mData.mType);
1814  }
1815 
1816  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1817  {
1818  ESXRecordT record2 = record.get();
1819 
1820  record2.mData.mType = data.toInt();
1821 
1822  record.setModified (record2);
1823  }
1824 
1825  virtual bool isEditable() const
1826  {
1827  return true;
1828  }
1829  };
1830 
1831  template<typename ESXRecordT>
1832  struct ChargesColumn2 : public Column<ESXRecordT>
1833  {
1835 
1836  virtual QVariant get (const Record<ESXRecordT>& record) const
1837  {
1838  return record.get().mData.mCharge;
1839  }
1840 
1841  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1842  {
1843  ESXRecordT record2 = record.get();
1844  record2.mData.mCharge = data.toInt();
1845  record.setModified (record2);
1846  }
1847 
1848  virtual bool isEditable() const
1849  {
1850  return true;
1851  }
1852  };
1853 
1854  template<typename ESXRecordT>
1855  struct AutoCalcColumn : public Column<ESXRecordT>
1856  {
1858  {}
1859 
1860  virtual QVariant get (const Record<ESXRecordT>& record) const
1861  {
1862  return record.get().mData.mAutocalc!=0;
1863  }
1864 
1865  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1866  {
1867  ESXRecordT record2 = record.get();
1868 
1869  record2.mData.mAutocalc = data.toInt();
1870 
1871  record.setModified (record2);
1872  }
1873 
1874  virtual bool isEditable() const
1875  {
1876  return true;
1877  }
1878  };
1879 
1880  template<typename ESXRecordT>
1881  struct ModelColumn : public Column<ESXRecordT>
1882  {
1883  ModelColumn() : Column<ESXRecordT> (Columns::ColumnId_Model, ColumnBase::Display_Mesh) {}
1884 
1885  virtual QVariant get (const Record<ESXRecordT>& record) const
1886  {
1887  return QString::fromUtf8 (record.get().mModel.c_str());
1888  }
1889 
1890  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1891  {
1892  ESXRecordT record2 = record.get();
1893 
1894  record2.mModel = data.toString().toUtf8().constData();
1895 
1896  record.setModified (record2);
1897  }
1898 
1899  virtual bool isEditable() const
1900  {
1901  return true;
1902  }
1903  };
1904 
1905  template<typename ESXRecordT>
1906  struct VampireColumn : public Column<ESXRecordT>
1907  {
1909  {}
1910 
1911  virtual QVariant get (const Record<ESXRecordT>& record) const
1912  {
1913  return record.get().mData.mVampire!=0;
1914  }
1915 
1916  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1917  {
1918  ESXRecordT record2 = record.get();
1919 
1920  record2.mData.mVampire = data.toInt();
1921 
1922  record.setModified (record2);
1923  }
1924 
1925  virtual bool isEditable() const
1926  {
1927  return true;
1928  }
1929  };
1930 
1931  template<typename ESXRecordT>
1932  struct BodyPartTypeColumn : public Column<ESXRecordT>
1933  {
1935  : Column<ESXRecordT> (Columns::ColumnId_BodyPartType, ColumnBase::Display_BodyPartType)
1936  {}
1937 
1938  virtual QVariant get (const Record<ESXRecordT>& record) const
1939  {
1940  return static_cast<int> (record.get().mData.mPart);
1941  }
1942 
1943  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1944  {
1945  ESXRecordT record2 = record.get();
1946 
1947  record2.mData.mPart = data.toInt();
1948 
1949  record.setModified (record2);
1950  }
1951 
1952  virtual bool isEditable() const
1953  {
1954  return true;
1955  }
1956  };
1957 
1958  template<typename ESXRecordT>
1959  struct MeshTypeColumn : public Column<ESXRecordT>
1960  {
1962  : Column<ESXRecordT> (Columns::ColumnId_MeshType, ColumnBase::Display_MeshType, flags)
1963  {}
1964 
1965  virtual QVariant get (const Record<ESXRecordT>& record) const
1966  {
1967  return static_cast<int> (record.get().mData.mType);
1968  }
1969 
1970  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1971  {
1972  ESXRecordT record2 = record.get();
1973 
1974  record2.mData.mType = data.toInt();
1975 
1976  record.setModified (record2);
1977  }
1978 
1979  virtual bool isEditable() const
1980  {
1981  return true;
1982  }
1983  };
1984 
1985  template<typename ESXRecordT>
1986  struct OwnerGlobalColumn : public Column<ESXRecordT>
1987  {
1990  {}
1991 
1992  virtual QVariant get (const Record<ESXRecordT>& record) const
1993  {
1994  return QString::fromUtf8 (record.get().mGlobalVariable.c_str());
1995  }
1996 
1997  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
1998  {
1999  ESXRecordT record2 = record.get();
2000 
2001  record2.mGlobalVariable = data.toString().toUtf8().constData();
2002 
2003  record.setModified (record2);
2004  }
2005 
2006  virtual bool isEditable() const
2007  {
2008  return true;
2009  }
2010  };
2011 
2012  template<typename ESXRecordT>
2013  struct RefNumCounterColumn : public Column<ESXRecordT>
2014  {
2016  : Column<ESXRecordT> (Columns::ColumnId_RefNumCounter, ColumnBase::Display_Integer, 0)
2017  {}
2018 
2019  virtual QVariant get (const Record<ESXRecordT>& record) const
2020  {
2021  return static_cast<int> (record.get().mRefNumCounter);
2022  }
2023 
2024  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2025  {
2026  ESXRecordT record2 = record.get();
2027 
2028  record2.mRefNumCounter = data.toInt();
2029 
2030  record.setModified (record2);
2031  }
2032 
2033  virtual bool isEditable() const
2034  {
2035  return true;
2036  }
2037 
2038  virtual bool isUserEditable() const
2039  {
2040  return false;
2041  }
2042  };
2043 
2044  template<typename ESXRecordT>
2045  struct RefNumColumn : public Column<ESXRecordT>
2046  {
2048  : Column<ESXRecordT> (Columns::ColumnId_RefNum, ColumnBase::Display_Integer, 0)
2049  {}
2050 
2051  virtual QVariant get (const Record<ESXRecordT>& record) const
2052  {
2053  return static_cast<int> (record.get().mRefNum.mIndex);
2054  }
2055 
2056  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2057  {
2058  ESXRecordT record2 = record.get();
2059 
2060  record2.mRefNum.mIndex = data.toInt();
2061 
2062  record.setModified (record2);
2063  }
2064 
2065  virtual bool isEditable() const
2066  {
2067  return true;
2068  }
2069 
2070  virtual bool isUserEditable() const
2071  {
2072  return false;
2073  }
2074  };
2075 
2076  template<typename ESXRecordT>
2077  struct SoundColumn : public Column<ESXRecordT>
2078  {
2080  : Column<ESXRecordT> (Columns::ColumnId_Sound, ColumnBase::Display_Sound)
2081  {}
2082 
2083  virtual QVariant get (const Record<ESXRecordT>& record) const
2084  {
2085  return QString::fromUtf8 (record.get().mSound.c_str());
2086  }
2087 
2088  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2089  {
2090  ESXRecordT record2 = record.get();
2091 
2092  record2.mSound = data.toString().toUtf8().constData();
2093 
2094  record.setModified (record2);
2095  }
2096 
2097  virtual bool isEditable() const
2098  {
2099  return true;
2100  }
2101  };
2102 
2103  template<typename ESXRecordT>
2104  struct CreatureColumn : public Column<ESXRecordT>
2105  {
2107  : Column<ESXRecordT> (Columns::ColumnId_Creature, ColumnBase::Display_Creature)
2108  {}
2109 
2110  virtual QVariant get (const Record<ESXRecordT>& record) const
2111  {
2112  return QString::fromUtf8 (record.get().mCreature.c_str());
2113  }
2114 
2115  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2116  {
2117  ESXRecordT record2 = record.get();
2118 
2119  record2.mCreature = data.toString().toUtf8().constData();
2120 
2121  record.setModified (record2);
2122  }
2123 
2124  virtual bool isEditable() const
2125  {
2126  return true;
2127  }
2128  };
2129 
2130  template<typename ESXRecordT>
2131  struct SoundGeneratorTypeColumn : public Column<ESXRecordT>
2132  {
2135  {}
2136 
2137  virtual QVariant get (const Record<ESXRecordT>& record) const
2138  {
2139  return static_cast<int> (record.get().mType);
2140  }
2141 
2142  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2143  {
2144  ESXRecordT record2 = record.get();
2145 
2146  record2.mType = data.toInt();
2147 
2148  record.setModified (record2);
2149  }
2150 
2151  virtual bool isEditable() const
2152  {
2153  return true;
2154  }
2155  };
2156 
2157  template<typename ESXRecordT>
2158  struct BaseCostColumn : public Column<ESXRecordT>
2159  {
2161 
2162  virtual QVariant get (const Record<ESXRecordT>& record) const
2163  {
2164  return record.get().mData.mBaseCost;
2165  }
2166 
2167  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2168  {
2169  ESXRecordT record2 = record.get();
2170  record2.mData.mBaseCost = data.toFloat();
2171  record.setModified (record2);
2172  }
2173 
2174  virtual bool isEditable() const
2175  {
2176  return true;
2177  }
2178  };
2179 
2180  template<typename ESXRecordT>
2181  struct SchoolColumn : public Column<ESXRecordT>
2182  {
2184  : Column<ESXRecordT> (Columns::ColumnId_School, ColumnBase::Display_School)
2185  {}
2186 
2187  virtual QVariant get (const Record<ESXRecordT>& record) const
2188  {
2189  return record.get().mData.mSchool;
2190  }
2191 
2192  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2193  {
2194  ESXRecordT record2 = record.get();
2195 
2196  record2.mData.mSchool = data.toInt();
2197 
2198  record.setModified (record2);
2199  }
2200 
2201  virtual bool isEditable() const
2202  {
2203  return true;
2204  }
2205  };
2206 
2207  template<typename ESXRecordT>
2208  struct EffectTextureColumn : public Column<ESXRecordT>
2209  {
2211  : Column<ESXRecordT> (columnId,
2212  columnId == Columns::ColumnId_Particle ? ColumnBase::Display_Texture
2214  {
2215  assert (this->mColumnId==Columns::ColumnId_Icon ||
2217  }
2218 
2219  virtual QVariant get (const Record<ESXRecordT>& record) const
2220  {
2221  return QString::fromUtf8 (
2223  record.get().mIcon : record.get().mParticle).c_str());
2224  }
2225 
2226  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2227  {
2228  ESXRecordT record2 = record.get();
2229 
2231  record2.mIcon : record2.mParticle)
2232  = data.toString().toUtf8().constData();
2233 
2234  record.setModified (record2);
2235  }
2236 
2237  virtual bool isEditable() const
2238  {
2239  return true;
2240  }
2241  };
2242 
2243  template<typename ESXRecordT>
2244  struct EffectObjectColumn : public Column<ESXRecordT>
2245  {
2247  : Column<ESXRecordT> (columnId, columnId==Columns::ColumnId_BoltObject ? ColumnBase::Display_Weapon : ColumnBase::Display_Static)
2248  {
2249  assert (this->mColumnId==Columns::ColumnId_CastingObject ||
2253  }
2254 
2255  virtual QVariant get (const Record<ESXRecordT>& record) const
2256  {
2257  const std::string *string = 0;
2258 
2259  switch (this->mColumnId)
2260  {
2261  case Columns::ColumnId_CastingObject: string = &record.get().mCasting; break;
2262  case Columns::ColumnId_HitObject: string = &record.get().mHit; break;
2263  case Columns::ColumnId_AreaObject: string = &record.get().mArea; break;
2264  case Columns::ColumnId_BoltObject: string = &record.get().mBolt; break;
2265  }
2266 
2267  if (!string)
2268  throw std::logic_error ("Unsupported column ID");
2269 
2270  return QString::fromUtf8 (string->c_str());
2271  }
2272 
2273  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2274  {
2275  std::string *string = 0;
2276 
2277  ESXRecordT record2 = record.get();
2278 
2279  switch (this->mColumnId)
2280  {
2281  case Columns::ColumnId_CastingObject: string = &record2.mCasting; break;
2282  case Columns::ColumnId_HitObject: string = &record2.mHit; break;
2283  case Columns::ColumnId_AreaObject: string = &record2.mArea; break;
2284  case Columns::ColumnId_BoltObject: string = &record2.mBolt; break;
2285  }
2286 
2287  if (!string)
2288  throw std::logic_error ("Unsupported column ID");
2289 
2290  *string = data.toString().toUtf8().constData();
2291 
2292  record.setModified (record2);
2293  }
2294 
2295  virtual bool isEditable() const
2296  {
2297  return true;
2298  }
2299  };
2300 
2301  template<typename ESXRecordT>
2302  struct EffectSoundColumn : public Column<ESXRecordT>
2303  {
2305  : Column<ESXRecordT> (columnId, ColumnBase::Display_Sound)
2306  {
2307  assert (this->mColumnId==Columns::ColumnId_CastingSound ||
2311  }
2312 
2313  virtual QVariant get (const Record<ESXRecordT>& record) const
2314  {
2315  const std::string *string = 0;
2316 
2317  switch (this->mColumnId)
2318  {
2319  case Columns::ColumnId_CastingSound: string = &record.get().mCastSound; break;
2320  case Columns::ColumnId_HitSound: string = &record.get().mHitSound; break;
2321  case Columns::ColumnId_AreaSound: string = &record.get().mAreaSound; break;
2322  case Columns::ColumnId_BoltSound: string = &record.get().mBoltSound; break;
2323  }
2324 
2325  if (!string)
2326  throw std::logic_error ("Unsupported column ID");
2327 
2328  return QString::fromUtf8 (string->c_str());
2329  }
2330 
2331  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2332  {
2333  std::string *string = 0;
2334 
2335  ESXRecordT record2 = record.get();
2336 
2337  switch (this->mColumnId)
2338  {
2339  case Columns::ColumnId_CastingSound: string = &record2.mCastSound; break;
2340  case Columns::ColumnId_HitSound: string = &record2.mHitSound; break;
2341  case Columns::ColumnId_AreaSound: string = &record2.mAreaSound; break;
2342  case Columns::ColumnId_BoltSound: string = &record2.mBoltSound; break;
2343  }
2344 
2345  if (!string)
2346  throw std::logic_error ("Unsupported column ID");
2347 
2348  *string = data.toString().toUtf8().constData();
2349 
2350  record.setModified (record2);
2351  }
2352 
2353  virtual bool isEditable() const
2354  {
2355  return true;
2356  }
2357  };
2358 
2359  template<typename ESXRecordT>
2360  struct FormatColumn : public Column<ESXRecordT>
2361  {
2363  : Column<ESXRecordT> (Columns::ColumnId_FileFormat, ColumnBase::Display_Integer)
2364  {}
2365 
2366  virtual QVariant get (const Record<ESXRecordT>& record) const
2367  {
2368  return record.get().mFormat;
2369  }
2370 
2371  virtual bool isEditable() const
2372  {
2373  return false;
2374  }
2375  };
2376 
2377  template<typename ESXRecordT>
2378  struct AuthorColumn : public Column<ESXRecordT>
2379  {
2381  : Column<ESXRecordT> (Columns::ColumnId_Author, ColumnBase::Display_String32)
2382  {}
2383 
2384  virtual QVariant get (const Record<ESXRecordT>& record) const
2385  {
2386  return QString::fromUtf8 (record.get().mAuthor.c_str());
2387  }
2388 
2389  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2390  {
2391  ESXRecordT record2 = record.get();
2392 
2393  record2.mAuthor = data.toString().toUtf8().constData();
2394 
2395  record.setModified (record2);
2396  }
2397 
2398  virtual bool isEditable() const
2399  {
2400  return true;
2401  }
2402  };
2403 
2404  template<typename ESXRecordT>
2405  struct FileDescriptionColumn : public Column<ESXRecordT>
2406  {
2409  {}
2410 
2411  virtual QVariant get (const Record<ESXRecordT>& record) const
2412  {
2413  return QString::fromUtf8 (record.get().mDescription.c_str());
2414  }
2415 
2416  virtual void set (Record<ESXRecordT>& record, const QVariant& data)
2417  {
2418  ESXRecordT record2 = record.get();
2419 
2420  record2.mDescription = data.toString().toUtf8().constData();
2421 
2422  record.setModified (record2);
2423  }
2424 
2425  virtual bool isEditable() const
2426  {
2427  return true;
2428  }
2429  };
2430 
2431  struct LandTextureNicknameColumn : public Column<LandTexture>
2432  {
2434 
2435  QVariant get(const Record<LandTexture>& record) const override;
2436  void set(Record<LandTexture>& record, const QVariant& data) override;
2437  bool isEditable() const override;
2438  };
2439 
2440  struct LandTextureIndexColumn : public Column<LandTexture>
2441  {
2443 
2444  QVariant get(const Record<LandTexture>& record) const override;
2445  bool isEditable() const override;
2446  };
2447 
2448  struct LandPluginIndexColumn : public Column<Land>
2449  {
2451 
2452  QVariant get(const Record<Land>& record) const override;
2453  bool isEditable() const override;
2454  };
2455 
2456  struct LandTexturePluginIndexColumn : public Column<LandTexture>
2457  {
2459 
2460  QVariant get(const Record<LandTexture>& record) const override;
2461  bool isEditable() const override;
2462  };
2463 
2464  struct LandMapLodColumn : public Column<Land>
2465  {
2466  using DataType = QVector<signed char>;
2467 
2468  LandMapLodColumn();
2469 
2470  QVariant get(const Record<Land>& record) const override;
2471  void set(Record<Land>& record, const QVariant& data) override;
2472  bool isEditable() const override;
2473  };
2474 
2475  struct LandNormalsColumn : public Column<Land>
2476  {
2477  using DataType = QVector<signed char>;
2478 
2480 
2481  QVariant get(const Record<Land>& record) const override;
2482  void set(Record<Land>& record, const QVariant& data) override;
2483  bool isEditable() const override;
2484  };
2485 
2486  struct LandHeightsColumn : public Column<Land>
2487  {
2488  using DataType = QVector<float>;
2489 
2491 
2492  QVariant get(const Record<Land>& record) const override;
2493  void set(Record<Land>& record, const QVariant& data) override;
2494  bool isEditable() const override;
2495  };
2496 
2497  struct LandColoursColumn : public Column<Land>
2498  {
2499  using DataType = QVector<unsigned char>;
2500 
2502 
2503  QVariant get(const Record<Land>& record) const override;
2504  void set(Record<Land>& record, const QVariant& data) override;
2505  bool isEditable() const override;
2506  };
2507 
2508  struct LandTexturesColumn : public Column<Land>
2509  {
2510  using DataType = QVector<uint16_t>;
2511 
2513 
2514  QVariant get(const Record<Land>& record) const override;
2515  void set(Record<Land>& record, const QVariant& data) override;
2516  bool isEditable() const override;
2517  };
2518 
2519  struct BodyPartRaceColumn : public RaceColumn<ESM::BodyPart>
2520  {
2522 
2524 
2525  virtual QVariant get(const Record<ESM::BodyPart> &record) const;
2526  virtual void set(Record<ESM::BodyPart> &record, const QVariant &data);
2527  virtual bool isEditable() const;
2528  };
2529 }
2530 
2531 // This is required to access the type as a QVariant.
2532 Q_DECLARE_METATYPE(CSMWorld::LandMapLodColumn::DataType)
2533 //Q_DECLARE_METATYPE(CSMWorld::LandNormalsColumn::DataType) // Same as LandMapLodColumn::DataType
2534 Q_DECLARE_METATYPE(CSMWorld::LandHeightsColumn::DataType)
2535 Q_DECLARE_METATYPE(CSMWorld::LandColoursColumn::DataType)
2536 Q_DECLARE_METATYPE(CSMWorld::LandTexturesColumn::DataType)
2537 
2538 #endif
Definition: columnimp.hpp:224
Definition: columnimp.hpp:2244
TrapColumn()
Definition: columnimp.hpp:1284
Definition: columnimp.hpp:1485
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:868
Definition: columnimp.hpp:615
Definition: columns.hpp:34
LandHeightsColumn()
Definition: columnimp.cpp:174
StringIdColumn(bool hidden=false)
Definition: columnimp.hpp:52
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1087
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1496
Definition: columnimp.hpp:2077
virtual bool isEditable() const
Definition: columnimp.hpp:1825
Definition: columnimp.hpp:2013
Definition: columnbase.hpp:113
Definition: columnimp.hpp:1173
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:2070
Definition: columnimp.hpp:614
virtual bool isEditable() const
Definition: columnimp.hpp:1069
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1110
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:707
Definition: columnbase.hpp:48
ChargesColumn2()
Definition: columnimp.hpp:1834
virtual bool isEditable() const
Definition: columnimp.hpp:1359
Definition: columns.hpp:166
bool mInverted
Definition: columnimp.hpp:489
virtual bool isEditable() const
Definition: columnimp.hpp:521
Definition: columnimp.hpp:486
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1754
PlayableColumn()
Definition: columnimp.hpp:437
SoundColumn()
Definition: columnimp.hpp:2079
Definition: columnbase.hpp:47
void copy(const btTransform &src, Nif::Transformation &dst)
Definition: testbulletnifloader.cpp:269
PcFactionColumn()
Definition: columnimp.hpp:1620
Definition: columns.hpp:30
virtual bool isEditable() const
Definition: columnimp.hpp:562
Definition: columnimp.hpp:1668
Definition: columns.hpp:369
VarValueColumn()
Definition: columnimp.hpp:164
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:641
virtual bool isEditable() const
Definition: columnimp.hpp:428
int mIndex
Definition: columnimp.hpp:1369
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1316
virtual bool isEditable() const
Definition: columnimp.hpp:1848
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:784
Definition: columns.hpp:207
Definition: columns.hpp:33
virtual bool isEditable() const
Definition: columnimp.hpp:793
QuestIndexColumn()
Definition: columnimp.hpp:1487
Definition: columnimp.hpp:920
virtual bool isEditable() const
Definition: columnimp.hpp:1899
Definition: columnbase.hpp:77
bool mBlocked
Definition: columnimp.hpp:886
Definition: columns.hpp:127
State mState
Definition: record.hpp:19
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:374
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:843
float pos[3]
Definition: defs.hpp:40
virtual bool isEditable() const
Definition: columnimp.hpp:1763
Definition: columnimp.hpp:800
virtual bool isEditable() const
Definition: columnimp.hpp:1586
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:188
Definition: columnbase.hpp:110
DialogueTypeColumn(bool hidden=false)
Definition: columnimp.hpp:1402
virtual bool isEditable() const
Definition: columnimp.hpp:454
SoundParamColumn(Type type)
Definition: columnimp.hpp:620
Definition: columnimp.hpp:569
Definition: columnimp.hpp:390
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:1225
Definition: columnbase.hpp:114
Definition: columns.hpp:36
Definition: columns.hpp:126
virtual bool isEditable() const
Definition: columnimp.hpp:940
Definition: columnbase.hpp:105
Definition: columnimp.hpp:1101
LockLevelColumn()
Definition: columnimp.hpp:1234
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:590
virtual bool isEditable() const
Definition: columnimp.hpp:1453
Definition: columnbase.hpp:55
NameColumn()
Definition: columnimp.hpp:337
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:680
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1291
LandPluginIndexColumn()
Definition: columnimp.cpp:48
SoundFileColumn()
Definition: columnimp.hpp:671
Definition: columns.hpp:49
virtual bool isEditable() const
Definition: columnimp.hpp:2065
RefNumColumn()
Definition: columnimp.hpp:2047
SchoolColumn()
Definition: columnimp.hpp:2183
Wrapper for LandTexture record, providing info which plugin the LandTexture was loaded from...
Definition: landtexture.hpp:11
SpecialisationColumn()
Definition: columnimp.hpp:253
Definition: columnimp.hpp:528
virtual bool isEditable() const
Definition: columnimp.hpp:43
SoundGeneratorTypeColumn()
Definition: columnimp.hpp:2133
Definition: columnimp.hpp:952
PcRankColumn()
Definition: columnimp.hpp:1720
EffectObjectColumn(Columns::ColumnId columnId)
Definition: columnimp.hpp:2246
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1469
Definition: columns.hpp:205
Definition: columnimp.hpp:308
Definition: columns.hpp:163
QVector< unsigned char > DataType
Definition: columnimp.hpp:2499
virtual bool isEditable() const
Definition: columnimp.hpp:1019
Definition: columns.hpp:31
Definition: columnbase.hpp:42
Display
Definition: columnbase.hpp:39
LandColoursColumn()
Definition: columnimp.cpp:221
Definition: columnimp.hpp:827
Definition: columnimp.hpp:27
Definition: columnbase.hpp:121
Definition: columnimp.hpp:1881
Definition: columnimp.hpp:2405
Definition: columns.hpp:44
virtual bool isEditable() const
Definition: columnimp.hpp:1661
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:262
QuestStatus
Definition: loadinfo.hpp:57
virtual bool isEditable() const
Definition: columnimp.hpp:2097
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1890
Definition: columnimp.hpp:884
bool isEditable() const override
Definition: columnimp.cpp:168
Definition: columns.hpp:32
Definition: columns.hpp:22
virtual bool isEditable() const
Definition: columnimp.hpp:1478
Definition: columns.hpp:50
virtual bool isEditable() const
Definition: columnimp.hpp:1117
KeyColumn()
Definition: columnimp.hpp:1259
FlagColumn(int columnId, int mask, int flags=ColumnBase::Flag_Table|ColumnBase::Flag_Dialogue, bool inverted=false)
Definition: columnimp.hpp:491
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1704
Wrapper for Land record. Encodes X and Y cell index in the ID.
Definition: land.hpp:13
TextureColumn()
Definition: columnimp.hpp:750
virtual bool isEditable() const
Definition: columnimp.hpp:1142
void set(Record< Land > &record, const QVariant &data) override
Definition: columnimp.cpp:103
Definition: columnbase.hpp:108
virtual QVariant get(const Record< ESXRecordT > &record) const =0
Definition: columnimp.hpp:2475
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1522
Definition: columnbase.hpp:124
TeleportCellColumn()
Definition: columnimp.hpp:1202
Definition: columnimp.hpp:978
Definition: columnbase.hpp:96
ScaleColumn()
Definition: columnimp.hpp:980
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2226
Definition: columnimp.hpp:251
Definition: columns.hpp:37
Definition: columnbase.hpp:92
virtual bool isEditable() const
Definition: columnimp.hpp:994
Definition: columnimp.hpp:2104
bool isEditable() const override
Definition: columnimp.cpp:309
virtual bool isEditable() const
Definition: columnimp.hpp:1611
Definition: columnimp.hpp:278
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1552
Definition: columnimp.hpp:1906
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:1426
Definition: columnimp.hpp:2464
CreatureColumn()
Definition: columnimp.hpp:2106
Definition: columnimp.hpp:1959
Definition: columns.hpp:165
HiddenColumn()
Definition: columnimp.hpp:463
virtual bool isEditable() const
Definition: columnimp.hpp:479
Definition: columnimp.hpp:1366
Definition: columnimp.hpp:1510
bool isEditable() const override
Definition: columnimp.cpp:262
Definition: columnimp.hpp:669
Definition: columnimp.hpp:335
virtual bool isEditable() const
Definition: columnimp.hpp:1094
void set(Record< Land > &record, const QVariant &data) override
Definition: columnimp.cpp:291
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:409
Definition: columnbase.hpp:33
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2389
Definition: columnimp.hpp:2181
Definition: columnbase.hpp:49
virtual bool isEditable() const
Definition: columnimp.hpp:766
Definition: columns.hpp:28
Definition: columns.hpp:146
Definition: columnimp.hpp:1051
Definition: columnbase.hpp:36
Definition: columnimp.hpp:1149
virtual bool isEditable() const
Definition: columnimp.hpp:2237
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:809
Definition: columnimp.hpp:2456
Definition: columnimp.hpp:613
int mMask
Definition: columnimp.hpp:530
FloatValueColumn()
Definition: columnimp.hpp:29
Definition: columns.hpp:156
Definition: columns.hpp:211
int mIndex
Definition: loadltex.hpp:36
bool isEditable() const override
Definition: columnimp.cpp:26
Definition: columnimp.hpp:2431
Definition: columnimp.hpp:773
virtual bool isEditable() const
Definition: columnimp.cpp:337
ESM::Position ESXRecordT::* mPosition
Definition: columnimp.hpp:1368
Definition: columns.hpp:161
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1627
Definition: columnbase.hpp:109
virtual bool isEditable() const
Definition: columnimp.hpp:1250
Definition: columnimp.hpp:721
Definition: columns.hpp:160
SpellTypeColumn()
Definition: columnimp.hpp:775
Definition: columnimp.hpp:1200
Definition: columns.hpp:178
State
Definition: record.hpp:10
ActorColumn()
Definition: columnimp.hpp:1545
Definition: columns.hpp:363
virtual bool isEditable() const
Definition: columnimp.hpp:1220
Definition: columns.hpp:279
int mColumnId
Definition: columnbase.hpp:148
Definition: columnimp.hpp:2519
Definition: columnimp.hpp:1643
Definition: columns.hpp:305
virtual bool isEditable() const
Definition: columnimp.hpp:301
Definition: columnimp.hpp:114
Definition: columns.hpp:41
Definition: columnbase.hpp:78
bool mWeight
Definition: columnimp.hpp:572
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2024
Definition: columns.hpp:210
Definition: columns.hpp:209
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:757
Definition: columnimp.hpp:2360
RecordStateColumn()
Definition: columnimp.hpp:85
float mMale
Definition: loadrace.hpp:39
virtual bool isEditable() const
Definition: columnimp.hpp:383
Definition: columnbase.hpp:79
virtual bool isEditable() const
Definition: columnimp.hpp:2006
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:235
Definition: columnbase.hpp:74
Definition: columnimp.hpp:1593
Definition: columns.hpp:24
virtual bool isEditable() const
Definition: columnimp.hpp:328
Definition: columnimp.hpp:1932
FlagColumn2(int columnId, int mask, bool inverted=false)
Definition: columnimp.hpp:533
Definition: columns.hpp:53
void set(Record< Land > &record, const QVariant &data) override
Definition: columnimp.cpp:150
Definition: columnimp.hpp:136
LandTexturesColumn()
Definition: columnimp.cpp:268
int mX
Definition: loadland.hpp:31
virtual bool isEditable() const
Definition: columnimp.hpp:2398
Definition: columns.hpp:176
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1135
Definition: columnimp.hpp:1693
PosColumn(ESM::Position ESXRecordT::*position, int index, bool door)
Definition: columnimp.hpp:1337
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1243
FileDescriptionColumn()
Definition: columnimp.hpp:2407
Definition: columnimp.hpp:2131
Definition: columnimp.hpp:360
Definition: nestedcolumnadapter.hpp:11
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1444
virtual bool isEditable() const
Definition: columnimp.hpp:1325
virtual bool isEditable() const
Definition: columnimp.hpp:1044
Definition: columnimp.hpp:1460
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2331
virtual bool isEditable() const
Definition: columnimp.hpp:1798
ClassColumn()
Definition: columnimp.hpp:1595
LandMapLodColumn()
Definition: columnimp.cpp:80
virtual bool isEditable() const
Definition: columnimp.hpp:271
Definition: columnimp.hpp:2448
Definition: columnbase.hpp:190
Definition: columnimp.hpp:1124
virtual void set(Record< ESM::BodyPart > &record, const QVariant &data)
Definition: columnimp.cpp:328
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:507
Type
Definition: columnimp.hpp:825
Definition: columnbase.hpp:142
Definition: columns.hpp:303
Definition: columns.hpp:203
int mY
Definition: loadland.hpp:31
int mType
Definition: columnimp.hpp:116
QuestStatusTypeColumn()
Definition: columnimp.hpp:1435
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:548
virtual bool isEditable() const
Definition: columnimp.hpp:217
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1602
Definition: columnimp.hpp:1433
virtual bool isEditable() const
Definition: columnimp.hpp:2425
virtual bool isEditable() const
Definition: columnimp.hpp:1874
FactionIndexColumn()
Definition: columnimp.hpp:1078
FormatColumn()
Definition: columnimp.hpp:2362
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1159
Definition: columnbase.hpp:71
Definition: columnbase.hpp:46
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1184
int mIndex
Definition: columnimp.hpp:362
static std::string createUniqueRecordId(int plugin, int index)
Returns a string identifier that will be unique to any LandTexture.
Definition: landtexture.cpp:17
QVector< signed char > DataType
Definition: columnimp.hpp:2477
DispositionColumn()
Definition: columnimp.hpp:1670
OwnerColumn()
Definition: columnimp.hpp:1003
Definition: columns.hpp:162
CellColumn(bool blocked=false)
Definition: columnimp.hpp:889
Definition: columnimp.hpp:50
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:962
Definition: columns.hpp:206
virtual bool isEditable() const
Definition: columnimp.hpp:1711
Definition: columnbase.hpp:63
Definition: columnimp.hpp:162
virtual bool isEditable() const
Definition: columnimp.hpp:1925
QVector< uint16_t > DataType
Definition: columnimp.hpp:2510
bool mMale
Definition: columnimp.hpp:571
Definition: columns.hpp:19
Definition: columnimp.hpp:1718
Definition: columnimp.hpp:2302
void set(Record< Land > &record, const QVariant &data) override
Definition: columnimp.cpp:197
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:344
RankColumn()
Definition: columnimp.hpp:1695
Definition: columnimp.hpp:461
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1729
RegionColumn()
Definition: columnimp.hpp:861
Definition: columns.hpp:45
Definition: variant.hpp:18
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1348
UseValueColumn(int index)
Definition: columnimp.hpp:282
AuthorColumn()
Definition: columnimp.hpp:2380
EffectSoundColumn(Columns::ColumnId columnId)
Definition: columnimp.hpp:2304
Definition: columns.hpp:25
virtual bool isEditable() const
Definition: columnimp.hpp:353
virtual bool isEditable() const
Definition: columnimp.hpp:602
Definition: columns.hpp:64
Definition: columns.hpp:62
int mIndex
Definition: columnimp.hpp:392
Definition: columnimp.hpp:696
Definition: columns.hpp:343
Definition: columnbase.hpp:111
Definition: columns.hpp:18
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:732
virtual bool isEditable() const
Definition: columnimp.hpp:1275
Definition: columnbase.hpp:70
Definition: columns.hpp:40
float mFemale
Definition: loadrace.hpp:39
Definition: columnbase.hpp:116
bool isEditable() const override
Definition: columnimp.cpp:215
void set(Record< Land > &record, const QVariant &data) override
Definition: columnimp.cpp:244
Definition: columns.hpp:54
Type mType
Definition: columnimp.hpp:618
RotColumn(ESM::Position ESXRecordT::*position, int index, bool door)
Definition: columnimp.hpp:1371
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:2038
Definition: columnimp.hpp:1618
virtual bool isEditable() const
Definition: columnimp.hpp:1561
virtual bool isEditable() const
Definition: columnimp.hpp:852
Definition: columns.hpp:142
Definition: columns.hpp:56
virtual bool isEditable() const
Definition: columnimp.hpp:2201
Definition: columnimp.hpp:83
EffectTextureColumn(Columns::ColumnId columnId)
Definition: columnimp.hpp:2210
Definition: columnimp.hpp:2378
DescriptionColumn()
Definition: columnimp.hpp:226
SoulColumn()
Definition: columnimp.hpp:1028
virtual bool isEditable() const
Definition: columnimp.hpp:877
Definition: columns.hpp:197
virtual bool isEditable() const
Definition: columnimp.hpp:689
Definition: columnbase.hpp:54
Definition: columnimp.hpp:1026
Definition: columns.hpp:351
ScriptColumn(Type type)
Definition: columnimp.hpp:832
Definition: columns.hpp:196
virtual bool isEditable() const
Definition: columnimp.hpp:1393
Definition: columnbase.hpp:134
Definition: columns.hpp:39
Definition: columns.hpp:177
Definition: variant.hpp:16
virtual bool isEditable() const
Definition: columnimp.hpp:816
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1916
virtual bool isEditable() const
Definition: columnimp.hpp:741
LandNormalsColumn()
Definition: columnimp.cpp:127
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:945
virtual bool isEditable() const
Definition: columnimp.hpp:2033
FactionColumn()
Definition: columnimp.hpp:1053
Definition: columnimp.hpp:828
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1785
BodyPartRaceColumn(const MeshTypeColumn< ESM::BodyPart > *meshType)
Definition: columnimp.cpp:315
Definition: columns.hpp:20
Definition: columnimp.hpp:2486
Definition: columnbase.hpp:123
Definition: columnimp.hpp:1232
virtual bool isEditable() const
Definition: columnimp.hpp:1300
VarTypeColumn(ColumnBase::Display display)
Definition: columnimp.hpp:138
Definition: columnbase.hpp:112
QVector< signed char > DataType
Definition: columnimp.hpp:2466
int mMask
Definition: columnimp.hpp:488
virtual bool isEditable() const
Definition: columnimp.hpp:1166
bool mInverted
Definition: columnimp.hpp:531
virtual bool isEditable() const
Definition: columnimp.hpp:2174
GenderColumn()
Definition: columnimp.hpp:1745
const ESXRecordT & get() const
Throws an exception, if the record is deleted.
Definition: record.hpp:106
Definition: loadbody.hpp:41
Definition: columnbase.hpp:89
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:292
const MeshTypeColumn< ESM::BodyPart > * mMeshType
Definition: columnimp.hpp:2521
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1816
ESM::Position ESXRecordT::* mPosition
Definition: columnimp.hpp:1334
Definition: columns.hpp:191
void set(Record< LandTexture > &record, const QVariant &data) override
Definition: columnimp.cpp:19
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1211
Definition: columns.hpp:155
OwnerGlobalColumn()
Definition: columnimp.hpp:1988
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1679
virtual bool isEditable() const
Definition: columnimp.hpp:1736
Definition: columnimp.hpp:1400
Definition: columnimp.hpp:1568
WeightHeightColumn(bool male, bool weight)
Definition: columnimp.hpp:574
Definition: columnimp.hpp:2440
Definition: columnimp.hpp:1257
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2416
MapColourColumn()
Definition: columnimp.hpp:698
Definition: columns.hpp:202
Definition: columns.hpp:117
Definition: columnimp.hpp:1832
Definition: columns.hpp:48
static std::string createUniqueRecordId(int x, int y)
Definition: land.cpp:13
Definition: loadrace.hpp:37
OriginalCellColumn()
Definition: columnimp.hpp:922
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2115
virtual bool isEditable() const
Definition: columnimp.hpp:714
Definition: defs.hpp:38
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2273
TeleportColumn()
Definition: columnimp.hpp:1175
Definition: columnbase.hpp:15
Definition: columns.hpp:271
virtual bool isEditable() const
Definition: columnimp.hpp:1531
Definition: columns.hpp:52
Definition: columnimp.hpp:2508
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2142
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1970
Definition: columnimp.hpp:1805
LandTextureNicknameColumn()
Definition: columnimp.cpp:9
Definition: variant.hpp:20
void setModified(const ESXRecordT &modified)
Throws an exception, if the record is deleted.
Definition: record.hpp:133
GenderNpcColumn()
Definition: columnimp.hpp:1772
Definition: columnimp.hpp:1770
AttributeColumn()
Definition: columnimp.hpp:310
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:1536
Definition: columns.hpp:42
virtual bool isEditable() const
Definition: columnimp.hpp:2151
bool isEditable() const override
Definition: columnimp.cpp:74
Definition: columnbase.hpp:117
virtual bool isEditable() const
Definition: columnimp.hpp:1193
Definition: columnimp.hpp:1001
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:107
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2192
IdColumn()
Definition: columnimp.hpp:954
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1577
RefNumCounterColumn()
Definition: columnimp.hpp:2015
LandTexturePluginIndexColumn()
Definition: columnimp.cpp:64
Definition: columnbase.hpp:75
EnchantmentChargesColumn()
Definition: columnimp.hpp:1126
bool isEditable() const override
Definition: columnimp.cpp:58
Definition: columns.hpp:38
SkillsColumn(int index, bool typePrefix=false, bool major=false)
Definition: columnimp.hpp:395
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1010
ColumnId
Definition: columns.hpp:13
RaceColumn()
Definition: columnimp.hpp:1570
virtual bool isEditable() const
Definition: columnimp.hpp:128
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:319
Definition: columnimp.hpp:1282
Definition: columnbase.hpp:43
Definition: variant.hpp:19
virtual bool isEditable() const
Definition: columnimp.hpp:154
Definition: columnbase.hpp:107
Definition: columnbase.hpp:120
int mIndex
Definition: columnimp.hpp:1335
Definition: columnbase.hpp:91
Definition: columnbase.hpp:98
Definition: columns.hpp:47
static std::string indexToId(int index)
Definition: loadskil.cpp:183
Definition: columnimp.hpp:748
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1865
virtual bool isEditable() const
Definition: columnimp.hpp:2124
virtual bool isEditable() const
Definition: columnimp.hpp:1952
float rot[3]
Definition: defs.hpp:43
Definition: columnbase.hpp:51
virtual bool isEditable() const
Definition: columnimp.hpp:1503
Definition: columns.hpp:201
AttributesColumn(int index)
Definition: columnimp.hpp:364
Definition: columns.hpp:167
VampireColumn()
Definition: columnimp.hpp:1908
BodyPartTypeColumn()
Definition: columnimp.hpp:1934
Definition: columnimp.hpp:2497
Definition: columns.hpp:26
Definition: columnimp.hpp:1986
Definition: columns.hpp:208
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2088
virtual bool isEditable() const
Definition: columnimp.hpp:62
ModelColumn()
Definition: columnimp.hpp:1883
ChargesColumn()
Definition: columnimp.hpp:1103
virtual bool isEditable() const
Definition: columnimp.hpp:244
bool isEditable() const override
Definition: columnimp.cpp:121
virtual bool isUserEditable() const
Can this column be edited directly by the user?
Definition: columnimp.hpp:913
AutoCalcColumn()
Definition: columnimp.hpp:1857
Definition: columnbase.hpp:97
Definition: columnbase.hpp:34
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1060
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:931
EnchantmentTypeColumn()
Definition: columnimp.hpp:1807
CostColumn()
Definition: columnimp.hpp:802
Definition: columns.hpp:357
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1943
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1841
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1035
ResponseColumn()
Definition: columnimp.hpp:1645
Definition: columnimp.hpp:2158
virtual bool isEditable() const
Definition: columnimp.hpp:102
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2056
TopicColumn(bool journal)
Definition: columnimp.hpp:1512
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:97
virtual bool isEditable() const
Definition: columnimp.hpp:1421
Definition: columns.hpp:15
int mIndex
Definition: columnimp.hpp:280
Definition: variant.hpp:17
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:899
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1997
Definition: columnimp.hpp:823
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:470
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1266
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:2167
virtual bool isEditable() const
Definition: columnimp.hpp:2295
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1412
Definition: columnimp.hpp:2208
Definition: columnimp.hpp:435
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1382
Definition: columns.hpp:23
Definition: columnbase.hpp:90
Definition: columnimp.hpp:1307
GoldValueColumn()
Definition: columnimp.hpp:1151
Definition: columnimp.hpp:1543
LandTextureIndexColumn()
Definition: columnimp.cpp:32
virtual QVariant get(const Record< ESXRecordT > &record) const
Definition: columnimp.hpp:57
virtual bool isEditable() const
Definition: columnimp.hpp:2371
Definition: columnbase.hpp:133
Definition: columnimp.hpp:1332
virtual bool isEditable() const
Definition: columnimp.hpp:2353
Definition: columnimp.hpp:1076
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:147
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:1652
Definition: columnimp.hpp:1743
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:36
virtual bool isEditable() const
Definition: columnimp.hpp:662
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:987
bool mMajor
Definition: columnimp.hpp:393
Definition: columnimp.hpp:2045
SleepListColumn()
Definition: columnimp.hpp:723
virtual void set(Record< ESXRecordT > &record, const QVariant &data)
Definition: columnimp.hpp:445
FixedRecordTypeColumn(int type)
Definition: columnimp.hpp:118
QuestDescriptionColumn()
Definition: columnimp.hpp:1462
Definition: columns.hpp:16
virtual bool isEditable() const
Definition: columnimp.hpp:908
virtual bool isEditable() const
Definition: columnimp.hpp:971
bool isEditable() const override
Definition: columnimp.cpp:42
Definition: columnimp.hpp:829
Definition: columns.hpp:159
int mPluginIndex
Definition: landtexture.hpp:13
Definition: columnimp.hpp:609
virtual bool isEditable() const
Definition: columnimp.hpp:1979
Definition: columnbase.hpp:50
Definition: columnbase.hpp:53
Definition: columns.hpp:164
Definition: columnimp.hpp:1855
Definition: columns.hpp:43
Definition: columnbase.hpp:119
FilterColumn()
Definition: columnimp.hpp:1309
Definition: columnimp.hpp:859
QVector< float > DataType
Definition: columnimp.hpp:2488
virtual bool isEditable() const
Definition: columnimp.hpp:1686
virtual bool isEditable() const
Definition: columnimp.hpp:1636
Definition: columns.hpp:143
MeshTypeColumn(int flags=ColumnBase::Flag_Table|ColumnBase::Flag_Dialogue)
Definition: columnimp.hpp:1961
BaseCostColumn()
Definition: columnimp.hpp:2160
Type
Definition: columnimp.hpp:611