Enable setting priority from the universe model tree
This commit is contained in:
parent
056063ab2c
commit
d60721cf79
@ -211,7 +211,17 @@ QVariant MultiverseItem::data(int column, int role) const
|
|||||||
return QVariant();
|
return QVariant();
|
||||||
case Qt::EditRole:
|
case Qt::EditRole:
|
||||||
if (universe_)
|
if (universe_)
|
||||||
|
{
|
||||||
|
if (!universe_->isEditable())
|
||||||
return QVariant(QVariant::fromValue(universe_));
|
return QVariant(QVariant::fromValue(universe_));
|
||||||
|
switch (static_cast<MultiverseModel::Column>(column))
|
||||||
|
{
|
||||||
|
case MultiverseModel::Priority:
|
||||||
|
return universe_->priority();
|
||||||
|
default:
|
||||||
|
return QVariant(QVariant::fromValue(universe_));
|
||||||
|
}
|
||||||
|
}
|
||||||
if (discovery_)
|
if (discovery_)
|
||||||
return QVariant(QVariant::fromValue(discovery_));
|
return QVariant(QVariant::fromValue(discovery_));
|
||||||
return data(column, Qt::DisplayRole);
|
return data(column, Qt::DisplayRole);
|
||||||
@ -221,6 +231,40 @@ QVariant MultiverseItem::data(int column, int role) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief MultiverseItem::setData
|
||||||
|
* @param column
|
||||||
|
* @param value
|
||||||
|
* @param role
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
bool MultiverseItem::setData(int column, const QVariant &value, int role)
|
||||||
|
{
|
||||||
|
if (!universe_->isEditable())
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (role != Qt::EditRole)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
switch (column)
|
||||||
|
{
|
||||||
|
case MultiverseModel::Priority:
|
||||||
|
{
|
||||||
|
if (!value.canConvert<uint>())
|
||||||
|
return false;
|
||||||
|
auto p = value.toUInt();
|
||||||
|
if (p < 0 || p > 200)
|
||||||
|
return false;
|
||||||
|
universe_->setPriority(p);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief MultiverseItem::flags
|
* @brief MultiverseItem::flags
|
||||||
* @param column
|
* @param column
|
||||||
@ -238,10 +282,14 @@ Qt::ItemFlags MultiverseItem::flags(int column, Qt::ItemFlags base) const
|
|||||||
switch (static_cast<MultiverseModel::Column>(column))
|
switch (static_cast<MultiverseModel::Column>(column))
|
||||||
{
|
{
|
||||||
case MultiverseModel::Universe:
|
case MultiverseModel::Universe:
|
||||||
case MultiverseModel::Priority:
|
|
||||||
case MultiverseModel::Channels:
|
case MultiverseModel::Channels:
|
||||||
case MultiverseModel::Description:
|
case MultiverseModel::Description:
|
||||||
return base;
|
return base;
|
||||||
|
case MultiverseModel::Priority:
|
||||||
|
if (universe_ && universe_->isEditable())
|
||||||
|
return base | Qt::ItemIsEditable;
|
||||||
|
else
|
||||||
|
return base;
|
||||||
default:
|
default:
|
||||||
return Qt::NoItemFlags;
|
return Qt::NoItemFlags;
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ public:
|
|||||||
int childCount() const;
|
int childCount() const;
|
||||||
int childRow(int column, const QVariant &data) const;
|
int childRow(int column, const QVariant &data) const;
|
||||||
QVariant data(int column, int role = Qt::DisplayRole) const;
|
QVariant data(int column, int role = Qt::DisplayRole) const;
|
||||||
|
bool setData(int column, const QVariant &value, int role = Qt::EditRole);
|
||||||
Qt::ItemFlags flags(int column, Qt::ItemFlags base) const;
|
Qt::ItemFlags flags(int column, Qt::ItemFlags base) const;
|
||||||
int row() const;
|
int row() const;
|
||||||
MultiverseItem * parentItem();
|
MultiverseItem * parentItem();
|
||||||
|
@ -185,6 +185,27 @@ QVariant MultiverseModel::data(const QModelIndex &index, int role) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief MultiverseModel::setData
|
||||||
|
* @param index
|
||||||
|
* @param value
|
||||||
|
* @param role
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
bool MultiverseModel::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||||
|
{
|
||||||
|
if (!checkIndex(index, CheckIndexOption::IndexIsValid))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (getItem(index)->setData(index.column(), value, role))
|
||||||
|
{
|
||||||
|
emit dataChanged(index, index, QVector<int>() << role);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief MultiverseModel::flags
|
* @brief MultiverseModel::flags
|
||||||
* @param index
|
* @param index
|
||||||
|
@ -46,6 +46,8 @@ public:
|
|||||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||||
QVariant data(const QModelIndex &index,
|
QVariant data(const QModelIndex &index,
|
||||||
int role = Qt::DisplayRole) const override;
|
int role = Qt::DisplayRole) const override;
|
||||||
|
bool setData(const QModelIndex &index, const QVariant &value,
|
||||||
|
int role = Qt::EditRole) override;
|
||||||
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
||||||
|
|
||||||
// non-standard model operations
|
// non-standard model operations
|
||||||
|
Loading…
Reference in New Issue
Block a user