StandaloneFilterWindow::~StandaloneFilterWindow()
{
    PropertySet* const globalSettings = getGlobalSettings();

    globalSettings->setValue (T("windowX"), getX());
    globalSettings->setValue (T("windowY"), getY());

    deleteAndZero (optionsButton);

    if (globalSettings != 0 && deviceManager != 0)
    {
        XmlElement* const xml = deviceManager->createStateXml();
        globalSettings->setValue (T("audioSetup"), xml);
        delete xml;
    }

    deleteAndZero (deviceManager);

    if (globalSettings != 0 && filter != 0)
    {
        JUCE_NAMESPACE::MemoryBlock data;
        filter->getStateInformation (data);

        globalSettings->setValue (T("filterState"), data.toBase64Encoding());
    }

    deleteFilter();
}
Exemple #2
0
int FilterManager::replaceFilter(std::string filterID, Filter* filter, std::string targetID) {
    int event = 0;

    if (targetID == "FRONT") {
        targetID = filterChain->getFront()->nodeID;
    }
    else if (targetID == "REAR") {
        targetID = filterChain->getRear()->nodeID;
    }

    event = insertFilter(filterID, filter, targetID);
    if (event != 0) {
        return event;
    }

    event = deleteFilter(targetID);
    return event;
}
filterManager::filterManager(QWidget* parent, const char* name)
    : QDialog(parent)
{
  if(name)
    setObjectName(name);

  setupUi(this);

  _filterSet->addColumn(tr("Filter Set Name"), -1, Qt::AlignLeft, true, "filter_name" );
  _filterSet->addColumn(tr("Shared"), _ynColumn, Qt::AlignLeft, true, "shared");

  connect(_filterSet, SIGNAL(valid(bool)), this, SLOT( handleButtons(bool) ));
  connect(_share, SIGNAL(clicked()), this, SLOT( shareFilter() ));
  connect(_unshare, SIGNAL(clicked()), this, SLOT( unshareFilter() ));
  connect(_delete, SIGNAL(clicked()), this, SLOT( deleteFilter() ) );
  connect(this, SIGNAL(filterDeleted()), parent, SLOT(setSavedFilters()) );

  shortcuts::setStandardKeys(this);
}
void StandaloneFilterWindow::resetFilter()
{
    deleteFilter();

    filter = createPluginFilter();

    if (filter != 0)
    {
        if (deviceManager != 0)
            deviceManager->setFilter (filter);

        setContentComponent (filter->createEditorIfNeeded(), true, true);
    }

    PropertySet* const globalSettings = getGlobalSettings();

    if (globalSettings != 0)
        globalSettings->removeValue (T("filterState"));
}
//----------------------------------------------------------------------
// MessageFilterDialog
MessageFilterDialog::MessageFilterDialog(MessageFilters* filters, 
					 const QString& caption,
					 QWidget* parent,
					 const char* name)
  : QDialog(parent, name, false, WType_Dialog),
    m_filters(filters), 
    m_currentFilterNum(0xFF),
    m_currentFilter(0)
{
  // set the caption
  setCaption(caption);

  // don't support resizing the dialog
  setSizeGripEnabled(false);

  // connect to the MessageFilter signals
  connect(m_filters, SIGNAL(removed(uint32_t, uint8_t)),
	  this, SLOT(removedFilter(uint32_t, uint8_t)));
  connect(m_filters, SIGNAL(added(uint32_t, uint8_t, 
				  const MessageFilter&)),
	  this, SLOT(addedFilter(uint32_t, uint8_t, const MessageFilter&)));

  // setup the dialog
  QVBoxLayout* outerLayout = new QVBoxLayout(this, 5, -1, "outerlayout");
  QHBoxLayout* columnLayout = new QHBoxLayout(outerLayout, -1, "columns");
  QVBoxLayout* column1Layout = new QVBoxLayout(5, "column1");
  columnLayout->addLayout(column1Layout, 1);

  // layout 1st column
  QLabel* label = new QLabel("&Existing Filters", this);
  column1Layout->addWidget(label, 1, AlignCenter);

  m_existingFilters = new QListBox(this, "existingfilters");
  column1Layout->addWidget(m_existingFilters, 10);
  label->setBuddy(m_existingFilters);
  m_existingFilters->setSelectionMode(QListBox::Single);
  connect(m_existingFilters, SIGNAL(selectionChanged(QListBoxItem*)),
	  this, SLOT(existingFilterSelectionChanged(QListBoxItem*))); 

  m_new = new QPushButton("Ne&w", this);
  column1Layout->addWidget(m_new, 1, AlignCenter);
  connect(m_new, SIGNAL(clicked()),
	  this, SLOT(newFilter()));

  m_filterGroup = new QGroupBox(1, Vertical, 
				"New &Filter", this, "filtergroup");
  columnLayout->addWidget(m_filterGroup, 5);

  QFrame* dummy = new QFrame(m_filterGroup, "dummy");

  QGridLayout* filterLayout = new QGridLayout(dummy, 8, 3, 5, -1, "filterlayout");
  
  label = new QLabel("&Name", dummy);
  filterLayout->addWidget(label, 0, 0, AlignLeft | AlignVCenter);
  m_name = new QLineEdit(dummy, "name");
  filterLayout->addMultiCellWidget(m_name, 0, 0, 1, 2);
  label->setBuddy(m_name);
  connect(m_name, SIGNAL(textChanged(const QString&)),
	  this, SLOT(anyTextChanged(const QString&)));

  label = new QLabel("&Pattern", dummy);
  filterLayout->addWidget(label, 1, 0, AlignLeft | AlignVCenter);
  m_pattern = new QLineEdit(dummy, "pattern");
  filterLayout->addMultiCellWidget(m_pattern, 1, 1, 1, 2);
  label->setBuddy(m_pattern);
  connect(m_pattern, SIGNAL(textChanged(const QString&)),
	  this, SLOT(anyTextChanged(const QString&)));

  label = new QLabel("&Message Types", dummy);
  filterLayout->addWidget(label, 2, 0, AlignLeft | AlignVCenter);
  m_messageTypes = new QListBox(dummy, "messagetypes");
  filterLayout->addMultiCellWidget(m_messageTypes, 2, 6, 1, 2);
  label->setBuddy(m_messageTypes);
  m_messageTypes->setSelectionMode(QListBox::Multi);
  connect(m_messageTypes, SIGNAL(selectionChanged()),
	  this, SLOT(messageTypeSelectionChanged()));

  m_delete = new QPushButton("&Delete", dummy);
  filterLayout->addWidget(m_delete, 7, 0, AlignCenter);
  m_delete->setEnabled(false);
  connect(m_delete, SIGNAL(clicked()),
	  this, SLOT(deleteFilter()));

  m_update = new QPushButton("&Update", dummy);
  filterLayout->addWidget(m_update, 7, 1, AlignCenter);
  m_update->setEnabled(false);
  connect(m_update, SIGNAL(clicked()),
	  this, SLOT(updateFilter()));

  m_add = new QPushButton("&Add", dummy);
  filterLayout->addWidget(m_add, 7, 2, AlignCenter);
  m_add->setEnabled(false);
  connect(m_add, SIGNAL(clicked()),
	  this, SLOT(addFilter()));

  QPushButton* close = new QPushButton("&Close", this);
  outerLayout->addWidget(close, 1, AlignCenter);
  connect(close, SIGNAL(clicked()),
	  this, SLOT(accept()));

  // fill in message types
  QString typeName;
  for (int i = MT_Guild; i <= MT_Max; i++)
  {
    typeName = MessageEntry::messageTypeString((MessageType)i);
    if (!typeName.isEmpty())
      (void)new MessageFilterListBoxText(m_messageTypes, typeName, i);
  }

  // fill in existing messages
  const MessageFilter* filter;
  for (int i = 0; i < maxMessageFilters; i++)
  {
    filter = m_filters->filter(i);
    if (filter)
      (void)new MessageFilterListBoxText(m_existingFilters, filter->name(), i);
  }
}
CtrlrStandaloneWindow::~CtrlrStandaloneWindow()
{
    ctrlrProcessor->getManager().removeActionListener (this);
    saveStateNow();
    deleteFilter();
}