Skip to content
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 of Microtuner ComboBoxes causes crash #7215

Open
1 task done
zynskeywolf opened this issue Apr 21, 2024 · 6 comments
Open
1 task done

Automation of Microtuner ComboBoxes causes crash #7215

zynskeywolf opened this issue Apr 21, 2024 · 6 comments
Labels

Comments

@zynskeywolf
Copy link
Contributor

System Information

Arch Linux

LMMS Version(s)

1.3.0-alpha.1.575+gbda042e1e (Linux/x86_64, Qt 5.15.13, GCC 13.2.1 20230801).

Most Recent Working Version

No response

Bug Summary

In the Microtuner configuration window, Scales and Keymaps dropdown boxes can be connected to controllers/automation, but lmms crashes the moment a change in value happens. Related to #2382 and #2399.

Expected Behaviour

It probably just shouldn't be possible to do in the first place.

Steps To Reproduce

  • Add an LFO controller
  • Open Scales and keymaps from the Edit menu
  • Right click on any of the dropdown boxes on the top and connect it to the controller

Logs

No response

Screenshots / Minimum Reproducible Project

No response

Please search the issue tracker for existing bug reports before submitting your own.

  • I have searched all existing issues and confirmed that this is not a duplicate.
@musikBear
Copy link

musikBear commented Apr 22, 2024

This is Nightly -isent it?!
image

gbda042e1e is Nightly..

@enp2s0
Copy link
Contributor

enp2s0 commented May 9, 2024

Not sure what nightly builds have to do with this. It's a bug on the current master (I just confirmed it) and it should be fixed. FWIW QT spits out some error messages right as it crashes:

QObject::connect: Cannot queue arguments of type 'QTextBlock'
(Make sure 'QTextBlock' is registered using qRegisterMetaType().)
QObject::connect: Cannot queue arguments of type 'QTextCursor'
(Make sure 'QTextCursor' is registered using qRegisterMetaType().)
[1]    756850 segmentation fault (core dumped)  ./lmms

@michaelgregorius
Copy link
Contributor

I have a branch called "LmmsComboBox" that introduces a combo box that inherits from QComboBox and that knows how to deal with ComboBoxModel. It can be found here: https://github.com/michaelgregorius/lmms/tree/LmmsComboBox.

I did some first local tests that used it as a drop in replacement in the song editor and piano roll and it seems to work quite nice. It's not themed though.

@michaelgregorius
Copy link
Contributor

I have now pushed some changes for the microtuner configuration. Here's a before and after of the microtuner dialog:

7215-MicrotunerBefore
7215-MicrotunerAfter

Looks much more consistent IMO and removes the crashes because no automation is possible anymore.

@messmerd
Copy link
Member

@michaelgregorius Is there any way you could just fix ComboBox instead of creating another class?

@michaelgregorius
Copy link
Contributor

@messmerd, I think it's better to create a new class and to get rid of ComboBox wherever possible. It has several problems, e.g. that it does not play nice with HiDPI screens or the automation problem mentioned here. It also looks off compared to other elements, e.g. in the microtuner dialog.

In my opinion most of LMMS "homebrew" widgets should be replaced by styled Qt widgets. Or alternatively by "homebrew" widgets that behave like Qt ones.

Which combo boxes in LMMS really need to be automatable by the way?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants