1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-03-14 01:19:59 +00:00

Column is responsible for telling that it can nest columns now.

This commit is contained in:
Marek Kochanowicz 2014-06-17 22:02:20 +02:00
parent ce5e889015
commit 75b5513c6c
5 changed files with 21 additions and 15 deletions

View File

@ -3,8 +3,8 @@
#include "columns.hpp"
CSMWorld::ColumnBase::ColumnBase (int columnId, Display displayType, int flags)
: mColumnId (columnId), mDisplayType (displayType), mFlags (flags)
CSMWorld::ColumnBase::ColumnBase (int columnId, Display displayType, int flags, bool canNest)
: mColumnId (columnId), mDisplayType (displayType), mFlags (flags), mCanNest(canNest)
{}
CSMWorld::ColumnBase::~ColumnBase() {}
@ -22,4 +22,9 @@ std::string CSMWorld::ColumnBase::getTitle() const
int CSMWorld::ColumnBase::getId() const
{
return mColumnId;
}
}
bool CSMWorld::ColumnBase::canHaveNestedColumns() const
{
return mCanNest;
}

View File

@ -91,14 +91,15 @@ namespace CSMWorld
Display_QuestStatusType,
Display_Gender,
Display_Nested
Display_NestedItemList
};
int mColumnId;
int mFlags;
Display mDisplayType;
const bool mCanNest;
ColumnBase (int columnId, Display displayType, int flag);
ColumnBase (int columnId, Display displayType, int flag, bool canNest = false);
virtual ~ColumnBase();
@ -110,6 +111,8 @@ namespace CSMWorld
virtual std::string getTitle() const;
virtual int getId() const;
bool canHaveNestedColumns() const;
};
template<typename ESXRecordT>
@ -117,8 +120,8 @@ namespace CSMWorld
{
int mFlags;
Column (int columnId, Display displayType, int flags = Flag_Table | Flag_Dialogue)
: ColumnBase (columnId, displayType, flags) {}
Column (int columnId, Display displayType, int flags = Flag_Table | Flag_Dialogue, bool canNest = false)
: ColumnBase (columnId, displayType, flags, canNest) {}
virtual QVariant get (const Record<ESXRecordT>& record) const = 0;

View File

@ -1,7 +1,5 @@
#include "idtable.hpp"
#include <QDebug>
#include "collectionbase.hpp"
#include "columnbase.hpp"
@ -295,7 +293,7 @@ std::pair< int, int > CSMWorld::IdTable::unfoldIndexAdress (unsigned int id) con
bool CSMWorld::IdTable::hasChildren(const QModelIndex& index) const
{
return (index.isValid() &&
CSMWorld::ColumnBase::Display_Nested == static_cast<CSMWorld::ColumnBase::Display> (headerData (index.column(), Qt::Horizontal, CSMWorld::ColumnBase::Role_Display).toInt()) &&
index.internalId() == 0 &&
mIdCollection->getColumn (index.column()).canHaveNestedColumns() &&
index.data().isValid());
}

View File

@ -12,8 +12,8 @@
#include "columns.hpp"
CSMWorld::RefIdColumn::RefIdColumn (int columnId, Display displayType, int flag,
bool editable, bool userEditable)
: ColumnBase (columnId, displayType, flag), mEditable (editable), mUserEditable (userEditable)
bool editable, bool userEditable, bool canNest)
: ColumnBase (columnId, displayType, flag, canNest), mEditable (editable), mUserEditable (userEditable)
{}
bool CSMWorld::RefIdColumn::isEditable() const
@ -166,7 +166,7 @@ CSMWorld::RefIdCollection::RefIdCollection()
mColumns.push_back (RefIdColumn (Columns::ColumnId_Respawn, ColumnBase::Display_Boolean));
const RefIdColumn *respawn = &mColumns.back();
mColumns.push_back(RefIdColumn (Columns::ColumnId_ContainerContent, ColumnBase::Display_Nested, ColumnBase::Flag_Dialogue, false, false));
mColumns.push_back(RefIdColumn (Columns::ColumnId_ContainerContent, ColumnBase::Display_NestedItemList, ColumnBase::Flag_Dialogue, true, true, true));
const RefIdColumn *content = &mColumns.back();
CreatureColumns creatureColumns (actorsColumns);

View File

@ -26,8 +26,8 @@ namespace CSMWorld
public:
RefIdColumn (int columnId, Display displayType,
int flag = Flag_Table | Flag_Dialogue, bool editable = true,
bool userEditable = true);
int flag = Flag_Table | Flag_Dialogue, bool editable = true,
bool userEditable = true, bool canNest = false);
virtual bool isEditable() const;