Exemple #1
0
void ConsoleChannel::contextMenuEvent(QContextMenuEvent* e)
{
  QString s;
  QString t;
  Capability* c = NULL;

  Device* device = _app->doc()->device(m_deviceID);
  assert(device);
  
  LogicalChannel* ch = device->deviceClass()->channels()->at(m_channel);
  
  QPopupMenu* menu = new QPopupMenu();
  menu->insertItem(ch->name(), KMenuTitle);
  menu->setItemEnabled(KMenuTitle, false);
  menu->insertSeparator();

  QPtrListIterator<Capability> it(*ch->capabilities());

  QPopupMenu* valueMenu = NULL;

  while (it.current())
    {
      c = it.current();

      // Set the value range and name as menu item's name
      s.sprintf("%.3d - %.3d:", c->lo(), c->hi());
      s += c->name();

      // Create a submenu for ranges that contain more than one value
      if (c->hi() - c->lo() > 0)
	{
	  valueMenu = new QPopupMenu(menu);
	  connect(valueMenu, SIGNAL(activated(int)),
		  this, SLOT(slotContextMenuActivated(int)));

	  for (int i = c->lo(); i <= c->hi(); i++)
	    {
	      t.sprintf("%.3d", i);
	      valueMenu->insertItem(t, i);
	    }
	  menu->insertItem(s, valueMenu);
	}
      else
	{
Exemple #2
0
void EditSceneValue::slotPresetComboActivated(const QString &text)
{
  if (m_updateValue == false)
    {
      return;
    }

  m_updateValue = false;

  Capability* c = m_channel->searchCapability(text);
  ASSERT(c != NULL);

  int value = (int) floor((c->lo() + c->hi()) / 2);
  m_valueSpin->setValue(value);
  m_value = value;

  m_updateValue = true;
}