115 lines
3.5 KiB
C++
Executable File
115 lines
3.5 KiB
C++
Executable File
/**
|
|
* @RDE_HEADER@
|
|
* CustomView for Exercises
|
|
* $Id$
|
|
* $HeadURL$
|
|
* $Author$
|
|
* Created by Mike Wille, SLSE, 2016-04-08
|
|
*/
|
|
|
|
#include "exm_exercise.h"
|
|
#include "ui_exm_exercise.h"
|
|
#include "exm_dialog_model.h"
|
|
|
|
#include <ngltools/ngltools_dtg.h>
|
|
#include <LtsUtilsCore/dds_vector_to_pixmap.h>
|
|
|
|
#include <QFile>
|
|
#include <QDebug>
|
|
|
|
|
|
namespace ExerciseManagement
|
|
{
|
|
|
|
CustomViewExercise::CustomViewExercise(QWidget *parent)
|
|
: AbstractDisplayWidget(parent)
|
|
, m_ui(new Ui::CustomViewExercise)
|
|
{
|
|
m_ui->setupUi(this);
|
|
m_ui->image->setMenuEnabled(false); // no menu !
|
|
m_ui->image->setDrawOuterRect(false);
|
|
}
|
|
|
|
|
|
CustomViewExercise::~CustomViewExercise()
|
|
{
|
|
delete m_ui;
|
|
}
|
|
|
|
|
|
QSize CustomViewExercise::imageSize() const
|
|
{
|
|
return m_ui->image->size();
|
|
}
|
|
|
|
|
|
void CustomViewExercise::loadDefaultImage(QPixmap &intoPixmap)
|
|
{
|
|
QString projectLogoFilename(QStringLiteral(":project/login_logo.png"));
|
|
if (!QFile::exists(projectLogoFilename))
|
|
projectLogoFilename = QStringLiteral(":/project/logo.png");
|
|
|
|
intoPixmap = QPixmap(projectLogoFilename);
|
|
}
|
|
|
|
|
|
bool CustomViewExercise::init(const QModelIndex &idx)
|
|
{
|
|
if (!idx.isValid())
|
|
return false;
|
|
|
|
const QString exName = rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Name).toString();
|
|
m_ui->lbExerciseName->setText(exName);
|
|
m_ui->lbExerciseName->setToolTip(exName);
|
|
|
|
QPixmap img;
|
|
int exerciseId = rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Id).toInt();
|
|
if (exerciseId == 0)
|
|
{
|
|
m_ui->lbExerciseName->setWordWrap(true);
|
|
m_ui->lbLocation->hide();
|
|
m_ui->lbCreationDate->hide();
|
|
m_ui->lbDescription->hide();
|
|
m_ui->lbStatus->hide();
|
|
|
|
loadDefaultImage(img);
|
|
}
|
|
else
|
|
{
|
|
m_ui->lbLocation->setText(rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::TrainingArea).toString());
|
|
m_ui->lbCreationDate->setText(DTG::toString(rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Created).toDateTime()));
|
|
m_ui->lbDescription->setText(rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Description).toString());
|
|
m_ui->lbStatus->setText(rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Status).toString());
|
|
|
|
// status label color same as in LtsBaseLayoutWidget
|
|
QPalette p = m_ui->lbStatus->palette();
|
|
QColor newCol = rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Status, Qt::TextColorRole).value<QColor>();
|
|
p.setColor(m_ui->lbStatus->backgroundRole(), newCol);
|
|
p.setColor(m_ui->lbStatus->foregroundRole(), newCol);
|
|
m_ui->lbStatus->setPalette(p);
|
|
|
|
QByteArray imgData = rowData(idx, ExerciseManagement::ExerciseManagementDialogModel::Image).toByteArray();
|
|
|
|
if (imgData.isEmpty())
|
|
loadDefaultImage(img);
|
|
else
|
|
img = LtsUtils::getPixmap(imgData);
|
|
}
|
|
|
|
if (!img.isNull())
|
|
m_ui->image->setPixmap(img);
|
|
|
|
// IO: set unique object names for Squish
|
|
this->setObjectName(QStringLiteral("customViewExercise_")+QString::number(exerciseId));
|
|
m_ui->lbExerciseName->setObjectName(QStringLiteral("lbExerciseName_")+QString::number(exerciseId));
|
|
m_ui->lbLocation->setObjectName(QStringLiteral("lbLocation_")+QString::number(exerciseId));
|
|
m_ui->lbCreationDate->setObjectName(QStringLiteral("lbCreationDate_")+QString::number(exerciseId));
|
|
m_ui->lbDescription->setObjectName(QStringLiteral("lbDescription_")+QString::number(exerciseId));
|
|
m_ui->lbStatus->setObjectName(QStringLiteral("lbStatus_")+QString::number(exerciseId));
|
|
m_ui->image->setObjectName(QStringLiteral("image_")+QString::number(exerciseId));
|
|
|
|
return true;
|
|
}
|
|
|
|
} // namespace ExerciseManagement
|