mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-04 12:39:55 +00:00
added map colour column to region table
This commit is contained in:
parent
e25f5c6dfe
commit
f49a2a97c5
@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
|
|
||||||
|
#include <QColor>
|
||||||
|
|
||||||
#include "columnbase.hpp"
|
#include "columnbase.hpp"
|
||||||
|
|
||||||
namespace CSMWorld
|
namespace CSMWorld
|
||||||
@ -591,6 +593,38 @@ namespace CSMWorld
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// \todo QColor is a GUI class and should not be in model. Need to think of an alternative
|
||||||
|
/// solution.
|
||||||
|
template<typename ESXRecordT>
|
||||||
|
struct MapColourColumn : public Column<ESXRecordT>
|
||||||
|
{
|
||||||
|
/// \todo Replace Display_Integer with something that displays the colour value more directly.
|
||||||
|
MapColourColumn() : Column<ESXRecordT> ("Map Colour", ColumnBase::Display_Integer) {}
|
||||||
|
|
||||||
|
virtual QVariant get (const Record<ESXRecordT>& record) const
|
||||||
|
{
|
||||||
|
int colour = record.get().mMapColor;
|
||||||
|
|
||||||
|
return QColor (colour & 0xff, (colour>>8) & 0xff, (colour>>16) & 0xff);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void set (Record<ESXRecordT>& record, const QVariant& data)
|
||||||
|
{
|
||||||
|
ESXRecordT record2 = record.get();
|
||||||
|
|
||||||
|
QColor colour = data.value<QColor>();
|
||||||
|
|
||||||
|
record2.mMapColor = colour.rgb() & 0xffffff;
|
||||||
|
|
||||||
|
record.setModified (record2);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool isEditable() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -90,6 +90,7 @@ CSMWorld::Data::Data()
|
|||||||
mRegions.addColumn (new StringIdColumn<ESM::Region>);
|
mRegions.addColumn (new StringIdColumn<ESM::Region>);
|
||||||
mRegions.addColumn (new RecordStateColumn<ESM::Region>);
|
mRegions.addColumn (new RecordStateColumn<ESM::Region>);
|
||||||
mRegions.addColumn (new NameColumn<ESM::Region>);
|
mRegions.addColumn (new NameColumn<ESM::Region>);
|
||||||
|
mRegions.addColumn (new MapColourColumn<ESM::Region>);
|
||||||
|
|
||||||
addModel (new IdTable (&mGlobals), UniversalId::Type_Globals, UniversalId::Type_Global);
|
addModel (new IdTable (&mGlobals), UniversalId::Type_Globals, UniversalId::Type_Global);
|
||||||
addModel (new IdTable (&mGmsts), UniversalId::Type_Gmsts, UniversalId::Type_Gmst);
|
addModel (new IdTable (&mGmsts), UniversalId::Type_Gmsts, UniversalId::Type_Gmst);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user