/*************************************************************************** fxsetupimpl.cpp - description ------------------- begin : Mo Nov 24 2003 copyright : (C) 2003 by voglrobe email : voglrobe@saphir ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ // QT includes #include #include // KDE includes #include // App specific inlcudes #include "fxsetupimpl.h" // #include "freeverbsetupimpl.h" #include "fxpluginhandler.h" FX_SetupImpl::FX_SetupImpl(TQWidget *parent, const char *name, TDEConfig *config, FXPluginHandler *fxpluginhandler ) : FX_Setup(parent,name), m_config(config), m_fxpluginhandler(fxpluginhandler) { m_fxpluginhandler->getPlugins(pluginlist); Init(pluginlist); } FX_SetupImpl::~FX_SetupImpl() { } void FX_SetupImpl::slotAdd() { // move effect from Available-List to Active-List int index = listBox_Available->currentItem(); if ( index == -1 ) return; listBox_Active ->insertItem( listBox_Available->text(index), -1 ); listBox_Available->removeItem( index ); pushButton_removeAll->setEnabled(true); } void FX_SetupImpl::slotRemove() { // move effect from Active-List to Available-List int index = listBox_Active->currentItem(); if ( index == -1 ) return; listBox_Available->insertItem( listBox_Active->text(index), -1 ); listBox_Active ->removeItem( index ); if (listBox_Active->count() == 0) pushButton_removeAll->setEnabled(false); } void FX_SetupImpl::slotRemoveAll() { kdDebug() << "FX_SetupImpl::slotRemoveAll()" << endl; // move all from Active-List to Available-List for(uint i=0; icount(); i++){ listBox_Available->insertItem( listBox_Active->text((int)i) ); } listBox_Active->clear(); pushButton_removeAll->setEnabled(false); } void FX_SetupImpl::slotReload() { kdDebug() << "FX_SetupImpl::slotReload()" << endl; Init(pluginlist); } void FX_SetupImpl::slotConfigureEffect(TQListBoxItem *item) { m_fxpluginhandler->showEffectGUI(item->text()); } void FX_SetupImpl::Init(TQStringList c_avail) { m_config->setGroup("Effect Stack Configuration"); TQStringList conf_active = m_config->readListEntry("Activated"); TQStringList c_active; TQStringList::Iterator sit, it; listBox_Available->clear(); listBox_Active->clear(); c_active.clear(); pushButton_removeAll->setEnabled(false); for (sit=conf_active.begin(); sit!=conf_active.end(); ++sit){ it = c_avail.find(*sit); if ( it!=c_avail.end() ){ // active plugin as per config-file in pluginlist found c_active.append(*sit); // append to active list c_avail.remove(*sit); // remove active plugin from the list of avail plugins } } if ( !c_active.isEmpty() ){ pushButton_removeAll->setEnabled(true); } // Fill ListBoxes for(it=c_avail.begin(); it!=c_avail.end(); ++it){ listBox_Available->insertItem( (*it), -1 ); } for(it=c_active.begin(); it!=c_active.end(); ++it){ listBox_Active->insertItem( (*it), -1 ); } } void FX_SetupImpl::slotSaveWasClicked() { m_config->setGroup("Effect Stack Configuration"); // Read ListBox Available FX TQStringList slist; for(uint i=0; icount(); i++){ slist.append( listBox_Available->text( (int)i) ); } // Write StringList m_config->writeEntry("Available", slist); // Read ListBox Activated FX slist.clear(); TQString t; for(uint i=0; icount(); i++){ t = listBox_Active->text( (int)i ); slist.append( t ); } // Write StringList m_config->writeEntry("Activated", slist); m_config->sync(); slist.clear(); } #include "fxsetupimpl.moc"