Пример #1
0
NSettingsDownload::NSettingsDownload(QWidget *parent/*=NULL*/)
  : NSettingsWidget(parent),
    fnfmtCombo(NULL),
    fnfmtEdit(NULL),
    regexpCombo(NULL),
    regexpEdit(NULL),
    exampleEdit(NULL),
    savedirEdit(NULL)
{

// Save as

  QGroupBox *fngBox = new QGroupBox(tr("Save downloaded media as"));

  QGridLayout *g = new QGridLayout;

  addGridRow(g, tr("&Filename format:"),
             &fnfmtCombo, &fnfmtEdit, SLOT(fnfmtChanged(int)));

  addGridRow(g, tr("&Regular expression:"),
             &regexpCombo, &regexpEdit, SLOT(regexpChanged(int)));

  addGridRow(g, tr("Example:"), NULL, &exampleEdit, NULL);

  fngBox->setLayout(g);

  fnfmtCombo->addItem(tr("Default"), "%t.%s");
  fnfmtCombo->addItem(tr("With media ID"), "%t_%i.%s");
  fnfmtCombo->addItem(tr("With ID, domain"), "%t_%i_%d.%s");

  regexpCombo->addItem(tr("Default"), "/(\\w|\\s)/g");
  regexpCombo->addItem(tr("Word characters"), "/(\\w)/g");
  regexpCombo->addItem(tr("Digit characters"), "/(\\d)/g");

  exampleEdit->setReadOnly(true);

// Save in

  savedirEdit = new NTripwireEdit;
  savedirEdit->setReadOnly(true);

  connect(savedirEdit, SIGNAL(entered()), this, SLOT(browseDir()));

  QHBoxLayout *dirBox = new QHBoxLayout;
  dirBox->addWidget(savedirEdit);
  dirBox->addStretch(0);

  QGroupBox *dirgBox = new QGroupBox(tr("&Save downloaded media in"));
  dirgBox->setLayout(dirBox);

// Layout

  QVBoxLayout *box = new QVBoxLayout;
  box->addWidget(fngBox);
  box->addWidget(dirgBox);
  box->addStretch(0);
  setLayout(box);
}
void CatheterGrid::resetDefaultGrid(int nrows) {
    cmdCount = 0;

    DeleteRows(0, GetNumberRows());
    for (int i = 0; i < nrows; i++)
        addGridRow(true);

    formatDefaultGrid(nrows);

    setRowReadOnly(0, false);
}
void CatheterGrid::SetCommands(const std::vector<CatheterChannelCmdSet>& cmds)
{
    resetDefaultGrid(NROWS_DEFAULT);
	int rowIndex(0);
    for (int i = 0; i < cmds.size(); i++) {
        
		for( int j(0); j < cmds[i].commandList.size(); j++)
		{
			cmdCount++;
			if (rowIndex >= GetNumberRows()) addGridRow(false);
			setGridRowChannel(rowIndex, cmds[i].commandList[j].channel);
			setGridRowcurrentMilliAmp(rowIndex, cmds[i].commandList[j].currentMilliAmp);
			
			if ( j + 1 <  cmds[i].commandList.size())
			{
				rowIndex++;
			}
		}
		setGridRowDelayMS(rowIndex,cmds[i].delayTime);
		rowIndex++;
    }
	// add the blank row
    addGridRow(false);
}
void CatheterGrid::OnGridCellChanging(wxGridEvent& e)
{
    // called when edited cell loses focus
    // last value: GetCellValue(row, col)
    // pending value: e.GetString()

    int row = e.GetRow();
    int col = e.GetCol();

    switch (col)
    {
    case CHANNEL_COL:
        // setGridRowChannel(row, wxAtoi(e.GetString()));
        setGridRowChannel(row, e.GetString());
        break;
    case CURRENT_COL:
        setGridRowcurrentMilliAmp(row, wxAtof(e.GetString()));
        break;
    case DIRECTION_COL:
        setGridRowDirection(row, (wxStrcmp(DIRPOSSTR, e.GetString()) ? DIR_NEG : DIR_POS));
        break;
    case DELAY_COL:
        setGridRowDelayMS(row, wxAtoi(e.GetString()));
        break;
    }

    if (row == cmdCount && isGridRowComplete(row)) {
        cmdCount++;
        if (cmdCount < GetNumberRows())
            setRowReadOnly(cmdCount, false);
        else
            addGridRow(false);
        // wxMessageBox(wxString::Format("completed command %d", cmdCount));
    }

    e.Skip();
}