From 81a73c8e1eae119a4864da823d0664985ce47951 Mon Sep 17 00:00:00 2001 From: Jim Evins Date: Wed, 11 May 2016 23:56:06 -0400 Subject: [PATCH] Make sure primary key is 1st column. Combine checkbox with primary field. --- glabels/MergeText.cpp | 2 +- glabels/MergeView.cpp | 38 +++++++++++++++++++++++++------------- glabels/MergeView.h | 1 + 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/glabels/MergeText.cpp b/glabels/MergeText.cpp index e389af3..5fab99b 100644 --- a/glabels/MergeText.cpp +++ b/glabels/MergeText.cpp @@ -71,7 +71,7 @@ QStringList MergeText::keyList() const /// QString MergeText::primaryKey() const { - keyFromIndex(0); + return keyFromIndex(0); } diff --git a/glabels/MergeView.cpp b/glabels/MergeView.cpp index b408dce..d1da282 100644 --- a/glabels/MergeView.cpp +++ b/glabels/MergeView.cpp @@ -104,22 +104,27 @@ void MergeView::onMergeChanged() /// void MergeView::loadHeaders( Merge* merge ) { + mPrimaryKey = merge->primaryKey(); 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 ); recordsTable->setHorizontalHeaderItem( 0, item ); int iCol = 1; foreach ( QString key, mKeys ) { - QTableWidgetItem* item = new QTableWidgetItem( key ); - item->setFlags( Qt::ItemIsEnabled ); - recordsTable->setHorizontalHeaderItem( iCol, item ); + if ( key != mPrimaryKey ) + { + 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 ) { QTableWidgetItem* item = new QTableWidgetItem(); + if ( record->contains( mPrimaryKey ) ) + { + item->setText( (*record)[mPrimaryKey] ); + } item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable ); item->setCheckState( record->isSelected() ? Qt::Checked : Qt::Unchecked ); recordsTable->setItem( iRow, 0, item ); @@ -144,15 +153,18 @@ void MergeView::loadTable( Merge* merge ) int iCol = 1; foreach ( QString key, mKeys ) { - if ( record->contains( key ) ) + if ( key != mPrimaryKey ) { - QTableWidgetItem* item = new QTableWidgetItem( (*record)[key] ); - item->setFlags( Qt::ItemIsEnabled ); - recordsTable->setItem( iRow, iCol, item ); - recordsTable->resizeColumnToContents( iCol ); - } + if ( record->contains( key ) ) + { + QTableWidgetItem* item = new QTableWidgetItem( (*record)[key] ); + item->setFlags( Qt::ItemIsEnabled ); + recordsTable->setItem( iRow, iCol, item ); + recordsTable->resizeColumnToContents( iCol ); + } - iCol++; + iCol++; + } } iRow++; diff --git a/glabels/MergeView.h b/glabels/MergeView.h index 43b99a9..b29b4cf 100644 --- a/glabels/MergeView.h +++ b/glabels/MergeView.h @@ -77,6 +77,7 @@ private: UndoRedoModel* mUndoRedoModel; QStringList mKeys; + QString mPrimaryKey; };