/[svn]/qsampler/trunk/src/qsamplerDevice.cpp
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerDevice.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 436 by capela, Wed Mar 9 20:55:04 2005 UTC revision 447 by capela, Thu Mar 10 20:45:42 2005 UTC
# Line 21  Line 21 
21    
22  #include "qsamplerDevice.h"  #include "qsamplerDevice.h"
23    
24    #include <qspinbox.h>
25    #include <qlineedit.h>
26    
27  #include "qsamplerMainForm.h"  #include "qsamplerMainForm.h"
28  #include "qsamplerDeviceForm.h"  #include "qsamplerDeviceForm.h"
29    
# Line 420  void qsamplerDeviceParamTable::refresh ( Line 423  void qsamplerDeviceParamTable::refresh (
423          qsamplerDeviceParamMap::ConstIterator iter;          qsamplerDeviceParamMap::ConstIterator iter;
424          for (iter = params.begin(); iter != params.end(); ++iter) {          for (iter = params.begin(); iter != params.end(); ++iter) {
425                  const qsamplerDeviceParam& param = iter.data();                  const qsamplerDeviceParam& param = iter.data();
426                  bool fEnabled = (device.deviceID() < 0 || !param.fix);                  bool bEnabled = (device.deviceID() < 0 || !param.fix);
427                  QTable::setText(iRow, 0, iter.key());                  QTable::setText(iRow, 0, iter.key());
428                  QTable::setText(iRow, 1, param.description);                  QTable::setText(iRow, 1, param.description);
429                  if (param.type == LSCP_TYPE_BOOL) {                  if (param.type == LSCP_TYPE_BOOL) {
# Line 429  void qsamplerDeviceParamTable::refresh ( Line 432  void qsamplerDeviceParamTable::refresh (
432                          opts.append(tr("true"));                          opts.append(tr("true"));
433                          QComboTableItem *pComboItem = new QComboTableItem(this, opts);                          QComboTableItem *pComboItem = new QComboTableItem(this, opts);
434                      pComboItem->setCurrentItem(param.value.lower() == "true" ? 1 : 0);                      pComboItem->setCurrentItem(param.value.lower() == "true" ? 1 : 0);
435                      pComboItem->setEnabled(fEnabled);                      pComboItem->setEnabled(bEnabled);
436                          QTable::setItem(iRow, 2, pComboItem);                          QTable::setItem(iRow, 2, pComboItem);
437                  } else if (param.possibilities.count() > 0 && !param.multiplicity) {                  } else if (param.possibilities.count() > 0) {
438                          QComboTableItem *pComboItem = new QComboTableItem(this,                          QComboTableItem *pComboItem = new QComboTableItem(this,
439                                  param.possibilities);                                  param.possibilities);
440                      pComboItem->setCurrentItem(param.value);                      pComboItem->setCurrentItem(param.value);
441                      pComboItem->setEnabled(fEnabled);                      pComboItem->setEnabled(bEnabled);
442                        pComboItem->setEditable(bEnabled && param.multiplicity);
443                          QTable::setItem(iRow, 2, pComboItem);                          QTable::setItem(iRow, 2, pComboItem);
444                } else if (param.type == LSCP_TYPE_INT) {
445                    qsamplerDeviceParamTableSpinBox *pSpinItem =
446                                    new qsamplerDeviceParamTableSpinBox(this,
447                                        bEnabled ? QTableItem::OnTyping : QTableItem::Never,
448                                            param.value);
449                            if (!param.range_min.isEmpty())
450                                    pSpinItem->setMinValue(param.range_min.toInt());
451                            if (!param.range_max.isEmpty())
452                                    pSpinItem->setMaxValue(param.range_max.toInt());
453                            QTable::setItem(iRow, 2, pSpinItem);
454                  } else {                  } else {
455                          QTableItem* pTableItem = new QTableItem(this,              qsamplerDeviceParamTableEditBox *pEditItem =
456                                  fEnabled ? QTableItem::OnTyping : QTableItem::Never,                                  new qsamplerDeviceParamTableEditBox(this,
457                                  param.value);                                      bEnabled ? QTableItem::OnTyping : QTableItem::Never,
458                          QTable::setItem(iRow, 2, pTableItem);                                          param.value);
459                            QTable::setItem(iRow, 2, pEditItem);
460                  }                  }
461                  ++iRow;                  ++iRow;
462          }          }
# Line 455  void qsamplerDeviceParamTable::refresh ( Line 470  void qsamplerDeviceParamTable::refresh (
470  }  }
471    
472    
473    //-------------------------------------------------------------------------
474    // qsamplerDeviceParamTableSpinBox - Custom spin box for parameter table.
475    //
476    
477    // Constructor.
478    qsamplerDeviceParamTableSpinBox::qsamplerDeviceParamTableSpinBox (
479            QTable *pTable, EditType editType, const QString& sText )
480            : QTableItem(pTable, editType, sText)
481    {
482            m_iValue    = sText.toInt();
483        m_iMinValue = 0;
484        m_iMaxValue = 999999;
485    }
486    
487    // Public accessors.
488    void qsamplerDeviceParamTableSpinBox::setValue ( int iValue )
489    {
490            m_iValue = iValue;
491            QTableItem::setText(QString::number(m_iValue));
492    }
493    
494    void qsamplerDeviceParamTableSpinBox::setMinValue ( int iMinValue )
495    {
496            m_iMinValue = iMinValue;
497    }
498    
499    void qsamplerDeviceParamTableSpinBox::setMaxValue ( int iMaxValue )
500    {
501            m_iMaxValue = iMaxValue;
502    }
503    
504    // Virtual implemetations.
505    QWidget *qsamplerDeviceParamTableSpinBox::createEditor (void) const
506    {
507            QSpinBox *pSpinBox = new QSpinBox(QTableItem::table()->viewport());
508            QObject::connect(pSpinBox, SIGNAL(valueChanged(int)),
509                    QTableItem::table(), SLOT(doValueChanged()));
510            if (m_iValue >= m_iMinValue && m_iMaxValue >= m_iValue) {
511                    pSpinBox->setMinValue(m_iMinValue);
512                    pSpinBox->setMaxValue(m_iMaxValue);
513            }
514            pSpinBox->setValue(m_iValue);
515            return pSpinBox;
516    }
517    
518    void qsamplerDeviceParamTableSpinBox::setContentFromEditor ( QWidget *pWidget )
519    {
520            if (pWidget->inherits("QSpinBox"))
521                QTableItem::setText(QString::number(((QSpinBox *) pWidget)->value()));
522            else
523                QTableItem::setContentFromEditor(pWidget);
524    }
525    
526    
527    //-------------------------------------------------------------------------
528    // qsamplerDeviceParamTableEditBox - Custom edit box for parameter table.
529    //
530    
531    // Constructor.
532    qsamplerDeviceParamTableEditBox::qsamplerDeviceParamTableEditBox (
533            QTable *pTable, EditType editType, const QString& sText )
534            : QTableItem(pTable, editType, sText)
535    {
536    }
537    
538    // Virtual implemetations.
539    QWidget *qsamplerDeviceParamTableEditBox::createEditor (void) const
540    {
541            QLineEdit *pEditBox = new QLineEdit(QTableItem::table()->viewport());
542            QObject::connect(pEditBox, SIGNAL(returnPressed()),
543                    QTableItem::table(), SLOT(doValueChanged()));
544            pEditBox->setText(QTableItem::text());
545            return pEditBox;
546    }
547    
548    void qsamplerDeviceParamTableEditBox::setContentFromEditor ( QWidget *pWidget )
549    {
550            if (pWidget->inherits("QLineEdit"))
551                QTableItem::setText(((QLineEdit *) pWidget)->text());
552            else
553                QTableItem::setContentFromEditor(pWidget);
554    }
555    
556    
557  // end of qsamplerDevice.cpp  // end of qsamplerDevice.cpp

Legend:
Removed from v.436  
changed lines
  Added in v.447

  ViewVC Help
Powered by ViewVC