Skip to content
Merged
Show file tree
Hide file tree
Changes from 50 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
124113e
Rebase against master
tresf Feb 18, 2025
9e07736
Fix Qt6 DMG on Apple (#7240)
tresf May 7, 2024
1afd5d5
Fixes after rebase
tresf May 17, 2024
1d6338a
Fix embed.cpp compilation
tresf May 18, 2024
b1f0ace
Fix Qt6 signature change for nativeEventFilter (#7254)
Rossmaxx May 19, 2024
8dd521a
fix broken signal slot connections (#7274)
Rossmaxx May 21, 2024
5471ab1
Enabled VSTs on Qt 6 (#7273)
Rossmaxx May 21, 2024
e028d13
Changed bar lines to follow snap size (#7034)
BoredGuy1 May 20, 2024
c55f76c
Fix compilation
PhysSong Sep 16, 2024
1497298
Fix MSVC builds
PhysSong Sep 16, 2024
045a059
fix nullptr deref in AudioFileProcessor (qt6 branch) (#7532)
RiedleroD Oct 6, 2024
5a1b745
Remove Core5Compat usage
messmerd Oct 23, 2024
e23b0a4
Fix bad merge
tresf Feb 18, 2025
73c62f2
Fixes after rebase
tresf Feb 18, 2025
54a327d
Simplify QTX_WRAP_CPP call
tresf Feb 18, 2025
b6d7b14
Remove comments that are obvious to a developer
tresf Feb 18, 2025
bffc40d
Whitespace
tresf Feb 18, 2025
2d8c043
Try using Qt 6 for MSVC CI
messmerd Feb 19, 2025
92b59d9
Fix MSVC build
messmerd Feb 19, 2025
f18fc47
Fix GuiApplication on MSVC
messmerd Feb 19, 2025
de4576e
Fix interpolateInRgb
messmerd Feb 19, 2025
ee20d28
Try building with patched Calf
messmerd Feb 20, 2025
f93cae4
Fix submodule
messmerd Feb 20, 2025
47524c6
Fix OpulenZ build
messmerd Feb 20, 2025
4b9af99
Try to fix zyn
tresf Feb 21, 2025
3d7046d
Fix comment
tresf Feb 21, 2025
25bd0b2
Ty to fix zyn (again)
tresf Feb 21, 2025
7941dbf
Ty to fix RemotePluginBase
tresf Feb 21, 2025
a47a2ed
Revert "Ty to fix RemotePluginBase"
tresf Feb 21, 2025
cd9a832
Update plugins/ZynAddSubFx/CMakeLists.txt
tresf Feb 21, 2025
10632b3
Fix vertical & horizontal scroll wheel in SongEditor
tresf Feb 24, 2025
3bf6805
AppImage: Fix finding of Qt6 libs
tresf Feb 24, 2025
bf2b36d
Merge branch 'master' into qt6
tresf Mar 12, 2025
bd288e4
Fix implicit QString --> QFileInfo conversion
tresf Mar 12, 2025
4ba9393
Merge branch 'master' into qt6
tresf Mar 15, 2025
1daea18
Point submodule to lmms
tresf Mar 15, 2025
f1bee30
Merge branch 'master' into qt6
tresf Mar 31, 2025
043319c
Merge branch 'master' into 'qt6'
messmerd May 22, 2025
02f35ed
Fix multiple deprecation warnings
messmerd Jul 10, 2025
6b59994
Fix for Clang compiler
messmerd Jul 10, 2025
cf4bf5c
Build with latest Qt LTS version now that we use MSVC 2022
messmerd Jul 10, 2025
a71147e
Update jurplel/install-qt-action to v4.3.0
messmerd Jul 10, 2025
5f740e4
Bump minimum Qt6 version for MSVC
messmerd Jul 10, 2025
4f58756
Fix incorrect Qt version checks
messmerd Jul 10, 2025
9f93dde
`QSize()` != `QSize(0, 0)`
messmerd Jul 10, 2025
903572e
Merge branch 'master' into qt6
messmerd Jul 10, 2025
418a680
Fix more deprecation warnings
messmerd Jul 10, 2025
87d6b91
Fix style
messmerd Jul 11, 2025
10969b1
Simplify Spectrum Analyzer mouse events
messmerd Jul 11, 2025
48422da
Minor changes
messmerd Jul 11, 2025
b9244a8
Merge branch 'master' into qt6
messmerd Oct 20, 2025
42d8b67
Fix deprecated QCheckBox signal
messmerd Oct 21, 2025
fbee2e7
Fix setContent helper functions
messmerd Oct 21, 2025
36736e5
Remove QMultiMap usage from ControlLayout
messmerd Oct 24, 2025
ccdf3f8
Remove SIGNAL and SLOT macros
messmerd Nov 3, 2025
2039c96
Revert TrackView.cpp changes
messmerd Nov 3, 2025
1839955
Merge branch 'master' into qt6
messmerd Nov 3, 2025
65f6b1e
Remove Q_DISABLE_MOVE usage since it does not seem to be available in…
messmerd Nov 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -371,10 +371,10 @@ jobs:
- name: Install tools
run: choco install ccache
- name: Install Qt
uses: jurplel/install-qt-action@b3ea5275e37b734d027040e2c7fe7a10ea2ef946
uses: jurplel/install-qt-action@d325aaf2a8baeeda41ad0b5d39f84a6af9bcf005
with:
version: '5.15.2'
arch: "win64_msvc2019_64"
version: '6.8.*'
arch: "win64_msvc2022_64"
archives: qtbase qtsvg qttools
cache: true
- name: Set up build environment
Expand All @@ -391,6 +391,7 @@ jobs:
--toolchain C:/vcpkg/scripts/buildsystems/vcpkg.cmake `
-Werror=dev `
-DCMAKE_BUILD_TYPE=RelWithDebInfo `
-DWANT_QT6=ON `
-DUSE_COMPILE_CACHE=ON `
-DUSE_WERROR=ON `
-DVCPKG_TARGET_TRIPLET="x64-windows" `
Expand Down
50 changes: 33 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ option(WANT_DEBUG_GPROF "Enable gprof profiler" OFF)
OPTION(BUNDLE_QT_TRANSLATIONS "Install Qt translation files for LMMS" OFF)
option(WANT_DEBUG_CPACK "Show detailed logs for packaging commands" OFF)
option(WANT_CPACK_TARBALL "Request CPack to create a tarball instead of an installer" OFF)
option(WANT_QT6 "Build with experimental Qt6 support" OFF)


IF(LMMS_BUILD_APPLE)
Expand Down Expand Up @@ -174,31 +175,45 @@ check_library_exists(rt shm_open "" LMMS_HAVE_LIBRT)

LIST(APPEND CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}")

FIND_PACKAGE(Qt5 5.9.0 COMPONENTS Core Gui Widgets Xml Svg REQUIRED)
FIND_PACKAGE(Qt5 COMPONENTS LinguistTools QUIET)
if(WANT_QT6)
set(QT_VERSION_MAJOR 6)
if(MSVC)
set(LMMS_QT_MIN_VERSION 6.8.0)
else()
set(LMMS_QT_MIN_VERSION 6.0.0)
endif()
set(STATUS_QT6 "Enabled")
else()
set(QT_VERSION_MAJOR 5)
set(LMMS_QT_MIN_VERSION 5.9.0)
set(STATUS_QT6 "Disabled")
endif()

find_package(Qt${QT_VERSION_MAJOR} ${LMMS_QT_MIN_VERSION} COMPONENTS Core Gui Widgets Xml Svg REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS LinguistTools QUIET)

include_directories(SYSTEM
${Qt5Core_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Xml_INCLUDE_DIRS}
${Qt${QT_VERSION_MAJOR}Core_INCLUDE_DIRS}
${Qt${QT_VERSION_MAJOR}Gui_INCLUDE_DIRS}
${Qt${QT_VERSION_MAJOR}Widgets_INCLUDE_DIRS}
${Qt${QT_VERSION_MAJOR}Xml_INCLUDE_DIRS}
)

SET(QT_LIBRARIES
Qt5::Core
Qt5::Gui
Qt5::Widgets
Qt5::Xml
Qt5::Svg
set(QT_LIBRARIES
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Gui
Qt${QT_VERSION_MAJOR}::Widgets
Qt${QT_VERSION_MAJOR}::Xml
Qt${QT_VERSION_MAJOR}::Svg
)

IF(LMMS_BUILD_LINUX AND WANT_VST)
IF(LMMS_BUILD_LINUX AND WANT_VST AND NOT WANT_QT6)
FIND_PACKAGE(Qt5 COMPONENTS X11Extras REQUIRED)
LIST(APPEND QT_LIBRARIES Qt5::X11Extras)
ENDIF()

# Resolve Qt5::qmake to full path for use in packaging scripts
GET_TARGET_PROPERTY(QT_QMAKE_EXECUTABLE "${Qt5Core_QMAKE_EXECUTABLE}" IMPORTED_LOCATION)
# Resolve qmake to full path for use in packaging scripts
get_target_property(QT_QMAKE_EXECUTABLE Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)

# Find the location of Qt translation files
execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_TRANSLATIONS
Expand All @@ -211,8 +226,8 @@ IF(EXISTS "${QT_TRANSLATIONS_DIR}")
ADD_DEFINITIONS("-DQT_TRANSLATIONS_DIR=\"${QT_TRANSLATIONS_DIR}\"")
ENDIF()

FIND_PACKAGE(Qt5Test)
SET(QT_QTTEST_LIBRARY Qt5::Test)
FIND_PACKAGE(Qt${QT_VERSION_MAJOR}Test)
SET(QT_QTTEST_LIBRARY Qt${QT_VERSION_MAJOR}::Test)

# check for libsndfile
FIND_PACKAGE(SndFile REQUIRED)
Expand Down Expand Up @@ -875,6 +890,7 @@ MESSAGE(
"* Debug packaging commands : ${STATUS_DEBUG_CPACK}\n"
"* Profile using GNU profiler : ${STATUS_GPROF}\n"
"* Debug assertions : ${STATUS_ASSERTIONS}\n"
"* Experimental Qt6 support : ${STATUS_QT6}\n"
)

MESSAGE(
Expand Down
8 changes: 4 additions & 4 deletions cmake/install/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
SET(PLUGIN_FILES "")
IF(LMMS_BUILD_WIN32)
INSTALL(FILES $<TARGET_FILE:Qt5::QWindowsIntegrationPlugin> DESTINATION platforms)
INSTALL(FILES $<TARGET_FILE:Qt5::QSvgIconPlugin> DESTINATION iconengines)
INSTALL(FILES $<TARGET_FILE:Qt5::QSvgPlugin> DESTINATION imageformats)
INSTALL(FILES $<TARGET_FILE:Qt5::Svg> DESTINATION .)
INSTALL(FILES $<TARGET_FILE:Qt${QT_VERSION_MAJOR}::QWindowsIntegrationPlugin> DESTINATION platforms)
INSTALL(FILES $<TARGET_FILE:Qt${QT_VERSION_MAJOR}::QSvgIconPlugin> DESTINATION iconengines)
INSTALL(FILES $<TARGET_FILE:Qt${QT_VERSION_MAJOR}::QSvgPlugin> DESTINATION imageformats)
INSTALL(FILES $<TARGET_FILE:Qt${QT_VERSION_MAJOR}::Svg> DESTINATION .)
ENDIF()

IF(LMMS_BUILD_WIN32 OR LMMS_INSTALL_DEPENDENCIES)
Expand Down
4 changes: 4 additions & 0 deletions cmake/linux/LinuxDeploy.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ set(ENV{PATH} "${QTBIN}:$ENV{PATH}")
# Promote finding our own libraries first
set(ENV{LD_LIBRARY_PATH} "${APP}/usr/lib/${lmms}/:${APP}/usr/lib/${lmms}/optional:$ENV{LD_LIBRARY_PATH}")

# Workaround for finding libs from online installer
# https://github.com/linuxdeploy/linuxdeploy-plugin-qt/issues/193
set(ENV{LD_LIBRARY_PATH} "${QTBIN}/../lib:$ENV{LD_LIBRARY_PATH}")

# Skip slow searching of copyright files https://github.com/linuxdeploy/linuxdeploy/issues/278
set(ENV{DISABLE_COPYRIGHT_FILES_DEPLOYMENT} 1)

Expand Down
4 changes: 2 additions & 2 deletions cmake/modules/BuildPlugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)
ADD_GEN_QRC(RCC_OUT "${PLUGIN_NAME}.qrc" PREFIX artwork/${PLUGIN_NAME} ${PLUGIN_EMBEDDED_RESOURCES})
ENDIF(ER_LEN)

QT5_WRAP_CPP(plugin_MOC_out ${PLUGIN_MOCFILES})
cmake_language(CALL QT${QT_VERSION_MAJOR}_WRAP_CPP plugin_MOC_out ${PLUGIN_MOCFILES})

FOREACH(f ${PLUGIN_SOURCES})
ADD_FILE_DEPENDENCIES(${f} ${RCC_OUT})
Expand All @@ -51,7 +51,7 @@ MACRO(BUILD_PLUGIN PLUGIN_NAME)

ADD_LIBRARY(${PLUGIN_NAME} ${PLUGIN_LINK} ${PLUGIN_SOURCES} ${plugin_MOC_out} ${RCC_OUT})

target_link_libraries("${PLUGIN_NAME}" lmms Qt5::Widgets Qt5::Xml)
target_link_libraries("${PLUGIN_NAME}" lmms Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Xml)

INSTALL(TARGETS ${PLUGIN_NAME}
LIBRARY DESTINATION "${PLUGIN_DIR}"
Expand Down
2 changes: 1 addition & 1 deletion cmake/modules/GenQrc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ function(add_gen_qrc RCC_OUT QRC_NAME)
# generators. See issue #6177.
add_custom_command(
OUTPUT "${CPP_FILE}"
COMMAND Qt5::rcc
COMMAND Qt${QT_VERSION_MAJOR}::rcc
--name "${RESOURCE_NAME}"
--output "${CPP_FILE}"
"${QRC_FILE}"
Expand Down
4 changes: 2 additions & 2 deletions data/locale/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
SET(QT_LUPDATE_EXECUTABLE "${Qt5_LUPDATE_EXECUTABLE}")
SET(QT_LRELEASE_EXECUTABLE "${Qt5_LRELEASE_EXECUTABLE}")
SET(QT_LUPDATE_EXECUTABLE "${Qt${QT_VERSION_MAJOR}_LUPDATE_EXECUTABLE}")
SET(QT_LRELEASE_EXECUTABLE "${Qt${QT_VERSION_MAJOR}_LRELEASE_EXECUTABLE}")

IF(QT_LUPDATE_EXECUTABLE STREQUAL "")
EXECUTE_PROCESS(COMMAND "lupdate" "-help" RESULT_VARIABLE LUPDATE_FALLBACK OUTPUT_QUIET)
Expand Down
3 changes: 1 addition & 2 deletions include/ColorChooser.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ class ColorChooser : public QColorDialog
//! Forward key events to the parent to prevent stuck notes when the dialog gets focus
void keyReleaseEvent(QKeyEvent *event) override
{
QKeyEvent ke(*event);
QApplication::sendEvent(parentWidget(), &ke);
QApplication::sendEvent(parentWidget(), event);
}
private:
//! Copy the current QColorDialog palette into an array
Expand Down
20 changes: 13 additions & 7 deletions include/ColorHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,17 +35,23 @@ class ColorHelper
public:
static QColor interpolateInRgb(const QColor& a, const QColor& b, float t)
{
qreal ar, ag, ab, aa;
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
using ColorType = float;
#else
using ColorType = qreal;
#endif

ColorType ar, ag, ab, aa;
a.getRgbF(&ar, &ag, &ab, &aa);

qreal br, bg, bb, ba;
ColorType br, bg, bb, ba;
b.getRgbF(&br, &bg, &bb, &ba);

const auto t2 = static_cast<qreal>(t);
const float interH = std::lerp(ar, br, t2);
const float interS = std::lerp(ag, bg, t2);
const float interV = std::lerp(ab, bb, t2);
const float interA = std::lerp(aa, ba, t2);
const auto t2 = static_cast<ColorType>(t);
const auto interH = std::lerp(ar, br, t2);
const auto interS = std::lerp(ag, bg, t2);
const auto interV = std::lerp(ab, bb, t2);
const auto interA = std::lerp(aa, ba, t2);

return QColor::fromRgbF(interH, interS, interV, interA);
}
Expand Down
12 changes: 10 additions & 2 deletions include/ControlLayout.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,14 @@ class ControlLayout : public QLayout
{
Q_OBJECT

#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
using ControlLayoutMap = QMultiMap<QString, QLayoutItem*>;
using ControlLayoutMapIterator = QMultiMapIterator<QString, QLayoutItem*>;
#else
using ControlLayoutMap = QMap<QString, QLayoutItem*>;
using ControlLayoutMapIterator = QMapIterator<QString, QLayoutItem*>;
#endif

public:
explicit ControlLayout(QWidget *parent,
int margin = -1, int hSpacing = -1, int vSpacing = -1);
Expand Down Expand Up @@ -126,9 +134,9 @@ private slots:
private:
int doLayout(const QRect &rect, bool testOnly) const;
int smartSpacing(QStyle::PixelMetric pm) const;
QMap<QString, QLayoutItem *>::const_iterator pairAt(int index) const;
ControlLayoutMap::const_iterator pairAt(int index) const;

QMultiMap<QString, QLayoutItem *> m_itemMap;
ControlLayoutMap m_itemMap;
int m_hSpace;
int m_vSpace;
// relevant dimension is width, as later, heightForWidth() will be called
Expand Down
120 changes: 114 additions & 6 deletions include/DeprecationHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@

#include <type_traits>

#include <QDomDocument>
#include <QFontMetrics>
#include <QKeySequence>
#include <QVariant>
#include <QWheelEvent>

namespace lmms
Expand Down Expand Up @@ -58,15 +60,74 @@ inline int horizontalAdvance(const QFontMetrics& metrics, const QString& text)
* @param wheelEvent
* @return the position of wheelEvent
*/
inline QPoint position(QWheelEvent *wheelEvent)
inline QPoint position(const QWheelEvent* wheelEvent)
{
#if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
return wheelEvent->position().toPoint();
#else
return wheelEvent->pos();
#endif
}

/**
* @brief position is a backwards-compatible adapter for
* QDropEvent::position and pos functions.
* @param me
* @return the position of the drop event
*/
inline QPoint position(const QDropEvent* de)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return de->position().toPoint();
#else
return de->pos();
#endif
}

/**
* @brief position is a backwards-compatible adapter for
* QMouseEvent::position and pos functions.
* @param me
* @return the position of the mouse event
*/
inline QPoint position(const QMouseEvent* me)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return me->position().toPoint();
#else
return me->pos();
#endif
}

/**
* @brief positionF is a backwards-compatible adapter for
* QMouseEvent::position and localPos functions.
* @param me
* @return the position of the mouse event
*/
inline QPointF positionF(const QMouseEvent* me)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return me->position();
#else
return me->localPos();
#endif
}

/**
* @brief globalPosition is a backwards-compatible adapter for
* QMouseEvent::globalPosition and globalPos functions.
* @param me
* @return the global position of the mouse event
*/
inline QPoint globalPosition(const QMouseEvent* me)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return me->globalPosition().toPoint();
#else
return me->globalPos();
#endif
}

namespace detail
{
Expand All @@ -77,20 +138,67 @@ inline constexpr bool IsKeyOrModifier = std::is_same_v<T, Qt::Key>

} // namespace detail


/**
* @brief Combines Qt key and modifier arguments together,
* replacing `A | B` which was deprecated in C++20
* due to the enums being different types. (P1120R0)
* @param args Any number of Qt::Key, Qt::Modifier, or Qt::KeyboardModifier
* @return The combination of the given keys/modifiers as an int
* @return The combination of the given keys/modifiers as a QKeySequence
*/
template<typename... Args, std::enable_if_t<(detail::IsKeyOrModifier<Args> && ...), bool> = true>
constexpr int combine(Args... args)
template<typename... Args> requires (detail::IsKeyOrModifier<Args> && ...)
inline QKeySequence keySequence(Args... args)
{
return (0 | ... | static_cast<int>(args));
}

/**
* @brief typeId is a backwards-compatible adapter for
* QVariant::typeId and type functions.
* @param variant
* @return the type id of the variant
*/
inline QMetaType::Type typeId(const QVariant& variant)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return static_cast<QMetaType::Type>(variant.typeId());
#else
return static_cast<QMetaType::Type>(variant.type());
#endif
}

//! Backwards-compatible adapter for QDomDocument::setContent
inline bool setContent(QDomDocument& doc, const QByteArray& text,
QString* errorMsg = nullptr, int* errorLine = nullptr, int* errorColumn = nullptr)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 5, 0))
auto result = doc.setContent(text, QDomDocument::ParseOption::Default);
if (errorMsg) { *errorMsg = std::move(result.errorMessage); }
if (errorLine) { *errorLine = static_cast<int>(result.errorLine); }
if (errorColumn) { *errorColumn = static_cast<int>(result.errorColumn); }
return static_cast<bool>(result);
#else
return doc.setContent(text, errorMsg, errorLine, errorColumn);
#endif
}

//! Backwards-compatible adapter for QDomDocument::setContent
inline bool setContent(QDomDocument& doc, QIODevice* dev, bool namespaceProcessing,
QString* errorMsg = nullptr, int* errorLine = nullptr, int* errorColumn = nullptr)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 5, 0))
const auto options = namespaceProcessing
? QDomDocument::ParseOption::UseNamespaceProcessing
: QDomDocument::ParseOption::Default;
auto result = doc.setContent(dev, options);
if (errorMsg) { *errorMsg = std::move(result.errorMessage); }
if (errorLine) { *errorLine = static_cast<int>(result.errorLine); }
if (errorColumn) { *errorColumn = static_cast<int>(result.errorColumn); }
return static_cast<bool>(result);
#else
return doc.setContent(dev, namespaceProcessing, errorMsg, errorLine, errorColumn);
#endif
}

} // namespace lmms

#endif // LMMS_DEPRECATIONHELPER_H
Loading
Loading