Skip to content

Commit

Permalink
Add searching to VST Effect View
Browse files Browse the repository at this point in the history
  • Loading branch information
jiffygist committed Jul 7, 2024
1 parent 37eec04 commit 15b3b87
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 17 deletions.
2 changes: 1 addition & 1 deletion plugins/Vestige/Vestige.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -971,7 +971,7 @@ ManageVestigeInstrumentView::ManageVestigeInstrumentView( Instrument * _instrume

auto m_searchBar = new QLineEdit(this);
m_searchBar->setPlaceholderText(tr("Search"));
m_searchBar->setMaxLength(64);
m_searchBar->setMaxLength(35);
m_searchBar->setClearButtonEnabled(true);
m_searchBar->addAction(embed::getIconPixmap("zoom"), QLineEdit::LeadingPosition);
l->addWidget( m_searchBar, 0, 3, 1, 2, Qt::AlignLeft );
Expand Down
56 changes: 40 additions & 16 deletions plugins/VstEffect/VstEffectControls.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
#include <QGridLayout>
#include <QMenu>
#include <QPushButton>
#include <QLineEdit>
#include <QScrollArea>

#include "embed.h"
Expand Down Expand Up @@ -353,7 +354,7 @@ ManageVSTEffectView::ManageVSTEffectView( VstEffect * _eff, VstEffectControls *
m_displayAutomatedOnly = new QPushButton( tr( "Automated" ), widget );
connect( m_displayAutomatedOnly, SIGNAL( clicked() ), this,
SLOT( displayAutomatedOnly() ) );

m_isAuto = false;
l->addWidget( m_displayAutomatedOnly, 0, 1, 1, 2, Qt::AlignLeft );


Expand All @@ -363,6 +364,15 @@ ManageVSTEffectView::ManageVSTEffectView( VstEffect * _eff, VstEffectControls *

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

auto m_searchBar = new QLineEdit(widget);
m_searchBar->setPlaceholderText(tr("Search"));
m_searchBar->setMaxLength(35);
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 @@ -471,27 +481,41 @@ void ManageVSTEffectView::syncPlugin()
}


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

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

for( int i = 0; i< m_vi2->paramCount; i++ )
{
void ManageVSTEffectView::displayFilteredKnobs( void )
{
if (m_isAuto) {
m_displayAutomatedOnly->setText( "All" );
} else {
m_displayAutomatedOnly->setText( "Automated" );
}

if( !( m_vi2->knobFModel[ i ]->isAutomated() ||
m_vi2->knobFModel[ i ]->controllerConnection() ) )
const QMap<QString, QString> & dump = m_effect->m_plugin->parameterDump();
auto paramStr = std::array<char, 35>{};
QStringList s_dumpValues;
for( int i = 0; i < m_vi2->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_vi2->knobFModel[ i ]->isAutomated() || m_vi2->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
5 changes: 5 additions & 0 deletions plugins/VstEffect/VstEffectControls.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ class ManageVSTEffectView : public QObject
protected slots:
void syncPlugin();
void displayAutomatedOnly();
void onFilterChanged( const QString & filter );
void displayFilteredKnobs();
void setParameter( lmms::Model * action );
void syncParameterText();
void closeWindow();
Expand All @@ -138,8 +140,11 @@ protected slots:

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 15b3b87

Please sign in to comment.