Skip to content

Commit

Permalink
Add searching to vestige instrument view
Browse files Browse the repository at this point in the history
  • Loading branch information
jiffygist committed Jul 6, 2024
1 parent bdd94ec commit e444c04
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 13 deletions.
51 changes: 39 additions & 12 deletions plugins/Vestige/Vestige.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include <QGridLayout>
#include <QPainter>
#include <QPushButton>
#include <QLineEdit>
#include <QScrollArea>
#include <QMdiArea>
#include <QMenu>
Expand Down Expand Up @@ -955,6 +956,7 @@ ManageVestigeInstrumentView::ManageVestigeInstrumentView( Instrument * _instrume
l->addWidget( m_syncButton, 0, 0, 1, 2, Qt::AlignLeft );

m_displayAutomatedOnly = new QPushButton( tr( "Automated" ), this );
m_isAuto = false;
connect( m_displayAutomatedOnly, SIGNAL( clicked() ), this,
SLOT( displayAutomatedOnly() ) );

Expand All @@ -967,6 +969,15 @@ ManageVestigeInstrumentView::ManageVestigeInstrumentView( Instrument * _instrume

l->addWidget( m_closeButton, 0, 2, 1, 7, Qt::AlignLeft );

auto m_searchBar = new QLineEdit(this);
m_searchBar->setPlaceholderText(tr("Search"));
m_searchBar->setMaxLength(64);
m_searchBar->setClearButtonEnabled(true);
m_searchBar->addAction(embed::getIconPixmap("zoom"), QLineEdit::LeadingPosition);
l->addWidget( m_searchBar, 0, 3, 1, 2, Qt::AlignLeft );

connect( m_searchBar, SIGNAL( textEdited( const QString& ) ),
this, SLOT( onFilterChanged( const QString& ) ) );

for( int i = 0; i < 10; i++ )
{
Expand Down Expand Up @@ -1076,21 +1087,32 @@ void ManageVestigeInstrumentView::syncPlugin( void )

void ManageVestigeInstrumentView::displayAutomatedOnly( void )
{
bool isAuto = QString::compare( m_displayAutomatedOnly->text(), tr( "Automated" ) ) == 0;
m_isAuto = !m_isAuto;
displayFilteredKnobs();
}

for( int i = 0; i< m_vi->paramCount; i++ )
{

if( !( m_vi->knobFModel[ i ]->isAutomated() || m_vi->knobFModel[ i ]->controllerConnection() ) )
void ManageVestigeInstrumentView::displayFilteredKnobs( void )
{
if (m_isAuto) {
m_displayAutomatedOnly->setText( "All" );
} else {
m_displayAutomatedOnly->setText( "Automated" );
}

const QMap<QString, QString> & dump = m_vi->m_plugin->parameterDump();
auto paramStr = std::array<char, 35>{};
QStringList s_dumpValues;
for( int i = 0; i < m_vi->paramCount; i++ )
{
sprintf(paramStr.data(), "param%d", i);
s_dumpValues = dump[paramStr.data()].split(":");
if( !s_dumpValues.at(1).contains(m_filter, Qt::CaseInsensitive)
|| (m_isAuto && !( m_vi->knobFModel[ i ]->isAutomated() || m_vi->knobFModel[ i ]->controllerConnection())))
{
if( vstKnobs[ i ]->isVisible() == true && isAuto )
{
vstKnobs[ i ]->hide();
m_displayAutomatedOnly->setText( "All" );
} else {
vstKnobs[ i ]->show();
m_displayAutomatedOnly->setText( "Automated" );
}
vstKnobs[ i ]->hide();
} else {
vstKnobs[ i ]->show();
}
}
}
Expand Down Expand Up @@ -1230,6 +1252,11 @@ void ManageVestigeInstrumentView::paintEvent( QPaintEvent * )
+ tr( " - VST plugin control" ) );
}

void ManageVestigeInstrumentView::onFilterChanged( const QString & filter )
{
m_filter = filter;
displayFilteredKnobs();
}

} // namespace gui

Expand Down
7 changes: 6 additions & 1 deletion plugins/Vestige/Vestige.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ protected slots:
QScrollArea * m_scrollArea;
FloatModel ** knobFModel;
QObject * p_subWindow;
int paramCount;
int paramCount;


friend class gui::VestigeInstrumentView;
Expand All @@ -114,9 +114,11 @@ class ManageVestigeInstrumentView : public InstrumentViewFixedSize
protected slots:
void syncPlugin();
void displayAutomatedOnly();
void displayFilteredKnobs();
void setParameter( lmms::Model * action );
void syncParameterText();
void closeWindow();
void onFilterChanged( const QString & filter );


protected:
Expand All @@ -132,8 +134,11 @@ protected slots:
QGridLayout * l;
QPushButton * m_syncButton;
QPushButton * m_displayAutomatedOnly;
QPushButton * m_searchBar;
QPushButton * m_closeButton;
CustomTextKnob ** vstKnobs;
bool m_isAuto;
QString m_filter;

} ;

Expand Down

0 comments on commit e444c04

Please sign in to comment.