Files
qt5-legatus-legacy/Lts/Viewer/SituationMap/MapImpl/jump_point_custom_view.cpp
T
2026-08-13 18:33:10 +02:00

77 lines
1.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
* CustomView for MapObjects
* $Id$
* $HeadURL$
* $Author$
* Created by Norbert Thoden, SLSE, 2017-04-11
*/
// Own
#include "jump_point_custom_view.h"
#include "ui_jump_point_custom_view.h"
#include "jump_point_model.h"
#include <Map/map.h>
// Ot
#include <QMenu>
#include <QBuffer>
#include <QDataWidgetMapper>
namespace SituationMap
{
JumpPointCustomView::JumpPointCustomView(QWidget *parent)
: BaseClass(parent)
, m_ui(new Ui::JumpPointCustomView)
, m_mapper(new QDataWidgetMapper(this))
{
m_ui->setupUi(this);
m_ui->image->setMenuEnabled(false); // no menu !
// // to keep toolTip up-to-date:
// connect(m_ui->image, &LtsWidgets::LtsImageEditor::imageChanged,
// this, &JumpPointCustomView::initToolTip);
}
JumpPointCustomView::~JumpPointCustomView()
{
delete m_ui;
}
bool JumpPointCustomView::init(const QModelIndex &idx)
{
if (!idx.isValid())
return false;
if (idx.model() != m_mapper->model())
{
// create mapping;
m_mapper->setModel(const_cast<QAbstractItemModel *>(idx.model()));
m_mapper->addMapping(m_ui->lbDescription, JumpPointModel::Columns::NAME, "text");
// m_mapper->addMapping(m_ui->image, JumpPointModel::Columns::ICON, "pixmap");
}
setRow(idx.row());
return true;
}
void JumpPointCustomView::setRow(int row)
{
m_mapper->setCurrentIndex(row);
// assume for now, that the relation between row and uniqueMapId will not change:
if (m_mapper && m_mapper->model())
{
QAbstractItemModel *modelPtr = m_mapper->model();
m_name = modelPtr->data(modelPtr->index(row, JumpPointModel::Columns::NAME)).toString();
QImage img = modelPtr->data(modelPtr->index(row, JumpPointModel::Columns::ICON)).value<QImage>();
m_ui->image->setPixmap(QPixmap::fromImage(img));
}
}
} // namespace SituationMap