Files
qt5-legatus-legacy/Lts/Plugins/PresentationManagement/Gui/Common/pre_mobile_model.cpp
T
2026-08-13 18:33:10 +02:00

88 lines
2.1 KiB
C++
Executable File

/**
* @RDE_HEADER@
* PresentationManangement - Script Overview Dialog Model
* $Id$
* $HeadURL$
* $Author$
*
* Created by Mike Wille, SLSE, 2017-03-15
*/
#include "pre_mobile_model.h"
namespace PresentationManagement
{
PreMobileDialogModel::PreMobileDialogModel(QObject *parent)
: PresentationManagementDialogModel(parent)
, m_logger(getLogger("PreMobileDialogModel"))
{
//m_vecColumns.append(tr("Download"));
m_checkboxColumn = 1;
}
PreMobileDialogModel::~PreMobileDialogModel()
{}
QVariant PreMobileDialogModel::data(const QModelIndex &index, int role) const
{
if (role == Qt::CheckStateRole &&
index.column() == m_checkboxColumn &&
indexIsValid(index))
{
if (m_vecDownload.size() <= index.row())
return Qt::Unchecked;
return m_vecDownload.at(index.row()) ? Qt::Checked : Qt::Unchecked;
}
return PresentationManagementDialogModel::data(index, role);
}
bool PreMobileDialogModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
Q_UNUSED(value);
if (role == Qt::CheckStateRole)
{
switchCheckbox(index);
emit checkboxClicked();
return true;
}
return false;
}
void PreMobileDialogModel::switchCheckbox(const QModelIndex &index)
{
if (m_vecDownload.size() <= index.row())
m_vecDownload.resize(index.row() + 1);
m_vecDownload[index.row()] = !m_vecDownload.at(index.row());
emit dataChanged(index, index, {Qt::CheckStateRole});
}
Qt::ItemFlags PreMobileDialogModel::flags(const QModelIndex &index) const
{
Qt::ItemFlags flags(PresentationManagementDialogModel::flags(index) & ~Qt::ItemIsSelectable);
if (index.column() == m_checkboxColumn)
flags.setFlag(Qt::ItemIsUserCheckable);
return flags;
}
QVector<int> PreMobileDialogModel::getDownloadedScriptIds() const
{
QVector<int> ret;
for (int i = 0; i < m_vecData.size(); ++i)
{
const Presentation &p = m_vecData.at(i);
if (m_vecDownload.size() <= i) // lazy init in switchCheckBox
break;
if (m_vecDownload.at(i))
ret.push_back(p.id());
}
return ret;
}
} // namespace PresentationManagement