-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use layouts for the instrument sound shaping tab / Extract classes fo…
…r Envelope and LFO graphs (LMMS#7193) Move the envelope and LFO graphs into their own classes. Besides the improved code organization this step had to be done to be able to use layouts in `EnvelopeAndLfoView`. The class previously had fixed layouts mixed with custom rendering in the paint event. Mouse events are now also handled in both new classes instead of in `EnvelopeAndLfoView`. ## Layouts in EnvelopeAndLfoView Use layouts to align the elements of the `EnvelopeAndLfoView`. This removes lots of hard-coded values. Add helper lambdas for the repeated creation of `Knob` and `PixmapButton` instances. The spacing that is explicitly introduced between the envelope and LFO should be removed once there is a more open layout. ## Layouts for InstrumentSoundShapingView Use layouts to align the elements of the `InstrumentSoundShapingView`. ## Info text improvements in LFO graph Draw the info text at around 20% of the LFO graph's height. This prepares the dialog to be scaled later. Write "1000 ms/LFO" instead of "ms/LFO: 1000" with a larger gap. ## Accessors for EnvelopeAndLfoParameters Make the enum `LfoShape` in `EnvelopeAndLfoParameters` public so that it can be used without friend declarations. Add accessor methods for the model of the LFO. ## Other improvements * Adjust include orders * Variable initialization in headers * Prevention of most vexing parses
- Loading branch information
1 parent
750880f
commit b8c2653
Showing
10 changed files
with
646 additions
and
412 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
/* | ||
* EnvelopeGraph.h - Displays envelope graphs | ||
* | ||
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net> | ||
* Copyright (c) 2024- Michael Gregorius | ||
* | ||
* This file is part of LMMS - https://lmms.io | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public | ||
* License as published by the Free Software Foundation; either | ||
* version 2 of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
* General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public | ||
* License along with this program (see COPYING); if not, write to the | ||
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
* Boston, MA 02110-1301 USA. | ||
* | ||
*/ | ||
|
||
#ifndef LMMS_GUI_ENVELOPE_GRAPH_H | ||
#define LMMS_GUI_ENVELOPE_GRAPH_H | ||
|
||
#include <QWidget> | ||
|
||
#include "ModelView.h" | ||
#include "embed.h" | ||
|
||
namespace lmms | ||
{ | ||
|
||
class EnvelopeAndLfoParameters; | ||
|
||
namespace gui | ||
{ | ||
|
||
class EnvelopeGraph : public QWidget, public ModelView | ||
{ | ||
public: | ||
EnvelopeGraph(QWidget* parent); | ||
|
||
protected: | ||
void modelChanged() override; | ||
|
||
void mousePressEvent(QMouseEvent* me) override; | ||
void paintEvent(QPaintEvent* pe) override; | ||
|
||
private: | ||
void toggleAmountModel(); | ||
|
||
private: | ||
QPixmap m_envGraph = embed::getIconPixmap("envelope_graph"); | ||
|
||
EnvelopeAndLfoParameters* m_params; | ||
}; | ||
|
||
} // namespace gui | ||
|
||
} // namespace lmms | ||
|
||
#endif // LMMS_GUI_ENVELOPE_GRAPH_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/* | ||
* LfoGraph.h - Displays LFO graphs | ||
* | ||
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net> | ||
* Copyright (c) 2024- Michael Gregorius | ||
* | ||
* This file is part of LMMS - https://lmms.io | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public | ||
* License as published by the Free Software Foundation; either | ||
* version 2 of the License, or (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
* General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public | ||
* License along with this program (see COPYING); if not, write to the | ||
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
* Boston, MA 02110-1301 USA. | ||
* | ||
*/ | ||
|
||
#ifndef LMMS_GUI_LFO_GRAPH_H | ||
#define LMMS_GUI_LFO_GRAPH_H | ||
|
||
#include <QWidget> | ||
|
||
#include "ModelView.h" | ||
#include "embed.h" | ||
|
||
namespace lmms | ||
{ | ||
|
||
class EnvelopeAndLfoParameters; | ||
|
||
namespace gui | ||
{ | ||
|
||
class LfoGraph : public QWidget, public ModelView | ||
{ | ||
public: | ||
LfoGraph(QWidget* parent); | ||
|
||
protected: | ||
void modelChanged() override; | ||
|
||
void mousePressEvent(QMouseEvent* me) override; | ||
void paintEvent(QPaintEvent* pe) override; | ||
|
||
private: | ||
void toggleAmountModel(); | ||
|
||
private: | ||
QPixmap m_lfoGraph = embed::getIconPixmap("lfo_graph"); | ||
|
||
EnvelopeAndLfoParameters* m_params = nullptr; | ||
|
||
float m_randomGraph {0.}; | ||
}; | ||
|
||
} // namespace gui | ||
|
||
} // namespace lmms | ||
|
||
#endif // LMMS_GUI_LFO_GRAPH_H |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.