QSubForm2BfDelegate Class Reference

Clase SubForm2BfDelegate. More...

#include <subform2bf.h>

Inheritance diagram for QSubForm2BfDelegate:

QItemDelegate PEmpresaBase QSubForm3BfDelegate

Public Member Functions

 QSubForm2BfDelegate (QObject *)
virtual ~QSubForm2BfDelegate ()
virtual void setEditorData (QWidget *, const QModelIndex &index) const
virtual void setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
virtual QWidgetcreateEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
virtual bool eventFilter (QObject *obj, QEvent *event)
virtual int cerrarEditor (QWidget *editor)

Protected Attributes

SubForm2Bfm_subform

Detailed Description

Clase SubForm2BfDelegate.

Se encarga del control de los 'Widgets' de edición del sistema.

Definition at line 40 of file subform2bf.h.


Constructor & Destructor Documentation

QSubForm2BfDelegate::QSubForm2BfDelegate ( QObject parent = 0  ) 

Parameters:
parent 

Definition at line 442 of file subform2bf.cpp.

References _depura(), and m_subform.

00442                                                             : QItemDelegate(parent), PEmpresaBase() {
00443     _depura("QSubForm2BfDelegate::QSubForm2BfDelegate", 0);
00444     m_subform = (SubForm2Bf *) parent;
00445     installEventFilter(this);
00446     _depura("END QSubForm2BfDelegate::QSubForm2BfDelegate", 0);
00447 }

QSubForm2BfDelegate::~QSubForm2BfDelegate (  )  [virtual]

Definition at line 453 of file subform2bf.cpp.

References _depura().

00453                                           {
00454     _depura("QSubForm2BfDelegate::~QSubForm2BfDelegate", 0);
00455     _depura("END QSubForm2BfDelegate::~QSubForm2BfDelegate", 0);
00456 }


Member Function Documentation

void QSubForm2BfDelegate::setEditorData ( QWidget editor,
const QModelIndex &  index 
) const [virtual]

Parameters:
editor 
index 

Reimplemented in QSubForm3BfDelegate.

Definition at line 580 of file subform2bf.cpp.

References _depura(), SubForm3::cabecera(), m_subform, SHeader::nomcampo(), BusquedaAlmacenDelegate::set(), BusquedaTrabajadorDelegate::set(), BusquedaTipoIVADelegate::set(), QDoubleSpinBox2::setValue(), and SubForm3::tableName().

Referenced by QSubForm3BfDelegate::setEditorData().

00580                                                                                        {
00581     _depura("QSubForm2BfDelegate::setEditorData", 0);
00582     _depura("QSubForm2BfDelegate::setEditorData", 0, "CurrentColumn: " + QString::number(index.column()));
00583     _depura("QSubForm2BfDelegate::setEditorData", 0, "CurrentRow: " + QString::number(index.row()));
00584     SHeader *linea;
00585     linea = m_subform->cabecera()->at(index.column());
00586     if (linea->nomcampo() == "desc" + m_subform->tableName()) {
00587         QString data = index.model()->data(index, Qt::DisplayRole).toString();
00588         QTextEditDelegate *textedit = qobject_cast<QTextEditDelegate*>(editor);
00589         textedit->setText(data);
00590 
00591     } else if (linea->nomcampo() == "cant" + m_subform->tableName()
00592                 || linea->nomcampo() == "pvp" + m_subform->tableName()
00593                 || linea->nomcampo() == "descuento" + m_subform->tableName()
00594                 || linea->nomcampo() == "reqeq" + m_subform->tableName()
00595                 || linea->nomcampo() == "iva" + m_subform->tableName()) {
00596 
00597         QString value = index.model()->data(index, Qt::DisplayRole).toString();
00598         QDoubleSpinBox2 *spinBox = static_cast<QDoubleSpinBox2*>(editor);
00599         spinBox->setValue(value.toDouble());
00600         spinBox->selectAll();
00601 
00602     } else if (linea->nomcampo() == "codigocompletoarticulo") {
00603         QString value = index.model()->data(index, Qt::DisplayRole).toString();
00604         BusquedaArticuloDelegate *comboBox = static_cast<BusquedaArticuloDelegate*>(editor);
00605         comboBox->addItem(value);
00606     } else if (linea->nomcampo() == "desctipo_iva") {
00607         QString value = index.model()->data(index, Qt::DisplayRole).toString();
00608         BusquedaTipoIVADelegate *comboBox = static_cast<BusquedaTipoIVADelegate*>(editor);
00609         comboBox->set(value);
00610     } else if (linea->nomcampo() == "nomtrabajador") {
00611         QString value = index.model()->data(index, Qt::DisplayRole).toString();
00612         BusquedaTrabajadorDelegate *comboBox = static_cast<BusquedaTrabajadorDelegate*>(editor);
00613         comboBox->set(value);
00614     } else if (linea->nomcampo() == "nomalmacen") {
00615         QString value = index.model()->data(index, Qt::DisplayRole).toString();
00616         BusquedaAlmacenDelegate *comboBox = static_cast<BusquedaAlmacenDelegate*>(editor);
00617         comboBox->set(value);
00618     } else {
00619         QItemDelegate::setEditorData(editor, index);
00620     } // end if
00621     _depura("END QSubForm2BfDelegate::setEditorData", 0);
00622 }

