Added a check for the existence of the file that should be rendered from
the command line. LMMS now exits with an error message in case the file
does not exist.
Removes the potential horizontal scrollbar from the controller rack
view.
Also sets the MDI window of the controller rack to a bigger size in the
constructor and moves it towards the other windows. This code is active
in the case where there is no default template from which the window
states are loaded.
Cleans up the root directory of the GitHub source tree and starts to separate platform-specific installing and packaging logic from the master CMakeLists.txt. Closes#2201
Adds a new command line option to render a song as a loop ("-l", "--
loop-mode").
Also cleaned up the code which parses the command line options by
pulling out methods that print the version and the help.
Updated man page: Added the new option to command line render a loop. Updated
the data of the man page and the URLs.
Added information about option to bypass root user check on startup
Calculate the copyright year dynamically
The command line options for help and version info both print the
copyright as "2004-2014". Until now the value for the second year had to
be adjusted manually. With this patch they are computed dynamically so
that the current year will always be used.
LMMS tries to modify the save dialog, This causes a segfault if native
file dialogs are used instead of the Qt ones. At least on Linux, Qt 5
seems to make file dialogs native by default, so LMMS is unable to save
projects when compiled with -DWANT_QT5=true.
Fixed the rendering of the tact numbers in the timeline widget. Before
this fix they were not readable because they were too big. Interestingly
in this case the fix is to use a font size in pixels (half the height of
the widget). The numbers are now also rendered a bit darker than the
lines.
Also removed the pixmap for the timeline from the code and from the
filesystem. It was only used to determine the fixed height of the widget
but not rendered. Therefore it was removed and the height is now
directly set to 18 pixels which was the height of the pixmap.
The PluginDescWidget doesn't use calls to pointSize anymore. Also the
name of the plugin is only painted bold when hovered over with the
mouse. The animation speed was increased a bit as well. Hope it is not
too fast for displays with smaller resolutions. The problem with the
current implementation is that it increases the height by incremental
steps of 1 pixel (triggered by a QTimer) which gives a slower speed on
high DPI displays. In the future this implementation might be improved,
e.g. by using the animation classes provided by Qt.
The SideBarWidget also does not use calls to pointSize anymore. Instead
the standard font is increased by 2 (typographical) points and then
rendered at the right place using information from QFontMetrics. In the
long run the header of the SideBarWidget should be organized using a
layout, e.g. a layout with one QLabel to render the icon and one QLabel
to render the header text. This would ensure that the black background
would always be large enough and that the fonts do not protude into the
actual content.
ControllerRackView now uses a layout to organize the ControllerViews.
The ControllerViews in turn use layouts to organize their widgets
(labels and push button). ControllerView now inherits from QFrame
instead of QWidget. The (static) background image for controllers was
deleted because the ControllerView can now be resized dynamically.
Song: Added specific signals for added and removed controllers. Also
removed a TODO by putting the functionality to remove all controllers in
a method (removeAllControllers).
Deleted Controllers now don't unregister from Song during deletion. This
has to be done by the client (Hollywood principle - "Don't call us, we
call you.").
TODO: For some strange reason I cannot programmatically resize the
controller rack to make it fit the controllers on my screen.
Removes one of the several calls to pointSizeF. This method seems to
return a font which has the same height in pixels on all displays
(regardless of the display's actual DPI value). In the long run these
calls will all have to be removed to make LMMS usable on high DPI
displays.