Exemplo n.º 1
0
  void TOPPASToolVertex::editParam()
  {
    QWidget* parent_widget = qobject_cast<QWidget*>(scene()->parent());
    String default_dir = "";

    // use a copy for editing
    Param edit_param(param_);

    QVector<String> hidden_entries;
    // remove entries that are handled by edges already, user should not see them
    QVector<IOInfo> input_infos;
    getInputParameters(input_infos);
    for (ConstEdgeIterator it = inEdgesBegin(); it != inEdgesEnd(); ++it)
    {
      int index = (*it)->getTargetInParam();
      if (index < 0)
      {
        continue;
      }

      const String& name = input_infos[index].param_name;
      if (edit_param.exists(name))
      {
        hidden_entries.push_back(name);
      }
    }

    QVector<IOInfo> output_infos;
    getOutputParameters(output_infos);
    for (ConstEdgeIterator it = outEdgesBegin(); it != outEdgesEnd(); ++it)
    {
      int index = (*it)->getSourceOutParam();
      if (index < 0)
      {
        continue;
      }

      const String& name = output_infos[index].param_name;
      if (edit_param.exists(name))
      {
        hidden_entries.push_back(name);
      }
    }

    // remove entries explained by edges
    foreach(const String &name, hidden_entries)
    {
      edit_param.remove(name);
    }
Exemplo n.º 2
0
 void TOPPASMergerVertex::markUnreachable()
 {
   //only mark as unreachable if all inputs are unreachable. otherwise the dead inputs will just be ignored.
   bool some_input_reachable_ = false;
   for (ConstEdgeIterator it = inEdgesBegin(); it != inEdgesEnd(); ++it)
   {
     TOPPASVertex * tv = (*it)->getSourceVertex();
     if (tv->isReachable())
     {
       some_input_reachable_ = true;
       break;
     }
   }
   if (!some_input_reachable_)
   {
     TOPPASVertex::markUnreachable();
   }
 }