Commit Graph

161 Commits

Author SHA1 Message Date
Lukas W
100a67cd3c Rename configManager to ConfigManager 2014-11-02 01:02:33 +01:00
grindhold
2c447a32e7 fixed hotspot of hand-cursor 2014-10-28 15:21:22 +01:00
Vesa V
128a3ec927 Merge pull request #1053 from diizy/banish-all-locks
Banish all locks
2014-08-16 09:58:52 +03:00
Tobias Doerffel
4cee046909 Added initial Qt5 support
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.
2014-08-14 17:34:49 +02:00
Vesa
9e1cdd0441 Start work on replacing/removing global locks 2014-08-03 14:49:45 +03:00
Vesa V
1934879109 Merge pull request #1026 from LMMS/stable-1.1
sync
2014-07-26 00:31:03 +03:00
Vesa
dacb8adc4c Add "clear track" option, fix copying of tracks from song ed -> bb ed
- Tracks copied from song->bb will no longer be unusable
- Since doing this required creating a "delete TCOs from track" function, I also added the option to trackops menu to clear a track
Fix #757
2014-07-18 11:18:10 +03:00
Tobias Doerffel
eee2ba7f16 Merge remote-tracking branch 'origin/stable-1.1'
Conflicts:
	data/locale/de.qm
	data/locale/de.ts
2014-06-21 23:30:59 +02:00
Vesa
2fa7892542 Use QBrush instead of QColor on some theme properties
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...
2014-06-08 18:06:09 +03:00
Steve Leonard
af56ea5849 Copy+Paste for rubberband selections in track editor 2014-05-26 15:53:08 -04:00
Vesa
6b7a3c0041 Automation recording: add option to trackops to switch on/off recording in all TCOs on the track
I still had time to implement this convenient little thing, so here you go...
The same code can be reused in the future for sampletracks as well.
2014-05-05 00:37:39 +03:00
Hannu Haahti
885b52cfa8 keep deletion with middle click 2014-04-28 01:07:36 +03:00
Hannu Haahti
cdcba9f685 SongEditor: change middle click to shift+right click, fix #621 2014-04-28 00:38:00 +03:00
Tobias Doerffel
1f661be72c Merge remote-tracking branch 'origin/stable-1.0'
Conflicts:
	plugins/CMakeLists.txt
	plugins/zynaddsubfx/src/Effects/Alienwah.cpp
	src/core/track.cpp
2014-04-12 11:08:27 +02:00
Vesa
7b6d237a89 Track: depointerize qproperties 2014-04-08 12:24:55 +03:00
Steffen Baranowsky
61c5738582 corrects the drag'n'drop behavior in the song editor. 2014-04-06 22:18:33 +02:00
Vesa
994dcd3964 TCOView: Make patternviews foreground elements stylable with qproperties 2014-04-06 11:38:12 +03:00
Vesa
3bcffcdf5b Track: make the song editor background CSS-stylable with qproperties 2014-04-06 11:38:12 +03:00
Tobias Doerffel
bd1d9356b5 TrackContentObjectView: add journal checkpoint in remove() rather than close()
The remove() slot is only called upon user interaction (i.e. right click)
and thus the correct place where to make checkpoints.
2014-03-30 12:37:28 +02:00
Tobias Doerffel
7b8eaa6835 Merge remote-tracking branch 'origin/stable-0.4-undo-redo'
Conflicts:
	include/AutomatableModel.h
	include/MidiPort.h
	include/TrackContainerView.h
	include/surround_area.h
	include/track.h
	src/core/AutomatableModel.cpp
	src/core/TrackContainer.cpp
	src/core/note.cpp
	src/core/track.cpp
	src/gui/PianoRoll.cpp
	src/gui/TrackContainerView.cpp
	src/gui/widgets/LcdSpinBox.cpp
