From 88c5c94ea087e02eda63b2a28651987bb9574a8d Mon Sep 17 00:00:00 2001 From: Peter Kessen Date: Thu, 31 Dec 2020 12:47:55 +0100 Subject: [PATCH 1/3] Display newlines in merge view as printable character --- glabels/MergeView.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/glabels/MergeView.cpp b/glabels/MergeView.cpp index c9323246..8aef73a9 100644 --- a/glabels/MergeView.cpp +++ b/glabels/MergeView.cpp @@ -31,6 +31,7 @@ namespace glabels { + const QChar NEWLINE_CHAR = QChar(0x23CE); /// /// Constructor @@ -283,7 +284,9 @@ namespace glabels auto* item = new QTableWidgetItem(); if ( record->contains( mPrimaryKey ) ) { - item->setText( (*record)[mPrimaryKey] ); + QString text = (*record)[mPrimaryKey]; + text.replace('\n', NEWLINE_CHAR); + item->setText( text ); } item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable ); item->setCheckState( record->isSelected() ? Qt::Checked : Qt::Unchecked ); @@ -298,7 +301,9 @@ namespace glabels { if ( record->contains( key ) ) { - auto* item = new QTableWidgetItem( (*record)[key] ); + QString text = (*record)[key]; + text.replace('\n', NEWLINE_CHAR); + auto* item = new QTableWidgetItem( text ); item->setFlags( Qt::ItemIsEnabled ); recordsTable->setItem( iRow, iCol, item ); recordsTable->resizeColumnToContents( iCol ); From f79416905dee7be260bec6afbae5611190f7de3d Mon Sep 17 00:00:00 2001 From: Peter Kessen Date: Thu, 31 Dec 2020 13:05:10 +0100 Subject: [PATCH 2/3] Introduced static function to do conversion of text for display --- glabels/MergeView.cpp | 17 +++++++++++++++-- glabels/MergeView.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/glabels/MergeView.cpp b/glabels/MergeView.cpp index 8aef73a9..26be48d8 100644 --- a/glabels/MergeView.cpp +++ b/glabels/MergeView.cpp @@ -301,8 +301,7 @@ namespace glabels { if ( record->contains( key ) ) { - QString text = (*record)[key]; - text.replace('\n', NEWLINE_CHAR); + auto text = printableTextForView( (*record)[key] ); auto* item = new QTableWidgetItem( text ); item->setFlags( Qt::ItemIsEnabled ); recordsTable->setItem( iRow, iCol, item ); @@ -324,4 +323,18 @@ namespace glabels mBlock = false; } + + /// + /// modify text to be printable e.g. replace newlines + /// + QString MergeView::printableTextForView( QString text ) + { + // Replace windows style newlines + text.replace("\r\n", NEWLINE_CHAR); + + // Replace unix style newlines + text.replace("\n", NEWLINE_CHAR); + + return text; + } } // namespace glabels diff --git a/glabels/MergeView.h b/glabels/MergeView.h index e0ddead8..73012380 100644 --- a/glabels/MergeView.h +++ b/glabels/MergeView.h @@ -79,6 +79,7 @@ namespace glabels private: void loadHeaders( merge::Merge* merge ); void loadTable( merge::Merge* merge ); + static QString printableTextForView( QString text ); ///////////////////////////////// From 14918f7f59f07bb4eb9d54989aa475de8a59c258 Mon Sep 17 00:00:00 2001 From: Peter Kessen Date: Thu, 31 Dec 2020 13:06:40 +0100 Subject: [PATCH 3/3] Use new function for column 1 as well --- glabels/MergeView.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/glabels/MergeView.cpp b/glabels/MergeView.cpp index 26be48d8..b5762b4d 100644 --- a/glabels/MergeView.cpp +++ b/glabels/MergeView.cpp @@ -284,8 +284,7 @@ namespace glabels auto* item = new QTableWidgetItem(); if ( record->contains( mPrimaryKey ) ) { - QString text = (*record)[mPrimaryKey]; - text.replace('\n', NEWLINE_CHAR); + auto text = printableTextForView( (*record)[mPrimaryKey] ); item->setText( text ); } item->setFlags( Qt::ItemIsEnabled | Qt::ItemIsUserCheckable );