Skip to content

Conversation

@irrenhaus3
Copy link
Contributor

@irrenhaus3 irrenhaus3 commented Jun 26, 2022

Implements a UUID utility class and uses it to provide the type of jo_id_t. The intent is to remove any realistic possibility of collision between JournallingObject IDs.
This addresses issue #4736 and supersedes PRs #2875 and #4723.

What's been tested to work so far?

  • Saving and loading a new project file with automation.
  • Saving and loading a new project file with a LFO Controller connection.

What doesn't work?

  • RemotePlugin fixed with b1c205c
  • Loading project files created with any previous version of LMMS (no update function for replacing int32-IDs with UUIDs).

TODOs?

@LmmsBot
Copy link

LmmsBot commented Jun 26, 2022

🤖 Hey, I'm @LmmsBot from github.com/lmms/bot and I made downloads for this pull request, click me to make them magically appear! 🎩

Linux

Windows

macOS

🤖
{"platform_name_to_artifacts": {"Linux": [{"artifact": {"title": {"title": "(AppImage)", "platform_name": "Linux"}, "link": {"link": "https://output.circle-artifacts.com/output/job/16f63bbb-e1c5-41dd-bff6-37fa3a734b09/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-linux-x86_64.AppImage"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17601?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://output.circle-artifacts.com/output/job/e350ca33-ed24-4088-939b-336e930589fc/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-mingw-win32.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17604?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://output.circle-artifacts.com/output/job/f1a22c3a-9769-4173-9be4-b8b91d9976aa/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-mingw-win64.exe"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17605?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/8igbqeygbg5gtw1u/artifacts/build/lmms-1.3.0-alpha-msvc2017-win32.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/43991481"}, {"artifact": {"title": {"title": "64-bit", "platform_name": "Windows"}, "link": {"link": "https://ci.appveyor.com/api/buildjobs/vceoc04g1hg41ddm/artifacts/build/lmms-1.3.0-alpha-msvc2017-win64.exe"}}, "build_link": "https://ci.appveyor.com/project/Lukas-W/lmms/builds/43991481"}], "macOS": [{"artifact": {"title": {"title": "", "platform_name": "macOS"}, "link": {"link": "https://output.circle-artifacts.com/output/job/4e93d6aa-b6c7-4b74-956c-290ef266f699/artifacts/0/lmms-1.3.0-alpha.1.223+ga8d48366f-mac10.14.dmg"}}, "build_link": "https://circleci.com/gh/LMMS/lmms/17603?utm_campaign=vcs-integration-link&utm_medium=referral&utm_source=github-build-link"}]}, "commit_sha": "1b4d2f88112ff08d1c7cbe3c3838092767b87aee"}

@Rossmaxx
Copy link
Contributor

I like the concept of removing possibilities of collision bw ids (though i don't understand anything about uuids). But since the plan is to get rid of qt, my question is - is it doable without using qt? If not qt, what's the way?

@allejok96
Copy link
Contributor

Does this fix the bug of restoring ID of objects when undoing?

Steps to reproduce:

  1. Create notes (you can undo each note)
  2. Create a new clip on the same track (track is journalled as a whole)
  3. Undo create clip (whole track is reloaded, clip gets new ID)
  4. Unable to undo individual notes now (ID of clip does not match journal, so checkpoints are skipped)

…o use stduuid instead of QUuid; new header for compatibility of this type with marshalling contexts like QVariant.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants