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 );