Files

147 lines
3.8 KiB
C++
Raw Permalink Normal View History

2026-05-24 23:21:33 +02:00
#include "msqlquerymodel.h"
#include <QIcon>
#include <QDebug>
#include <QLocale>
MSqlQueryModel::MSqlQueryModel(QObject *parent) :
QSqlQueryModel(parent)
{
}
QVariant MSqlQueryModel::data(const QModelIndex &index, int role) const
{
if(!index.isValid())
return false;
QVariant value = QSqlQueryModel::data(index,role);
//if(role==Qt::TextColorRole && index.column()==0)
// return qVariantFromValue(QColor(Qt::red));
switch (role)
{
case Qt::DisplayRole:
//case Qt::EditRole:
{
switch (index.column())
{
case 0:
{
if (false)
{
switch (QSqlQueryModel::data(index, Qt::DisplayRole).toInt())//(data(index).toInt())
{
case 0:
return tr("Elemento Compuesto");
case 1:
return tr("Material");
case 2:
return tr("Mano de Obra");
case 3:
return tr("Maquinaria");
case 4:
return tr("Porcentajes");
default:
break;
}
}
else
return QVariant();
}
case 1:
{
switch (QSqlQueryModel::data(index, Qt::DisplayRole).toInt())//(data(index).toInt())
{
case 0:
return tr("Servicio");
case 1:
return tr("Producto");
}
}
case 4:
case 5:
{
QLocale locale = QLocale("es_ES");
QString s = locale.toString(value.toDouble(), 'f', 2) + "";
return s;
}
case 6:
{
return QVariant();
}
default:
return value;
}
}
case Qt::DecorationRole:
{
if(index.column() == 0)
{
switch (QSqlQueryModel::data(index, Qt::DisplayRole).toInt())//(data(index).toInt())
{
case 0:
return QIcon(":/resources/icons/box.svg");
case 1:
return QIcon(":/resources/icons/blocks.svg");
case 2:
return QIcon(":/resources/icons/helmet.svg");
case 3:
return QIcon(":/resources/icons/gear.svg");
case 4:
return QIcon(":/resources/icons/percentage.svg");
default:
break;
}
}
else
return QVariant();
}
case Qt::TextAlignmentRole:
switch (index.column())
{
case 4:
case 5:
{
return int(Qt::AlignRight | Qt::AlignTop);
}
case 6:
{
return int(Qt::AlignCenter | Qt::AlignTop);
}
default:
return int(Qt::AlignLeft | Qt::AlignTop);
}
case Qt::CheckStateRole:
if (index.column() == 6)
return (QSqlQueryModel::data(index).toBool() == true) ? Qt::Checked : Qt::Unchecked;
else
return QVariant();
default:
return value;
}
}