Commit Graph

7787 Commits

Author SHA1 Message Date
Michael Gregorius
4fac4c6c4a Fix a problem with some includes
Remove a trailing ">" for some includes of `QFormLayout`. My local
compiler did not complain but mingw rightfully does.
2023-07-25 19:07:57 +02:00
Michael Gregorius
0759da2776 Layout adjustments for AudioSoundIo
Use a QFormLayout in AudioSoundIo::setupWidget::setupWidget.

Note: Changes have been done "blindly" as I am not able to compile this
code.
2023-07-25 18:28:04 +02:00
Michael Gregorius
a429c2f94f Adjustment of AudioSndio
Adjust the layout that's created in AudioSndio::setupWidget::setupWidget
by using a QFormLayout.

This was done in a "blind" fashion as I am not able to compile this
code. Adjustments are very similar to the ones done in
AudioPulseAudio::setupWidget::setupWidget with commit b53290344b
though.
2023-07-25 18:16:33 +02:00
Michael Gregorius
9282e6c91b Remove temporary AudioDeviceSetupGroupWidget
Remove the temporary class `AudioDeviceSetupGroupWidget` and move its
functionality into `AudioDeviceSetupWidget`. This means to let
`AudioDeviceSetupWidget` inherit from `QGroupBox` instead of
`TabWidget`.

Adjust all inheriting classes accordingly. Adjust usages in SetupDialog.

The result should be that even the cases for `LMMS_HAVE_SOUNDIO` and
`LMMS_HAVE_SNDIO` should compile again. Although their layout might look
weird.
2023-07-25 18:03:18 +02:00
Michael Gregorius
095b206635 Remove unused include
Remove an unused include of "AudioDeviceSetupWidget.h".
2023-07-25 17:36:48 +02:00
Michael Gregorius
345886954e Adjust the MIDI setup dialog
Adjust the MIDI setup dialog:
* Show it in a QGroupBox
* Make it use a `QFormLayout` to layout the label and line edit.

Remove the hard coded height.
2023-07-22 23:03:31 +02:00
Michael Gregorius
b53290344b Adjust most audio driver settings dialogs
Adjust the dialogs of most audio driver settings dialogs by showing them
in a QGroupBox and adjusting their layouts. All dialogs now use
`QFormLayout` to layout their labels and input widgets.

Technical details
------------------
Introduce `AudioDeviceSetupGroupWidget` which is intended to
functionally replace `AudioDeviceSetupWidget` in the long run. This is
likely a temporary replacement in the sense that
`AudioDeviceSetupGroupWidget` will be renamed to
`AudioDeviceSetupWidget` once the latter has been replaced everywhere.
Both classes are very similar and the only difference is that the former
inherits from `QGroupBox` instead of `TabWidget`.

Adjust the using of AswMap so that it is now defined as a map from
`QString` to `AudioDeviceSetupGroupWidget`.

Use `QFormLayout` to layout the widgets of the setup dialogs instead of
hard coding geometries and placement.

TODOs
------
Adjust the widgets for the SoundIO and SndIo cases. These will be a bit
more effort as they are not compiled on my machine.
2023-07-22 22:55:02 +02:00
Michael Gregorius
c06d9d4883 First adjustments to MIDI page
Use group boxes and layouts for the "MIDI interface" and automatic
assignment tabs.

The configuration/information dialogs for the different drivers still
need adjustments.
2023-07-16 23:04:09 +02:00
Michael Gregorius
cbea8f30fc Make "Paths" scroll area expandable
Make the "Paths" scroll area take as much space as there is.
2023-07-16 20:04:55 +02:00
Michael Gregorius
c5c459f54f Adjust Plugins group/tab
Adjust the plugins group to also use a QGroupBox and QCheckBoxes. This
finishes the "Performance" page and also finally enables the removal of
the local variables `XDelta` and `YDelta` as well as the lambda
`addLedCheckBox`.

Other changes
--------------
Add a TODO to some unused code for some advanced setting.

Fix layout of the main widget and the buttons widget. Remove an
erroneous ",1" after a statement.
2023-07-16 20:02:11 +02:00
Michael Gregorius
4908bfe1a6 Scalable Setup Dialog
Make the setup dialog resizable and use widgets that dynamically adjust
to the font size set by the user.

Current status of the tabs:
* General: Done
* Performance: Plugins group needs adjustments
* Audio: Individual settings dialogs need adjustments
* MIDI: Not started yet
* Paths: Done

The "Autosave" and "Buffer size" tabs have been slightly redesigned so
that the revert/reset button is next to the slider.

Technical details
------------------
Setting a fixed size has been removed from the setup dialog so that it
can be resized.

The settings widget (`settings_w`) now has a layout to which the sub
dialogs are added. This is done so that the layout sizes are propagated
upwards, i.e. all widgets along the chain now have a layout so that size
hints are determined correctly.

