Skip to content

Commit

Permalink
fix: 修复影院无法退出问题 (#451)
Browse files Browse the repository at this point in the history
判断音量未修改时不开启事件循环

Log: 修复部分已知问题
  • Loading branch information
pengfeixx authored Apr 19, 2024
1 parent db80064 commit d7e4ea7
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
8 changes: 6 additions & 2 deletions src/common/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3360,15 +3360,19 @@ void MainWindow::closeEvent(QCloseEvent *pEvent)
}

int volume = Settings::get().internalOption("global_volume").toInt();
if (m_nDisplayVolume != volume) {
int displayVolume = m_nDisplayVolume > 100 ? 100 : m_nDisplayVolume;
if (displayVolume != volume) {
static QEventLoop loop;
QFileSystemWatcher fileWatcher;
fileWatcher.addPath(Settings::get().configPath());
connect(&fileWatcher, &QFileSystemWatcher::fileChanged, this, [=](){
loop.quit();
});
QTimer::singleShot(2000, this, [=](){
loop.quit();
});
//关闭窗口时保存音量值
Settings::get().setInternalOption("global_volume", m_nDisplayVolume > 100 ? 100 : m_nDisplayVolume);
Settings::get().setInternalOption("global_volume", displayVolume);
loop.exec();
}
m_pEngine->savePlaybackPosition();
Expand Down
8 changes: 6 additions & 2 deletions src/common/platform/platform_mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3343,15 +3343,19 @@ void Platform_MainWindow::closeEvent(QCloseEvent *pEvent)
}
}
int volume = Settings::get().internalOption("global_volume").toInt();
if (m_nDisplayVolume != volume) {
int displayVolume = m_nDisplayVolume > 100 ? 100 : m_nDisplayVolume;
if (displayVolume != volume) {
static QEventLoop loop;
QFileSystemWatcher fileWatcher;
fileWatcher.addPath(Settings::get().configPath());
connect(&fileWatcher, &QFileSystemWatcher::fileChanged, this, [=](){
loop.quit();
});
QTimer::singleShot(2000, this, [=](){
loop.quit();
});
//关闭窗口时保存音量值
Settings::get().setInternalOption("global_volume", m_nDisplayVolume > 100 ? 100 : m_nDisplayVolume);
Settings::get().setInternalOption("global_volume", displayVolume);
loop.exec();
}
m_pEngine->savePlaybackPosition();
Expand Down

0 comments on commit d7e4ea7

Please sign in to comment.