Skip to content

Commit b78c088

Browse files
committed
Refactor: Update plugin slot locking logic. Slot 1 in Music Track is now always unlocked for Auto-Key or Key Detection plugins. Other slots are locked when PluginList is locked.
1 parent cead34b commit b78c088

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

Source/GUI/Layout/TrackComponent.cpp

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,24 @@ class TrackComponent::PluginItemComponent : public juce::Component,
151151
powerButton.setButtonText(isBypassed ? "OFF" : "ON");
152152
}
153153
}
154+
155+
void setLocked(bool shouldBeLocked, bool isSpecialSlot)
156+
{
157+
if (isSpecialSlot && shouldBeLocked)
158+
{
159+
setEnabled(true);
160+
openButton.setEnabled(true);
161+
162+
powerButton.setEnabled(false);
163+
removeButton.setEnabled(false);
164+
moveUpButton.setEnabled(false);
165+
moveDownButton.setEnabled(false);
166+
}
167+
else
168+
{
169+
setEnabled(!shouldBeLocked);
170+
}
171+
}
154172
private:
155173
TrackComponent& owner;
156174
int row;
@@ -885,14 +903,24 @@ void TrackComponent::updateLockState()
885903
lockButton.setTooltip("System is Unlocked. Click to lock.");
886904
}
887905

888-
// Thay thế 'inputChannelSelector' bằng 'channelSelector'
889906
if (channelSelector)
890907
channelSelector->setEnabled(!isLocked);
891908

892909
volumeSlider.setEnabled(!isLocked);
893-
pluginListBox.setEnabled(!isLocked);
894910
addPluginSelector.setEnabled(!isLocked);
895911
addButton.setEnabled(!isLocked);
896912
fxSends->setEnabled(!isLocked);
897913
muteButton.setEnabled(true);
914+
915+
pluginListBox.setEnabled(true);
916+
917+
for (int i = 0; i < getNumRows(); ++i)
918+
{
919+
if (auto* item = dynamic_cast<PluginItemComponent*>(pluginListBox.getComponentForRowNumber(i)))
920+
{
921+
const bool isSpecialSlot = (channelType == ChannelType::Music && i == 0);
922+
923+
item->setLocked(isLocked, isSpecialSlot);
924+
}
925+
}
898926
}

0 commit comments

Comments
 (0)