New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Qt/WatchWidget: Don't update if not paused. #11623
Qt/WatchWidget: Don't update if not paused. #11623
Conversation
Is it fine to leave the table as it is when not paused, or should we clear it or something to make it clear to the user that the values are not up to date? LGTM other than that. |
e8964df
to
90f2b7d
Compare
Probably better like this? |
I just hope this won't make people think their watches have been deleted... I don't know, though. I'll leave the decision to someone who uses the debugging UI more than me. |
I don't think clearing the table is a good approach. It'd be better to gray out the values (perhaps using This also introduces a minor inconsistency: when the watch widget first appears, it has 0 rows, but after starting and then pausing a game, it gains 1 blank row (which is usable for creating new watches). Before, the 1 blank row was always visible (even when emulation hadn't started - though also you can use that blank row to create new watches when emulation hasn't started even though the menu options are disabled... it's fairly jank). |
Yes, this entire watch widget is super janky... feel free to fix it, but that wasn't my goal, I just wanted to stop Dolphin freezing and/or lagging when it's open. |
90f2b7d
to
f51ba6e
Compare
Now before the game starts, it looks like this: which is really jank looking. That can probably be solved by moving the This does fix the infinite loop though. |
f51ba6e
to
6d38dd9
Compare
There, yeah that's definitely better. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good enough to me.
There are still a few oddities:
- The "address" field doesn't get greyed out properly because we use a special brush for it to turn it red if it's not a valid address:
I'm not sure how to properly combine disabled and custom brushes, and we might want to adjust the logic for this anyways in the future. - The watch table doesn't get cleared when stopping emulation.
These don't need to be addressed now, and can be fixed in a future PR that makes other changes to the watch widget.
Honestly it probably should actually remain saved across sessions (at least for the same game)! But yeah, that's probably a more significant change. |
This is similar to dolphin-emu#11623 where the Core state change invoked by the CPUThreadGuard does indirectly cause another Update() call.
This is similar to dolphin-emu/dolphin#11623 where the Core state change invoked by the CPUThreadGuard does indirectly cause another Update() call.
This is a workaround for https://bugs.dolphin-emu.org/issues/13190.
There's definitely a better way to solve this but I'm really unsure what the proper way to deal with it is, so this should at least resolve the pseudo-infinite-loop in the meantime.