//------------------------------------------------------------------------------ // // Project: Anonymizer // // Brno University of Technology // Faculty of Information Technology // //------------------------------------------------------------------------------ // // This project was financially supported by project VG20102015006 funds // provided by Ministry of the Interior of the Czech republic. // //------------------------------------------------------------------------------ /*! @file trajectoryitem.cpp @brief Implementation of methods ... @details Details @authors Martin Borek (mborekcz@gmail.com) @authors Filip Orsag (orsag@fit.vutbr.cz) @date 2014-2015 @note This project was supported by MV CR project VG20102015006. @copyright BUT OPEN SOURCE LICENCE (see License.txt) */ #include "trajectoryitem.h" #include #include TrajectoryItem::TrajectoryItem(int64_t timestamp, unsigned long timePosition, unsigned long totalTime, unsigned long frameNumber, unsigned long frameCount, Selection position, QWidget *parent, bool displayTime) : QWidget(parent), timestamp(timestamp), timePosition(timePosition), frameNumber(frameNumber) { QWidget *title = new QWidget(this); title->setContentsMargins(0,3,0,0); type = new QLabel(title); type->setStyleSheet("QLabel { color: rgb(144, 144, 144)}"); QHBoxLayout *hLayout = new QHBoxLayout(title); hLayout->setMargin(0); hLayout->setSpacing(0); timeLabel = new TimeLabel(title); timeLabel->set_total_time(totalTime); timeLabel->set_frame_count(frameCount); timeLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); if (displayTime) { timeLabel->display_time(timePosition, false); type->setText(tr("Time position: ")); } else { timeLabel->display_frame_num(frameNumber, false); type->setText(tr("Frame number: ")); } hLayout->addWidget(type); hLayout->addWidget(timeLabel); title->setLayout(hLayout); QString valuesString = "x:"; valuesString.append(QString::number(position.x)); valuesString.append(" y:"); valuesString.append(QString::number(position.y)); valuesString.append(" "+ tr("w") + ":"); valuesString.append(QString::number(position.width)); valuesString.append(" " + tr("h") + ":"); valuesString.append(QString::number(position.height)); QLabel *values = new QLabel(valuesString, this); values->setContentsMargins(0,0,0,5); vLayout = new QVBoxLayout(this); vLayout->setMargin(0); vLayout->setSpacing(0); vLayout->addWidget(title); vLayout->addWidget(values); setLayout(vLayout); installEventFilter(this); } bool TrajectoryItem::eventFilter(QObject *object, QEvent *event) { if (isEnabled() && object == this) { if (event->type() == QEvent::Enter) { setStyleSheet(backgroundColorActive); } else if(event->type() == QEvent::Leave) { setStyleSheet(backgroundColorInactive); } return false; // propagates the event even when processed } return false; // propagates the event further since was not processed } TrajectoryItem::~TrajectoryItem() { // All objects get deleted automatically as they are set to be children } int64_t TrajectoryItem::get_timestamp() const { return timestamp; } void TrajectoryItem::display_time() { timeLabel->display_time(timePosition, false); type->setText(tr("Time position: ")); } void TrajectoryItem::display_frame_num() { timeLabel->display_frame_num(frameNumber, false); type->setText(tr("Frame number: ")); }