修复回放功能再次加载新文件无法切换bug

This commit is contained in:
2022-11-01 11:39:12 +08:00
parent 63707508df
commit 6a50f70fc9
3 changed files with 42 additions and 34 deletions
+17 -18
View File
@@ -53,23 +53,16 @@ Tools_Index2::~Tools_Index2()
void Tools_Index2::on_pushButton_file_clicked()
{
QFileDialog *dlg = new QFileDialog(this);
QFileDialog *dlg = new QFileDialog;
QString fileName = dlg->getOpenFileName(this, tr("Open File"),
"./Tlog/",
tr("LogFile (*.Tlog *.log)"));
delete dlg;
if(!fileName.isEmpty())
{
ui->pushButton_file->setText(fileName);
PlayState = false;
emit setPlay(PlayState);//暂停播放,跟底层关联起来
emit setFileName(fileName);
ui->horizontalSlider->show();
setIniPlayStatus(fileName);
}
}
@@ -117,14 +110,7 @@ void Tools_Index2::dropEvent(QDropEvent *event)
if(info.suffix() == QString("tlog") )
{
ui->pushButton_file->setText(file_name);
PlayState = false;
emit setPlay(PlayState);//暂停播放,跟底层关联起来
emit setFileName(file_name);
ui->horizontalSlider->show();
setIniPlayStatus(file_name);
}
}
@@ -237,3 +223,16 @@ void Tools_Index2::on_pushButton_CSV_clicked()
qDebug() << "emit csv";
emit CreateCSV();
}
void Tools_Index2::setIniPlayStatus(QString const &file_name)
{
PlayState = false;
emit setFileName(file_name);
emit setPlay(PlayState);//暂停播放,跟底层关联起来
ui->pushButton_file->setText(file_name);
ui->horizontalSlider->setValue(0);
ui->pushButton_Play->setText("play");
ui->label_percent->setText("0");
ui->horizontalSlider->show();
}
+7 -1
View File
@@ -38,7 +38,7 @@ protected:
*/
void dragEnterEvent(QDragEnterEvent *event) override;
/**
* @brief 重写放下事件,
* @brief 重写放下事件,接收.tlog后缀文件
* @param event
*/
void dropEvent(QDropEvent *event) override;
@@ -95,6 +95,12 @@ signals:
void CreateCSV(void);
private:
/**
* @brief 设置初始的播放状态
* @param file_name 需要加载的文件名
*/
void setIniPlayStatus(QString const &file_name);
Ui::Tools_Index2 *ui;
bool isMove = false;
+18 -15
View File
@@ -1,4 +1,4 @@
#include "replay.h"
#include "replay.h"
Replay::Replay(QObject *parent) : ThreadTemplet(parent)
@@ -152,33 +152,36 @@ QByteArray Replay::readAll(void)
void Replay::setLogfile(const QString name, float percent)
{
if(name != logFile)
{
logFile = name;
//重置各种参数
percentage = 0;
setPercentage(0);
ispause = false;
isplaying = false;
//emit currentPercentage(percentage);
//emit readReady();
if(!file)
if(file)
{
file->deleteLater();
file = nullptr;
}
file = new QFile();
file->setFileName(logFile);
if(!file->open(QIODevice::ReadOnly))
file = new QFile();
file->setFileName(logFile);
if(!file->open(QIODevice::ReadOnly))
{
if(!logFile.isEmpty())
{
if(!logFile.isEmpty())
{
QMessageBox::warning(nullptr,
tr("Error"),
tr("%1").arg(file->errorString()));
}
delete file;
file = nullptr;
}
QMessageBox::warning(nullptr,
tr("Error"),
tr("%1").arg(file->errorString()));
}
delete file;
file = nullptr;
}
}
else