changeset 30528:97a3e7ba640d stable

uitable: Fix crash with empty value in uitable (bug #61713). * libgui/graphics/Table.cc (qStringValueFor): Display empty string for empty values in uitable.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Wed, 22 Dec 2021 14:06:17 +0100
parents 8d8b3f5bc858
children 82aa07a293a5 332e5cbe3fa6
files libgui/graphics/Table.cc
diffstat 1 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/graphics/Table.cc	Wed Dec 22 22:00:59 2021 +0100
+++ b/libgui/graphics/Table.cc	Wed Dec 22 14:06:17 2021 +0100
@@ -196,10 +196,15 @@
   {
     Qt::AlignmentFlag flag = Qt::AlignRight;
     QString text;
-    if (val.is_string ())
+    if (val.isempty ())
+      {
+        text = "";
+        flag = Qt::AlignLeft;
+      }
+    else if (val.is_string ())
       {
         text = octave::Utils::fromStdString (val.string_value ());
-        flag = Qt::AlignLeft ;
+        flag = Qt::AlignLeft;
       }
     else if (val.iscomplex ())
       {
@@ -242,7 +247,7 @@
           {
             text = QString::number (c.real (), 'g', 5) + " + "
                    + QString::number (c.imag (), 'g', 5) + "i";
-            flag = Qt::AlignLeft ;
+            flag = Qt::AlignLeft;
           }
       }
     else if (val.is_double_type () )
@@ -301,12 +306,12 @@
         if (format == "char" || format == "popup" || format == "")
           {
             text = Utils::fromStdString (b ? "true" : "false");
-            flag = Qt::AlignLeft ;
+            flag = Qt::AlignLeft;
           }
         else if (format == "+")
           {
             text = Utils::fromStdString (b ? "+" : "");
-            flag = Qt::AlignLeft ;
+            flag = Qt::AlignLeft;
           }
         else
           text = Utils::fromStdString (b ? "1" : "0");