@@ -20,6 +20,11 @@ class OptionItem::Impl final {
2020 };
2121
2222 CCMenuItemToggler* toggler = nullptr ; // The toggler for the option
23+
24+ // Save the current state of the toggler as the option state
25+ void saveTogglerState () {
26+ if (toggler) (void )options::set (option.id , toggler->isToggled ());
27+ };
2328};
2429
2530OptionItem::OptionItem () : m_impl(std::make_unique<Impl>()) {};
@@ -182,19 +187,16 @@ bool OptionItem::init(CCSize const& size, Option option) {
182187
183188 helpBtn->setSprite (newHelpBtnSprite);
184189
185- saveTogglerState ();
190+ m_impl-> saveTogglerState ();
186191 };
187192
188193 return true ;
189194};
190195
191- void OptionItem::saveTogglerState () {
192- if (m_impl->toggler ) (void )options::set (m_impl->option .id , m_impl->toggler ->isToggled ());
193- };
194-
195196void OptionItem::onToggle (CCObject*) {
196- if (m_impl->compatible ) {
197- saveTogglerState ();
197+ if (m_impl->toggler && m_impl->compatible ) {
198+ (void )options::set (m_impl->option .id , !m_impl->toggler ->isToggled ());
199+
198200 if (m_impl->option .restart ) {
199201 Notification::create (" Restart required!" , NotificationIcon::Warning, 2 .5f )->show ();
200202 log::warn (" Restart required to apply option {}" , m_impl->option .id );
@@ -219,11 +221,6 @@ void OptionItem::onDescription(CCObject*) {
219221 )) popup->show ();
220222};
221223
222- void OptionItem::onExit () {
223- saveTogglerState ();
224- CCMenu::onExit ();
225- };
226-
227224Option OptionItem::getOption () const noexcept {
228225 return m_impl->option ;
229226};
0 commit comments