From 1c904e5462244172878a04883f47a407cab1d527 Mon Sep 17 00:00:00 2001 From: thjazi Date: Tue, 26 May 2020 00:33:24 +0200 Subject: [PATCH] resolution des bug de speed --- src/ui/MainWindow.cpp | 12 ++++++++++++ src/ui/UniverseScene.cpp | 19 ++++++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/ui/MainWindow.cpp b/src/ui/MainWindow.cpp index 88b004c..1e18d81 100644 --- a/src/ui/MainWindow.cpp +++ b/src/ui/MainWindow.cpp @@ -335,6 +335,10 @@ void MainWindow::action_openFile() { createCentralWidget(); } ctxt.hyper_speed->setEnabled(ctxt.universe_scene->can_hyperSpeed()); + ctxt.hyper_speed->setChecked(false); + ctxt.inc_speed->setEnabled(ctxt.universe_scene->can_increase_speed()); + ctxt.dec_speed->setEnabled(ctxt.universe_scene->can_decrease_speed()); + ctxt.playPauseAction->setIcon(*(ctxt.playIcon)); } @@ -534,6 +538,10 @@ void MainWindow::action_newUnivTypeHashlife() { univ_type = UniverseType::Hashlife; createCentralWidget(); ctxt.hyper_speed->setEnabled(ctxt.universe_scene->can_hyperSpeed()); + ctxt.hyper_speed->setChecked(false); + ctxt.inc_speed->setEnabled(ctxt.universe_scene->can_increase_speed()); + ctxt.dec_speed->setEnabled(ctxt.universe_scene->can_decrease_speed()); + ctxt.playPauseAction->setIcon(*(ctxt.playIcon)); } void MainWindow::action_newUnivTypeNaive() { delete universe; @@ -544,6 +552,10 @@ void MainWindow::action_newUnivTypeNaive() { createCentralWidget(); ctxt.hyper_speed->setEnabled(ctxt.universe_scene->can_hyperSpeed()); + ctxt.inc_speed->setEnabled(ctxt.universe_scene->can_increase_speed()); + ctxt.dec_speed->setEnabled(ctxt.universe_scene->can_decrease_speed()); + ctxt.hyper_speed->setChecked(false); + ctxt.playPauseAction->setIcon(*(ctxt.playIcon)); } ///////////////////////////////////////////////////// diff --git a/src/ui/UniverseScene.cpp b/src/ui/UniverseScene.cpp index e327fed..872211b 100644 --- a/src/ui/UniverseScene.cpp +++ b/src/ui/UniverseScene.cpp @@ -16,8 +16,13 @@ UniverseScene::UniverseScene(QWidget *parent, Universe *universe, refresh_time_ms = 0; p_step = 0; - universe->set_step_size(p_step); + if (universe->can_set_step_size()) { + universe->set_step_size(p_step); + } hyperspeed_state = false; + if (universe->can_set_hyperspeed()) { + universe->set_hyperspeed(false); + } r_area = new RenderArea(this, universe, type, &selection); @@ -59,24 +64,24 @@ void UniverseScene::increase_speed() { p_step += 1; universe->set_step_size(p_step); } else { - refresh_time_ms -= 250; + refresh_time_ms -= 100; if (refresh_time_ms <= 0) { p_step = 0; refresh_time_ms = 0; } } - updateStatusBar(); } else { if (refresh_time_ms > 0) { - refresh_time_ms -= 250; + refresh_time_ms -= 100; } } + updateStatusBar(); } void UniverseScene::decrease_speed() { if (universe->can_set_step_size()) { if (p_step == 0) { - refresh_time_ms += 250; + refresh_time_ms += 100; } else { p_step -= 1; if (p_step <= 0) { @@ -85,10 +90,10 @@ void UniverseScene::decrease_speed() { } universe->set_step_size(p_step); } - updateStatusBar(); } else { - refresh_time_ms += 250; + refresh_time_ms += 100; } + updateStatusBar(); } bool UniverseScene::can_increase_speed() {