commit abd47274f94caddeff37033a4fd2cb8618f71a5e
parent 5b4c9d4c4b8d0e2dde042521c960e8a403e190cf
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sun, 29 Sep 2024 01:02:42 +0200
support "Save as" for a wave by right clicking the save button
Diffstat:
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/source/xtJucePlugin/xtWaveEditor.cpp b/source/xtJucePlugin/xtWaveEditor.cpp
@@ -71,7 +71,7 @@ namespace xtJucePlugin
m_btWavePreview = m_editor.findComponentT<juce::Button>("btWavePreview");
m_ledWavePreview = m_editor.findComponentT<juce::Button>("ledWavePreview");
- m_btWaveSave = m_editor.findComponentT<juce::Button>("btWaveSave");
+ m_btWaveSave = m_editor.findComponentT<genericUI::Button<juce::DrawableButton>>("btWaveSave");
m_btWavetablePreview = m_editor.findComponentT<juce::Button>("btWavetablePreview");
m_ledWavetablePreview = m_editor.findComponentT<juce::Button>("ledWavetablePreview");
@@ -87,6 +87,8 @@ namespace xtJucePlugin
toggleWavetablePreview(m_btWavePreview->getToggleState());
};
+ m_btWaveSave->allowRightClick(true);
+
m_btWaveSave->onClick = [this]
{
saveWave();
@@ -151,12 +153,11 @@ namespace xtJucePlugin
void WaveEditor::saveWave()
{
- if(WaveEditorData::isReadOnly(m_selectedWave))
+ if(WaveEditorData::isReadOnly(m_selectedWave) || m_btWaveSave->isRightClick())
{
// open menu and let user select one of the wave slots
juce::PopupMenu menu;
-
uint16_t count = 0;
for(uint16_t i=xt::Wave::g_firstRamWaveIndex; i<xt::Wave::g_firstRamWaveIndex+xt::Wave::g_ramWaveCount; ++i)
{
diff --git a/source/xtJucePlugin/xtWaveEditor.h b/source/xtJucePlugin/xtWaveEditor.h
@@ -8,6 +8,8 @@
#include "jucePluginLib/midipacket.h"
+#include "juceUiLib/button.h"
+
namespace xtJucePlugin
{
class GraphPhase;
@@ -82,7 +84,7 @@ namespace xtJucePlugin
juce::Button* m_btWavetablePreview = nullptr;
juce::Button* m_ledWavetablePreview = nullptr;
- juce::Button* m_btWaveSave = nullptr;
+ genericUI::Button<juce::DrawableButton>* m_btWaveSave = nullptr;
juce::Button* m_btWavetableSave = nullptr;
WaveEditorData m_data;