Skip to content
Snippets Groups Projects
Commit 97f5392f authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

setData now is working for FitParameterAbsModel

parent 1e737b43
No related branches found
No related tags found
No related merge requests found
......@@ -31,9 +31,9 @@ void FitModelHelper::createFitParameter(FitParameterContainerItem *container, Pa
fitPar->setDisplayName(QStringLiteral("par"));
Q_ASSERT(fitPar);
SessionItem *link = fitPar->model()->insertNewItem(Constants::FitParameterLinkType, fitPar->index());
Q_ASSERT(link);
link->setItemValue(FitParameterLinkItem::P_LINK, "xxx");
// SessionItem *link = fitPar->model()->insertNewItem(Constants::FitParameterLinkType, fitPar->index());
// Q_ASSERT(link);
// link->setItemValue(FitParameterLinkItem::P_LINK, "xxx");
// SessionItem *link2 = fitPar->model()->insertNewItem(Constants::FitParameterLinkType, fitPar->index());
// link2->setItemValue(FitParameterLinkItem::P_LINK, "yyy");
......
......@@ -152,6 +152,28 @@ QVariant FitParameterAbsModel::data(const QModelIndex &index, int role) const
return QVariant();
}
bool FitParameterAbsModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
if (!index.isValid())
return false;
if (SessionItem *item = itemForIndex(index)) {
if (role == Qt::EditRole) {
item->setValue(value);
emit dataChanged(index, index);
return true;
}
}
return false;
}
QVariant FitParameterAbsModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
return m_columnNames.value(section);
}
return QVariant();
}
void FitParameterAbsModel::onSourceDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
......@@ -181,7 +203,7 @@ void FitParameterAbsModel::connectModel(QAbstractItemModel *sourceModel, bool is
}
}
QModelIndex FitParameterAbsModel::indexOfItem(SessionItem *item, const QModelIndex &parentIndex) const
QModelIndex FitParameterAbsModel::indexOfItem(SessionItem *item) const
{
if(SessionItem *parent_item = item->parent()) {
......@@ -205,7 +227,6 @@ QModelIndex FitParameterAbsModel::indexOfItem(SessionItem *item, const QModelInd
return createIndex(links.indexOf(parent_item), 0, item);
}
}
return QModelIndex();
......
......@@ -43,8 +43,10 @@ public:
virtual int rowCount(const QModelIndex &parent) const;
virtual int columnCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
bool setData(const QModelIndex &index, const QVariant &value, int role) Q_DECL_OVERRIDE;
QVariant headerData(int section, Qt::Orientation orientation, int role) const Q_DECL_OVERRIDE;
QModelIndex indexOfItem(SessionItem *item, const QModelIndex &parentIndex = QModelIndex()) const;
QModelIndex indexOfItem(SessionItem *item) const;
SessionItem *itemForIndex(const QModelIndex &index) const;
private slots:
......
......@@ -200,9 +200,11 @@ inline void TestFitParameterModel::test_addTwoFitParameterAndLinks()
// adding fit parameters
SessionItem *fitPar0 = source.insertNewItem(Constants::FitParameterType, container->index());
SessionItem *link0 = source.insertNewItem(Constants::FitParameterLinkType, fitPar0->index());
Q_UNUSED(link0);
SessionItem *fitPar1 = source.insertNewItem(Constants::FitParameterType, container->index());
SessionItem *link1 = source.insertNewItem(Constants::FitParameterLinkType, fitPar1->index());
Q_UNUSED(link1);
// checking index of root
QCOMPARE(2, proxy.rowCount(QModelIndex()));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment