mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-10 21:40:15 +00:00
Grey out disabled entries rather than hiding them.
This commit is contained in:
parent
1d0b8587a1
commit
2fc964ca73
@ -1069,19 +1069,25 @@ namespace CSMWorld
|
||||
switch (subColIndex)
|
||||
{
|
||||
case 0: return isInterior;
|
||||
case 1: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mAmbient : QVariant();
|
||||
case 2: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mSunlight : QVariant();
|
||||
case 3: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mFog : QVariant();
|
||||
case 4: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mFogDensity : QVariant();
|
||||
case 1: return (isInterior && !behaveLikeExterior) ?
|
||||
cell.mAmbi.mAmbient : QVariant(QVariant::UserType);
|
||||
case 2: return (isInterior && !behaveLikeExterior) ?
|
||||
cell.mAmbi.mSunlight : QVariant(QVariant::UserType);
|
||||
case 3: return (isInterior && !behaveLikeExterior) ?
|
||||
cell.mAmbi.mFog : QVariant(QVariant::UserType);
|
||||
case 4: return (isInterior && !behaveLikeExterior) ?
|
||||
cell.mAmbi.mFogDensity : QVariant(QVariant::UserType);
|
||||
case 5:
|
||||
{
|
||||
if (isInterior && !behaveLikeExterior && interiorWater)
|
||||
return cell.mWater;
|
||||
else
|
||||
return QVariant();
|
||||
return QVariant(QVariant::UserType);
|
||||
}
|
||||
case 6: return isInterior ? QVariant() : cell.mMapColor; // TODO: how to select?
|
||||
//case 7: return isInterior ? behaveLikeExterior : QVariant();
|
||||
case 6: return isInterior ?
|
||||
QVariant(QVariant::UserType) : cell.mMapColor; // TODO: how to select?
|
||||
//case 7: return isInterior ?
|
||||
//behaveLikeExterior : QVariant(QVariant::UserType);
|
||||
default: throw std::runtime_error("Cell subcolumn index out of range");
|
||||
}
|
||||
}
|
||||
|
@ -502,7 +502,7 @@ QVariant CSMWorld::NpcRefIdAdapter::getData (const RefIdColumn *column, const Re
|
||||
if (column==mColumns.mAttributes || column==mColumns.mSkills)
|
||||
{
|
||||
if ((record.get().mFlags & ESM::NPC::Autocalc) != 0)
|
||||
return QVariant();
|
||||
return QVariant(QVariant::UserType);
|
||||
else
|
||||
return true;
|
||||
}
|
||||
@ -805,10 +805,10 @@ QVariant CSMWorld::NpcMiscRefIdAdapter::getNestedData (const RefIdColumn *column
|
||||
switch (subColIndex)
|
||||
{
|
||||
case 0: return static_cast<int>(record.get().mNpdt12.mLevel);
|
||||
case 1: return QVariant();
|
||||
case 2: return QVariant();
|
||||
case 3: return QVariant();
|
||||
case 4: return QVariant();
|
||||
case 1: return QVariant(QVariant::UserType);
|
||||
case 2: return QVariant(QVariant::UserType);
|
||||
case 3: return QVariant(QVariant::UserType);
|
||||
case 4: return QVariant(QVariant::UserType);
|
||||
case 5: return static_cast<int>(record.get().mNpdt12.mDisposition);
|
||||
case 6: return static_cast<int>(record.get().mNpdt12.mReputation);
|
||||
case 7: return static_cast<int>(record.get().mNpdt12.mRank);
|
||||
|
@ -1976,7 +1976,7 @@ namespace CSMWorld
|
||||
{
|
||||
switch (subColIndex)
|
||||
{
|
||||
case 0: return QVariant(); // don't allow checkbox editor to be created
|
||||
case 0: return QVariant(QVariant::UserType); // disable the checkbox editor
|
||||
case 1: return record.get().mFlags & ESM::CreatureLevList::AllLevels;
|
||||
case 2: return static_cast<int> (record.get().mChanceNone);
|
||||
default:
|
||||
|
@ -461,7 +461,14 @@ void CSVWorld::EditWidget::remake(int row)
|
||||
NestedTable* table = new NestedTable(mDocument, id, mNestedModels.back(), this);
|
||||
// FIXME: does not work well when enum delegates are used
|
||||
//table->resizeColumnsToContents();
|
||||
table->setEditTriggers(QAbstractItemView::SelectedClicked | QAbstractItemView::CurrentChanged);
|
||||
|
||||
if(mTable->index(row, i).data().type() == QVariant::UserType)
|
||||
{
|
||||
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||
table->setEnabled(false);
|
||||
}
|
||||
else
|
||||
table->setEditTriggers(QAbstractItemView::SelectedClicked | QAbstractItemView::CurrentChanged);
|
||||
|
||||
int rows = mTable->rowCount(mTable->index(row, i));
|
||||
int rowHeight = (rows == 0) ? table->horizontalHeader()->height() : table->rowHeight(0);
|
||||
@ -473,6 +480,8 @@ void CSVWorld::EditWidget::remake(int row)
|
||||
new QLabel (mTable->headerData (i, Qt::Horizontal, Qt::DisplayRole).toString(), mMainWidget);
|
||||
|
||||
label->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||
if(mTable->index(row, i).data().type() == QVariant::UserType)
|
||||
label->setEnabled(false);
|
||||
|
||||
tablesLayout->addWidget(label);
|
||||
tablesLayout->addWidget(table);
|
||||
@ -503,6 +512,12 @@ void CSVWorld::EditWidget::remake(int row)
|
||||
unlockedLayout->addWidget (editor, unlocked, 1);
|
||||
++unlocked;
|
||||
}
|
||||
|
||||
if(mTable->index(row, i).data().type() == QVariant::UserType)
|
||||
{
|
||||
editor->setEnabled(false);
|
||||
label->setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -550,6 +565,12 @@ void CSVWorld::EditWidget::remake(int row)
|
||||
unlockedLayout->addWidget (label, unlocked, 0);
|
||||
unlockedLayout->addWidget (editor, unlocked, 1);
|
||||
++unlocked;
|
||||
|
||||
if(mNestedModels.back()->index(0, col).data().type() == QVariant::UserType)
|
||||
{
|
||||
editor->setEnabled(false);
|
||||
label->setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
mNestedTableMapper->setCurrentModelIndex(mNestedModels.back()->index(0, 0));
|
||||
|
Loading…
x
Reference in New Issue
Block a user