mirror of
https://github.com/OpenMW/openmw.git
synced 2025-04-01 12:36:40 +00:00
Grey out disabled entries rather than hiding them.
This commit is contained in:
parent
1d0b8587a1
commit
2fc964ca73
4 changed files with 41 additions and 14 deletions
|
@ -1069,19 +1069,25 @@ namespace CSMWorld
|
||||||
switch (subColIndex)
|
switch (subColIndex)
|
||||||
{
|
{
|
||||||
case 0: return isInterior;
|
case 0: return isInterior;
|
||||||
case 1: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mAmbient : QVariant();
|
case 1: return (isInterior && !behaveLikeExterior) ?
|
||||||
case 2: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mSunlight : QVariant();
|
cell.mAmbi.mAmbient : QVariant(QVariant::UserType);
|
||||||
case 3: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mFog : QVariant();
|
case 2: return (isInterior && !behaveLikeExterior) ?
|
||||||
case 4: return (isInterior && !behaveLikeExterior) ? cell.mAmbi.mFogDensity : QVariant();
|
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:
|
case 5:
|
||||||
{
|
{
|
||||||
if (isInterior && !behaveLikeExterior && interiorWater)
|
if (isInterior && !behaveLikeExterior && interiorWater)
|
||||||
return cell.mWater;
|
return cell.mWater;
|
||||||
else
|
else
|
||||||
return QVariant();
|
return QVariant(QVariant::UserType);
|
||||||
}
|
}
|
||||||
case 6: return isInterior ? QVariant() : cell.mMapColor; // TODO: how to select?
|
case 6: return isInterior ?
|
||||||
//case 7: return isInterior ? behaveLikeExterior : QVariant();
|
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");
|
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 (column==mColumns.mAttributes || column==mColumns.mSkills)
|
||||||
{
|
{
|
||||||
if ((record.get().mFlags & ESM::NPC::Autocalc) != 0)
|
if ((record.get().mFlags & ESM::NPC::Autocalc) != 0)
|
||||||
return QVariant();
|
return QVariant(QVariant::UserType);
|
||||||
else
|
else
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -805,10 +805,10 @@ QVariant CSMWorld::NpcMiscRefIdAdapter::getNestedData (const RefIdColumn *column
|
||||||
switch (subColIndex)
|
switch (subColIndex)
|
||||||
{
|
{
|
||||||
case 0: return static_cast<int>(record.get().mNpdt12.mLevel);
|
case 0: return static_cast<int>(record.get().mNpdt12.mLevel);
|
||||||
case 1: return QVariant();
|
case 1: return QVariant(QVariant::UserType);
|
||||||
case 2: return QVariant();
|
case 2: return QVariant(QVariant::UserType);
|
||||||
case 3: return QVariant();
|
case 3: return QVariant(QVariant::UserType);
|
||||||
case 4: return QVariant();
|
case 4: return QVariant(QVariant::UserType);
|
||||||
case 5: return static_cast<int>(record.get().mNpdt12.mDisposition);
|
case 5: return static_cast<int>(record.get().mNpdt12.mDisposition);
|
||||||
case 6: return static_cast<int>(record.get().mNpdt12.mReputation);
|
case 6: return static_cast<int>(record.get().mNpdt12.mReputation);
|
||||||
case 7: return static_cast<int>(record.get().mNpdt12.mRank);
|
case 7: return static_cast<int>(record.get().mNpdt12.mRank);
|
||||||
|
|
|
@ -1976,7 +1976,7 @@ namespace CSMWorld
|
||||||
{
|
{
|
||||||
switch (subColIndex)
|
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 1: return record.get().mFlags & ESM::CreatureLevList::AllLevels;
|
||||||
case 2: return static_cast<int> (record.get().mChanceNone);
|
case 2: return static_cast<int> (record.get().mChanceNone);
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -461,7 +461,14 @@ void CSVWorld::EditWidget::remake(int row)
|
||||||
NestedTable* table = new NestedTable(mDocument, id, mNestedModels.back(), this);
|
NestedTable* table = new NestedTable(mDocument, id, mNestedModels.back(), this);
|
||||||
// FIXME: does not work well when enum delegates are used
|
// FIXME: does not work well when enum delegates are used
|
||||||
//table->resizeColumnsToContents();
|
//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 rows = mTable->rowCount(mTable->index(row, i));
|
||||||
int rowHeight = (rows == 0) ? table->horizontalHeader()->height() : table->rowHeight(0);
|
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);
|
new QLabel (mTable->headerData (i, Qt::Horizontal, Qt::DisplayRole).toString(), mMainWidget);
|
||||||
|
|
||||||
label->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
|
label->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::Fixed);
|
||||||
|
if(mTable->index(row, i).data().type() == QVariant::UserType)
|
||||||
|
label->setEnabled(false);
|
||||||
|
|
||||||
tablesLayout->addWidget(label);
|
tablesLayout->addWidget(label);
|
||||||
tablesLayout->addWidget(table);
|
tablesLayout->addWidget(table);
|
||||||
|
@ -503,6 +512,12 @@ void CSVWorld::EditWidget::remake(int row)
|
||||||
unlockedLayout->addWidget (editor, unlocked, 1);
|
unlockedLayout->addWidget (editor, unlocked, 1);
|
||||||
++unlocked;
|
++unlocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mTable->index(row, i).data().type() == QVariant::UserType)
|
||||||
|
{
|
||||||
|
editor->setEnabled(false);
|
||||||
|
label->setEnabled(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -550,6 +565,12 @@ void CSVWorld::EditWidget::remake(int row)
|
||||||
unlockedLayout->addWidget (label, unlocked, 0);
|
unlockedLayout->addWidget (label, unlocked, 0);
|
||||||
unlockedLayout->addWidget (editor, unlocked, 1);
|
unlockedLayout->addWidget (editor, unlocked, 1);
|
||||||
++unlocked;
|
++unlocked;
|
||||||
|
|
||||||
|
if(mNestedModels.back()->index(0, col).data().type() == QVariant::UserType)
|
||||||
|
{
|
||||||
|
editor->setEnabled(false);
|
||||||
|
label->setEnabled(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mNestedTableMapper->setCurrentModelIndex(mNestedModels.back()->index(0, 0));
|
mNestedTableMapper->setCurrentModelIndex(mNestedModels.back()->index(0, 0));
|
||||||
|
|
Loading…
Reference in a new issue