Make the account selection list use checkboxes rather than text for active boolean
This commit is contained in:
parent
50e9574c0c
commit
20a332e97c
@ -148,9 +148,6 @@ QVariant MojangAccountList::data(const QModelIndex &index, int role) const
|
|||||||
case Qt::DisplayRole:
|
case Qt::DisplayRole:
|
||||||
switch (index.column())
|
switch (index.column())
|
||||||
{
|
{
|
||||||
case ActiveColumn:
|
|
||||||
return account == m_activeAccount;
|
|
||||||
|
|
||||||
case NameColumn:
|
case NameColumn:
|
||||||
return account->username();
|
return account->username();
|
||||||
|
|
||||||
@ -164,6 +161,13 @@ QVariant MojangAccountList::data(const QModelIndex &index, int role) const
|
|||||||
case PointerRole:
|
case PointerRole:
|
||||||
return qVariantFromValue(account);
|
return qVariantFromValue(account);
|
||||||
|
|
||||||
|
case Qt::CheckStateRole:
|
||||||
|
switch (index.column())
|
||||||
|
{
|
||||||
|
case ActiveColumn:
|
||||||
|
return account == m_activeAccount;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
@ -212,6 +216,36 @@ int MojangAccountList::columnCount(const QModelIndex &parent) const
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Qt::ItemFlags MojangAccountList::flags(const QModelIndex &index) const
|
||||||
|
{
|
||||||
|
if (index.row() < 0 || index.row() >= rowCount(index) || !index.isValid())
|
||||||
|
{
|
||||||
|
return Qt::NoItemFlags;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MojangAccountList::setData(const QModelIndex &index, const QVariant &value, int role)
|
||||||
|
{
|
||||||
|
if (index.row() < 0 || index.row() >= rowCount(index) || !index.isValid())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(role == Qt::CheckStateRole)
|
||||||
|
{
|
||||||
|
if(value == Qt::Checked)
|
||||||
|
{
|
||||||
|
MojangAccountPtr account = this->at(index.row());
|
||||||
|
this->setActiveAccount(account->username());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
emit dataChanged(index, index);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void MojangAccountList::updateListData(QList<MojangAccountPtr> versions)
|
void MojangAccountList::updateListData(QList<MojangAccountPtr> versions)
|
||||||
{
|
{
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
|
@ -64,6 +64,8 @@ public:
|
|||||||
virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;
|
virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;
|
||||||
virtual int rowCount(const QModelIndex &parent) const;
|
virtual int rowCount(const QModelIndex &parent) const;
|
||||||
virtual int columnCount(const QModelIndex &parent) const;
|
virtual int columnCount(const QModelIndex &parent) const;
|
||||||
|
virtual Qt::ItemFlags flags(const QModelIndex &index) const;
|
||||||
|
virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Adds a the given Mojang account to the account list.
|
* Adds a the given Mojang account to the account list.
|
||||||
|
Loading…
Reference in New Issue
Block a user