diff options
Diffstat (limited to 'academic/octave/patches/0348f3f57e3c.diff')
-rw-r--r-- | academic/octave/patches/0348f3f57e3c.diff | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/academic/octave/patches/0348f3f57e3c.diff b/academic/octave/patches/0348f3f57e3c.diff new file mode 100644 index 0000000000000..1545797a6150d --- /dev/null +++ b/academic/octave/patches/0348f3f57e3c.diff @@ -0,0 +1,170 @@ + +# HG changeset patch +# User John W. Eaton <jwe@octave.org> +# Date 1609785454 18000 +# Node ID 0348f3f57e3ca6fa7c8e5112622c756d00dd7dab +# Parent a3d92c4ad5502686daf2b34f062db6c950db30ef +avoid build errors with Qt4 (bug #59813) + +* acinclude.m4 (OCTAVE_CHECK_FUNC_QFONTDATABASE_SYSTEMFONT, +OCTAVE_CHECK_QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE): New macros. +(OCTAVE_CHECK_QT_VERSION): Use them. + +* resource-manager.cc (resource_manager::get_default_font_family): +Check availability of QFontDatabase::systemFont, fall back on +QFont::setStyleHint, then global_font_family. + +* octave-dock-widget.cc (octave_dock_widget::handle_settings): +Check whether QVariant::canConvert accepts QMetatype::Type. Use +QVariant::Type as fallback. +* variable-editor-model.cc (variable_editor_model::setData): Likewise. + +diff --git a/libgui/src/octave-dock-widget.cc b/libgui/src/octave-dock-widget.cc +--- a/libgui/src/octave-dock-widget.cc ++++ b/libgui/src/octave-dock-widget.cc +@@ -507,7 +507,12 @@ + QVariant dock_geom + = settings->value (dw_dock_geometry.key.arg (objectName ()), + default_dock_size); +- if (dock_geom.canConvert (QMetaType::QRect)) ++#if defined (QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE) ++ QMetaType::Type rect_type = QMetaType::QRect; ++#else ++ QVariant::Type rect_type = QVariant::Rect; ++#endif ++ if (dock_geom.canConvert (rect_type)) + m_recent_dock_geom = dock_geom.toRect (); + else + m_recent_dock_geom = dw_dock_geometry.def.toRect (); +diff --git a/libgui/src/resource-manager.cc b/libgui/src/resource-manager.cc +--- a/libgui/src/resource-manager.cc ++++ b/libgui/src/resource-manager.cc +@@ -241,9 +241,17 @@ + // if macOS default font is not available): use QFontDatabase + if (default_family.isEmpty ()) + { ++#if defined (HAVE_QFONTDATABASE_SYSTEMFONT) + // Get the system's default monospaced font + QFont fixed_font = QFontDatabase::systemFont (QFontDatabase::FixedFont); + default_family = fixed_font.defaultFamily (); ++#elif defined (HAVE_QFONT_MONOSPACE) ++ QFont fixed_font; ++ fixed_font.setStyleHint (QFont::Monospace); ++ default_family = fixed_font.defaultFamily (); ++#else ++ default_family = global_font_family; ++#endif + } + + // Test env variable which has preference +diff --git a/libgui/src/variable-editor-model.cc b/libgui/src/variable-editor-model.cc +--- a/libgui/src/variable-editor-model.cc ++++ b/libgui/src/variable-editor-model.cc +@@ -987,7 +987,12 @@ + variable_editor_model::setData (const QModelIndex& idx, + const QVariant& v_user_input, int role) + { +- if (role != Qt::EditRole || ! v_user_input.canConvert (QVariant::String) ++#if defined (QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE) ++ QMetaType::Type string_type = QMetaType::QString; ++#else ++ QVariant::Type string_type = QVariant::String; ++#endif ++ if (role != Qt::EditRole || ! v_user_input.canConvert (string_type) + || ! idx.isValid ()) + return false; + +diff --git a/m4/acinclude.m4 b/m4/acinclude.m4 +--- a/m4/acinclude.m4 ++++ b/m4/acinclude.m4 +@@ -1091,6 +1091,35 @@ + fi + ]) + dnl ++dnl Check whether the Qt class QFontDatabase has the systemFont member ++dnl function. This function was introduced in Qt 5.2. ++dnl ++AC_DEFUN([OCTAVE_CHECK_FUNC_QFONTDATABASE_SYSTEMFONT], [ ++ AC_CACHE_CHECK([for QFontDatabase::systemFont function], ++ [octave_cv_func_qfontdatabase_systemfont], ++ [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 <QFontDatabase> ++ #include <QFont> ++ ]], [[ ++ QFont font = QFontDatabase::systemFont (QFontDatabase::FixedFont); ++ ]])], ++ octave_cv_func_qfontdatabase_systemfont=yes, ++ octave_cv_func_qfontdatabase_systemfont=no) ++ CPPFLAGS="$ac_octave_save_CPPFLAGS" ++ CXXFLAGS="$ac_octave_save_CXXFLAGS" ++ AC_LANG_POP(C++) ++ ]) ++ if test $octave_cv_func_qfontdatabase_systemfont = yes; then ++ AC_DEFINE(HAVE_QFONTDATABASE_SYSTEMFONT, 1, ++ [Define to 1 if you have the `QFontDatabase::systemFont' function.]) ++ 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 +@@ -1967,6 +1996,37 @@ + fi + ]) + dnl ++dnl Check whether QVariant::canConvert accepts a QMetaType::Type ++dnl enumeration value as an argument. ++dnl ++AC_DEFUN([OCTAVE_CHECK_QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE], [ ++ AC_CACHE_CHECK([whether QVariant::canConvert accepts QMetaType::Type argument], ++ [octave_cv_qvariant_canconvert_accepts_qmetatype_type], ++ [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 <QMetaType> ++ #include <QVariant> ++ ]], [[ ++ QVariant var; ++ QMetaType::Type type = QMetaType::QString; ++ var.canConvert (type); ++ ]])], ++ octave_cv_qvariant_canconvert_accepts_qmetatype_type=yes, ++ octave_cv_qvariant_canconvert_accepts_qmetatype_type=no) ++ CPPFLAGS="$ac_octave_save_CPPFLAGS" ++ CXXFLAGS="$ac_octave_save_CXXFLAGS" ++ AC_LANG_POP(C++) ++ ]) ++ if test $octave_cv_qvariant_canconvert_accepts_qmetatype_type = yes; then ++ AC_DEFINE(QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE, 1, ++ [Define to 1 if `QVariant::canConvert' accepts `QMetaType::Type' enumeration value as argument.]) ++ fi ++]) ++dnl + dnl Check for the Qhull version. + dnl + AC_DEFUN([OCTAVE_CHECK_QHULL_VERSION], [ +@@ -2518,6 +2578,7 @@ + ## version that we are testing now will be the one used. + + OCTAVE_CHECK_FUNC_QCOMBOBOX_SETCURRENTTEXT ++ OCTAVE_CHECK_FUNC_QFONTDATABASE_SYSTEMFONT + OCTAVE_CHECK_FUNC_QFONTMETRICS_HORIZONTAL_ADVANCE + OCTAVE_CHECK_FUNC_QGUIAPPLICATION_SETDESKTOPFILENAME + OCTAVE_CHECK_FUNC_QHEADERVIEW_SETSECTIONRESIZEMODE +@@ -2539,6 +2600,7 @@ + OCTAVE_CHECK_FUNC_QWHEELEVENT_POSITION + OCTAVE_CHECK_MEMBER_QFONT_FORCE_INTEGER_METRICS + OCTAVE_CHECK_MEMBER_QFONT_MONOSPACE ++ OCTAVE_CHECK_QVARIANT_CANCONVERT_ACCEPTS_QMETATYPE_TYPE + OCTAVE_HAVE_QGUIAPPLICATION + + OCTAVE_CHECK_QREGION_ITERATORS + |