2014-03-24 19:37:26 +01:00
Vesa
0947bcf70f Song editor: fix jittery tracks bug (issue #286) 2014-03-08 11:43:05 +02:00
Vesa
e7b097d255 Define all pattern colours in CSS and make them stylable
also coding style improvements (remove leading underscores from header guards)
2014-02-25 21:30:39 +02:00
Vesa
3ccc0685b7 More updates to song editor graphics based on feedback and IRC discussions
also fixed the automation pattern rendering which had some slightly bad behaviour
2014-02-24 01:52:03 +02:00
Vesa
490a71313a Slight change to song editor background 2014-02-22 19:18:28 +02:00
Vesa
9f64e6f428 More tweaks on song editor style 2014-02-22 02:34:26 +02:00
Vesa
9896d94b09 Updates to song editor style. Also couple of fixes to SID layout. 2014-02-21 21:13:07 +02:00
Tobias Doerffel
2e7733eaa1 DataFile: renamed from old multimediaProject class + coding style fixes 2014-02-03 21:21:36 +01:00
Tobias Doerffel
3a827f061f Reworked MIDI event handling in InstrumentTrack and renamed MIDI classes
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.
2014-01-26 00:08:12 +01:00
Tobias Doerffel
ec5e9f16d5 Track: allow resizing TrackContentObjects to less than one bar
As per popular demand, allow resizing TrackContentObjects to less than
one bar if appropriate subclass supports it.
2014-01-19 22:58:32 +01:00
Gurjot Singh
c1d5730c30 save solo states for tracks 2014-01-18 22:02:26 +05:30
Tobias Doerffel
f2590c24df Replaced [S/U]int[8/16/32] with types from stdint.h or plain integers 2014-01-18 02:56:38 +01:00
Tobias Doerffel
9a7ad0264f SampleBuffer, SamplePlayHandle, SampleRecordHandle, SampleTrack: new coding style
Renamed file and class names.
2014-01-14 18:01:14 +01:00
Tobias Doerffel
4e5507a30a TrackContainer, TrackContainerView: adopted coding style
Renamed file and class names.
2014-01-14 17:39:02 +01:00
Tobias Doerffel
0ff1f91c1b Mixer: renamed class and file name
The mixer class is now named "Mixer" and accessible via engine::mixer().
2014-01-08 22:35:14 +01:00
Tobias Doerffel
a5c3cf6a99 Revised journalling (undo/redo) to record full states instead of changes
Recording single changes of objects or their specific properties is
completely superfluous as we have full implemented state tracking in all
objects already. Therefore use SerializingObject::saveState() and
SerializingObject::restoreState() in order to implement the undo/redo
functionality.

This is just an initial commit and needs some further work (especially
regarding stability). However even things like undo/redo of
addition/removal of Tracks and TrackContentObjects do work already.
2014-01-07 23:48:09 +01:00
Paul Giblock
642aa97198 Attempt to fix caching bug in track backgrounds
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1933 0778d3d1-df1d-0410-868b-ea421aaaa00d

Conflicts:
	ChangeLog.old
	src/core/track.cpp
2012-12-18 20:59:22 -05:00
Tobias Doerffel
d3d6d65836 Track: do not load height information if greater than default height
This is a workaround for issue #3585927. Once we found the source of
this issue, we can revert this commit.
2012-11-11 22:17:11 +01:00
Tobias Doerffel
c9d5c1dd06 Track: coding style fixes 2012-11-11 22:11:49 +01:00
Raine M. Ekman
69947a624b Track: allow smaller height
Here's one way to cram more stuff onto small screens, or otherwise help
reducing visual clutter: Allow tracks to be shift-dragged all the way
down to 8 px height.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-11-01 21:36:31 +01:00
Raine M. Ekman
14f41fe7b3 TrackViews: added compact mode
Added an option to shrink the track buttons horizontally, mainly by
moving the track name into a tooltip.

Closes #3459241.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
2012-01-29 23:49:16 +01:00
Tobias Doerffel
89eae05a16 Renamed all automation related files and classes to match new coding style
All automation-related files and classes have been renamed to match the
new coding style.
(cherry picked from commit 9b280ffb3e)
2010-08-16 23:40:33 +02:00
Tobias Doerffel
4b89814e3a TrackContentObject: keep position in paste()
When calling TrackContentObject::paste(), only the content should be
pasted, not the position. This fixes pasting for example note patterns
and is also a more generic solution for the bug fixed in commit
4ec5c6afe1.

Closes #3005649.
(cherry picked from commit 5306f7b0ca)
2010-07-25 01:27:23 +02:00
Tobias Doerffel
488337f6eb Engine: introduced deleteHelper() function
The new deleteHelper() template function takes a pointer, saves it
to a temporary, sets the passed pointer to NULL and then deletes the
object it was referring to before. This way we can spot bugs caused by
undesired references to global objects at shutdown more easily.
(cherry picked from commit fe7d5e3d5a)
2010-05-21 14:13:11 +02:00
Tobias Doerffel
7c16094811 Fixed spelling errors
Fixed some spelling errors found by Lintian while checking the Debian
package of LMMS. Thanks to Patrick Winnertz for pointing out this issue.
(cherry picked from commit 9fd3dacb67)
2010-01-25 23:27:43 +01:00
Tobias Doerffel
d7ae99a5e8 TrackContentWidget: fixed background tile pixmap updating
The background tile pixmap used to draw the background of
TrackContentWidgets was only updated on size changes but not on
changes of zoom level in according editor. Fix this by updating
background pixmaps in trackContainerView::setPixelsPerTact().
2009-12-07 01:38:17 +01:00
Tobias Doerffel
1d5cb23385 File and class renames part 1
Most files and most of the core classes and their methods have been
renamed to match new coding style conventions:

391 files changed, 25400 insertions(+), 25598 deletions(-)

Furthermore splitted some files where model and view classes were
declared or implemented together in the same file.

Should be tested thoroughly as I might have missed renaming some virtual
methods or SIGNAL/SLOT parameters.
(cherry picked from commit 8c9a9dd14c)
2009-08-25 01:30:41 +02:00
Tobias Doerffel
edf2d4d104 Whole code base: various cleanups, removed SINGLE_SOURCE_COMPILE relicts
* cleaned up code and improved coding style
* removed old SINGLE_SOURCE_COMPILE macro relicts
* use QString::toUtf8() instead of QString::toAscii() wherever possible

(cherry picked from commit 0bb54199b0)
2009-08-05 17:17:57 +02:00
Tobias Doerffel
9b2e3fc262 TrackContentWidget: fix graphical glitches with Qt 4.5
Starting with Qt 4.5 there were minor graphical glitches in
TrackContentWidget. Fix this by not setting Qt::WA_OpaquePaintEvent
attribute.

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 1015868e1f)
2009-07-07 21:22:20 +02:00
Tobias Doerffel
57c4a5abc5 MultimediaProject: splitted constructor for loading either file or data
The old constructor treated the string argument either as filename or
as raw XML data, depending on 2nd parameter. This is a mess and quickly
leads to confusion.

Now we have two constructors taking either a filename as string or a
QByteArray with XML data. Loading actual data has been separated into
MultimediaProject::loadData( const QByteArray & ).

Signed-off-by: Tobias Doerffel <tobias.doerffel@gmail.com>
(cherry picked from commit 5a00ebd360)
2009-06-11 01:16:30 +02:00
Tobias Doerffel
41efb51518 TrackView: do not set Qt::WA_OpaquePaintEvent attribute
Due to optimizations in Qt 4.5 setting Qt::WA_OpaquePaintEvent attribute
for TrackView widgets caused a line of distorted pixels at the bottom of
the left part so do not set this attribute anymore (closes #2795861).
(cherry picked from commit cdcc158c03)
2009-05-25 13:48:27 +02:00