From: <mrj...@us...> - 2008-09-02 02:55:09
|
Revision: 2969 http://tora.svn.sourceforge.net/tora/?rev=2969&view=rev Author: mrjohnson0 Date: 2008-09-02 02:55:18 +0000 (Tue, 02 Sep 2008) Log Message: ----------- use signal for navigating to new row, changes model addRow to return row number of record added in case it changes. fixes dragging data off the grid to add new Modified Paths: -------------- trunk/tora/src/toresultmodel.cpp trunk/tora/src/toresultmodel.h trunk/tora/src/toresulttableviewedit.cpp trunk/tora/src/toresulttableviewedit.h Modified: trunk/tora/src/toresultmodel.cpp =================================================================== --- trunk/tora/src/toresultmodel.cpp 2008-09-01 23:46:36 UTC (rev 2968) +++ trunk/tora/src/toresultmodel.cpp 2008-09-02 02:55:18 UTC (rev 2969) @@ -229,18 +229,18 @@ if (!Editable) return -1; - CurrentRow++; - beginInsertRows(QModelIndex(), CurrentRow, CurrentRow); + beginInsertRows(QModelIndex(), CurrentRow + 1, CurrentRow + 1); + int newRow = CurrentRow++; Row row; if (ind.isValid()) { row = Rows[ind.row()]; - row[0] = CurrentRow; + row[0] = newRow; } else { - row.append(toQValue(CurrentRow)); + row.append(toQValue(newRow)); // null out the rest of the row int cols = Headers.size(); @@ -251,7 +251,7 @@ Rows.append(row); endInsertRows(); emit rowAdded(row); - return CurrentRow; + return newRow; } @@ -363,7 +363,7 @@ return true; if (!Editable) return false; - if (row == 1) + if (column == 0) return false; // can't change row number if(row < 0 || column < 0) @@ -375,7 +375,7 @@ } if(row < 0) { - row = addRow() - 1; + row = addRow(); if(row < 0) return false; } @@ -440,7 +440,7 @@ } if (!stream.atEnd() && row >= rowCount()) - row = addRow() - 1; + row = addRow(); if (column >= columnCount()) return true; // drop data past end of columns Modified: trunk/tora/src/toresultmodel.h =================================================================== --- trunk/tora/src/toresultmodel.h 2008-09-01 23:46:36 UTC (rev 2968) +++ trunk/tora/src/toresultmodel.h 2008-09-02 02:55:18 UTC (rev 2969) @@ -267,7 +267,7 @@ * a new row. * * @param ind if valid, the row to duplicate - * @return the CurrentRow (length) or -1 + * @return added row */ int addRow(QModelIndex ind = QModelIndex()); Modified: trunk/tora/src/toresulttableviewedit.cpp =================================================================== --- trunk/tora/src/toresulttableviewedit.cpp 2008-09-01 23:46:36 UTC (rev 2968) +++ trunk/tora/src/toresulttableviewedit.cpp 2008-09-02 02:55:18 UTC (rev 2969) @@ -109,6 +109,11 @@ SLOT(recordAdd(const toResultModel::Row &))); connect(Model, + SIGNAL(rowsInserted(const QModelIndex &, int, int)), + this, + SLOT(handleNewRows(const QModelIndex &, int, int))); + + connect(Model, SIGNAL(modelReset()), this, SLOT(revertChanges())); @@ -512,31 +517,30 @@ } -void toResultTableViewEdit::addRecord(void) +void toResultTableViewEdit::handleNewRows(const QModelIndex &parent, + int start, + int end) { int col = selectionModel()->currentIndex().column(); - int row = Model->addRow() - 1; // selection starts at 0 - if (row >= 0) - { - QModelIndex left = Model->createIndex(row, col); - selectionModel()->select(QItemSelection(left, left), - QItemSelectionModel::ClearAndSelect); - setCurrentIndex(left); - } + if(col < 1) + col = 1; + QModelIndex index = Model->index(start - 1, col); + + selectionModel()->select(QItemSelection(index, index), + QItemSelectionModel::ClearAndSelect); + setCurrentIndex(index); } +void toResultTableViewEdit::addRecord(void) +{ + Model->addRow(); +} + + void toResultTableViewEdit::duplicateRecord(void) { - int col = selectionModel()->currentIndex().column(); - int row = Model->addRow(selectionModel()->currentIndex()) - 1; - if (row >= 0) - { - QModelIndex left = Model->createIndex(row, col); - selectionModel()->select(QItemSelection(left, left), - QItemSelectionModel::ClearAndSelect); - setCurrentIndex(left); - } + Model->addRow(selectionModel()->currentIndex()); } Modified: trunk/tora/src/toresulttableviewedit.h =================================================================== --- trunk/tora/src/toresulttableviewedit.h 2008-09-01 23:46:36 UTC (rev 2968) +++ trunk/tora/src/toresulttableviewedit.h 2008-09-02 02:55:18 UTC (rev 2969) @@ -209,6 +209,12 @@ */ void revertChanges(void); + + /** + * Handle signal from model when rows are added + * + */ + void handleNewRows(const QModelIndex &parent, int start, int end); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |