Make sure primary key is 1st column. Combine checkbox with primary field.

This commit is contained in:
Jim Evins
2016-05-11 23:56:06 -04:00
parent 8b56520fed
commit 81a73c8e1e
3 changed files with 27 additions and 14 deletions
+1 -1
View File
@@ -71,7 +71,7 @@ QStringList MergeText::keyList() const
/// ///
QString MergeText::primaryKey() const QString MergeText::primaryKey() const
{ {
keyFromIndex(0); return keyFromIndex(0);
} }
+25 -13
View File
@@ -104,22 +104,27 @@ void MergeView::onMergeChanged()
/// ///
void MergeView::loadHeaders( Merge* merge ) void MergeView::loadHeaders( Merge* merge )
{ {
mPrimaryKey = merge->primaryKey();
mKeys = merge->keyList(); mKeys = merge->keyList();
recordsTable->setColumnCount( mKeys.size() + 1 ); recordsTable->setColumnCount( mKeys.size() );
QTableWidgetItem* item = new QTableWidgetItem(); QTableWidgetItem* item = new QTableWidgetItem( mPrimaryKey );
item->setFlags( Qt::ItemIsEnabled ); item->setFlags( Qt::ItemIsEnabled );
recordsTable->setHorizontalHeaderItem( 0, item ); recordsTable->setHorizontalHeaderItem( 0, item );
int iCol = 1; int iCol = 1;
foreach ( QString key, mKeys ) foreach ( QString key, mKeys )
{ {
QTableWidgetItem* item = new QTableWidgetItem( key ); if ( key != mPrimaryKey )
item->setFlags( Qt::ItemIsEnabled ); {
recordsTable->setHorizontalHeaderItem( iCol, item ); QTableWidgetItem* item = new QTableWidgetItem( key );
item->setFlags( Qt::ItemIsEnabled );
recordsTable->setHorizontalHeaderItem( iCol, item );
iCol++;
}
iCol++;
} }
} }
@@ -136,6 +141,10 @@ void MergeView::loadTable( Merge* merge )
foreach ( MergeRecord* record, records ) foreach ( MergeRecord* record, records )
{ {
QTableWidgetItem* item = new QTableWidgetItem(); QTableWidgetItem* item = new QTableWidgetItem();
if ( record->contains( mPrimaryKey ) )
{
item->setText( (*record)[mPrimaryKey] );
}
item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable ); item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable );
item->setCheckState( record->isSelected() ? Qt::Checked : Qt::Unchecked ); item->setCheckState( record->isSelected() ? Qt::Checked : Qt::Unchecked );
recordsTable->setItem( iRow, 0, item ); recordsTable->setItem( iRow, 0, item );
@@ -144,15 +153,18 @@ void MergeView::loadTable( Merge* merge )
int iCol = 1; int iCol = 1;
foreach ( QString key, mKeys ) foreach ( QString key, mKeys )
{ {
if ( record->contains( key ) ) if ( key != mPrimaryKey )
{ {
QTableWidgetItem* item = new QTableWidgetItem( (*record)[key] ); if ( record->contains( key ) )
item->setFlags( Qt::ItemIsEnabled ); {
recordsTable->setItem( iRow, iCol, item ); QTableWidgetItem* item = new QTableWidgetItem( (*record)[key] );
recordsTable->resizeColumnToContents( iCol ); item->setFlags( Qt::ItemIsEnabled );
} recordsTable->setItem( iRow, iCol, item );
recordsTable->resizeColumnToContents( iCol );
}
iCol++; iCol++;
}
} }
iRow++; iRow++;
+1
View File
@@ -77,6 +77,7 @@ private:
UndoRedoModel* mUndoRedoModel; UndoRedoModel* mUndoRedoModel;
QStringList mKeys; QStringList mKeys;
QString mPrimaryKey;
}; };