Add mixer LCD channels for Instrument & Sample tracks (#6831)
* Add mixer channel LCD to SampleTrackView * Increase sizes to compensate for LCD box The DEFAULT_SETTINGS_WIDGET_WIDTH and DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT were both increased by +32 pixels. TRACK_OP_WIDTH and TRACK_OP_WIDTH_COMPACT were then changed relative to that increase. * Use Qt layout in SampleTrackView * Add mixer channel LCD to InstrumentTrackView * Move LCD box to the right of the track label * Revert changes to TRACK_OP_WIDTH and TRACK_OP_WIDTH_COMPACT
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#ifndef LMMS_GUI_INSTRUMENT_TRACK_VIEW_H
|
||||
#define LMMS_GUI_INSTRUMENT_TRACK_VIEW_H
|
||||
|
||||
#include "MixerLineLcdSpinBox.h"
|
||||
#include "TrackView.h"
|
||||
|
||||
#include "InstrumentTrack.h"
|
||||
@@ -72,6 +73,7 @@ public:
|
||||
|
||||
|
||||
protected:
|
||||
void modelChanged() override;
|
||||
void dragEnterEvent( QDragEnterEvent * _dee ) override;
|
||||
void dropEvent( QDropEvent * _de ) override;
|
||||
|
||||
@@ -97,6 +99,7 @@ private:
|
||||
|
||||
// widgets in track-settings-widget
|
||||
TrackLabelButton * m_tlb;
|
||||
MixerLineLcdSpinBox* m_mixerChannelNumber;
|
||||
Knob * m_volumeKnob;
|
||||
Knob * m_panningKnob;
|
||||
FadeButton * m_activityIndicator;
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#define LMMS_GUI_SAMPLE_TRACK_VIEW_H
|
||||
|
||||
|
||||
#include "MixerLineLcdSpinBox.h"
|
||||
#include "TrackView.h"
|
||||
|
||||
namespace lmms
|
||||
@@ -90,6 +91,7 @@ private slots:
|
||||
|
||||
private:
|
||||
SampleTrackWindow * m_window;
|
||||
MixerLineLcdSpinBox* m_mixerChannelNumber;
|
||||
Knob * m_volumeKnob;
|
||||
Knob * m_panningKnob;
|
||||
FadeButton * m_activityIndicator;
|
||||
|
||||
@@ -48,11 +48,11 @@ class FadeButton;
|
||||
class TrackContainerView;
|
||||
|
||||
|
||||
const int DEFAULT_SETTINGS_WIDGET_WIDTH = 224;
|
||||
const int DEFAULT_SETTINGS_WIDGET_WIDTH = 256;
|
||||
const int TRACK_OP_WIDTH = 78;
|
||||
// This shaves 150-ish pixels off track buttons,
|
||||
// ruled from config: ui.compacttrackbuttons
|
||||
const int DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT = 96;
|
||||
const int DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT = 128;
|
||||
const int TRACK_OP_WIDTH_COMPACT = 62;
|
||||
|
||||
|
||||
|
||||
@@ -63,7 +63,6 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV
|
||||
m_tlb = new TrackLabelButton( this, getTrackSettingsWidget() );
|
||||
m_tlb->setCheckable( true );
|
||||
m_tlb->setIcon( embed::getIconPixmap( "instrument_track" ) );
|
||||
m_tlb->move( 3, 1 );
|
||||
m_tlb->show();
|
||||
|
||||
connect( m_tlb, SIGNAL(toggled(bool)),
|
||||
@@ -75,24 +74,14 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV
|
||||
connect(ConfigManager::inst(), SIGNAL(valueChanged(QString,QString,QString)),
|
||||
this, SLOT(handleConfigChange(QString,QString,QString)));
|
||||
|
||||
// creation of widgets for track-settings-widget
|
||||
int widgetWidth;
|
||||
if( ConfigManager::inst()->value( "ui",
|
||||
"compacttrackbuttons" ).toInt() )
|
||||
{
|
||||
widgetWidth = DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT;
|
||||
}
|
||||
else
|
||||
{
|
||||
widgetWidth = DEFAULT_SETTINGS_WIDGET_WIDTH;
|
||||
}
|
||||
m_mixerChannelNumber = new MixerLineLcdSpinBox(2, getTrackSettingsWidget(), tr("Mixer channel"), this);
|
||||
m_mixerChannelNumber->show();
|
||||
|
||||
m_volumeKnob = new Knob( KnobType::Small17, getTrackSettingsWidget(),
|
||||
tr( "Volume" ) );
|
||||
m_volumeKnob->setVolumeKnob( true );
|
||||
m_volumeKnob->setModel( &_it->m_volumeModel );
|
||||
m_volumeKnob->setHintText( tr( "Volume:" ), "%" );
|
||||
m_volumeKnob->move( widgetWidth-2*24, 2 );
|
||||
m_volumeKnob->setLabel( tr( "VOL" ) );
|
||||
m_volumeKnob->show();
|
||||
|
||||
@@ -100,7 +89,6 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV
|
||||
tr( "Panning" ) );
|
||||
m_panningKnob->setModel( &_it->m_panningModel );
|
||||
m_panningKnob->setHintText(tr("Panning:"), "%");
|
||||
m_panningKnob->move( widgetWidth-24, 2 );
|
||||
m_panningKnob->setLabel( tr( "PAN" ) );
|
||||
m_panningKnob->show();
|
||||
|
||||
@@ -151,9 +139,18 @@ InstrumentTrackView::InstrumentTrackView( InstrumentTrack * _it, TrackContainerV
|
||||
QApplication::palette().color( QPalette::Active,
|
||||
QPalette::BrightText).darker(),
|
||||
getTrackSettingsWidget() );
|
||||
m_activityIndicator->setGeometry(
|
||||
widgetWidth-2*24-11, 2, 8, 28 );
|
||||
m_activityIndicator->setFixedSize(8, 28);
|
||||
m_activityIndicator->show();
|
||||
|
||||
auto layout = new QHBoxLayout(getTrackSettingsWidget());
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(0);
|
||||
layout->addWidget(m_tlb);
|
||||
layout->addWidget(m_mixerChannelNumber);
|
||||
layout->addWidget(m_activityIndicator);
|
||||
layout->addWidget(m_volumeKnob);
|
||||
layout->addWidget(m_panningKnob);
|
||||
|
||||
connect( m_activityIndicator, SIGNAL(pressed()),
|
||||
this, SLOT(activityIndicatorPressed()));
|
||||
connect( m_activityIndicator, SIGNAL(released()),
|
||||
@@ -268,6 +265,13 @@ void InstrumentTrackView::handleConfigChange(QString cls, QString attr, QString
|
||||
}
|
||||
}
|
||||
|
||||
void InstrumentTrackView::modelChanged()
|
||||
{
|
||||
TrackView::modelChanged();
|
||||
auto st = castModel<InstrumentTrack>();
|
||||
m_mixerChannelNumber->setModel(&st->m_mixerChannelModel);
|
||||
}
|
||||
|
||||
void InstrumentTrackView::dragEnterEvent( QDragEnterEvent * _dee )
|
||||
{
|
||||
InstrumentTrackWindow::dragEnterEventGeneric( _dee );
|
||||
|
||||
@@ -56,20 +56,17 @@ SampleTrackView::SampleTrackView( SampleTrack * _t, TrackContainerView* tcv ) :
|
||||
connect(m_tlb, SIGNAL(clicked(bool)),
|
||||
this, SLOT(showEffects()));
|
||||
m_tlb->setIcon(embed::getIconPixmap("sample_track"));
|
||||
m_tlb->move(3, 1);
|
||||
m_tlb->show();
|
||||
|
||||
m_mixerChannelNumber = new MixerLineLcdSpinBox(2, getTrackSettingsWidget(), tr("Mixer channel"), this);
|
||||
m_mixerChannelNumber->show();
|
||||
|
||||
m_volumeKnob = new Knob( KnobType::Small17, getTrackSettingsWidget(),
|
||||
tr( "Track volume" ) );
|
||||
m_volumeKnob->setVolumeKnob( true );
|
||||
m_volumeKnob->setModel( &_t->m_volumeModel );
|
||||
m_volumeKnob->setHintText( tr( "Channel volume:" ), "%" );
|
||||
|
||||
int settingsWidgetWidth = ConfigManager::inst()->
|
||||
value( "ui", "compacttrackbuttons" ).toInt()
|
||||
? DEFAULT_SETTINGS_WIDGET_WIDTH_COMPACT
|
||||
: DEFAULT_SETTINGS_WIDGET_WIDTH;
|
||||
m_volumeKnob->move( settingsWidgetWidth - 2 * 24, 2 );
|
||||
m_volumeKnob->setLabel( tr( "VOL" ) );
|
||||
m_volumeKnob->show();
|
||||
|
||||
@@ -77,7 +74,6 @@ SampleTrackView::SampleTrackView( SampleTrack * _t, TrackContainerView* tcv ) :
|
||||
tr( "Panning" ) );
|
||||
m_panningKnob->setModel( &_t->m_panningModel );
|
||||
m_panningKnob->setHintText( tr( "Panning:" ), "%" );
|
||||
m_panningKnob->move( settingsWidgetWidth - 24, 2 );
|
||||
m_panningKnob->setLabel( tr( "PAN" ) );
|
||||
m_panningKnob->show();
|
||||
|
||||
@@ -87,8 +83,18 @@ SampleTrackView::SampleTrackView( SampleTrack * _t, TrackContainerView* tcv ) :
|
||||
QApplication::palette().color(QPalette::Active, QPalette::BrightText).darker(),
|
||||
getTrackSettingsWidget()
|
||||
);
|
||||
m_activityIndicator->setGeometry(settingsWidgetWidth - 2 * 24 - 11, 2, 8, 28);
|
||||
m_activityIndicator->setFixedSize(8, 28);
|
||||
m_activityIndicator->show();
|
||||
|
||||
auto layout = new QHBoxLayout(getTrackSettingsWidget());
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(0);
|
||||
layout->addWidget(m_tlb);
|
||||
layout->addWidget(m_mixerChannelNumber);
|
||||
layout->addWidget(m_activityIndicator);
|
||||
layout->addWidget(m_volumeKnob);
|
||||
layout->addWidget(m_panningKnob);
|
||||
|
||||
connect(_t, SIGNAL(playingChanged()), this, SLOT(updateIndicator()));
|
||||
|
||||
setModel( _t );
|
||||
@@ -170,6 +176,7 @@ void SampleTrackView::modelChanged()
|
||||
{
|
||||
auto st = castModel<SampleTrack>();
|
||||
m_volumeKnob->setModel(&st->m_volumeModel);
|
||||
m_mixerChannelNumber->setModel(&st->m_mixerChannelModel);
|
||||
|
||||
TrackView::modelChanged();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user