Files
qt5-legatus-legacy/Lts/Tools/DdsView/sampleview.h
T
2026-08-13 18:33:10 +02:00

82 lines
1.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
*
* TableView for dynamic topics
*
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QTableView>
#include <QTimer>
#include <dds/dds.hpp>
#include "logger.h"
#include "samplemodel.h"
class SampleSortModel;
class DetailViewDlg;
class TopicSelector;
class SampleView : public QTableView
{
Q_OBJECT
public:
explicit SampleView(QWidget *parent = nullptr);
~SampleView();
SampleModel *sampleModel() {return m_model;}
void setConnected(bool bConnected) { m_bConnected = bConnected; }
int currentRow() const;
void setCurrentRow(int row);
public slots:
void onPlayChecked(bool down);
void onSetRepeat(bool repeat) { m_repeat = repeat; }
void onSaveSampleList();
void onLoadSampleList();
private:
void init();
SampleSortModel *m_proxyModel;
SampleModel *m_model;
TopicSelector *m_topicSelector;
QTimer m_playTimer;
bool m_repeat;
bool m_bConnected;
SampleModel::SampleData m_copiedSampleData;
NGL::INGLLogger &m_logger;
private slots:
void onSendSample(const QModelIndex &mi);
void onTableDoubleClicked(const QModelIndex &mi);
void onCustomContextMenuRequested(const QPoint &p);
void onNewTopicRequested();
void onAdd(const dds::core::xtypes::DynamicData &data, const QString &topicName);
void onCopyTelegram();
void onPasteTelegram();
void onDeleteIndex();
void onSendIndex();
void onUpdateData(const QSharedPointer<dds::core::xtypes::DynamicData> &data,
const QString &topicName);
void onSetCurrent();
void onPlayTimerTimeout(bool moveOn = true);
signals:
void dataClicked(const dds::core::xtypes::DynamicData &data);
void send(const QSharedPointer<dds::core::xtypes::DynamicData> &data,
const QString &topicName);
void playerActive(bool active);
};