void QSubForm2BfDelegate::setModelData ( QWidget editor,
QAbstractItemModel *  model,
const QModelIndex &  index 
) const [virtual]

Parameters:
editor 
model 
index 
Returns:

Si la fila o columna pasadas son inválidas salimos.

Reimplemented in QSubForm3BfDelegate.

Definition at line 524 of file subform2bf.cpp.

References _depura(), SubForm3::cabecera(), m_subform, SHeader::nomcampo(), and SubForm3::tableName().

Referenced by QSubForm3BfDelegate::setModelData().

00524                                                                                                                  {
00525     _depura("QSubForm2BfDelegate::setModelData", 0);
00526     _depura("QSubForm2BfDelegate::setModelData", 0, "CurrentColumn: " + QString::number(index.column()));
00527     _depura("QSubForm2BfDelegate::setModelData", 0, "CurrentRow: " + QString::number(index.row()));
00528 
00530     if (index.column() < 0 || index.row() < 0)
00531         return;
00532 
00533     SHeader *linea;
00534     linea = m_subform->cabecera()->at(index.column());
00535     if (linea->nomcampo() == "desc" + m_subform->tableName()) {
00536         QTextEditDelegate *textedit = qobject_cast<QTextEditDelegate *>(editor);
00537         model->setData(index, textedit->toPlainText());
00538         return;
00539 
00540     } else if (linea->nomcampo() == "cant" + m_subform->tableName()
00541                 || linea->nomcampo() == "pvp" + m_subform->tableName()
00542                 || linea->nomcampo() == "descuento" + m_subform->tableName()
00543                 || linea->nomcampo() == "reqeq" + m_subform->tableName()
00544                 || linea->nomcampo() == "iva" + m_subform->tableName()) {
00545 
00546         QDoubleSpinBox2 *spinBox = static_cast<QDoubleSpinBox2*>(editor);
00547         spinBox->interpretText();
00548         QString value = spinBox->text();
00549         model->setData(index, value);
00550 
00551     } else if (linea->nomcampo() == "codigocompletoarticulo") {
00552         BusquedaArticuloDelegate *comboBox = static_cast<BusquedaArticuloDelegate*>(editor);
00553         QString value = comboBox->currentText();
00554         value = value.left(value.indexOf(".-"));
00555         model->setData(index, value);
00556     } else if (linea->nomcampo() == "desctipo_iva") {
00557         BusquedaTipoIVADelegate *comboBox = static_cast<BusquedaTipoIVADelegate*>(editor);
00558         QString value = comboBox->currentText();
00559         model->setData(index, value);
00560     } else if (linea->nomcampo() == "nomtrabajador") {
00561         BusquedaTrabajadorDelegate *comboBox = static_cast<BusquedaTrabajadorDelegate*>(editor);
00562         QString value = comboBox->currentText();
00563         model->setData(index, value);
00564     } else if (linea->nomcampo() == "nomalmacen") {
00565         BusquedaAlmacenDelegate *comboBox = static_cast<BusquedaAlmacenDelegate*>(editor);
00566         QString value = comboBox->currentText();
00567         model->setData(index, value);
00568     } else {
00569         QItemDelegate::setModelData(editor, model, index);
00570     } // end if
00571     _depura("END QSubForm2BfDelegate::setModelData", 0);
00572 }

QWidget * QSubForm2BfDelegate::createEditor ( QWidget parent,
const QStyleOptionViewItem &  option,
const QModelIndex &  index 
) const [virtual]

Parameters:
parent 
option 
index 

es un numero y se alinea a la derecha.

Reimplemented in QSubForm3BfDelegate.

Definition at line 465 of file subform2bf.cpp.

References _depura(), SubForm3::cabecera(), PEmpresaBase::empresaBase(), m_subform, SHeader::nomcampo(), and SubForm3::tableName().

Referenced by QSubForm3BfDelegate::createEditor().

