* Fix Automation Point delete radius. At lower zoom deleting would miss
automation points to delete and at higher zoom it would be too generous
and remove neighbouring points.
* Increase smallest Automation Point radius. For visibility. The smallest
Automatin Point radius was tiny.
* Right Mouse Button To Erase Nodes In Automation Editor Cursor Icon Does Not Change #3310
* Remove unused member m_mouseDownLeft from PianoRoll
* Add move cursor for automation points drag
* Ailiasing in AutomationPatternView; ERROR: Doesn't draw unreferanced tracks
* Draws one polygon instead of 'poly'-polygons
* Changed QPoints to QPointF
* Added int MidiTpT constant
* Added ppTact for reduced computation
* Added spaces in parentheses to be consistent
* Variable name change and spacing
* S P A C E S
* Anti-Aliasing of Automation Editor
* Commented out all referances to unused is_selected
* Changed css to non-gradient graphs
* Added Brackets
* Removed no-pixel line at bottom of graph
* Revert "Added Brackets"
This reverts commit ff801868b7.
* Revert "Revert "Added Brackets""
This reverts commit 4e127a78df.
* Revert "Removed no-pixel line at bottom of graph"
This reverts commit 940c766b61.
* Make dem grid ndasd
* grid BG
* fix bug in scroll behavior
* debugging scrolling
* Add CSS property, port to automation editor
* Fix a fail
* Spaces to tabs
* Use fillRect rather than drawRect
* Implement @vlad1777d's idea
* Seperate loops and stuff
* Finish up Piano Roll Grid
* Cleanup
* Redesign the grid for the Automation Editor
* Update colors
* Formatting changes
* formatting changes II
* Make scrollbars consistent over the software; Add padding to the scrollbars; Make the PianoView background themeable
* Make the scrollbar hover color brighter
LMMS now properly builds and runs with Qt5. Various deprecated functions
had to be replaced like QString::toAscii()/fromAscii(). Also occurences
of FALSE/TRUE have been replaced with false/true.
LmmsStyle now derives from QProxyStyle and sets a style instance as base
style (Plastique for Qt4, Fusion for Qt5).
MOC files are not included anymore but added as regular source files.
What's missing is support for embedding VST plugins into a subwindow
inside LMMS on Linux/X11 due to missing QX11EmbedContainer class in Qt5.
Build instructions can be found in INSTALL.Qt5
Minimum version requirement for Qt4 has been raised to 4.6.0 for best
API compatibility between Qt4 and Qt5.
Apparently, we can use QBrush -typed properties in the CSS. This just never occured to me before!
So, this has several benefits. A QColor property only allows a singular RGB value, but a QBrush allows the same plus also qgradients, RGBA-colours and maybe even bitmap patterns. So I'm changing some properties to QBrush, where it makes sense to allow this additional functionality - no need to enable it for simple things like text colours or such.
- Song editor background: instead of the earlier hack with 7 qproperties just to set a limited background gradient, we can use only 2 properties and allow much more flexibility with Qt's own qgradient syntax
- Automation editor: background, graph colour, and the sidebar colour - @musikBear recently complained not seeing the grid through the graph, so transparency can help there, and qlineargradients in the graph can produce very cool visual effects. Grid is pointless to change, it should stay single-colour for now.
- Piano roll: here, I only made the background use QBrush - we don't really have much else here that can utilize QBrush, the notes have their own gradient system... maybe the 2nd colour of the note gradient could be customizable though.
There are probably more places where this change makes sense...
- entire wheelevent code was written very... weirdly, I simplified it
- fix bug with x zoom with mousewheel, no more getting stuck between 25/50
- ctrl+shift+mousewheel now zooms y-axis
- ctrl+alt+mousewheel now changes quantization
Next big coding style update - this time all PlayHandle classes are
affected. Functions like done() and released() were renamed to
isFinished() and isReleased().
The MIDI event handling in InstrumentTrack was complex and buggy. It has
been simplified now such that processInEvent() tries to handle note on,
note off and key pressure events. The actions taken should result in
equivalent calls to processOutEvent() by NotePlayHandle instances. The
processOutEvent() function sends according MIDI events to the attached
instruments. All unhandled MIDI events are directly forwarded to the
instrument in processInEvent().
It's possible that some corner-cases are not handled yet with the new code
and we have regressions now.
Furthermore renamed midiTime/midiEvent to MidiTime/MidiEvent to match
coding style.
Closes#72.
Besides discrete automation it's now possible to setup interpolation
modes such as linear and cubic-hermite.
Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>