aboutsummaryrefslogtreecommitdiff
path: root/academic/octave/patches/0348f3f57e3c.diff
diff options
context:
space:
mode:
Diffstat (limited to 'academic/octave/patches/0348f3f57e3c.diff')
-rw-r--r--academic/octave/patches/0348f3f57e3c.diff170
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
+