/** * @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 #include #include #include 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(); 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