mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-27 03:35:27 +00:00
Fixed problem in the idtable.
This commit is contained in:
parent
3262f8d774
commit
d221486a14
@ -1,4 +1,5 @@
|
|||||||
#include "idtable.hpp"
|
#include "idtable.hpp"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
@ -93,23 +94,34 @@ QVariant CSMWorld::IdTable::nestedHeaderData(int section, int subSection, Qt::Or
|
|||||||
|
|
||||||
bool CSMWorld::IdTable::setData (const QModelIndex &index, const QVariant &value, int role)
|
bool CSMWorld::IdTable::setData (const QModelIndex &index, const QVariant &value, int role)
|
||||||
{
|
{
|
||||||
if (mIdCollection->getColumn (index.column()).isEditable() && role==Qt::EditRole)
|
if (index.internalId() != 0)
|
||||||
{
|
{
|
||||||
if (index.internalId() == 0)
|
if (mIdCollection->getColumn(parent(index).column()).isEditable() && role==Qt::EditRole)
|
||||||
{
|
|
||||||
mIdCollection->setData (index.row(), index.column(), value);
|
|
||||||
|
|
||||||
emit dataChanged (CSMWorld::IdTable::index (index.row(), 0),
|
|
||||||
CSMWorld::IdTable::index (index.row(), mIdCollection->getColumns()-1));
|
|
||||||
} else
|
|
||||||
{
|
{
|
||||||
const std::pair<int, int>& parentAdress(unfoldIndexAdress(index.internalId()));
|
const std::pair<int, int>& parentAdress(unfoldIndexAdress(index.internalId()));
|
||||||
|
|
||||||
mIdCollection->setNestedData(parentAdress.first, parentAdress.second, value, index.row(), index.column());
|
mIdCollection->setNestedData(parentAdress.first, parentAdress.second, value, index.row(), index.column());
|
||||||
}
|
|
||||||
return true;
|
emit dataChanged (CSMWorld::IdTable::index (parentAdress.first, 0),
|
||||||
}
|
CSMWorld::IdTable::index (parentAdress.second, mIdCollection->getColumns()-1));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mIdCollection->getColumn (index.column()).isEditable() && role==Qt::EditRole)
|
||||||
|
{
|
||||||
|
mIdCollection->setData (index.row(), index.column(), value);
|
||||||
|
|
||||||
|
emit dataChanged (CSMWorld::IdTable::index (index.row(), 0),
|
||||||
|
CSMWorld::IdTable::index (index.row(), mIdCollection->getColumns()-1));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -131,9 +143,9 @@ bool CSMWorld::IdTable::removeRows (int row, int count, const QModelIndex& paren
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < count; ++i)
|
for (int i = 0; i < count; ++i)
|
||||||
{
|
{
|
||||||
mIdCollection->removeNestedRows(parent.row(), parent.column(), row+i);
|
mIdCollection->removeNestedRows(parent.row(), parent.column(), row+i);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
|
|
||||||
beginRemoveRows (parent, row, row+count-1);
|
beginRemoveRows (parent, row, row+count-1);
|
||||||
@ -157,7 +169,7 @@ void CSMWorld::IdTable::addNestedRow(const QModelIndex& parent, int position)
|
|||||||
|
|
||||||
emit dataChanged (CSMWorld::IdTable::index (row, 0),
|
emit dataChanged (CSMWorld::IdTable::index (row, 0),
|
||||||
CSMWorld::IdTable::index (row, mIdCollection->getColumns()-1));
|
CSMWorld::IdTable::index (row, mIdCollection->getColumns()-1));
|
||||||
|
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
#include <QContextMenuEvent>
|
#include <QContextMenuEvent>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
CSVWorld::NestedTable::NestedTable(QUndoStack& undoStack,
|
CSVWorld::NestedTable::NestedTable(QUndoStack& undoStack,
|
||||||
CSMWorld::NestedTableModel* model,
|
CSMWorld::NestedTableModel* model,
|
||||||
@ -32,7 +33,7 @@ CSVWorld::NestedTable::NestedTable(QUndoStack& undoStack,
|
|||||||
CommandDelegate *delegate = CommandDelegateFactoryCollection::get().makeDelegate(display,
|
CommandDelegate *delegate = CommandDelegateFactoryCollection::get().makeDelegate(display,
|
||||||
undoStack,
|
undoStack,
|
||||||
this);
|
this);
|
||||||
|
|
||||||
setItemDelegateForColumn(i, delegate);
|
setItemDelegateForColumn(i, delegate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user