Mercurial > octave
diff m4/acinclude.m4 @ 24821:88665923596c
Make variable editor code compile under Qt4 (bug #53259)
* variable_editor.cc (variable_dock_widget::toplevel_change):
Condition the maximizing of the floated variable widget on having
QGuiApplication.
(variable_editor::construct_tool_bar): Use Qt::FindDirectChildrenOnly
only if it is available.
* acinclude.m4 (OCTAVE_HAVE_QGUIAPPLICATION,
OCTAVE_QOBJECT_FINDCHILDREN_ACCEPTS_FINDCHILDOPTIONS): New macros.
(OCTAVE_CHECK_QT_VERSION): Use them.
author | Daniel J Sebald <daniel.sebald@ieee.org> |
---|---|
date | Thu, 01 Mar 2018 23:19:55 -0600 |
parents | 8a92f442c4a2 |
children | 53f68d0fb122 |
line wrap: on
line diff
--- a/m4/acinclude.m4 Fri Mar 02 13:46:45 2018 +0100 +++ b/m4/acinclude.m4 Thu Mar 01 23:19:55 2018 -0600 @@ -1254,6 +1254,70 @@ fi ]) dnl +dnl Check whether the Qt class QGuiApplication exists. This class +dnl was introduced in Qt 5.0. +dnl +dnl FIXME: Delete this entirely when we drop support for Qt 4. +dnl +AC_DEFUN([OCTAVE_HAVE_QGUIAPPLICATION], [ + AC_CACHE_CHECK([for QGuiApplication], + [octave_cv_decl_qguiapplication], + [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 <QGuiApplication> + ]], [[ + QScreen *pscreen = QGuiApplication::primaryScreen (); + ]])], + octave_cv_decl_qguiapplication=yes, + octave_cv_decl_qguiapplication=no) + CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" + AC_LANG_POP(C++) + ]) + if test $octave_cv_decl_qguiapplication = yes; then + AC_DEFINE(HAVE_QGUIAPPLICATION, 1, + [Define to 1 if `QGuiApplication' class is available.]) + fi +]) +dnl +dnl Check whether QObject::findChildren accepts Qt::FindChildOptions +dnl argument. +dnl +dnl FIXME: Delete this entirely when we drop support for Qt 4. +dnl +AC_DEFUN([OCTAVE_QOBJECT_FINDCHILDREN_ACCEPTS_FINDCHILDOPTIONS], [ + AC_CACHE_CHECK([whether QObject::findChildren accepts Qt::FindChildOptions], + [octave_cv_qobject_findchildren_accepts_findchildoptions], + [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 <QList> + #include <QObject> + #include <QWidget> + ]], [[ + QObject obj; + QList<QWidget *> widgets + = obj.findChildren<QWidget *> ("name", Qt::FindDirectChildrenOnly); + ]])], + octave_cv_qobject_findchildren_accepts_findchildoptions=yes, + octave_cv_qobject_findchildren_accepts_findchildoptions=no) + CPPFLAGS="$ac_octave_save_CPPFLAGS" + CXXFLAGS="$ac_octave_save_CXXFLAGS" + AC_LANG_POP(C++) + ]) + if test $octave_cv_qobject_findchildren_accepts_findchildoptions = yes; then + AC_DEFINE(QOBJECT_FINDCHILDREN_ACCEPTS_QFINDCHILDOPTIONS, 1, + [Define to 1 if `QObject::findChildren' accepts 'Qt::FindChildOptions' argument.]) + fi +]) +dnl dnl Check for the Qhull version. dnl AC_DEFUN([OCTAVE_CHECK_QHULL_VERSION], [ @@ -1774,6 +1838,8 @@ OCTAVE_CHECK_FUNC_QTABWIDGET_SETMOVABLE OCTAVE_CHECK_MEMBER_QFONT_FORCE_INTEGER_METRICS OCTAVE_CHECK_MEMBER_QFONT_MONOSPACE + OCTAVE_HAVE_QGUIAPPLICATION + OCTAVE_QOBJECT_FINDCHILDREN_ACCEPTS_FINDCHILDOPTIONS if test -n "$OPENGL_LIBS"; then OCTAVE_CHECK_QT_OPENGL_OK([build_qt_graphics=yes],