00465                                                                                                                               {
00466     _depura("QSubForm2BfDelegate::createEditor", 0);
00467     SHeader *linea;
00468     linea = m_subform->cabecera()->at(index.column());
00469     _depura("QSubForm2BfDelegate::createEditor", 0, "CurrentColumn: " + QString::number(index.column()));
00470     _depura("QSubForm2BfDelegate::createEditor", 0, "CurrentRow" + QString::number(index.row()));
00471 
00472     if (linea->nomcampo() == "desc" + m_subform->tableName()) {
00473         QTextEditDelegate *editor = new QTextEditDelegate(parent);
00474         editor->setObjectName("QTextEditDelegate");
00475         return editor;
00476 
00477     } else if (linea->nomcampo() == "cant" + m_subform->tableName()
00478                 || linea->nomcampo() == "pvp" + m_subform->tableName()
00479                 || linea->nomcampo() == "descuento" + m_subform->tableName()
00480                 || linea->nomcampo() == "iva" + m_subform->tableName()
00481                 || linea->nomcampo() == "reqeq" + m_subform->tableName()) {
00482 
00483         QDoubleSpinBox2 *editor = new QDoubleSpinBox2(parent);
00484         editor->setMinimum(-1000000);
00485         editor->setMaximum(1000000);
00486         return editor;
00487 
00488     } else if (linea->nomcampo() == "codigocompletoarticulo") {
00489         BusquedaArticuloDelegate *editor = new BusquedaArticuloDelegate(parent);
00490         editor->setEmpresaBase((Company *)m_subform->empresaBase());
00491         return editor;
00492     } else if (linea->nomcampo() == "desctipo_iva") {
00493         BusquedaTipoIVADelegate *editor = new BusquedaTipoIVADelegate(parent);
00494         editor->setEmpresaBase((Company *)m_subform->empresaBase());
00495         return editor;
00496     } else if (linea->nomcampo() == "nomtrabajador") {
00497         BusquedaTrabajadorDelegate *editor = new BusquedaTrabajadorDelegate(parent);
00498         editor->setEmpresaBase((Company *)m_subform->empresaBase());
00499         return editor;
00500     } else if (linea->nomcampo() == "nomalmacen") {
00501         BusquedaAlmacenDelegate *editor = new BusquedaAlmacenDelegate(parent);
00502         editor->setEmpresaBase((Company *)m_subform->empresaBase());
00503         return editor;
00504     } else  {
00505 //        QWidget *it = QItemDelegate::createEditor(parent, option, index);
00506 //        if (linea->tipo() == DBint) {
00508 //        } else {
00509 
00510 //        } // end if
00511         return QItemDelegate::createEditor(parent, option, index);
00512     } // end if
00513     _depura("END QSubForm2BfDelegate::createEditor", 0);
00514 }

bool QSubForm2BfDelegate::eventFilter ( QObject obj,
QEvent *  event 
) [virtual]

Parameters:
obj 
event 
Returns:

Si es un release de tecla se hace la funcionalidad especificada.

Anulamos el caso de una pulsacion de tabulador o de enter

En caso de pulsacion de un retorno de carro o similar procesamos por nuestra cuenta.

Definition at line 631 of file subform2bf.cpp.

References _depura(), m_subform, Ui_SubForm3Base::mui_list, and TRUE.

00631                                                                  {
00633     if (event->type() == QEvent::KeyPress) {
00634         _depura("QSubForm2BfDelegate::eventFilter", 0, obj->objectName() + " --> " + QString::number(event->type()));
00635         QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
00636         int key = keyEvent->key();
00637         _depura("QSubForm2BfDelegate::key = : ", 0, QString::number(key));
00638         Qt::KeyboardModifiers mod = keyEvent->modifiers();
00640         switch (key) {
00641         case Qt::Key_Return:
00642         case Qt::Key_Enter:
00643             if (obj->objectName() == "QTextEditDelegate") {
00644                 obj->event(event);
00645                 return TRUE;
00646             } // end if
00647         case Qt::Key_Tab:
00648             return TRUE;
00649         } // end switch
00650         return QItemDelegate::eventFilter(obj, event);
00651     } // end if
00652 
00653     if (event->type() == QEvent::KeyRelease) {
00654         _depura("QSubForm2BfDelegate::eventFilter", 0, obj->objectName() + " --> " + QString::number(event->type()));
00655         QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
00656         int key = keyEvent->key();
00657         _depura("QSubForm2BfDelegate::key = : ", 0, QString::number(key));
00658         Qt::KeyboardModifiers mod = keyEvent->modifiers();
00660         switch (key) {
00661         case Qt::Key_Return:
00662         case Qt::Key_Enter:
00663             if (obj->objectName() == "QTextEditDelegate") {
00664                 obj->event(event);
00665                 return TRUE;
00666             } // end if
00667         case Qt::Key_Tab:
00668             QApplication::sendEvent(m_subform->mui_list, event);
00669             return TRUE;
00670         } // end switch
00671         return QItemDelegate::eventFilter(obj, event);
00672     } // end if
00673 
00674     return QItemDelegate::eventFilter(obj, event);
00675 }

int QSubForm2BfDelegate::cerrarEditor ( QWidget editor  )  [virtual]

Parameters:
editor 
Returns:

Definition at line 683 of file subform2bf.cpp.

References _depura().

Referenced by SubForm2Bf::cerrarEditor().

00683                                                      {
00684     _depura("QSubForm2BfDelegate::cerrarEditor", 0);
00685     emit closeEditor(editor, QAbstractItemDelegate::NoHint);
00686     _depura("END QSubForm2BfDelegate::cerrarEditor", 0);
00687     return 0;
00688 }


Field Documentation

SubForm2Bf* QSubForm2BfDelegate::m_subform [protected]

Definition at line 42 of file subform2bf.h.

Referenced by createEditor(), QSubForm3BfDelegate::createEditor(), eventFilter(), QSubForm2BfDelegate(), setEditorData(), QSubForm3BfDelegate::setEditorData(), setModelData(), and QSubForm3BfDelegate::setModelData().


The documentation for this class was generated from the following files:
Generated on Sat Dec 15 00:02:11 2007 for BulmaGes by  doxygen 1.5.1