feat:柱形图数据面板中增加析构时实时数据请求取消逻辑
This commit is contained in:
parent
b9d43a7882
commit
5814b2babe
|
|
@ -132,6 +132,8 @@ dpBarsChart::dpBarsChart(QWidget* parent)
|
||||||
|
|
||||||
dpBarsChart::~dpBarsChart()
|
dpBarsChart::~dpBarsChart()
|
||||||
{
|
{
|
||||||
|
if(!m_requestDataList.isEmpty())
|
||||||
|
MeasurementDataManager::instance()->cancelRequest(m_requestDataList, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dpBarsChart::initQCP()
|
void dpBarsChart::initQCP()
|
||||||
|
|
@ -244,6 +246,8 @@ void dpBarsChart::synchronizeConfigData(const configurationResults& cfg)
|
||||||
QVector<QString> tickLabels;
|
QVector<QString> tickLabels;
|
||||||
|
|
||||||
QHash<RealTimeDataType, QSet<QString>> groupedBars; //按数据类型对bar进行分组,以实现可以按组放置以及设置颜色等操作
|
QHash<RealTimeDataType, QSet<QString>> groupedBars; //按数据类型对bar进行分组,以实现可以按组放置以及设置颜色等操作
|
||||||
|
QStringList newRequestDataList;
|
||||||
|
QStringList cancelRequestDataList;
|
||||||
for(int i = 0; i < cfg.m_pModel_dataSource->rowCount(); i++)
|
for(int i = 0; i < cfg.m_pModel_dataSource->rowCount(); i++)
|
||||||
{
|
{
|
||||||
QString itemText = cfg.m_pModel_dataSource->item(i, 0)->text();
|
QString itemText = cfg.m_pModel_dataSource->item(i, 0)->text();
|
||||||
|
|
@ -293,8 +297,25 @@ void dpBarsChart::synchronizeConfigData(const configurationResults& cfg)
|
||||||
double randomFloat = min + QRandomGenerator::global()->generateDouble() * (max - min);
|
double randomFloat = min + QRandomGenerator::global()->generateDouble() * (max - min);
|
||||||
return QVariant::fromValue(randomFloat);
|
return QVariant::fromValue(randomFloat);
|
||||||
});*/
|
});*/
|
||||||
|
|
||||||
|
newRequestDataList << dataID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSet dataSet(newRequestDataList.begin(), newRequestDataList.end());
|
||||||
|
for(const QString& data : std::as_const(m_requestDataList))
|
||||||
|
{
|
||||||
|
if(!dataSet.contains(data))
|
||||||
|
cancelRequestDataList << data;
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取实时数据
|
||||||
|
if(!cancelRequestDataList.isEmpty())
|
||||||
|
MeasurementDataManager::instance()->cancelRequest(cancelRequestDataList, this);
|
||||||
|
if(!newRequestDataList.isEmpty())
|
||||||
|
MeasurementDataManager::instance()->requestData(newRequestDataList, this);
|
||||||
|
|
||||||
|
m_requestDataList = QStringList(std::move(newRequestDataList));
|
||||||
|
|
||||||
if(groupByType)
|
if(groupByType)
|
||||||
{
|
{
|
||||||
for(auto it = groupedBars.begin(); it != groupedBars.end(); ++it)
|
for(auto it = groupedBars.begin(); it != groupedBars.end(); ++it)
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ private:
|
||||||
QHash<QString, Bars> m_bars;
|
QHash<QString, Bars> m_bars;
|
||||||
QHash<RealTimeDataType, QCPBarsGroup*> m_barsGroups;
|
QHash<RealTimeDataType, QCPBarsGroup*> m_barsGroups;
|
||||||
bool m_updateData;
|
bool m_updateData;
|
||||||
|
QStringList m_requestDataList;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -309,7 +309,7 @@ void MeasurementDataManager::requestData(const QStringList& measurements, QObjec
|
||||||
for(const QString& dataID : measurements)
|
for(const QString& dataID : measurements)
|
||||||
{
|
{
|
||||||
auto it = m_dataRequesetRecord.find(dataID);
|
auto it = m_dataRequesetRecord.find(dataID);
|
||||||
if(it != m_dataRequesetRecord.end() && !it.value().contains(requester))
|
if(it != m_dataRequesetRecord.end()/* && !it.value().contains(requester)*/)
|
||||||
it.value().insert(requester);
|
it.value().insert(requester);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue