qtable2.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2003 by Tomeu Borras Riera                              *
00003  *   tborras@conetxia.com                                                  *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
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         } // end if
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                 } // end if
00197         } // end if
00198     } // end if
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         } // end if
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         } // end switch
00307     } // end if
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         } // end if
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                 } // end if
00339                 break;
00340             case Qt::Key_Minus:
00341                 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00342                     emit pressedMinus(row, col);
00343                     return TRUE;
00344                 } // end if
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                 } // end if
00354                 break;
00355             case Qt::Key_Up:
00356                 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00357                     emit ctrlSubir(row, col);
00358                     return TRUE;
00359                 } // end if
00361             case Qt::Key_Down:
00362                 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00363                     emit ctrlBajar(row, col);
00364                     return TRUE;
00365                 } // end if
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                 } // end if
00373             case Qt::Key_Right:
00374                 if ((mod & Qt::ControlModifier) || (mod & Qt::AltModifier)) {
00375                     emit ctrlDerecha(row, col);
00376                     return TRUE;
00377                 } // end if
00378         } // end switch
00379     } // end if
00380 //    _depura("END QTableWidget2::eventFilter()", 0);
00381     return QTableWidget::eventFilter(obj, event);
00382 //      return TRUE;
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     } // end if
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 

Generated on Sat Dec 15 00:01:22 2007 for BulmaGes by  doxygen 1.5.1