00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <QKeyEvent>
00022 #include <QEvent>
00023 #include <QLineEdit>
00024 #include <QTextEdit>
00025
00026 #include "qtable2.h"
00027 #include "configuracion.h"
00028 #include "funcaux.h"
00029
00030
00036 QTableItemTextDelegate::QTableItemTextDelegate(QObject *parent = 0) : QItemDelegate(parent) {
00037 _depura("QTableItemTextDelegate::QTableItemTextDelegate", 0);
00038 _depura("END QTableItemTextDelegate::QTableItemTextDelegate", 0);
00039 }
00040
00041
00046 QTableItemTextDelegate::~QTableItemTextDelegate() {
00047 _depura("QTableItemTextDelegate::~QTableItemTextDelegate", 0);
00048 _depura("END QTableItemTextDelegate::~QTableItemTextDelegate", 0);
00049 }
00050
00051
00059 QWidget *QTableItemTextDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &) const {
00060 _depura("QTableItemTextDelegate::createEditor", 0);
00061 QTextEdit *textedit = new QTextEdit(parent);
00062 _depura("END QTableItemTextDelegate::createEditor", 0);
00063 return textedit;
00064 }
00065
00066
00075 void QTableItemTextDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const {
00076 _depura("QTableItemTextDelegate::setModelData", 0);
00077 QTextEdit *textedit = qobject_cast<QTextEdit *>(editor);
00078 model->setData(index, textedit->toPlainText());
00079 _depura("END QTableItemTextDelegate::setModelData", 0);
00080
00081 }
00082
00083
00091 void QTableItemTextDelegate::setEditorData(QWidget* editor, const QModelIndex& index) const {
00092 _depura("QTableItemTextDelegate::setEditorData", 0);
00093 QString data = index.data(Qt::DisplayRole).toString();
00094 QTextEdit *textedit = qobject_cast<QTextEdit *>(editor);
00095 textedit->setPlainText(data);
00096 textedit->setGeometry(textedit->x(), textedit->y(), textedit->width()+150, textedit->height()+50);
00097 _depura("END QTableItemTextDelegate::setEditorData", 0);
00098 }
00099
00100
00102
00103
00110 QTableWidget2::QTableWidget2(QWidget *parent) : QTableWidget(parent) {
00111 _depura("QTableWidget2::QTableWidget2", 0);
00112 installEventFilter(this);
00113 connect(this, SIGNAL(itemChanged(QTableWidgetItem *)), this, SLOT(sitemChanged(QTableWidgetItem *)));
00114 _depura("END QTableWidget2::QTableWidget2", 0);
00115 }
00116
00117
00122 void QTableWidget2::editItem(QTableWidgetItem *) {
00123 _depura("QTableWidget2::editItem", 0);
00124 _depura("END QTableWidget2::editItem", 0);
00125 }
00126
00127
00129
00131 void QTableWidget2::sitemChanged(QTableWidgetItem *) {
00132 _depura("QTableWidget2::sitemChanged", 0);
00133 _depura("END QTableWidget2::sitemChanged", 0);
00134 }
00135
00136
00138
00142 QTableWidgetItem2::QTableWidgetItem2(int type, int mode) : QTableWidgetItem(type) {
00143 _depura("QTableWidgetItem2::QTableWidgetItem2", 0);
00144 modo = mode;
00145 _depura("END QTableWidgetItem2::QTableWidgetItem2", 0);
00146 }
00147
00149
00154 QTableWidgetItem2::QTableWidgetItem2(const QString &text, int type, int mode) : QTableWidgetItem(text, type) {
00155 _depura("QTableWidgetItem2::QTableWidgetItem2", 0);
00156 modo = mode;
00157 _depura("END QTableWidgetItem2::QTableWidgetItem2", 0);
00158 }
00159
00160
00162
00164 QTableWidgetItem2::~QTableWidgetItem2() {
00165 _depura("~QTableWidgetItem2", 1);
00166 }
00167
00168
00170
00174 bool QTableWidgetItem2::operator< (const QTableWidgetItem & other) const {
00175 _depura("QTableWidgetItem2::operator <", 0, text() + " < " + other.text());
00176 bool oknumero;
00177 bool oknumero1;
00178 QString cad = text();
00179 QString cad1 = other.text();
00180
00181 if (cad != "" && cad1 != "") {
00183 double ncad = cad.toDouble(&oknumero);
00184 double ncad1 = cad1.toDouble(&oknumero1);
00185 if (oknumero && oknumero1) {
00186 return ncad < ncad1;
00187 }
00189 if (cad[2] == '/' && cad[5] == '/') {
00190 QDate fcad = normalizafecha(cad);
00191 QString acad = fcad.toString(Qt::ISODate);
00192 QDate fcad1 = normalizafecha(cad1);
00193 QString acad1 = fcad1.toString(Qt::ISODate);
00194 if (acad[4] == '-' && acad1[4]== '-' && acad[7] == '-' && acad1[7] == '-') {
00195 return fcad < fcad1;
00196 }
00197 }
00198 }
00199 _depura("END QTableWidgetItem2::operator <", 0);
00200 return cad < cad1;
00201 }
00202
00203
00205
00208 int QTableWidget2::tipoorden() {
00209 _depura("QTableWidget2::tipoorden", 0);
00210 _depura("END QTableWidget2::tipoorden", 0);
00211 return m_tipoorden;
00212 }
00213
00214
00216
00219 int QTableWidget2::colorden() {
00220 _depura("QTableWidget2::colorden", 0);
00221 _depura("END QTableWidget2::colorden", 0);
00222 return m_colorden;
00223 }
00224
00225
00227
00230 void QTableWidget2::settipoorden(int t) {
00231 _depura("QTableWidget2::settipoorden", 0);
00232 m_tipoorden = t;
00233 _depura("END QTableWidget2::settipoorden", 0);
00234 }
00235
00236
00238
00241 void QTableWidget2::setcolorden(int t) {
00242 _depura("QTableWidget2::setcolorden", 0);
00243 m_colorden = t;
00244 _depura("END QTableWidget2::setcolorden", 0);
00245 }
00246
00248
00253 void QTableWidget2::columnMoved(int column, int oldIndex, int newIndex) {
00254 _depura("QTableWidget2::columnMoved", 0);
00255 QTableWidget::columnMoved(column, oldIndex, newIndex);
00256 _depura("END QTableWidget2::columnMoved", 0);
00257 }
00258
00259
00261
00263 QTableWidget2::~QTableWidget2() {
00264 _depura("END ~QTableWidget2", 0);
00265 }
00266
00268
00271 void QTableWidget2::setSortingEnabled(bool sorting) {
00272 _depura("QTableWidget2::setSortingEnabled", 0);
00273 QTableWidget::setSortingEnabled(sorting);
00274 _depura("END QTableWidget2::setSortingEnabled", 0);
00275 }
00276
00277
00286 bool QTableWidget2::eventFilter(QObject *obj, QEvent *event) {
00287 if (event->type() == QEvent::KeyPress) {
00288 _depura("QTableWidget2::eventFilter() :" + QString::number(event->type()), 1);
00289 QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
00290 int key = keyEvent->key();
00291 int row = currentRow();
00295 if (row < 0) {
00296 return TRUE;
00297 }
00298 Qt::KeyboardModifiers mod = keyEvent->modifiers();
00299 switch (key) {
00300 case Qt::Key_Return:
00301 case Qt::Key_Enter:
00302 case Qt::Key_Tab:
00303 m_teclasalida = key;
00304 return TRUE;
00305 break;
00306 }
00307 }
00308
00310 if (event->type() == QEvent::KeyRelease) {
00311 _depura("QTableWidget2::eventFilter() :" + QString::number(event->type()), 1);
00312
00313 QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
00314 int key = keyEvent->key();
00315 int col = currentColumn();
00316 int row = currentRow();
00317 m_teclasalida = 0;
00321 if (row < 0) {
00322 return TRUE;
00323 }
00324 Qt::KeyboardModifiers mod = keyEvent->modifiers();
00325 switch (key) {
00326 case Qt::Key_Return:
00327 case Qt::Key_Enter:
00328 case Qt::Key_Tab:
00329 m_teclasalida = key;
00330 emit cellRePosition(row, col);
00331 return TRUE;
00332 break;
00333
00334 case Qt::Key_Slash:
00335 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00336 emit pressedSlash(row, col);
00337 return TRUE;
00338 }
00339 break;
00340 case Qt::Key_Minus:
00341 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00342 emit pressedMinus(row, col);
00343 return TRUE;
00344 }
00345 break;
00346 case Qt::Key_Plus:
00347 emit pressedPlus(row, col);
00348 return TRUE;
00349 case Qt::Key_Asterisk:
00350 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00351 emit pressedAsterisk(row, col);
00352 return TRUE;
00353 }
00354 break;
00355 case Qt::Key_Up:
00356 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00357 emit ctrlSubir(row, col);
00358 return TRUE;
00359 }
00361 case Qt::Key_Down:
00362 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00363 emit ctrlBajar(row, col);
00364 return TRUE;
00365 }
00367 return TRUE;
00368 case Qt::Key_Left:
00369 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00370 emit ctrlIzquierda(row, col);
00371 return TRUE;
00372 }
00373 case Qt::Key_Right:
00374 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00375 emit ctrlDerecha(row, col);
00376 return TRUE;
00377 }
00378 }
00379 }
00380
00381 return QTableWidget::eventFilter(obj, event);
00382
00383 }
00384
00385
00391 void QTableWidget2::ordenar() {
00392 _depura("QTableWidget2::ordenar ", 0, QString::number(m_colorden));
00394 if (m_colorden < columnCount()) {
00395 sortByColumn(m_colorden);
00396 }
00397 _depura("END QTableWidget2::ordenar", 0, QString::number(m_colorden));
00398 }
00399
00400
00409 void QTableWidget2::setText(int x, int y, const QString & val) {
00410 _depura("QTableWidget::setText", 0);
00411 QTableWidgetItem2 *newitem = new QTableWidgetItem2(val);
00412 setItem(x, y, newitem);
00413 _depura("END QTableWidget::setText", 0);
00414 }
00415
00416
00418
00422 void QTableWidget2::sortByColumn(int column, Qt::SortOrder order) {
00423 _depura("QTableWidget2::sortByColumn", 0);
00424 QTableWidget::sortByColumn(column, order);
00425 _depura("END QTableWidget2::sortByColumn", 0);
00426 }
00427
00428
00430
00434 void QTableWidget2::sortItems(int column, Qt::SortOrder order) {
00435 _depura("QTableWidget2::sortItems", 0);
00436 QTableWidget::sortItems(column, order);
00437 _depura("END QTableWidget2::sortItems", 0);
00438 }
00439