changeset 29049:461bd8b9ce91 stable

use Qt::SplitBehavior enum and values if available * acinclude.m4 (OCTAVE_CHECK_QT_SPLITBEHAVIOR_ENUM): New macro. (OCTAVE_CHECK_QT_VERSION): Use it. * files-dock-widget.cc (files_dock_widget::display_directory): Use Qt::SkipEmptyParts if available. * documentation.cc (documentation::global_search): Likewise. * octave-qscintilla.cc (octave_qscintilla::contextmenu_run): Likewise. * QTerminal.cc (QTerminal::run_selection): Likewise.
author John W. Eaton <jwe@octave.org>
date Wed, 11 Nov 2020 23:41:06 -0500
parents 440ace36950e
children ce849f006568
files libgui/qterminal/libqterminal/QTerminal.cc libgui/src/documentation.cc libgui/src/files-dock-widget.cc libgui/src/m-editor/octave-qscintilla.cc m4/acinclude.m4
diffstat 5 files changed, 48 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/qterminal/libqterminal/QTerminal.cc	Wed Nov 11 23:18:47 2020 -0500
+++ b/libgui/qterminal/libqterminal/QTerminal.cc	Wed Nov 11 23:41:06 2020 -0500
@@ -174,7 +174,11 @@
 QTerminal::run_selection ()
 {
   QStringList commands = selectedText ().split (QRegExp ("[\r\n]"),
+#if defined (HAVE_QT_SPLITBEHAVIOR_ENUM)
+                                                Qt::SkipEmptyParts);
+#else
                                                 QString::SkipEmptyParts);
+#endif
   for (int i = 0; i < commands.size (); i++)
     emit execute_command_in_terminal_signal (commands.at (i));
 
--- a/libgui/src/documentation.cc	Wed Nov 11 23:18:47 2020 -0500
+++ b/libgui/src/documentation.cc	Wed Nov 11 23:41:06 2020 -0500
@@ -443,7 +443,11 @@
     if (rx.indexIn (query_string, 0) != -1)
       m_internal_search = rx.cap (1);
     else
+#if defined (HAVE_QT_SPLITBEHAVIOR_ENUM)
+      m_internal_search = query_string.split (" ", Qt::SkipEmptyParts).first ();
+#else
       m_internal_search = query_string.split (" ", QString::SkipEmptyParts).first ();
+#endif
 
     m_help_engine->searchEngine ()->search (queries);
   }
--- a/libgui/src/files-dock-widget.cc	Wed Nov 11 23:18:47 2020 -0500
+++ b/libgui/src/files-dock-widget.cc	Wed Nov 11 23:41:06 2020 -0500
@@ -417,8 +417,11 @@
             resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
             gui_settings *settings = rmgr.get_settings ();
             QString ext = settings->value (fb_txt_file_ext).toString ();
+#if defined (HAVE_QT_SPLITBEHAVIOR_ENUM)
+            QStringList extensions = ext.split (";", Qt::SkipEmptyParts);
+#else
             QStringList extensions = ext.split (";", QString::SkipEmptyParts);
-
+#endif
             if (QFile::exists (abs_fname))
               {
                 if (extensions.contains (suffix))
--- a/libgui/src/m-editor/octave-qscintilla.cc	Wed Nov 11 23:18:47 2020 -0500
+++ b/libgui/src/m-editor/octave-qscintilla.cc	Wed Nov 11 23:41:06 2020 -0500
@@ -798,8 +798,12 @@
 
     // Split contents into single lines and complete commands
     QStringList lines = selectedText ().split (QRegExp ("[\r\n]"),
+#if defined (HAVE_QT_SPLITBEHAVIOR_ENUM)
+                                               Qt::SkipEmptyParts);
+#else
                                                QString::SkipEmptyParts);
-    for (int i = 0; i < lines.count (); i++)
+#endif
+  for (int i = 0; i < lines.count (); i++)
       {
         QString line = lines.at (i);
         if (line.trimmed ().isEmpty ())
--- a/m4/acinclude.m4	Wed Nov 11 23:18:47 2020 -0500
+++ b/m4/acinclude.m4	Wed Nov 11 23:41:06 2020 -0500
@@ -992,6 +992,36 @@
   fi
 ])
 dnl
+dnl Check whether the Qt::SplitBehavior enum exists and has
+dnl Qt::KeepEmptyParts and Qt::SkipEmptyParts members.  This enum
+dnl was introduced or modified in Qt 5.14.
+dnl
+AC_DEFUN([OCTAVE_CHECK_QT_SPLITBEHAVIOR_ENUM], [
+  AC_CACHE_CHECK([for Qt::SplitBehavior enum],
+    [octave_cv_qt_splitbehavior_enum],
+    [AC_LANG_PUSH(C++)
+    ac_octave_save_CPPFLAGS="$CPPFLAGS"
+    ac_octave_save_CXXFLAGS="$CXXFLAGS"
+    CPPFLAGS="$QT_CPPFLAGS $CXXPICFLAG $CPPFLAGS"
+    CXXFLAGS="$CXXPICFLAG $CXXFLAGS"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+        #include <Qt>
+        ]], [[
+        Qt::SplitBehavior sb_keep = Qt::KeepEmptyParts;
+        Qt::SplitBehavior sb_skip = Qt::SkipEmptyParts;
+        ]])],
+      octave_cv_qt_splitbehavior_enum=yes,
+      octave_cv_qt_splitbehavior_enum=no)
+    CPPFLAGS="$ac_octave_save_CPPFLAGS"
+    CXXFLAGS="$ac_octave_save_CXXFLAGS"
+    AC_LANG_POP(C++)
+  ])
+  if test $octave_cv_qt_splitbehavior_enum = yes; then
+    AC_DEFINE(HAVE_QT_SPLITBEHAVIOR_ENUM, 1,
+      [Define to 1 if you have the `Qt::SplitBehavior' enum.])
+  fi
+])
+dnl
 dnl Check whether the Qt class QList has a constructor that accepts
 dnl a pair of iterators.  This constructor was introduced in Qt 5.14.
 dnl
@@ -2441,6 +2471,7 @@
     OCTAVE_HAVE_QGUIAPPLICATION
 
     OCTAVE_CHECK_QREGION_ITERATORS
+    OCTAVE_CHECK_QT_SPLITBEHAVIOR_ENUM
 
     if test -n "$OPENGL_LIBS"; then
       OCTAVE_CHECK_QT_OPENGL_OK([build_qt_graphics=yes],