Instances of `TabWidget` are replaced with instances of `QGroupBox`.
Each group box has a layout to which its children, e.g. check boxes, are
added. These group boxes are then added to the layouts of their parents.
Doing so also removes the need to count how many instances have been
added and calculations on where to put the children.

Instances of `LedCheckBox` are replaced with instances of `QCheckBox`.
This is done in the new helper lambda `addCheckBox`. It's very similar
to the previously used `addLedCheckBox` but creates a `QCheckBox`
instead of a `LedCheckBox`. It returns the created `QCheckBox` as a
result. If a layout is provided the created check box is also added to
the layout before it is returned.

The helper lambda `addPathEntry` has been adjusted to create a
`QGroupBox` and to put all its children in a layout.

The helper method `labelWidget` has been adjusted to not set the font
size of the label.

The method `TabBar::addTab` had to be extended with a new default
parameter which controls if the added widget is fixed to the size of
it's parent or not. In the case of the setup dialog we do not want this.
So far the method is only used by the setup dialog and the
`LadspaBrowser` class. So once the `LadspaBrowser` has been made
resizable the default parameter can be removed again and treated as
always being set to false.

Add `QCheckBox` to the `style.css` so that it does not get a green font
due to the palette magic that's done.
2023-07-16 14:11:24 +02:00
Tres Finocchiaro
c53f3d981b Bump cmt submodule (#6151)
* Bump cmt submodule
Closes #6006
2023-07-11 12:52:32 -04:00
Kevin Zander
5ccc8d952a Remove redundant nameChanged signal from InstrumentTrack (#6742) 2023-07-02 15:02:37 +09:00
Aidan Mueller
1f30ffc5e4 Fixed issue #5734 (FreeBoy Division by zero) (#6053)
* Fixed issue #5734 (FreeBoy Division by zero).

Added comments and used more descriptive variable names for noise
channel initialization block.

Also indented the nested for loop to improve code clarity.
The reasons for doing this can be found in this answer:
https://softwareengineering.stackexchange.com/a/362796

* Better initial div_ratio guess

Allows us to skip r = 0 and a conditional in the loop below.

---------

Co-authored-by: Spekular <Spekular@users.noreply.github.com>
2023-07-02 12:28:40 +09:00
Dalton Messmer
b7027fecbb Fix occasional crash when clicking Key button in piano roll with no clip (#6757) 2023-07-02 11:57:09 +09:00
chkno
7f43e3b982 Detect hiir fetch (#6755) 2023-06-30 21:51:43 +09:00
Lost Robot
4ea8a70de6 Fix Equalizer LP/HP curve display (#6748) 2023-06-26 17:23:47 -07:00
Hyunjin Song
405738f66f Fix STK rawwave installation in Windows builds (#6705)
* Fix STK rawwave path detection and installation
* Use the CMake logic for rawwave installation on Win and Mac
2023-06-24 11:58:56 +09:00
superpaik
c8546633a2 Adding new FX channel while in solo (#6717)
* Adding FX channel while in solo

New FX channel is muted when there is a soloed FX line. Fixes #6311

* Move var initialization to constructor
2023-06-24 11:57:52 +09:00
Lost Robot
989fc338fa Partially revert #6721, improve performance of Directory::addItems (#6738)
* Fix expandItems & speed up Directory addItems
2023-06-14 15:38:34 -05:00
Michael Gregorius
7c6ade5736 Merge pull request #6731 from michaelgregorius/6729-MissingFilterImage
Add SID filter image back (#6729)
2023-06-08 17:41:58 +02:00
Michael Gregorius
5debf982ef Add SID filter image back (#6729)
Add the image for the disabled SID filter back. According to a comment
in the issue it seems to have gone missing during commit c1e6b313.
2023-06-08 17:15:53 +02:00
Tres Finocchiaro
bceee6c427 Look for libcarla_native-plugin.dll on Windows (#6726)
Closes #5984
2023-06-05 16:22:05 -04:00
Michael Gregorius
bd5f1b9ea1 Fix uninitialized variable "pCurPreset" (#6639) (#6723)
Fix the uninitialized variable pCurPreset by setting it to nullptr.

Please note that it looks as if the nullptr is now being passed to the
function fluid_sfont_iteration_next_wrapper. However, the function does
not use the parameter anyway and then the variable is set to the result
of that function.
2023-06-04 22:44:48 -05:00
Michael Gregorius
3ab8eeeacd Merge pull request #6718 from michaelgregorius/6711-AutomationCrash
Fix automation crash (#6711)
2023-06-02 22:49:34 +02:00
Michael Gregorius
0ebc18941b More whitespace adjustments (#6711)
More whitespace adjustments as proposed in the code review.
2023-06-02 22:17:03 +02:00
Michael Gregorius
9fe7fbd69e Simplify logic of Model::fullDisplayName (#6711)
Simplify the logic of the method Model::fullDisplayName.

Please note that this shows that with the current logic if the parent
model has a non-empty name like "parentmodel" and the name of the child
model is empty the result is the name "parentmodel >" which might not be
what's wanted.
2023-06-02 20:51:28 +02:00
Michael Gregorius
fda938fcca Code review changes (#6711)
Remove underscores and whitespace in the Model files.
2023-06-02 20:51:07 +02:00
Lost Robot
8a07328a93 Remove non-directory expansion 2023-06-02 09:10:18 -05:00
Michael Gregorius
43319a8d79 Move implementations of Model into cpp file (#6711)
Move the implementation of the Model methods into Model.cpp so that
recompiles after changes are much quicker. Make Model::
isDefaultConstructed const.
2023-05-26 11:11:45 +02:00
Michael Gregorius
75627a15f9 Fix automation crash (#6711)
Fix a crash that occurs if the zooming or snapping model of the Song
Editor is used for automation.

The crash is caused by a failed static_cast to a Model* in
Model::parentModel(). The cast fails because in the constructor of
SongEditor the SongEditor is set as the parent of the zooming and
snapping model:
m_zoomingModel->setParent(this);
m_snappingModel->setParent(this);

This commit is rather a "band aid" fix because it only fixes the crash
by changing the static_cast to a dynamic_cast. However this means that
the name of the automation clip is initially empty.

A better solution would be to not use the Qt parent/child relationships
to implement the model hierarchies.
2023-05-26 10:52:35 +02:00
Tres Finocchiaro
b322f8022e Add .DirIcon to AppImage (#6715)
* Add .DirIcon to AppImage
* Add X-AppImage-Version to .desktop file
* Closes #6695
2023-05-23 03:14:28 -04:00
superpaik
d551938cbd Add confirm removal on mixer channels (#6691)
* Add confirm removal on mixer channels

Add confirm removal popup when the user calls the action "remove channel" on a mixer channel that is in use (receives audio from other channel or track). Set a config variable to keep track if the user don't want to be asked again. Adding a scroll on settings-general tab because there weren't enough space on the area.

* Core Mixer function channel in use

New core Mixer function to check if a given channel is in use (receives audio)

---------

Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
Co-authored-by: saker <sakertooth@Gmail.com>
2023-05-10 20:14:24 +09:00
Lost Robot
87a57db593 Add instrument plugins to Song Editor via right click (#6698) 2023-05-06 13:16:07 +09:00
Bimal Poudel
3440d49aa8 Fix comparing int with bool (#6637)
Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
2023-04-30 13:07:13 +09:00
Michael Gregorius
ffe3bb4399 Merge pull request #6607 from michaelgregorius/ImproveReadabilityOfTextFloat
Improve readability of text floats
2023-04-29 16:53:58 +02:00
Lost Robot
f13e95932d Include cstdint (#6697) 2023-04-25 11:06:15 -07:00
Lost Robot
1f93dbc124 EQ default shelf reso (#6694) 2023-04-21 11:17:53 -07:00
Dalton Messmer
64003fb004 Fix FreeBoy CPU time bug (#6680) 2023-04-18 14:39:02 -05:00
Gregaras
95cd028e5d Update InstrumentTrackView.cpp (#6687) 2023-04-18 11:39:15 +09:00
Michael Gregorius
b90156bedd Coding conventions
Adjust the code style of the adjusted and created classes according to
the coding conventions.
2023-04-09 17:02:26 +02:00
Lost Robot
2e572caa58 Add Dispersion effect (#6683) 2023-04-05 21:08:24 -07:00
Lost Robot
fb529a19c5 Make note octave highlight in piano roll obey microtonality (#6663) 2023-03-26 12:30:12 -07:00
Arash Partow
2baa23ee1a Update ExprTk package 2023-02-26 15:51:24 +01:00
JGHFunRun
ac080513fd Fixed typo (#6652) 2023-02-23 23:31:07 +01:00
Johannes Lorenz
5b84b65236 Lv2: Update copyright 2023-02-21 21:03:00 +01:00
Johannes Lorenz
49a6abb343 Lv2: Add/improve some comments 2023-02-21 21:03:00 +01:00
Johannes Lorenz
f48dd0fb1f Fixes #6401: Reload Lv2 plugin on SR change
This also includes banning blop's wavedata plugins, because they crash
on reloading. Reference: https://gitlab.com/drobilla/blop-lv2/-/issues/3
2023-02-21 21:03:00 +01:00
Johannes Lorenz
7649f5ed24 Lv2ControlBase: Remove unused virtuals
They were never used. Possibly they were just in the code because the
code originated from #4662 (where the virtuals would also be
omittable...).
2023-02-21 21:03:00 +01:00
madisonsilver
9bcf63c5da Fix issues #6383 and #4410 (pause issues). (#6590)
Fixes #6383 and fixes #4410.

Co-authored-by: Hyunjin Song <tteu.ingog@gmail.com>
2023-02-19 11:01:11 +09:00