-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Automation point mouse wheel and double click (old) #5232
Conversation
🤖 Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request!
Linux
Windows
🤖{"commit_sha": "4bc5a7f26c67726e5bf70302656437c09872a9b8", "platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://4500-15778896-gh.circle-artifacts.com/0/lmms-1.2.0.565-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/4500?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}], "Windows": [{"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://4499-15778896-gh.circle-artifacts.com/0/lmms-1.2.0.565-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/4499?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://4501-15778896-gh.circle-artifacts.com/0/lmms-1.2.0.565-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/4501?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "32-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/qe8xltdvsjx1tm2l/artifacts/build/lmms-1.2.0-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/28167958"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/l69mqsaff35st731/artifacts/build/lmms-1.2.0-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/28167958"}]}} |
I just noticed that I didn't account for different number scales. So, even if the increments are whole numbers, it still adjusts in increments of three decimal places. |
I used "numPoints" in the automation pattern flipping PR, so "points"
sounds consistent to me.
…On Tue, Oct 8, 2019, 07:34 tecknixia ***@***.***> wrote:
I just noticed that I didn't account for different number scales. So, even
if the increments are whole numbers, it still adjusts in increments of
three decimal places.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#5232?email_source=notifications&email_token=ACEBLGWUTGWPG65DSBAL3Q3QNQLYFA5CNFSM4I6M4GD2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAS2AOQ#issuecomment-539336762>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACEBLGWJPXXULHFQEWJNZ63QNQLYFANCNFSM4I6M4GDQ>
.
|
I believe I have created a fix for the decimal point step changes using:
Is there a way to update the pull request? Do I close and create a new one? |
I figured it out. |
Updating forked repo tecknixia/lmms
Seems to work fine. Only quirky behavior that I've noticed so far is that it does not lock the Y axis while over a point. So if the scale for zoom for Y is larger than the window, the mouse will adjust the Y value for the point, and scroll the information in the window up or down at the same time. Slightly confusing at first, but still practical. |
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.
I'm done with style review.
@cyberdevilnl Thank you for the style review. |
For updating the tooltip while wheeling you might want to add something like this: Add to header: ulong m_pointYLevelTimestamp; Change if (mouseEvent->timestamp() > m_pointYLevelTimestamp)
{
m_pointYLevel = 0;
} Your m_pointYLevelTimestamp = we->timestamp(); I don't know other solution for that. |
Could you please explain? What is the reason for doing that? Is it better? It already updates the tooltip when scrolling, and shows mouse pointer position when mouse is moved, which seems fine to me. What it does not do is show the automation point's y level when mouse is over the automation point before scrolling, it just shows the pointer y position until the wheel is scrolled. After that is solved, two other things can be done:
Since these two enhancements are not completely necessary, I feel this PR could be used for now (since it makes inputting a specific value much easier) and an issue for the additional enhancements could be opened after that. However, I leave that up for debate. |
While wheeling over a point the tooltip doesn't get updated here, it's because |
Ok, I understand now. I was not familiar with the interaction between wheelEvent and mouseMove. It works for me (Qt 5.5.1 on Linux Mint 18.3 64-bit). Maybe I can just set |
I also didn't know that a |
A condition in |
I think I figured out the reason this was never completed in the first place. I believe that this line:
Inside Now I'm getting a cursor change when hovering over an automation point and the test value is showing up on the tooltip. |
I fixed both the point level on hover and window scroll issues. Left a
Well, it didn't quite go like I had planned. There are multiple mouse functions checking the time map for automation points. So the code could probably use some clever refactoring. I'm still not comfortable enough with C++ to take on such a task. About to push a BIG commit... It works well for me, so let me know if there are any problems. Also, the scroll wheel engagement points go all the way up and down the Y axis. This can enable the user to retain the ability to change the level even when the mouse pointer is no longer on the automation point. However, it can also get in the way of the window scrolling up and down if the cursor happens to land in the wrong spot. This is an easy two line modification of the if statement, and the size of the scroll wheel engagement point can be modified. Let me know how this works for you, or if I should reduce the size of the scroll wheel engagement point. |
Ok, things should be good at this point. I would like some feedback. Let me know if there is anything wrong, code or function. Is this is functioning properly on other systems, and what do you think about user experience? |
Two enhancements:
My previous comment still stands. I would like some feedback. |
I think the tittle does not reflect to what you just did (pointing at point No. 1) EDIT: By that I mean your pull request title @tecknixia should be changed too maybe? |
@tecknixia I'm trying to review this pull request, but it's not easy due to some irrelevant reformattings and reorderings. Could you revert those changes to make the review easier? |
@PhysSong Sorry about that, I was thinking that might complicate things. Unfortunately, I mixed necessary changes with unnecessary ones in some commits. I've been thinking about starting over with a new master clone, and re-create the PR cleanly in another branch, but I'm not sure if I need to close and start a new one, or if I'm able to modify this one to that extent somehow? |
Creating a new branch will require a new PR, that is fine; alternative you could reset you This will make your git remote add upstream https://github.com/lmms/lmms
git fetch upstream
git checkout master # checkout your master branch.
git reset --hard upstream/master # reset to upstream master branch
git push origin master --force # force push your master branch. |
@tecknixia Thanks. I will review them soon. |
Edit: Replaced by #5291 and #5292
Related to issue #5225
Allows user to place cursor over an automation point in the Automation Editor, and use scroll wheel to adjust the y level for that point.
https://cdn.discordapp.com/attachments/332258319228207114/629248936099708928/AutomationEditor2-2019-10-03_04.21.20.mp4 (example, not current)
I didn't know where to put the variable, so I put it where I thought it might fit. I'm still getting familiar with the codebase. Also, I was wondering if "point" is a good term for this or not. So please let me know if I should change something.