diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/qtah-generator.cabal b/qtah-generator.cabal
--- a/qtah-generator.cabal
+++ b/qtah-generator.cabal
@@ -1,12 +1,12 @@
 name: qtah-generator
-version: 0.8.0
+version: 0.9.1
 synopsis: Generator for Qtah Qt bindings
-homepage: http://khumba.net/projects/qtah
+homepage: https://khumba.net/projects/qtah
 license: LGPL-3
 license-files: LICENSE.GPL, LICENSE.LGPL
 author: Bryan Gardiner <bog@khumba.net>
 maintainer: Bryan Gardiner <bog@khumba.net>
-copyright: Copyright 2015-2021 The Qtah Authors.
+copyright: Copyright 2015-2026 The Qtah Authors.
 category: Graphics
 build-type: Simple
 cabal-version: 2.0
@@ -17,13 +17,13 @@
 
 library
   build-depends:
-      base >=4.8 && <5
-    , bytestring >=0.10 && <0.11
+      base >=4.10 && <5
+    , bytestring >=0.10 && <0.12
     , containers >=0.5 && <0.7
     , directory >=1.2 && <1.4
     , filepath >=1.3 && <1.5
-    , hoppy-generator >=0.8 && <0.9
-    , hoppy-std >=0.8 && <0.9
+    , hoppy-generator >=0.9 && <0.10
+    , hoppy-std >=0.9 && <0.10
     , haskell-src >=1.0 && <1.1
     , mtl >=2.2.1 && <2.3
     , process >=1.2 && <1.7
@@ -123,6 +123,7 @@
     , Graphics.UI.Qtah.Generator.Interface.Core.QTimer
     , Graphics.UI.Qtah.Generator.Interface.Core.QTimerEvent
     , Graphics.UI.Qtah.Generator.Interface.Core.QTranslator
+    , Graphics.UI.Qtah.Generator.Interface.Core.QUrl
     , Graphics.UI.Qtah.Generator.Interface.Core.QVariant
     , Graphics.UI.Qtah.Generator.Interface.Core.QVariantAnimation
     , Graphics.UI.Qtah.Generator.Interface.Core.QVector
@@ -183,6 +184,7 @@
     , Graphics.UI.Qtah.Generator.Interface.Gui.QShowEvent
     , Graphics.UI.Qtah.Generator.Interface.Gui.QStandardItemModel
     , Graphics.UI.Qtah.Generator.Interface.Gui.QSurface
+    , Graphics.UI.Qtah.Generator.Interface.Gui.QTextDocument
     , Graphics.UI.Qtah.Generator.Interface.Gui.QTransform
     , Graphics.UI.Qtah.Generator.Interface.Gui.QValidator
     , Graphics.UI.Qtah.Generator.Interface.Gui.QWheelEvent
@@ -282,7 +284,7 @@
 
 executable qtah-generator
   build-depends:
-      base >=4.8 && <5
+      base >=4.10 && <5
     , qtah-generator
   hs-source-dirs: src-exe
   main-is: Main.hs
diff --git a/src-exe/Main.hs b/src-exe/Main.hs
--- a/src-exe/Main.hs
+++ b/src-exe/Main.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Common.hs b/src/Graphics/UI/Qtah/Generator/Common.hs
--- a/src/Graphics/UI/Qtah/Generator/Common.hs
+++ b/src/Graphics/UI/Qtah/Generator/Common.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Config.hs b/src/Graphics/UI/Qtah/Generator/Config.hs
--- a/src/Graphics/UI/Qtah/Generator/Config.hs
+++ b/src/Graphics/UI/Qtah/Generator/Config.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2025 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -139,14 +139,23 @@
   where -- | When we don't have a preferred qmake version, then we'll search for
         -- qmake's executables, first unqualified, then qualified by version
         -- number in decreasing order.
+        --
+        -- 'qmake-qtX' is used on many distros.  'qmakeX' appears to be newer;
+        -- it's used on Gentoo, and on openSUSE starting with Qt 6.
         allQmakeExecutableNames :: [String]
-        allQmakeExecutableNames = ["qmake", "qmake-qt5", "qmake-qt4"]
+        allQmakeExecutableNames =
+          [ "qmake"
+          , "qmake-qt6", "qmake6"
+          , "qmake-qt5", "qmake5"
+          , "qmake-qt4", "qmake4"
+          ]
 
         -- | When we /do/ have a prefered qmake version, then try the qualified
         -- version name first, falling back to the generic qmake executable if
         -- possible.
         qmakeExecutableNamesForVersion :: Int -> [String]
-        qmakeExecutableNamesForVersion major = ["qmake-qt" ++ show major, "qmake"]
+        qmakeExecutableNamesForVersion major =
+          ["qmake-qt" ++ show major, "qmake" ++ show major, "qmake"]
 
         queryQmake :: Maybe Int -> IO QtConfig
         queryQmake maybePreferredMajorVersion =
@@ -157,7 +166,7 @@
             Just preferredMajorVersion -> do
               -- Even though we have a preferred major version, we don't want to
               -- run "qmake -qt=X -version" initially because we might be on a
-              -- system (NixOS) where qtchooser isn't available and the only
+              -- system (Gentoo, NixOS) where qtchooser isn't available and the only
               -- qmake available *is* the desired version (in NixOS's case, the
               -- binary is called "qmake", not "qmake-qtX").  Only pass "-qt=X"
               -- if we get the wrong default version.
diff --git a/src/Graphics/UI/Qtah/Generator/Enum.hs b/src/Graphics/UI/Qtah/Generator/Enum.hs
--- a/src/Graphics/UI/Qtah/Generator/Enum.hs
+++ b/src/Graphics/UI/Qtah/Generator/Enum.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Flags.hs b/src/Graphics/UI/Qtah/Generator/Flags.hs
--- a/src/Graphics/UI/Qtah/Generator/Flags.hs
+++ b/src/Graphics/UI/Qtah/Generator/Flags.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -102,6 +102,7 @@
 import qualified Graphics.UI.Qtah.Generator.Interface.Core.QTimerEvent as QTimerEvent
 import qualified Graphics.UI.Qtah.Generator.Interface.Core.QTimeZone as QTimeZone
 import qualified Graphics.UI.Qtah.Generator.Interface.Core.QTranslator as QTranslator
+import qualified Graphics.UI.Qtah.Generator.Interface.Core.QUrl as QUrl
 import qualified Graphics.UI.Qtah.Generator.Interface.Core.QVariant as QVariant
 import qualified Graphics.UI.Qtah.Generator.Interface.Core.QVariantAnimation as QVariantAnimation
 import qualified Graphics.UI.Qtah.Generator.Interface.Core.QVector as QVector
@@ -205,6 +206,7 @@
     , QTimerEvent.aModule
     , QTimeZone.aModule
     , QTranslator.aModule
+    , QUrl.aModule
     , QVariant.aModule
     , QVariantAnimation.aModule
     , QVersionNumber.aModule
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractAnimation.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractAnimation.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractAnimation.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -44,14 +44,14 @@
   listenerInt,
   listenerStateState,
   )
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QAbstractAnimation"] [4, 6] $
+  makeQtModuleWithVersionBounds ["Core", "QAbstractAnimation"] (Just [4, 6]) Nothing $
   QtExportClassAndSignals c_QAbstractAnimation signals :
   collect
   [ just $ qtExport e_DeletionPolicy
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractItemModel.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractListModel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractListModel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractListModel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractListModel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractTableModel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractTableModel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractTableModel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAbstractTableModel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAnimationGroup.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QAnimationGroup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,14 +33,14 @@
 import Foreign.Hoppy.Generator.Types (intT, voidT, objT, ptrT)
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Core.QAbstractAnimation (c_QAbstractAnimation)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QAnimationGroup"] [4, 6] $
+  makeQtModuleWithVersionBounds ["Core", "QAnimationGroup"] (Just [4, 6]) Nothing $
   [qtExport c_QAnimationGroup]
 
 c_QAnimationGroup =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QBuffer.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QBuffer.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QBuffer.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QBuffer.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QByteArray.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QByteArray.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QByteArray.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QByteArray.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -101,14 +101,14 @@
   , just $ mkMethod' "append" "appendPtrConstChar" [ptrT $ constT charT] $ refT $ objT c_QByteArray
   , just $ mkMethod' "append" "appendPtrConstCharAndSize" [ptrT $ constT charT, intT] $ refT $ objT c_QByteArray
   , just $ mkMethod' "append" "appendChar" [charT] $ refT $ objT c_QByteArray
-  , just $ mkMethod' "append" "appendString" [objT c_QString] $ refT $ objT c_QByteArray
+  , test (qtVersion < [6]) $ mkMethod' "append" "appendString" [objT c_QString] $ refT $ objT c_QByteArray
 
   , just $ mkMethod' "insert" "insert" [intT, objT c_QByteArray] $ refT $ objT c_QByteArray
   , test (qtVersion >= [5, 7]) $ mkMethod' "insert" "insertCountAndChar" [intT, intT, charT] $ refT $ objT c_QByteArray
   , just $ mkMethod' "insert" "insertPtrConstChar" [intT, ptrT $ constT charT] $ refT $ objT c_QByteArray
   , test (qtVersion >= [4, 6]) $  mkMethod' "insert" "insertPtrConstCharAndSize" [intT, ptrT $ constT charT, intT] $ refT $ objT c_QByteArray
   , just $ mkMethod' "insert" "insertChar" [intT, charT] $ refT $ objT c_QByteArray
-  , just $ mkMethod' "insert" "insertString" [intT, objT c_QString] $ refT $ objT c_QByteArray
+  , test (qtVersion < [6]) $ mkMethod' "insert" "insertString" [intT, objT c_QString] $ refT $ objT c_QByteArray
 
   , just $ mkMethod' "prepend" "prepend" [objT c_QByteArray] $ refT $ objT c_QByteArray
   , test (qtVersion >= [5, 7]) $ mkMethod' "prepend" "prependCountAndChar" [intT, charT] $ refT $ objT c_QByteArray
@@ -127,9 +127,9 @@
   , just $ mkMethod' "replace" "replaceByteArrayWithPtrConstChar" [objT c_QByteArray, ptrT $ constT charT] $ refT $ objT c_QByteArray
   , just $ mkMethod' "replace" "replacePtrConstCharWithByteArray" [ptrT $ constT charT, objT c_QByteArray] $ refT $ objT c_QByteArray
   , just $ mkMethod' "replace" "replaceChar" [charT, charT] $ refT $ objT c_QByteArray
-  , just $ mkMethod' "replace" "replaceStringWithPtrConstChar" [objT c_QString, ptrT $ constT charT] $ refT $ objT c_QByteArray
-  , just $ mkMethod' "replace" "replaceCharWithString" [charT, objT c_QString] $ refT $ objT c_QByteArray
-  , just $ mkMethod' "replace" "replaceStringWithByteArray" [objT c_QString, objT c_QByteArray] $ refT $ objT c_QByteArray
+  , test (qtVersion < [6]) $ mkMethod' "replace" "replaceStringWithPtrConstChar" [objT c_QString, ptrT $ constT charT] $ refT $ objT c_QByteArray
+  , test (qtVersion < [6]) $ mkMethod' "replace" "replaceCharWithString" [charT, objT c_QString] $ refT $ objT c_QByteArray
+  , test (qtVersion < [6]) $ mkMethod' "replace" "replaceStringWithByteArray" [objT c_QString, objT c_QByteArray] $ refT $ objT c_QByteArray
 
   , just $ mkConstMethod' "indexOf" "indexOf" [objT c_QByteArray] intT
   , just $ mkConstMethod' "indexOf" "indexOfFrom" [objT c_QByteArray, intT] intT
@@ -137,8 +137,8 @@
   , just $ mkConstMethod' "indexOf" "indexOfPtrConstCharFrom" [ptrT $ constT charT, intT] intT
   , just $ mkConstMethod' "indexOf" "indexOfChar" [charT] intT
   , just $ mkConstMethod' "indexOf" "indexOfCharFrom" [charT, intT] intT
-  , just $ mkConstMethod' "indexOf" "indexOfString" [objT c_QString, intT] intT
-  , just $ mkConstMethod' "indexOf" "indexOfStringFrom" [objT c_QString, intT] intT
+  , test (qtVersion < [6]) $ mkConstMethod' "indexOf" "indexOfString" [objT c_QString, intT] intT
+  , test (qtVersion < [6]) $ mkConstMethod' "indexOf" "indexOfStringFrom" [objT c_QString, intT] intT
 
   , just $ mkConstMethod' "lastIndexOf" "lastIndexOf" [objT c_QByteArray] intT
   , just $ mkConstMethod' "lastIndexOf" "lastIndexOfFrom" [objT c_QByteArray, intT] intT
@@ -146,8 +146,8 @@
   , just $ mkConstMethod' "lastIndexOf" "lastIndexOfPtrConstCharFrom" [ptrT $ constT charT, intT] intT
   , just $ mkConstMethod' "lastIndexOf" "lastIndexOfChar" [charT] intT
   , just $ mkConstMethod' "lastIndexOf" "lastIndexOfCharFrom" [charT, intT] intT
-  , just $ mkConstMethod' "lastIndexOf" "lastIndexOfString" [objT c_QString, intT] intT
-  , just $ mkConstMethod' "lastIndexOf" "lastIndexOfStringFrom" [objT c_QString, intT] intT
+  , test (qtVersion < [6]) $ mkConstMethod' "lastIndexOf" "lastIndexOfString" [objT c_QString, intT] intT
+  , test (qtVersion < [6]) $ mkConstMethod' "lastIndexOf" "lastIndexOfStringFrom" [objT c_QString, intT] intT
 
   , just $ mkMethod' "setNum" "setNumInt" [intT] $ refT $ objT c_QByteArray
   , just $ mkMethod' "setNum" "setNumIntWithBase" [intT, intT] $ refT $ objT c_QByteArray
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QChar.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QChar.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QChar.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QChar.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -52,7 +52,18 @@
   ClassFeature (Assignable, Copyable, Comparable, Equatable),
   classAddFeatures,
   )
-import Foreign.Hoppy.Generator.Types (boolT, charT, intT, enumT, objT, refT, ucharT, ushortT, uintT)
+import Foreign.Hoppy.Generator.Types (
+  boolT,
+  charT,
+  intT,
+  enumT,
+  objT,
+  refT,
+  char16T,
+  ucharT,
+  ushortT,
+  uintT,
+  )
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import {-# SOURCE #-} Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
@@ -141,8 +152,10 @@
   , just $ mkConstMethod "toLower" np $ objT c_QChar
   , just $ mkConstMethod "toTitleCase" np $ objT c_QChar
   , just $ mkConstMethod "toUpper" np $ objT c_QChar
-  , just $ mkConstMethod' "unicode" "unicode" np ushortT
-  , just $ mkMethod' "unicode" "unicodeRef" np $ refT ushortT
+  , just $ mkConstMethod' "unicode" "unicode" np $
+    if qtVersion >= [6] then char16T else ushortT
+  , just $ mkMethod' "unicode" "unicodeRef" np $
+    refT $ if qtVersion >= [6] then char16T else ushortT
   , just $ mkConstMethod "unicodeVersion" np $ enumT e_UnicodeVersion
 
   , just $ mkStaticMethod "fromLatin1" [charT] $ objT c_QChar
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QChildEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QChildEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QChildEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QChildEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QCoreApplication.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QCoreApplication.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QCoreApplication.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QCoreApplication.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QCryptographicHash.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QCryptographicHash.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QCryptographicHash.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QCryptographicHash.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -40,14 +40,14 @@
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QIODevice (c_QIODevice)
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QCryptographicHash"] [4, 3] $
+  makeQtModuleWithVersionBounds ["Core", "QCryptographicHash"] (Just [4, 3]) Nothing $
   collect
   [ just $ qtExport c_QCryptographicHash
   , just $ qtExport e_Algorithm
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDate.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDate.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDate.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDate.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -55,7 +55,7 @@
   makeQtModule ["Core", "QDate"] $
   collect
   [ just $ qtExport c_QDate
-  , test (qtVersion >= [4, 5]) $ qtExport e_MonthNameType
+  , test (qtVersion >= [4, 5] && qtVersion < [6]) $ qtExport e_MonthNameType
   ]
 
 c_QDate =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -66,7 +66,7 @@
   makeClass (ident "QDateTime") Nothing [] $
   collect
   [ just $ mkCtor "new" np
-  , just $ mkCtor "newWithDate" [refT $ constT $ objT c_QDate]
+  , test (qtVersion < [6]) $ mkCtor "newWithDate" [refT $ constT $ objT c_QDate]
   , just $ mkCtor "newWithDateAndTime" [refT $ constT $ objT c_QDate, refT $ constT $ objT c_QTime]
   , just $ mkCtor "newWithDateAndTimeAndTimeSpec" [refT $ constT $ objT c_QDate, refT $ constT $ objT c_QTime, enumT e_TimeSpec]
   , test (qtVersion >= [5, 2]) $ mkCtor "newWithDateAndTimeAndTimeSpecAndOffset" [refT $ constT $ objT c_QDate, refT $ constT $ objT c_QTime, enumT e_TimeSpec, intT]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDateTime.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebug.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebug.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebug.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebug.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebugStateSaver.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebugStateSaver.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebugStateSaver.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDebugStateSaver.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -31,14 +31,14 @@
 import Foreign.Hoppy.Generator.Types (objT, refT)
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Core.QDebug (c_QDebug)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QDebugStateSaver"] [5, 1]
+  makeQtModuleWithVersionBounds ["Core", "QDebugStateSaver"] (Just [5, 1]) Nothing
   [qtExport c_QDebugStateSaver]
 
 c_QDebugStateSaver =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDir.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDir.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDir.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDir.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDirIterator.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDirIterator.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QDirIterator.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QDirIterator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,14 +41,14 @@
 --import Graphics.UI.Qtah.Generator.Interface.Core.QFileInfo (c_QFileInfo)
 import Graphics.UI.Qtah.Generator.Interface.Core.QStringList (c_QStringList)
 import Graphics.UI.Qtah.Generator.Interface.Core.QDir (c_QDir, fl_Filters)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QDirIterator"] [4, 3] $
+  makeQtModuleWithVersionBounds ["Core", "QDirIterator"] (Just [4, 3]) Nothing $
   collect
   [ just $ qtExport c_QDirIterator
   , just $ qtExport e_IteratorFlag
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFile.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFile.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFile.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFile.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileDevice.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileDevice.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileDevice.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileDevice.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -46,7 +46,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QDateTime (c_QDateTime)
 import Graphics.UI.Qtah.Generator.Interface.Core.QIODevice (c_QIODevice)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (qlonglong)
 
@@ -54,7 +54,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QFileDevice"] [5, 0] $
+  makeQtModuleWithVersionBounds ["Core", "QFileDevice"] (Just [5, 0]) Nothing $
   collect $
   [ just $ qtExport c_QFileDevice
   , test (qtVersion >= [5, 10]) $ qtExport e_FileTime
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileInfo.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileInfo.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileInfo.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileInfo.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSelector.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSelector.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSelector.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSelector.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -36,14 +36,14 @@
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Core.QStringList (c_QStringList)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QFileSelector"] [5, 2] $
+  makeQtModuleWithVersionBounds ["Core", "QFileSelector"] (Just [5, 2]) Nothing $
   [qtExport c_QFileSelector]
 
 c_QFileSelector =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSystemWatcher.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSystemWatcher.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSystemWatcher.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QFileSystemWatcher.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -37,14 +37,14 @@
 import Foreign.Hoppy.Generator.Types (boolT, constT, objT, ptrT, refT)
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (listenerQString)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QFileSystemWatcher"] [4, 2] $
+  makeQtModuleWithVersionBounds ["Core", "QFileSystemWatcher"] (Just [4, 2]) Nothing $
   [ QtExportClassAndSignals c_QFileSystemWatcher signals ]
 
 (c_QFileSystemWatcher, signals) =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QIODevice.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QIODevice.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QIODevice.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QIODevice.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelection.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelection.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelection.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelection.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionModel.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionRange.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionRange.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionRange.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QItemSelectionRange.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1Char.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1Char.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1Char.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1Char.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1String.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1String.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1String.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLatin1String.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibrary.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibrary.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibrary.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibrary.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibraryInfo.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibraryInfo.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibraryInfo.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLibraryInfo.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -60,20 +60,21 @@
   ]
 
 e_LibraryLocation =
-  makeQtEnum (ident1 "QLibraryInfo" "LibraryLocation") [includeStd "QLibraryInfo"]
-  [ "PrefixPath"
-  , "DocumentationPath"
-  , "HeadersPath"
-  , "LibrariesPath"
-  , "LibraryExecutablesPath"
-  , "BinariesPath"
-  , "PluginsPath"
-  , "ImportsPath"
-  , "Qml2ImportsPath"
-  , "ArchDataPath"
-  , "DataPath"
-  , "TranslationsPath"
-  , "ExamplesPath"
-  , "TestsPath"
-  , "SettingsPath"
+  makeQtEnum (ident1 "QLibraryInfo" "LibraryLocation") [includeStd "QLibraryInfo"] $
+  collect
+  [ just "PrefixPath"
+  , just "DocumentationPath"
+  , just "HeadersPath"
+  , just "LibrariesPath"
+  , just "LibraryExecutablesPath"
+  , just "BinariesPath"
+  , just "PluginsPath"
+  , test (qtVersion < [6]) "ImportsPath"
+  , just "Qml2ImportsPath"
+  , just "ArchDataPath"
+  , just "DataPath"
+  , just "TranslationsPath"
+  , just "ExamplesPath"
+  , just "TestsPath"
+  , just "SettingsPath"
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,6 +33,7 @@
   c_QListQObject,
   c_QListQSize,
   c_QListQString,
+  c_QListQUrl,
   c_QListQVariant,
   c_QListQWidget,
   c_QListQTreeWidgetItem,
@@ -97,6 +98,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QModelIndex (c_QModelIndex)
 import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
 import Graphics.UI.Qtah.Generator.Interface.Core.QSize (c_QSize)
+import {-# SOURCE #-} Graphics.UI.Qtah.Generator.Interface.Core.QUrl (c_QUrl)
 import {-# SOURCE #-} Graphics.UI.Qtah.Generator.Interface.Widgets.QTreeWidgetItem (c_QTreeWidgetItem)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import {-# SOURCE #-} Graphics.UI.Qtah.Generator.Interface.Core.QVariant (c_QVariant)
@@ -193,7 +195,8 @@
         , test hasReserve $ mkMethod "reserve" [intT] voidT
         , just $ mkConstMethod "size" np intT
         , test (qtVersion >= [4, 5]) $ mkConstMethod "startsWith" [t] boolT
-        , just $ mkMethod "swap" [intT, intT] voidT
+        , test (qtVersion < [6]) $ mkMethod "swap" [intT, intT] voidT
+          -- TODO Other swap() overloads.
           -- OMIT swap(QList<T>&)
         , just $ mkMethod "takeAt" [intT] t
         , just $ mkMethod "takeFirst" np t
@@ -304,6 +307,7 @@
   , qmod_QObject
   , qmod_QSize
   , qmod_QString
+  , qmod_QUrl
   , qmod_QVariant
   , qmod_QWidget
   , qmod_QTreeWidgetItem
@@ -382,6 +386,15 @@
 
 c_QListQString :: Class
 c_QListQString = c_QList contents_QString
+
+qmod_QUrl :: QtModule
+qmod_QUrl = createModule "QUrl" contents_QUrl
+
+contents_QUrl :: Contents
+contents_QUrl = instantiate "QListQUrl" (objT c_QUrl) mempty
+
+c_QListQUrl :: Class
+c_QListQUrl = c_QList contents_QUrl
 
 qmod_QVariant :: QtModule
 qmod_QVariant = createModule "QVariant" contents_QVariant
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QList.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLockFile.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLockFile.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLockFile.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLockFile.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -37,14 +37,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Foreign.Hoppy.Generator.Types (boolT, intT, voidT, enumT, constT, objT, ptrT, refT, llongT)
 import Foreign.Hoppy.Generator.Version (collect, just)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QLockFile"] [5, 1] $
+  makeQtModuleWithVersionBounds ["Core", "QLockFile"] (Just [5, 1]) Nothing $
   collect
   [ just $ qtExport c_QLockFile
   , just $ qtExport e_LockError
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLoggingCategory.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLoggingCategory.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QLoggingCategory.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QLoggingCategory.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -38,7 +38,7 @@
 import Foreign.Hoppy.Generator.Types (charT, voidT, boolT, enumT, constT, objT, ptrT, refT, fnT)
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (e_QtMsgType)
 
@@ -46,7 +46,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QLoggingCategory"] [5, 2] $
+  makeQtModuleWithVersionBounds ["Core", "QLoggingCategory"] (Just [5, 2]) Nothing $
   [qtExport c_QLoggingCategory]
 
 c_QLoggingCategory =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMargins.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMargins.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMargins.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMargins.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMarginsF.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMarginsF.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMarginsF.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMarginsF.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +41,7 @@
 import Foreign.Hoppy.Generator.Types (boolT, objT, refT)
 import Graphics.UI.Qtah.Generator.Interface.Core.QMargins (c_QMargins)
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (qreal)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -50,7 +50,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QMarginsF"] minVersion
+  makeQtModuleWithVersionBounds ["Core", "QMarginsF"] (Just minVersion) Nothing
   [ qtExport c_QMarginsF ]
 
 c_QMarginsF =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageAuthenticationCode.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageAuthenticationCode.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageAuthenticationCode.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageAuthenticationCode.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -38,14 +38,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QIODevice (c_QIODevice)
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
 import Graphics.UI.Qtah.Generator.Interface.Core.QCryptographicHash (e_Algorithm)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QMessageAuthenticationCode"] [5, 1] $
+  makeQtModuleWithVersionBounds ["Core", "QMessageAuthenticationCode"] (Just [5, 1]) Nothing $
   [qtExport c_QMessageAuthenticationCode]
 
 c_QMessageAuthenticationCode =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogContext.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogContext.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogContext.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogContext.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -28,14 +28,14 @@
   makeClass,
   )
 import Foreign.Hoppy.Generator.Version (collect)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QMessageLogContext"] [5, 0] $
+  makeQtModuleWithVersionBounds ["Core", "QMessageLogContext"] (Just [5, 0]) Nothing $
   [qtExport c_QMessageLogContext]
 
 c_QMessageLogContext =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogger.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogger.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogger.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMessageLogger.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,7 +33,7 @@
 import Foreign.Hoppy.Generator.Types (charT, intT, constT, objT, ptrT)
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Interface.Core.QDebug (c_QDebug)
 import Graphics.UI.Qtah.Generator.Types
 
@@ -41,7 +41,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QMessageLogger"] [5, 0] $
+  makeQtModuleWithVersionBounds ["Core", "QMessageLogger"] (Just [5, 0]) Nothing $
   [qtExport c_QMessageLogger]
 
 c_QMessageLogger =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaClassInfo.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaClassInfo.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaClassInfo.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaClassInfo.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaEnum.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaEnum.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaEnum.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaEnum.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaMethod.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaMethod.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaMethod.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaMethod.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject/Connection.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject/Connection.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject/Connection.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaObject/Connection.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -63,18 +63,18 @@
   , just $ mkConstMethod "hasNotifySignal" np boolT
   , test (qtVersion >= [4, 6]) $ mkConstMethod "isConstant" np boolT
   , just $ mkConstMethod' "isDesignable" "isDesignable" np boolT
-  , just $ mkConstMethod' "isDesignable" "isDesignableWithObject" [ptrT $ constT $ objT c_QObject] boolT
+  , test (qtVersion < [6]) $ mkConstMethod' "isDesignable" "isDesignableWithObject" [ptrT $ constT $ objT c_QObject] boolT
   , just $ mkConstMethod "isEnumType" np boolT
   , test (qtVersion >= [4, 6]) $ mkConstMethod "isFinal" np boolT
   , just $ mkConstMethod "isFlagType" np boolT
   , just $ mkConstMethod "isReadable" np boolT
   , just $ mkConstMethod "isResettable" np boolT
   , just $ mkConstMethod' "isScriptable" "isScriptable" np boolT
-  , just $ mkConstMethod' "isScriptable" "isScriptableWithObject" [ptrT $ constT $ objT c_QObject] boolT
+  , test (qtVersion < [6]) $ mkConstMethod' "isScriptable" "isScriptableWithObject" [ptrT $ constT $ objT c_QObject] boolT
   , just $ mkConstMethod' "isStored" "isStored" np boolT
-  , just $ mkConstMethod' "isStored" "isStoredWithObject" [ptrT $ constT $ objT c_QObject] boolT
+  , test (qtVersion < [6]) $ mkConstMethod' "isStored" "isStoredWithObject" [ptrT $ constT $ objT c_QObject] boolT
   , just $ mkConstMethod' "isUser" "isUser" np boolT
-  , just $ mkConstMethod' "isUser" "isUserWithObject" [ptrT $ constT $ objT c_QObject] boolT
+  , test (qtVersion < [6]) $ mkConstMethod' "isUser" "isUserWithObject" [ptrT $ constT $ objT c_QObject] boolT
   , just $ mkConstMethod "isValid" np boolT
   , just $ mkConstMethod "isWritable" np boolT
   , just $ mkConstMethod "name" np $ ptrT $ constT charT
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMetaProperty.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMimeData.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMimeData.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QMimeData.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QMimeData.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QModelIndex.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QModelIndex.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QModelIndex.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -70,7 +70,7 @@
   makeClass (ident "QModelIndex") Nothing [] $
   collect
   [ just $ mkCtor "new" np
-  , just $ mkConstMethod "child" [intT, intT] $ objT c_QModelIndex
+  , test (qtVersion < [6]) $ mkConstMethod "child" [intT, intT] $ objT c_QModelIndex
   , just $ mkConstMethod "column" np intT
   , just $ mkConstMethod' "data" "getData" np $ objT c_QVariant
   , just $ mkConstMethod' "data" "getDataWithRole" [enumT e_ItemDataRole] $ objT c_QVariant
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QObject.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QOperatingSystemVersion.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QOperatingSystemVersion.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QOperatingSystemVersion.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QOperatingSystemVersion.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -43,14 +43,14 @@
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QOperatingSystemVersion"] [5, 9] $
+  makeQtModuleWithVersionBounds ["Core", "QOperatingSystemVersion"] (Just [5, 9]) Nothing $
   collect
   [ just $ qtExport c_QOperatingSystemVersion
   , just $ qtExport e_OSType
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPair.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPair.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPair.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPair.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPalette.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPalette.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPalette.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPalette.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QParallelAnimationGroup.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QParallelAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QParallelAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QParallelAnimationGroup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -31,14 +31,14 @@
 --import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
 --import Foreign.Hoppy.Generator.Types (voidT, enumT, flagsT, constT, objT, ptrT, refT)
 import Foreign.Hoppy.Generator.Version (collect)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QParallelAnimationGroup"] [4, 6] $
+  makeQtModuleWithVersionBounds ["Core", "QParallelAnimationGroup"] (Just [4, 6]) Nothing $
   [qtExport c_QParallelAnimationGroup]
 
 c_QParallelAnimationGroup =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPauseAnimation.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPauseAnimation.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPauseAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPauseAnimation.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -31,14 +31,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QAbstractAnimation (c_QAbstractAnimation)
 import Foreign.Hoppy.Generator.Types (intT, voidT)
 import Foreign.Hoppy.Generator.Version (collect, just)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QPauseAnimation"] [4, 6] $
+  makeQtModuleWithVersionBounds ["Core", "QPauseAnimation"] (Just [4, 6]) Nothing $
   [qtExport c_QPauseAnimation]
 
 c_QPauseAnimation =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPersistentModelIndex.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPersistentModelIndex.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPersistentModelIndex.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPersistentModelIndex.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -75,7 +75,7 @@
   collect
   [ just $ mkCtor "new" np
   , just $ mkCtor "newFromIndex" [objT c_QModelIndex]
-  , just $ mkConstMethod "child" [intT, intT] $ objT c_QPersistentModelIndex
+  , test (qtVersion < [6]) $ mkConstMethod "child" [intT, intT] $ objT c_QPersistentModelIndex
   , just $ mkConstMethod "column" np intT
   , just $ mkConstMethod' "data" "getData" np $ objT c_QVariant
   , just $ mkConstMethod' "data" "getDataWithRole" [enumT e_ItemDataRole] $ objT c_QVariant
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPluginLoader.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPluginLoader.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPluginLoader.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPluginLoader.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPoint.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPoint.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPoint.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPoint.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPointF.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPointF.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPointF.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPointF.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -128,7 +128,7 @@
   , just $ mkMethod' "start" "start" [refT $ constT $ objT c_QString, refT $ constT $ objT c_QStringList] voidT
   , just $ mkMethod' "start" "startWithProgramArgMode" [refT $ constT $ objT c_QString, refT $ constT $ objT c_QStringList, flagsT fl_OpenMode] voidT
   , just $ mkMethod' "start" "startWithCommand" [refT $ constT $ objT c_QString] voidT
-  , just $ mkMethod' "start" "startWithCommandMode" [refT $ constT $ objT c_QString, flagsT fl_OpenMode] voidT
+  , test (qtVersion < [6]) $ mkMethod' "start" "startWithCommandMode" [refT $ constT $ objT c_QString, flagsT fl_OpenMode] voidT
   , test (qtVersion >= [5, 1]) $ mkMethod' "start" "startWithMode" [flagsT fl_OpenMode] voidT
   , test (qtVersion >= [5, 10]) $ mkMethod' "startDetached" "startDetached" np boolT
   --, test (qtVersion >= [5, 10]) $ mkMethod' "startDetached" "startDetachedWithPid" [ptrT qlonglong] boolT
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcess.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcessEnvironment.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcessEnvironment.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcessEnvironment.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QProcessEnvironment.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -44,14 +44,14 @@
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Core.QStringList (c_QStringList)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QProcessEnvironment"] [4, 6]
+  makeQtModuleWithVersionBounds ["Core", "QProcessEnvironment"] (Just [4, 6]) Nothing
   [qtExport c_QProcessEnvironment]
 
 c_QProcessEnvironment =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPropertyAnimation.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPropertyAnimation.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QPropertyAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QPropertyAnimation.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,14 +33,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
 import Foreign.Hoppy.Generator.Types (objT, ptrT)
 import Foreign.Hoppy.Generator.Version (collect, just)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QPropertyAnimation"] [4, 6] $
+  makeQtModuleWithVersionBounds ["Core", "QPropertyAnimation"] (Just [4, 6]) Nothing $
   [qtExport c_QPropertyAnimation]
 
 c_QPropertyAnimation =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +41,7 @@
   )
 import Foreign.Hoppy.Generator.Types (doubleT, intT, uintT, ullongT, voidT, constT, objT, ptrT)
 import Foreign.Hoppy.Generator.Version (collect, just)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (quint32, quint64, qsizetype)
 
@@ -49,7 +49,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QRandomGenerator"] [5, 10] $
+  makeQtModuleWithVersionBounds ["Core", "QRandomGenerator"] (Just [5, 10]) Nothing $
   [qtExport c_QRandomGenerator]
 
 c_QRandomGenerator =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator64.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator64.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator64.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRandomGenerator64.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -39,7 +39,7 @@
   )
 import Foreign.Hoppy.Generator.Types (constT, ptrT)
 import Foreign.Hoppy.Generator.Version (collect, just)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (quint32, quint64, qsizetype)
 import Graphics.UI.Qtah.Generator.Interface.Core.QRandomGenerator (c_QRandomGenerator)
@@ -48,7 +48,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QRandomGenerator64"] [5, 10] $
+  makeQtModuleWithVersionBounds ["Core", "QRandomGenerator64"] (Just [5, 10]) Nothing $
   [qtExport c_QRandomGenerator64]
 
 c_QRandomGenerator64 =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRect.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRect.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRect.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRect.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRectF.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRectF.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QRectF.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QRectF.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QResource.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QResource.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QResource.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QResource.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +41,7 @@
 import Foreign.Hoppy.Generator.Types (ucharT, boolT, voidT, enumT, constT, objT, ptrT, refT)
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (qint64)
 
@@ -49,7 +49,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QResource"] [4, 2] $
+  makeQtModuleWithVersionBounds ["Core", "QResource"] (Just [4, 2]) Nothing $
   collect
   [ just $ qtExport c_QResource
   , test (qtVersion >= [5, 13]) $ qtExport e_Compression
@@ -67,7 +67,7 @@
   , test (qtVersion >= [5, 13]) $ mkConstMethod "compressionAlgorithm" np $ enumT e_Compression
   , just $ mkConstMethod' "data" "getData" np $ ptrT $ constT ucharT
   , just $ mkConstMethod "fileName" np $ objT c_QString
-  , just $ mkConstMethod "isCompressed" np boolT
+  , test (qtVersion < [6]) $ mkConstMethod "isCompressed" np boolT
   , just $ mkConstMethod "isValid" np boolT
   , test (qtVersion >= [5, 8]) $ mkConstMethod "lastModified" np $ objT c_QDateTime
   --, just $ mkConstMethod "locale" np $ objT c_QLocale
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSaveFile.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSaveFile.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSaveFile.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSaveFile.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -36,14 +36,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QFileDevice (c_QFileDevice)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QSaveFile"] [5, 1]
+  makeQtModuleWithVersionBounds ["Core", "QSaveFile"] (Just [5, 1]) Nothing
   [qtExport c_QSaveFile]
 
 c_QSaveFile =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSequentialAnimationGroup.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSequentialAnimationGroup.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSequentialAnimationGroup.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSequentialAnimationGroup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -36,14 +36,14 @@
 import Foreign.Hoppy.Generator.Types (intT, objT, ptrT)
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (listenerQAbstractAnimation)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QSequentialAnimationGroup"] [4, 6]
+  makeQtModuleWithVersionBounds ["Core", "QSequentialAnimationGroup"] (Just [4, 6]) Nothing
   [ QtExportClassAndSignals c_QSequentialAnimationGroup signals ]
 
 (c_QSequentialAnimationGroup, signals) =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSettings.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSettings.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSettings.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSettings.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSize.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSize.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSize.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSize.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSizeF.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSizeF.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSizeF.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSizeF.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStandardPaths.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStandardPaths.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStandardPaths.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStandardPaths.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -40,14 +40,14 @@
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Flags (flagsT)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QStandardPaths"] [5, 0] $
+  makeQtModuleWithVersionBounds ["Core", "QStandardPaths"] (Just [5, 0]) Nothing $
   collect
   [ just $ qtExport c_QStandardPaths
   , just $ qtExport e_StandardLocation
@@ -85,7 +85,7 @@
   , just "PicturesLocation"
   , just "TempLocation"
   , just "HomeLocation"
-  , just "DataLocation"
+  , test (qtVersion < [6]) "DataLocation"
   , just "CacheLocation"
   , just "GenericDataLocation"
   , just "RuntimeLocation"
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStaticPlugin.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStaticPlugin.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStaticPlugin.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStaticPlugin.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -31,17 +31,18 @@
   np,
   )
 import Foreign.Hoppy.Generator.Types (charT, constT, objT, ptrT)
-import Foreign.Hoppy.Generator.Version (collect, just)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
 --import Graphics.UI.Qtah.Generator.Interface.Core.QJsonObject (c_QJsonObject)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QStaticPlugin"] [5, 2] $
+  makeQtModuleWithVersionBounds ["Core", "QStaticPlugin"] (Just [5, 2]) Nothing $
   [qtExport c_QStaticPlugin]
 
 c_QStaticPlugin =
@@ -51,5 +52,5 @@
   collect
   [ just $ mkMethod' "instance" "getInstance" np $ ptrT $ objT c_QObject
   --, just $ mkConstMethod "metaData" np $ objT c_QJsonObject
-  , just $ mkMethod "rawMetaData" np $ ptrT $ constT charT
+  , test (qtVersion < [6]) $ mkMethod "rawMetaData" np $ ptrT $ constT charT
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -60,7 +60,23 @@
   classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Std.String (c_string)
-import Foreign.Hoppy.Generator.Types (doubleT, charT, constT, intT, objT, ptrT, refT, voidT, longT, ulongT, uintT, shortT, ushortT, boolT, floatT)
+import Foreign.Hoppy.Generator.Types (
+  boolT,
+  charT,
+  constT,
+  doubleT,
+  floatT,
+  intT,
+  longT,
+  objT,
+  ptrT,
+  refT,
+  shortT,
+  uintT,
+  ulongT,
+  ushortT,
+  voidT,
+  )
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
@@ -80,12 +96,13 @@
 
 aModule =
   AQtModule $
-  makeQtModule ["Core", "QString"]
-  [ qtExport c_QString
-  , qtExport e_SectionFlag
-  , qtExport fl_SectionFlags
-  , qtExport e_NormalizationForm
-  , qtExport e_SplitBehavior
+  makeQtModule ["Core", "QString"] $
+  collect
+  [ just $ qtExport c_QString
+  , just $ qtExport e_SectionFlag
+  , just $ qtExport fl_SectionFlags
+  , just $ qtExport e_NormalizationForm
+  , test (qtVersion < [6]) $ qtExport e_SplitBehavior
   ]
 
 c_QString =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QString.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringList.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringList.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringList.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringList.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringListModel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringListModel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringListModel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QStringListModel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSysInfo.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSysInfo.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QSysInfo.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QSysInfo.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextCodec.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextCodec.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextCodec.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextCodec.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -39,14 +39,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QChar (c_QChar)
 import Graphics.UI.Qtah.Generator.Interface.Core.QList (c_QListInt, c_QListQByteArray)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModule ["Core", "QTextCodec"]
+  makeQtModuleWithVersionBounds ["Core", "QTextCodec"] Nothing (Just [6])
   [ qtExport c_QTextCodec
   ]
 
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextDecoder.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextDecoder.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextDecoder.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextDecoder.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -34,14 +34,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QTextCodec (c_QTextCodec)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModule ["Core", "QTextDecoder"] $
+  makeQtModuleWithVersionBounds ["Core", "QTextDecoder"] Nothing (Just [6])
   [qtExport c_QTextDecoder]
 
 c_QTextDecoder =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextEncoder.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextEncoder.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextEncoder.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTextEncoder.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -36,14 +36,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QChar (c_QChar)
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
 -- TODO import Graphics.UI.Qtah.Generator.Interface.Core.QStringView (c_QStringView)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModule ["Core", "QTextEncoder"] $
+  makeQtModuleWithVersionBounds ["Core", "QTextEncoder"] Nothing (Just [6])
   [qtExport c_QTextEncoder]
 
 c_QTextEncoder =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QThread.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTime.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTime.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTime.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTime.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,7 +41,8 @@
   classAddFeatures,
   )
 import Foreign.Hoppy.Generator.Types (boolT, intT, voidT, enumT, constT, objT, refT)
-import Foreign.Hoppy.Generator.Version (collect, just)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
@@ -68,7 +69,7 @@
   , just $ mkConstMethod "addMSecs" [intT] $ objT c_QTime
   , just $ mkConstMethod "addSecs" [intT] $ objT c_QTime
   , just $ mkStaticMethod "currentTime" np $ objT c_QTime
-  , just $ mkConstMethod "elapsed" np intT
+  , test (qtVersion < [6]) $ mkConstMethod "elapsed" np intT
   , just $ mkStaticMethod "fromMSecsSinceStartOfDay" [intT] $ objT c_QTime
   , just $ mkStaticMethod' "fromString" "fromString" [refT $ constT $ objT c_QString] $ objT c_QTime
   , just $ mkStaticMethod' "fromString" "fromStringWithDateFormat" [refT $ constT $ objT c_QString, enumT e_DateFormat] $ objT c_QTime
@@ -82,12 +83,12 @@
   , just $ mkConstMethod "msec" np intT
   , just $ mkConstMethod "msecsSinceStartOfDay" np intT
   , just $ mkConstMethod "msecsTo" [refT $ constT $ objT c_QTime] intT
-  , just $ mkMethod "restart" np intT
+  , test (qtVersion < [6]) $ mkMethod "restart" np intT
   , just $ mkConstMethod "second" np intT
   , just $ mkConstMethod "secsTo" [refT $ constT $ objT c_QTime] intT
   , just $ mkMethod' "setHMS" "setHMS" [intT, intT, intT ] boolT
   , just $ mkMethod' "setHMS" "setHMSWithMs" [intT, intT, intT, intT] boolT
-  , just $ mkMethod "start" np voidT
+  , test (qtVersion < [6]) $ mkMethod "start" np voidT
   , just $ mkConstMethod' "toString" "toString" np $ objT c_QString
   , just $ mkConstMethod' "toString" "toStringWithDateFormat" [enumT e_DateFormat] $ objT c_QString
   , just $ mkConstMethod' "toString" "toStringWithStringFormat" [objT c_QString] $ objT c_QString
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimeZone.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimeZone.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimeZone.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimeZone.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -51,14 +51,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
 import {-#SOURCE#-} Graphics.UI.Qtah.Generator.Interface.Core.QDateTime (c_QDateTime)
 --import Graphics.UI.Qtah.Generator.Interface.Core.QLocale (c_QLocale, e_Country)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QTimeZone"] [5, 2] $
+  makeQtModuleWithVersionBounds ["Core", "QTimeZone"] (Just [5, 2]) Nothing $
   collect
   [ just $ qtExport c_QTimeZone
   , just $ qtExport e_NameType
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimer.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimer.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimer.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimer.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimerEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimerEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimerEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTimerEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTranslator.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTranslator.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QTranslator.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QTranslator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QUrl.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QUrl.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QUrl.hs
@@ -0,0 +1,241 @@
+-- This file is part of Qtah.
+--
+-- Copyright 2024 The Qtah Authors.
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU Lesser General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+module Graphics.UI.Qtah.Generator.Interface.Core.QUrl (
+  aModule,
+  c_QUrl,
+  ) where
+
+import Foreign.Hoppy.Generator.Spec (
+  (~:),
+  addReqIncludes,
+  classSetConversionToGc,
+  classSetEntityPrefix,
+  ident,
+  ident1,
+  includeStd,
+  makeClass,
+  mkConstMethod,
+  mkConstMethod',
+  mkCtor,
+  mkMethod,
+  mkMethod',
+  mkStaticMethod,
+  mkStaticMethod',
+  np,
+  )
+import Foreign.Hoppy.Generator.Spec.ClassFeature (
+  ClassFeature (Assignable, Copyable, Equatable),
+  classAddFeatures,
+  )
+import Foreign.Hoppy.Generator.Types (boolT, enumT, intT, objT, refT, voidT)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
+import Graphics.UI.Qtah.Generator.Flags (flagsT)
+import Graphics.UI.Qtah.Generator.Interface.Core.QByteArray (c_QByteArray)
+import Graphics.UI.Qtah.Generator.Interface.Core.QList (c_QListQUrl)
+import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
+import Graphics.UI.Qtah.Generator.Interface.Core.QStringList (c_QStringList)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
+import Graphics.UI.Qtah.Generator.Types
+
+{-# ANN module "HLint: ignore Use camelCase" #-}
+
+aModule =
+  AQtModule $
+  makeQtModule ["Core", "QUrl"] $
+  collect
+  [ just $ qtExport c_QUrl
+  , test (qtVersion >= [6, 3]) $ qtExport e_AceProcessingOption
+  , test (qtVersion >= [6, 3]) $ qtExport fl_AceProcessingOptions
+  , just $ qtExport e_ComponentFormattingOption
+  , just $ qtExport fl_ComponentFormattingOptions
+  , just $ qtExport e_UrlFormattingOption
+  , just $ qtExport fl_FormattingOptions
+  , just $ qtExport e_ParsingMode
+  ]
+
+c_QUrl =
+  addReqIncludes [includeStd "QUrl"] $
+  classSetConversionToGc $
+  classAddFeatures [Assignable, Copyable, Equatable] $
+  classSetEntityPrefix "" $
+  makeClass (ident "QUrl") Nothing [] $
+  collect
+  [ just $ mkCtor "new" np
+  , just $ mkCtor "newWithString" [objT c_QString]
+  , just $ mkCtor "newWithStringAndParsingMode" [objT c_QString, enumT e_ParsingMode]
+  , just $ mkConstMethod "adjusted" [flagsT fl_FormattingOptions] $ objT c_QUrl
+  , just $ mkConstMethod' "authority" "authority" np $ objT c_QString
+  , just $ mkConstMethod' "authority" "authorityWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkMethod "clear" np voidT
+  , just $ mkConstMethod "errorString" np $ objT c_QString
+  , just $ mkConstMethod' "fileName" "fileName" np $ objT c_QString
+  , just $ mkConstMethod' "fileName" "fileNameWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod' "fragment" "fragment" np $ objT c_QString
+  , just $ mkConstMethod' "fragment" "fragmentWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod "hasFragment" np boolT
+  , just $ mkConstMethod "hasQuery" np boolT
+  , just $ mkConstMethod' "host" "host" np $ objT c_QString
+  , just $ mkConstMethod' "host" "hostWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod "isEmpty" np boolT
+  , just $ mkConstMethod "isLocalFile" np boolT
+  , just $ mkConstMethod "isParentOf" ["childUrl" ~: objT c_QUrl] boolT
+  , just $ mkConstMethod "isRelative" np boolT
+  , just $ mkConstMethod "isValid" np boolT
+  , just $ mkConstMethod "matches" [objT c_QUrl, flagsT fl_FormattingOptions] boolT
+  , just $ mkConstMethod' "password" "password" np $ objT c_QString
+  , just $ mkConstMethod' "password" "passwordWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod' "path" "path" np $ objT c_QString
+  , just $ mkConstMethod' "path" "pathWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod' "port" "port" np intT
+  , just $ mkConstMethod' "port" "portWithDefault" ["defaultPort" ~: intT] intT
+  , just $ mkConstMethod' "query" "query" np $ objT c_QString
+  , just $ mkConstMethod' "query" "queryWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod "resolved" ["relative" ~: objT c_QUrl] $ objT c_QUrl
+  , just $ mkConstMethod "scheme" np $ objT c_QString
+  , just $ mkMethod' "setAuthority" "setAuthority" [objT c_QString] voidT
+  , just $ mkMethod' "setAuthority" "setAuthorityWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setFragment" "setFragment" [objT c_QString] voidT
+  , just $ mkMethod' "setFragment" "setFragmentWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setHost" "setHost" [objT c_QString] voidT
+  , just $ mkMethod' "setHost" "setHostWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setPassword" "setPassword" [objT c_QString] voidT
+  , just $ mkMethod' "setPassword" "setPasswordWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setPath" "setPath" [objT c_QString] voidT
+  , just $ mkMethod' "setPath" "setPathWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setQuery" "setQuery" [objT c_QString] voidT
+  , just $ mkMethod' "setQuery" "setQueryWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  -- TODO setQuery(QUrlQuery)
+  , just $ mkMethod "setScheme" [objT c_QString] voidT
+  , just $ mkMethod' "setUrl" "setUrl" [objT c_QString] voidT
+  , just $ mkMethod' "setUrl" "setUrlWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setUserInfo" "setUserInfo" [objT c_QString] voidT
+  , just $ mkMethod' "setUserInfo" "setUserInfoWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod' "setUserName" "setUserName" [objT c_QString] voidT
+  , just $ mkMethod' "setUserName" "setUserNameWithParsingMode"
+    [objT c_QString, enumT e_ParsingMode] voidT
+  , just $ mkMethod "swap" [refT $ objT c_QUrl] voidT
+  -- TODO toCFURL?
+  , just $ mkConstMethod' "toDisplayString" "toDisplayString" np $ objT c_QString
+  , just $ mkConstMethod' "toDisplayString" "toDisplayStringWithOptions"
+    [flagsT fl_FormattingOptions] $ objT c_QString
+  , just $ mkConstMethod' "toEncoded" "toEncoded" np $ objT c_QByteArray
+  , just $ mkConstMethod' "toEncoded" "toEncodedWithOptions"
+    [flagsT fl_FormattingOptions] $ objT c_QByteArray
+  , just $ mkConstMethod "toLocalFile" np $ objT c_QString
+  -- TODO toNSURL?
+  , just $ mkConstMethod' "toString" "toString" np $ objT c_QString
+  , just $ mkConstMethod' "toString" "toStringWithOptions"
+    [flagsT fl_FormattingOptions] $ objT c_QString
+  , just $ mkConstMethod' "url" "url" np $ objT c_QString
+  , just $ mkConstMethod' "url" "urlWithOptions"
+    [flagsT fl_FormattingOptions] $ objT c_QString
+  , just $ mkConstMethod' "userInfo" "userInfo" np $ objT c_QString
+  , just $ mkConstMethod' "userInfo" "userInfoWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+  , just $ mkConstMethod' "userName" "userName" np $ objT c_QString
+  , just $ mkConstMethod' "userName" "userNameWithOptions" [flagsT fl_ComponentFormattingOptions] $
+    objT c_QString
+
+  , test (qtVersion >= [6, 3]) $
+    mkStaticMethod' "fromAce" "fromAce" [objT c_QByteArray] $ objT c_QString
+  , test (qtVersion >= [6, 3]) $
+    mkStaticMethod' "fromAce" "fromAceWithOptions"
+    [objT c_QByteArray, flagsT fl_AceProcessingOptions] $
+    objT c_QString
+  , just $ mkStaticMethod "fromLocalFile" [objT c_QString] $ objT c_QUrl
+  , just $ mkStaticMethod "fromPercentEncoding" [objT c_QByteArray] $ objT c_QUrl
+  , just $ mkStaticMethod "fromStringList" [objT c_QStringList] $ objT c_QListQUrl
+  , just $ mkStaticMethod "fromUserInput" [objT c_QString] $ objT c_QUrl
+  , just $ mkStaticMethod "idnWhitelist" np $ objT c_QStringList
+  , just $ mkStaticMethod "setIdnWhitelist" [objT c_QStringList] voidT
+  , test (qtVersion >= [6, 3]) $
+    mkStaticMethod' "toAce" "toAce" [objT c_QString] $ objT c_QByteArray
+  , test (qtVersion >= [6, 3]) $
+    mkStaticMethod' "toAce" "toAceWithOptions"
+    [objT c_QString, flagsT fl_AceProcessingOptions] $
+    objT c_QByteArray
+  , just $ mkStaticMethod' "toPercentEncoding" "toPercentEncoding" [objT c_QString] $
+    objT c_QByteArray
+  , just $ mkStaticMethod' "toPercentEncoding" "toPercentEncodingWithExcludeAndInclude"
+    ["input" ~: objT c_QString, "exclude" ~: objT c_QByteArray, "include" ~: objT c_QByteArray] $
+    objT c_QByteArray
+  , just $ mkStaticMethod' "toStringList" "toStringList" [objT c_QListQUrl] $ objT c_QStringList
+  , just $ mkStaticMethod' "toStringList" "toStringListWithOptions"
+    [objT c_QListQUrl, flagsT fl_FormattingOptions] $ objT c_QStringList
+  ]
+
+(e_AceProcessingOption, fl_AceProcessingOptions) =
+  makeQtEnumAndFlags (ident1 "QUrl" "AceProcessingOption") "AceProcessingOptions"
+  [includeStd "QUrl"]
+  [ "IgnoreIDNWhitelist"
+  , "AceTransitionalProcessing"
+  ]
+
+(e_ComponentFormattingOption, fl_ComponentFormattingOptions) =
+  makeQtEnumAndFlags (ident1 "QUrl" "ComponentFormattingOption") "ComponentFormattingOptions"
+  [includeStd "QUrl"]
+  [ "PrettyDecoded"
+  , "EncodeSpaces"
+  , "EncodeUnicode"
+  , "EncodeDelimiters"
+  , "EncodeReserved"
+  , "DecodeReserved"
+  , "FullyEncoded"
+  , "FullyDecoded"
+  ]
+
+-- Note that the enum and flags names don't match exactly here.
+(e_UrlFormattingOption, fl_FormattingOptions) =
+  makeQtEnumAndFlags (ident1 "QUrl" "UrlFormattingOption") "FormattingOptions" [includeStd "QUrl"]
+  [ "None"
+  , "RemoveScheme"
+  , "RemovePassword"
+  , "RemoveUserInfo"
+  , "RemovePort"
+  , "RemoveAuthority"
+  , "RemovePath"
+  , "RemoveQuery"
+  , "RemoveFragment"
+  , "RemoveFilename"
+  , "PreferLocalFile"
+  , "StripTrailingSlash"
+  , "NormalizePathSegments"
+  ]
+
+e_ParsingMode =
+  makeQtEnum (ident1 "QUrl" "ParsingMode") [includeStd "QUrl"]
+  [ "TolerantMode"
+  , "StrictMode"
+  , "DecodedMode"
+  ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QUrl.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QUrl.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QUrl.hs-boot
@@ -0,0 +1,24 @@
+-- This file is part of Qtah.
+--
+-- Copyright 2024 The Qtah Authors.
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU Lesser General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+module Graphics.UI.Qtah.Generator.Interface.Core.QUrl (
+  c_QUrl,
+  ) where
+
+import Foreign.Hoppy.Generator.Spec (Class)
+
+c_QUrl :: Class
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -84,7 +84,7 @@
   classSetConversionToGc $
   classAddFeatures (collect
                     [ just Assignable
-                    , test (qtVersion >= [5, 0]) Comparable
+                    , test (qtVersion >= [5, 0] && qtVersion < [6]) Comparable
                     , just Copyable
                     , just Equatable
                     ]) $
@@ -161,60 +161,61 @@
   ]
 
 e_Type =
-  makeQtEnum (ident1 "QVariant" "Type") [includeStd "QVariant"]
-  [ "Invalid"
-  , "BitArray"
-  , "Bitmap"
-  , "Bool"
-  , "Brush"
-  , "ByteArray"
-  , "Char"
-  , "Color"
-  , "Cursor"
-  , "Date"
-  , "DateTime"
-  , "Double"
-  , "EasingCurve"
-  , "Font"
-  , "Hash"
-  , "Icon"
-  , "Image"
-  , "Int"
-  , "KeySequence"
-  , "Line"
-  , "LineF"
-  , "List"
-  , "Locale"
-  , "LongLong"
-  , "Map"
-  , "Matrix"
-  , "Transform"
-  , "Matrix4x4"
-  , "Palette"
-  , "Pen"
-  , "Pixmap"
-  , "Point"
+  makeQtEnum (ident1 "QVariant" "Type") [includeStd "QVariant"] $
+  collect
+  [ just "Invalid"
+  , just "BitArray"
+  , just "Bitmap"
+  , just "Bool"
+  , just "Brush"
+  , just "ByteArray"
+  , just "Char"
+  , just "Color"
+  , just "Cursor"
+  , just "Date"
+  , just "DateTime"
+  , just "Double"
+  , just "EasingCurve"
+  , just "Font"
+  , just "Hash"
+  , just "Icon"
+  , just "Image"
+  , just "Int"
+  , just "KeySequence"
+  , just "Line"
+  , just "LineF"
+  , just "List"
+  , just "Locale"
+  , just "LongLong"
+  , just "Map"
+  , test (qtVersion < [6]) "Matrix"
+  , just "Transform"
+  , just "Matrix4x4"
+  , just "Palette"
+  , just "Pen"
+  , just "Pixmap"
+  , just "Point"
     -- PointArray omitted -- same value as Polygon.
-  , "PointF"
-  , "Polygon"
-  , "Quaternion"
-  , "Rect"
-  , "RectF"
-  , "RegExp"
-  , "Region"
-  , "Size"
-  , "SizeF"
-  , "SizePolicy"
-  , "String"
-  , "StringList"
-  , "TextFormat"
-  , "TextLength"
-  , "Time"
-  , "UInt"
-  , "ULongLong"
-  , "Url"
-  , "Vector2D"
-  , "Vector3D"
-  , "Vector4D"
-  , "UserType"
+  , just "PointF"
+  , just "Polygon"
+  , just "Quaternion"
+  , just "Rect"
+  , just "RectF"
+  , test (qtVersion < [6]) "RegExp"
+  , just "Region"
+  , just "Size"
+  , just "SizeF"
+  , just "SizePolicy"
+  , just "String"
+  , just "StringList"
+  , just "TextFormat"
+  , just "TextLength"
+  , just "Time"
+  , just "UInt"
+  , just "ULongLong"
+  , just "Url"
+  , just "Vector2D"
+  , just "Vector3D"
+  , just "Vector4D"
+  , just "UserType"
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariant.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariantAnimation.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariantAnimation.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariantAnimation.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVariantAnimation.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -35,7 +35,7 @@
 import Foreign.Hoppy.Generator.Types (voidT, constT, objT, refT)
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (listenerRefConstQVariant)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (qreal)
 
@@ -43,7 +43,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QVariantAnimation"] [4, 6]
+  makeQtModuleWithVersionBounds ["Core", "QVariantAnimation"] (Just [4, 6]) Nothing
   [ QtExportClassAndSignals c_QVariantAnimation signals ]
 
 (c_QVariantAnimation, signals) =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -29,11 +29,11 @@
   c_QVectorQPointF,
   c_QVectorQRgb,
   c_QVectorQString,
-  c_QVectorUInt,
   c_QVectorQXmlStreamAttribute,
   c_QVectorQXmlStreamEntityDeclaration,
   c_QVectorQXmlStreamNamespaceDeclaration,
   c_QVectorQXmlStreamNotationDeclaration,
+  c_QVectorUInt,
   ) where
 
 import Control.Monad (forM_, when)
@@ -93,7 +93,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Gui.QColor (qrgb)
 import Graphics.UI.Qtah.Generator.Interface.Imports
 import Graphics.UI.Qtah.Generator.Module (
-  AModule (AQtModule), QtModule, makeQtModule, makeQtModuleWithMinVersion,
+  AModule (AQtModule), QtModule, makeQtModule, makeQtModuleWithVersionBounds,
   )
 import Graphics.UI.Qtah.Generator.Types
 
@@ -266,7 +266,7 @@
 
 createModuleWithMinVersion :: String -> Version -> Contents -> QtModule
 createModuleWithMinVersion name version contents =
-  makeQtModuleWithMinVersion ["Core", "QVector", name] version $
+  makeQtModuleWithVersionBounds ["Core", "QVector", name] (Just version) Nothing $
   toExports contents
 
 allModules :: [AModule]
@@ -278,11 +278,11 @@
   , qmod_QPointF
   , qmod_QRgb
   , qmod_QString
-  , qmod_UInt
   , qmod_QXmlStreamAttribute
   , qmod_QXmlStreamEntityDeclaration
   , qmod_QXmlStreamNamespaceDeclaration
   , qmod_QXmlStreamNotationDeclaration
+  , qmod_UInt
   ]
 
 qmod_Int :: QtModule
@@ -344,15 +344,6 @@
 c_QVectorQString :: Class
 c_QVectorQString = c_QVector contents_QString
 
-qmod_UInt :: QtModule
-qmod_UInt = createModule "UInt" contents_UInt
-
-contents_UInt :: Contents
-contents_UInt = instantiate "QVectorUInt" uintT mempty
-
-c_QVectorUInt :: Class
-c_QVectorUInt = c_QVector contents_UInt
-
 qmod_QXmlStreamAttribute :: QtModule
 qmod_QXmlStreamAttribute = createModule "QXmlStreamAttribute" contents_QXmlStreamAttribute
 
@@ -388,3 +379,12 @@
 
 c_QVectorQXmlStreamNotationDeclaration :: Class
 c_QVectorQXmlStreamNotationDeclaration = c_QVector contents_QXmlStreamNotationDeclaration
+
+qmod_UInt :: QtModule
+qmod_UInt = createModule "UInt" contents_UInt
+
+contents_UInt :: Contents
+contents_UInt = instantiate "QVectorUInt" uintT mempty
+
+c_QVectorUInt :: Class
+c_QVectorUInt = c_QVector contents_UInt
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVector.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVersionNumber.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVersionNumber.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QVersionNumber.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QVersionNumber.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,14 +41,14 @@
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Core.QVector (c_QVectorInt)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QVersionNumber"] [5, 6] $
+  makeQtModuleWithVersionBounds ["Core", "QVersionNumber"] (Just [5, 6]) Nothing $
   [qtExport c_QVersionNumber]
 
 c_QVersionNumber =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttribute.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttribute.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttribute.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttribute.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttributes.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttributes.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttributes.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamAttributes.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityDeclaration.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityDeclaration.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityResolver.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityResolver.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityResolver.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamEntityResolver.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -31,14 +31,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Foreign.Hoppy.Generator.Types (constT, objT, refT)
 import Foreign.Hoppy.Generator.Version (collect, just)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Core", "QXmlStreamEntityResolver"] [4, 4] $
+  makeQtModuleWithVersionBounds ["Core", "QXmlStreamEntityResolver"] (Just [4, 4]) Nothing $
   [qtExport c_QXmlStreamEntityResolver]
 
 c_QXmlStreamEntityResolver =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNamespaceDeclaration.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNamespaceDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNamespaceDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNamespaceDeclaration.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNotationDeclaration.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNotationDeclaration.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNotationDeclaration.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamNotationDeclaration.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamReader.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamReader.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamReader.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamReader.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamWriter.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamWriter.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamWriter.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/QXmlStreamWriter.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,6 +33,9 @@
   mkProp,
   np,
   )
+import Foreign.Hoppy.Generator.Types (intT, boolT, charT, voidT, constT, objT, ptrT, refT)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QTextCodec (c_QTextCodec)
 import Graphics.UI.Qtah.Generator.Interface.Core.QIODevice (c_QIODevice)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
@@ -40,8 +43,6 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QXmlStreamReader (c_QXmlStreamReader)
 import Graphics.UI.Qtah.Generator.Interface.Core.QXmlStreamAttributes (c_QXmlStreamAttributes)
 import Graphics.UI.Qtah.Generator.Interface.Core.QXmlStreamAttribute (c_QXmlStreamAttribute)
-import Foreign.Hoppy.Generator.Types (intT, boolT, charT, voidT, constT, objT, ptrT, refT)
-import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
 
@@ -63,11 +64,11 @@
   , just $ mkCtor "newWithIODevice" [ptrT $ objT c_QIODevice]
   , just $ mkProp "autoFormatting" boolT
   , just $ mkProp "autoFormattingIndent" intT
-  , just $ mkConstMethod "codec" np $ ptrT $ objT c_QTextCodec
+  , test (qtVersion < [6]) $ mkConstMethod "codec" np $ ptrT $ objT c_QTextCodec
   , just $ mkProp "device" $ ptrT $ objT c_QIODevice
   , just $ mkConstMethod "hasError" np boolT
-  , just $ mkMethod' "setCodec" "setCodec" [ptrT $ objT c_QTextCodec] voidT
-  , just $ mkMethod' "setCodec" "setCodecWithPtrChar" [ptrT $ constT charT] voidT
+  , test (qtVersion < [6]) $ mkMethod' "setCodec" "setCodec" [ptrT $ objT c_QTextCodec] voidT
+  , test (qtVersion < [6]) $ mkMethod' "setCodec" "setCodecWithPtrChar" [ptrT $ constT charT] voidT
   , just $ mkMethod' "writeAttribute" "writeAttributeWithNamespaceUriAndNameAndValue" [refT $ constT $ objT c_QString, refT $ constT $ objT c_QString, refT $ constT $ objT c_QString] voidT
   , just $ mkMethod' "writeAttribute" "writeAttributeWithQualifiedNameAndValue" [refT $ constT $ objT c_QString, refT $ constT $ objT c_QString] voidT
   , just $ mkMethod' "writeAttribute" "writeAttribute" [refT $ constT $ objT c_QXmlStreamAttribute] voidT
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -399,7 +399,7 @@
   , test (qtVersion >= [5, 10]) "AA_CompressTabletEvents"
   , test (qtVersion >= [5, 8]) "AA_DontCheckOpenGLContextThreadAffinity"
   , test (qtVersion >= [5, 10]) "AA_DisableShaderDiskCache"
-  , test (qtVersion >= [5, 10]) "AA_DisableWindowContextHelpButton"
+  , test (qtVersion >= [5, 10] && qtVersion < [6]) "AA_DisableWindowContextHelpButton"
   ]
 
 e_ArrowType =
@@ -552,12 +552,12 @@
   [ just "TextDate"
   , just "ISODate"
   , test (qtVersion >= [5, 8]) "ISODateWithMs"
-  , just "SystemLocaleShortDate"
-  , just "SystemLocaleLongDate"
-  , just "DefaultLocaleShortDate"
-  , just "DefaultLocaleLongDate"
-  , just "SystemLocaleDate"
-  , just "LocaleDate"
+  , test (qtVersion < [6]) "SystemLocaleShortDate"
+  , test (qtVersion < [6]) "SystemLocaleLongDate"
+  , test (qtVersion < [6]) "DefaultLocaleShortDate"
+  , test (qtVersion < [6]) "DefaultLocaleLongDate"
+  , test (qtVersion < [6]) "SystemLocaleDate"
+  , test (qtVersion < [6]) "LocaleDate"
   , just "RFC2822Date"
   ]
 
@@ -759,7 +759,7 @@
   makeQtEnumAndFlags (ident1 "Qt" "InputMethodQuery") "InputMethodQueries" qtInclude $
   collect
   [ just "ImEnabled"
-  , just "ImMicroFocus"
+  , test (qtVersion < [6]) "ImMicroFocus"
   , just "ImCursorRectangle"
   , just "ImFont"
   , just "ImCursorPosition"
@@ -1211,56 +1211,58 @@
   ]
 
 (e_MatchFlag, fl_MatchFlags) =
-  makeQtEnumAndFlags (ident1 "Qt" "MatchFlag") "MatchFlags" qtInclude
-  [ "MatchExactly"
-  , "MatchFixedString"
-  , "MatchContains"
-  , "MatchStartsWith"
-  , "MatchEndsWith"
-  , "MatchCaseSensitive"
-  , "MatchRegExp"
-  , "MatchWildcard"
-  , "MatchWrap"
-  , "MatchRecursive"
+  makeQtEnumAndFlags (ident1 "Qt" "MatchFlag") "MatchFlags" qtInclude $
+  collect
+  [ just "MatchExactly"
+  , just "MatchFixedString"
+  , just "MatchContains"
+  , just "MatchStartsWith"
+  , just "MatchEndsWith"
+  , just "MatchCaseSensitive"
+  , test (qtVersion < [6]) "MatchRegExp"
+  , just "MatchWildcard"
+  , just "MatchWrap"
+  , just "MatchRecursive"
   ]
 
 (e_MouseButton, fl_MouseButtons) =
-  makeQtEnumAndFlags (ident1 "Qt" "MouseButton") "MouseButtons" qtInclude
-  [ "NoButton"
-  , "AllButtons"
-  , "LeftButton"
-  , "RightButton"
-  , "MidButton"
-  , "MiddleButton"
-  , "BackButton"
-  , "XButton1"
-  , "ExtraButton1"
-  , "ForwardButton"
-  , "XButton2"
-  , "ExtraButton2"
-  , "TaskButton"
-  , "ExtraButton3"
-  , "ExtraButton4"
-  , "ExtraButton5"
-  , "ExtraButton6"
-  , "ExtraButton7"
-  , "ExtraButton8"
-  , "ExtraButton9"
-  , "ExtraButton10"
-  , "ExtraButton11"
-  , "ExtraButton12"
-  , "ExtraButton13"
-  , "ExtraButton14"
-  , "ExtraButton15"
-  , "ExtraButton16"
-  , "ExtraButton17"
-  , "ExtraButton18"
-  , "ExtraButton19"
-  , "ExtraButton20"
-  , "ExtraButton21"
-  , "ExtraButton22"
-  , "ExtraButton23"
-  , "ExtraButton24"
+  makeQtEnumAndFlags (ident1 "Qt" "MouseButton") "MouseButtons" qtInclude $
+  collect
+  [ just "NoButton"
+  , just "AllButtons"
+  , just "LeftButton"
+  , just "RightButton"
+  , test (qtVersion < [6]) "MidButton"
+  , just "MiddleButton"
+  , just "BackButton"
+  , just "XButton1"
+  , just "ExtraButton1"
+  , just "ForwardButton"
+  , just "XButton2"
+  , just "ExtraButton2"
+  , just "TaskButton"
+  , just "ExtraButton3"
+  , just "ExtraButton4"
+  , just "ExtraButton5"
+  , just "ExtraButton6"
+  , just "ExtraButton7"
+  , just "ExtraButton8"
+  , just "ExtraButton9"
+  , just "ExtraButton10"
+  , just "ExtraButton11"
+  , just "ExtraButton12"
+  , just "ExtraButton13"
+  , just "ExtraButton14"
+  , just "ExtraButton15"
+  , just "ExtraButton16"
+  , just "ExtraButton17"
+  , just "ExtraButton18"
+  , just "ExtraButton19"
+  , just "ExtraButton20"
+  , just "ExtraButton21"
+  , just "ExtraButton22"
+  , just "ExtraButton23"
+  , just "ExtraButton24"
   ]
 
 (e_MouseEventFlag, fl_MouseEventFlags) =
@@ -1271,10 +1273,12 @@
 e_MouseEventFlag_minVersion = [5, 3]
 
 e_MouseEventSource =
-  makeQtEnum (ident1 "Qt" "MouseEventSource") qtInclude
-  [ "MouseEventNotSynthesized"
-  , "MouseEventSynthesizedBySystem"
-  , "MouseEventSynthesizedByQt"
+  makeQtEnum (ident1 "Qt" "MouseEventSource") qtInclude $
+  collect
+  [ just "MouseEventNotSynthesized"
+  , just "MouseEventSynthesizedBySystem"
+  , just "MouseEventSynthesizedByQt"
+  , test (qtVersion >= [5, 6]) $ "MouseEventSynthesizedByApplication"
   ]
 
 e_MouseEventSource_minVersion = [5, 3]
@@ -1514,33 +1518,33 @@
   collect
   [ just "WA_AcceptDrops"
   , just "WA_AlwaysShowToolTips"
-  , just "WA_ContentsPropagated"
+  , test (qtVersion < [6]) "WA_ContentsPropagated"
   , just "WA_CustomWhatsThis"
   , just "WA_DeleteOnClose"
   , just "WA_Disabled"
   , just "WA_DontShowOnScreen"
   , just "WA_ForceDisabled"
   , just "WA_ForceUpdatesDisabled"
-  , just "WA_GroupLeader"
+  , test (qtVersion < [6]) "WA_GroupLeader"
   , just "WA_Hover"
   , just "WA_InputMethodEnabled"
   , just "WA_KeyboardFocusChange"
   , just "WA_KeyCompression"
   , just "WA_LayoutOnEntireRect"
   , just "WA_LayoutUsesWidgetRect"
-  , just "WA_MacNoClickThrough"
+  , test (qtVersion < [6]) "WA_MacNoClickThrough"
   , just "WA_MacOpaqueSizeGrip"
   , just "WA_MacShowFocusRect"
   , just "WA_MacNormalSize"
   , just "WA_MacSmallSize"
   , just "WA_MacMiniSize"
-  , just "WA_MacVariableSize"
-  , just "WA_MacBrushedMetal"
+  , test (qtVersion < [6]) "WA_MacVariableSize"
+  , test (qtVersion < [6]) "WA_MacBrushedMetal"
   , just "WA_Mapped"
   , just "WA_MouseNoMask"
   , just "WA_MouseTracking"
   , just "WA_Moved"
-  , just "WA_MSWindowsUseDirect3D"
+  , test (qtVersion < [6]) "WA_MSWindowsUseDirect3D"
   , just "WA_NoChildEventsForParent"
   , just "WA_NoChildEventsFromChildren"
   , just "WA_NoMouseReplay"
@@ -1589,7 +1593,7 @@
   , just "WA_X11NetWmWindowTypeNotification"
   , just "WA_X11NetWmWindowTypeCombo"
   , just "WA_X11NetWmWindowTypeDND"
-  , just "WA_MacFrameworkScaled"
+  , test (qtVersion < [6]) "WA_MacFrameworkScaled"
   , just "WA_AcceptTouchEvents"
   , just "WA_TouchPadAcceptSingleTouchEvents"
   , just "WA_X11DoNotAcceptFocus"
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -63,6 +63,7 @@
 import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QShowEvent as QShowEvent
 import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QStandardItemModel as QStandardItemModel
 import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QSurface as QSurface
+import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QTextDocument as QTextDocument
 import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QTransform as QTransform
 import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QValidator as QValidator
 import qualified Graphics.UI.Qtah.Generator.Interface.Gui.QWheelEvent as QWheelEvent
@@ -123,6 +124,7 @@
   , QStandardItemModel.itemModule
   , QStandardItemModel.itemListModule
   , QSurface.aModule
+  , QTextDocument.aModule
   , QTransform.aModule
   , QValidator.aModule
   , QWheelEvent.aModule
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QActionEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QActionEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QActionEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QActionEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBackingStore.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBackingStore.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBackingStore.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBackingStore.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBitmap.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBrush.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBrush.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBrush.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QBrush.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QClipboard.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCloseEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCloseEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCloseEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCloseEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QColor.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QColor.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QColor.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QColor.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QContextMenuEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QContextMenuEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QContextMenuEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QContextMenuEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCursor.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCursor.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCursor.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QCursor.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -70,9 +70,11 @@
   , just $ mkCtor "newWithPixmapAndHotSpot" [refT $ constT $ objT c_QPixmap, intT, intT]
   , just $ mkCtor "newWithBitmap" [refT $ constT $ objT c_QBitmap, refT $ constT $ objT c_QBitmap]
   , just $ mkCtor "newWithBitmapAndHotSpot" [refT $ constT $ objT c_QBitmap, refT $ constT $ objT c_QBitmap, intT, intT]
-  , just $ mkConstMethod "bitmap" np $ ptrT $ constT $ objT c_QBitmap
+  , just $ mkConstMethod "bitmap" np $
+    if qtVersion >= [6] then objT c_QBitmap else ptrT $ constT $ objT c_QBitmap
   , just $ mkConstMethod "hotSpot" np $ objT c_QPoint
-  , just $ mkConstMethod "mask" np $ ptrT $ constT $ objT c_QBitmap
+  , just $ mkConstMethod "mask" np $
+    if qtVersion >= [6] then objT c_QBitmap else ptrT $ constT $ objT c_QBitmap
   , just $ mkConstMethod "pixmap" np $ objT c_QPixmap
   , just $ mkMethod "setShape" [enumT e_CursorShape] voidT
   , just $ mkConstMethod "shape" np $ enumT e_CursorShape
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDoubleValidator.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDoubleValidator.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDoubleValidator.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDoubleValidator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragEnterEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragEnterEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragEnterEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragEnterEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragLeaveEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragLeaveEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragLeaveEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragLeaveEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragMoveEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragMoveEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragMoveEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDragMoveEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDropEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDropEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDropEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QDropEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QEnterEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QEnterEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QEnterEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QEnterEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,7 +33,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QEvent (c_QEvent)
 import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
 import Graphics.UI.Qtah.Generator.Interface.Core.QPointF (c_QPointF)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -42,7 +42,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QEnterEvent"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QEnterEvent"] (Just minVersion) Nothing
   [ QtExportEvent c_QEnterEvent ]
 
 c_QEnterEvent =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QExposeEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QExposeEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QExposeEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QExposeEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -32,7 +32,7 @@
 import Foreign.Hoppy.Generator.Types (objT)
 import Graphics.UI.Qtah.Generator.Interface.Core.QEvent (c_QEvent)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QRegion (c_QRegion)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -41,7 +41,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QExposeEvent"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QExposeEvent"] (Just minVersion) Nothing
   [ QtExportEvent c_QExposeEvent ]
 
 c_QExposeEvent =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFileOpenEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFileOpenEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFileOpenEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFileOpenEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFocusEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFocusEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFocusEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFocusEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFont.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFont.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFont.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFont.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -25,19 +25,22 @@
   classSetConversionToGc,
   classSetEntityPrefix,
   ident,
+  ident1,
   includeStd,
   makeClass,
   mkCtor,
   mkConstMethod,
   mkMethod,
+  mkProp,
   np,
   )
 import Foreign.Hoppy.Generator.Spec.ClassFeature (
   ClassFeature (Assignable, Copyable, Equatable),
   classAddFeatures,
   )
-import Foreign.Hoppy.Generator.Types (boolT, intT, voidT)
-import Foreign.Hoppy.Generator.Version (collect, just)
+import Foreign.Hoppy.Generator.Types (boolT, enumT, intT, voidT)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
 
@@ -45,8 +48,10 @@
 
 aModule =
   AQtModule $
-  makeQtModule ["Gui", "QFont"]
-  [ qtExport c_QFont
+  makeQtModule ["Gui", "QFont"] $
+  collect
+  [ just $ qtExport c_QFont
+  , test (qtVersion >= [6]) $ qtExport e_Weight
   ]
 
 c_QFont =
@@ -58,11 +63,25 @@
   collect
   [ just $ mkCtor "new" np
   , just $ mkConstMethod "bold" np boolT
+  , test (qtVersion >= [6]) $ mkProp "legacyWeight" intT
   , just $ mkMethod "setBold" [boolT] voidT
   , just $ mkMethod "setPixelSize" [intT] voidT
   , just $ mkMethod "setPointSize" [intT] voidT
-  , just $ mkMethod "setWeight" [intT] voidT
-  , just $ mkConstMethod "weight" np intT
+  , test (qtVersion < [6]) $ mkProp "weight" intT
+  , test (qtVersion >= [6]) $ mkProp "weight" $ enumT e_Weight
+  ]
+
+e_Weight =
+  makeQtEnum (ident1 "QFont" "Weight") [includeStd "QFont"]
+  [ "Thin"
+  , "ExtraLight"
+  , "Light"
+  , "Normal"
+  , "Medium"
+  , "DemiBold"
+  , "Bold"
+  , "ExtraBold"
+  , "Black"
   ]
 
 -- TODO The rest of QFont.
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFontDatabase.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFontDatabase.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFontDatabase.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QFontDatabase.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QGradient.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QGradient.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QGradient.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QGradient.hs
@@ -1,6 +1,6 @@
  -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHelpEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHelpEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHelpEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHelpEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHideEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHideEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHideEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHideEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHoverEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHoverEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHoverEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QHoverEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIcon.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIconDragEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIconDragEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIconDragEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIconDragEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QImage.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QImage.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QImage.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QImage.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -140,7 +140,7 @@
   , just $ mkConstMethod "bitPlaneCount" np intT
   , just $ mkMethod "bits" np $ ptrT ucharT
   , just $ mkConstMethod' "bits" "bitsConst" np $ ptrT $ constT ucharT
-  , just $ mkConstMethod "byteCount" np intT
+  , test (qtVersion < [6]) $ mkConstMethod "byteCount" np intT
   , just $ mkConstMethod "bytesPerLine" np intT
     -- TODO cacheKey
   , just $ mkConstMethod "color" [intT] qrgb
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QInputEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QInputEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QInputEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QInputEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIntValidator.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIntValidator.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIntValidator.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QIntValidator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QKeyEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QKeyEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QKeyEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QKeyEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QMouseEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QMouseEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QMouseEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QMouseEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QOpenGLWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QOpenGLWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QOpenGLWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QOpenGLWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -17,6 +17,7 @@
 
 module Graphics.UI.Qtah.Generator.Interface.Gui.QOpenGLWindow (
   minVersion,
+  maxVersion,
   aModule,
   c_QOpenGLWindow,
   e_UpdateBehavior,
@@ -40,16 +41,17 @@
 import Graphics.UI.Qtah.Generator.Interface.Gui.QPaintDeviceWindow (c_QPaintDeviceWindow)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QWindow (c_QWindow)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (listener)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 minVersion = [5, 4]
+maxVersion = [6]  -- TODO Reenable for Qt 6, this isn't actually removed (issue #58).
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QOpenGLWindow"] minVersion $
+  makeQtModuleWithVersionBounds ["Gui", "QOpenGLWindow"] (Just minVersion) (Just maxVersion)
   [ QtExportClassAndSignals c_QOpenGLWindow signals
   , qtExport e_UpdateBehavior
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDeviceWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDeviceWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDeviceWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDeviceWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -34,7 +34,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Gui.QPaintDevice (c_QPaintDevice)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QRegion (c_QRegion)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QWindow (c_QWindow)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -43,7 +43,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QPaintDeviceWindow"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QPaintDeviceWindow"] (Just minVersion) Nothing
   [ qtExport c_QPaintDeviceWindow
   ]
 
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainter.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainter.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainter.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainter.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2026 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -23,24 +23,44 @@
   ) where
 
 import Foreign.Hoppy.Generator.Spec (
+  (~:),
   addReqIncludes,
   classSetEntityPrefix,
   ident,
   ident1,
   includeStd,
   makeClass,
+  mkConstMethod,
   mkCtor,
   mkMethod,
   mkMethod',
+  mkProp,
   np,
   )
-import Foreign.Hoppy.Generator.Types (enumT, intT, objT, ptrT, voidT)
-import Foreign.Hoppy.Generator.Version (collect, just)
+import Foreign.Hoppy.Generator.Types (boolT, enumT, intT, objT, ptrT, voidT)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Flags (flagsT)
+import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
+import Graphics.UI.Qtah.Generator.Interface.Core.QPointF (c_QPointF)
 import Graphics.UI.Qtah.Generator.Interface.Core.QRect (c_QRect)
-import Graphics.UI.Qtah.Generator.Interface.Core.Types (e_GlobalColor, fl_ImageConversionFlags)
+import Graphics.UI.Qtah.Generator.Interface.Core.QRectF (c_QRectF)
+import Graphics.UI.Qtah.Generator.Interface.Core.Types (
+  e_BGMode,
+  e_BrushStyle,
+  e_GlobalColor,
+  e_PenStyle,
+  fl_ImageConversionFlags,
+  qreal,
+  )
+import Graphics.UI.Qtah.Generator.Interface.Gui.QBrush (c_QBrush)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QColor (c_QColor)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QImage (c_QImage)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QPaintDevice (c_QPaintDevice)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QPainterPath (c_QPainterPath)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QPen (c_QPen)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QPolygon (c_QPolygon)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QPolygonF (c_QPolygonF)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
 
@@ -61,19 +81,67 @@
   collect
   [ just $ mkCtor "new" np
   , just $ mkCtor "newWithDevice" [ptrT $ objT c_QPaintDevice]
+  , just $ mkProp "background" $ objT c_QBrush
+  , just $ mkProp "brush" $ objT c_QBrush
+  , just $ mkMethod' "drawArc" "drawArcRect"
+    ["rect" ~: objT c_QRect, "startAngle" ~: intT, "spanAngle" ~: intT] voidT
+  , just $ mkMethod' "drawArc" "drawArcRectF"
+    ["rect" ~: objT c_QRectF, "startAngle" ~: intT, "spanAngle" ~: intT] voidT
+  , just $ mkMethod' "drawArc" "drawArcRaw"
+    ["x" ~: intT, "y" ~: intT, "width" ~: intT, "height" ~: intT, "startAngle" ~: intT,
+     "spanAngle" ~: intT] voidT
   , just $ mkMethod' "drawImage" "drawImageAtRaw" [intT, intT, objT c_QImage] voidT
   , just $ mkMethod' "drawImage" "drawImageAtRawAll"
     [intT, intT, objT c_QImage, intT, intT, intT, intT, flagsT fl_ImageConversionFlags] voidT
+  , just $ mkMethod' "drawConvexPolygon" "drawConvexPolygon" [objT c_QPolygon] voidT
+  , just $ mkMethod' "drawConvexPolygon" "drawConvexPolygonF" [objT c_QPolygonF] voidT
+  , just $ mkMethod' "drawEllipse" "drawEllipsePoint"
+    ["center" ~: objT c_QPoint, "radiusX" ~: intT, "radiusY" ~: intT] voidT
+  , just $ mkMethod' "drawEllipse" "drawEllipsePointF"
+    ["center" ~: objT c_QPointF, "radiusX" ~: qreal, "radiusY" ~: qreal] voidT
+  , just $ mkMethod' "drawEllipse" "drawEllipseRaw"
+    ["x" ~: intT, "y" ~: intT, "width" ~: intT, "height" ~: intT] voidT
+  , just $ mkMethod' "drawEllipse" "drawEllipseRect"
+    ["rect" ~: objT c_QRect] voidT
+  , just $ mkMethod' "drawEllipse" "drawEllipseRectF"
+    ["rect" ~: objT c_QRectF] voidT
+  , just $ mkMethod' "drawLine" "drawLinePoint"
+    ["point1" ~: objT c_QPoint, "point2" ~: objT c_QPoint] voidT
+  , just $ mkMethod' "drawLine" "drawLinePointF"
+    ["point1" ~: objT c_QPointF, "point2" ~: objT c_QPointF] voidT
+  , just $ mkMethod' "drawLine" "drawLineRaw"
+    ["x1" ~: intT, "y1" ~: intT, "x2" ~: intT, "y2" ~: intT] voidT
+  , just $ mkMethod "drawPath" [objT c_QPainterPath] voidT
+  , just $ mkMethod' "drawPolygon" "drawPolygon" [objT c_QPolygon] voidT
+  , just $ mkMethod' "drawPolygon" "drawPolygonF" [objT c_QPolygonF] voidT
+  , just $ mkMethod' "drawPolyline" "drawPolyline" [objT c_QPolygon] voidT
+  , just $ mkMethod' "drawPolyline" "drawPolylineF" [objT c_QPolygonF] voidT
+  , just $ mkMethod' "drawRect" "drawRectRaw"
+    ["x" ~: intT, "y" ~: intT, "width" ~: intT, "height" ~: intT] voidT
+  , just $ mkMethod' "fillRect" "fillRectWithColor" [objT c_QRect, objT c_QColor] voidT
   , just $ mkMethod' "fillRect" "fillRectWithGlobalColor" [objT c_QRect, enumT e_GlobalColor] voidT
-  , just $ mkMethod "setRenderHint" [enumT e_RenderHint] voidT
+  , just $ mkProp "pen" $ objT c_QPen
+  , just $ mkProp "renderHints" $ flagsT fl_RenderHints
+  , just $ mkMethod "rotate" [qreal] voidT
+  , just $ mkMethod "setBackgroundMode" [enumT e_BGMode] voidT
+  , just $ mkMethod' "setRenderHint" "setRenderHint" [enumT e_RenderHint] voidT
+  , just $ mkMethod' "setRenderHint" "setRenderHintTo" [enumT e_RenderHint, boolT] voidT
+  , just $ mkMethod' "setBrush" "setBrushStyle" [enumT e_BrushStyle] voidT
+  , just $ mkMethod' "setPen" "setPenColor" [objT c_QColor] voidT
+  , just $ mkMethod' "setPen" "setPenStyle" [enumT e_PenStyle] voidT
+  , just $ mkConstMethod "testRenderHint" [enumT e_RenderHint] voidT
+  , just $ mkMethod' "translate" "translateRaw" [qreal, qreal] voidT
+  , just $ mkMethod' "scale" "scaleRaw" [qreal, qreal] voidT
+  -- TODO Lots of methods missing.
   ]
 
 (e_RenderHint, fl_RenderHints) =
-  makeQtEnumAndFlags (ident1 "QPainter" "RenderHint") "RenderHints" [includeStd "QPainter"]
-  [ "Antialiasing"
-  , "TextAntialiasing"
-  , "SmoothPixmapTransform"
-  , "HighQualityAntialiasing"
-  , "NonCosmeticDefaultPen"
-  , "Qt4CompatiblePainting"
+  makeQtEnumAndFlags (ident1 "QPainter" "RenderHint") "RenderHints" [includeStd "QPainter"] $
+  collect
+  [ just "Antialiasing"
+  , just "TextAntialiasing"
+  , just "SmoothPixmapTransform"
+  , test (qtVersion < [6]) "HighQualityAntialiasing"
+  , test (qtVersion < [6]) "NonCosmeticDefaultPen"
+  , test (qtVersion < [6]) "Qt4CompatiblePainting"
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainterPath.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainterPath.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainterPath.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPainterPath.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -21,6 +21,7 @@
   ) where
 
 import Foreign.Hoppy.Generator.Spec (
+  (~:),
   addReqIncludes,
   classSetConversionToGc,
   classSetEntityPrefix,
@@ -28,6 +29,7 @@
   includeStd,
   makeClass,
   mkCtor,
+  mkMethod,
   mkMethod',
   np,
   )
@@ -35,9 +37,11 @@
   ClassFeature (Assignable, Copyable, Equatable),
   classAddFeatures,
   )
-import Foreign.Hoppy.Generator.Types (voidT)
+import Foreign.Hoppy.Generator.Types (intT, objT, voidT)
 import Foreign.Hoppy.Generator.Version (collect, just)
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (qreal)
+import Graphics.UI.Qtah.Generator.Interface.Core.QPointF (c_QPointF)
+import Graphics.UI.Qtah.Generator.Interface.Core.QRectF (c_QRectF)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
 
@@ -56,6 +60,21 @@
   makeClass (ident "QPainterPath") Nothing [] $
   collect
   [ just $ mkCtor "new" np
+  , just $ mkMethod' "arcMoveTo" "arcMoveToRaw"
+    ["x" ~: qreal, "y" ~: qreal, "width" ~: qreal, "height" ~: qreal, "angle" ~: qreal] voidT
+  , just $ mkMethod' "arcMoveTo" "arcMoveToRectF"
+    ["rect" ~: objT c_QRectF, "angle" ~: qreal] voidT
+  , just $ mkMethod' "arcTo" "arcToRaw"
+    ["x" ~: qreal, "y" ~: qreal, "width" ~: qreal, "height" ~: qreal, "startAngle" ~: qreal,
+     "sweepLength" ~: qreal] voidT
+  , just $ mkMethod' "arcTo" "arcToRectF"
+    ["rect" ~: objT c_QRectF, "startAngle" ~: qreal, "sweepLength" ~: qreal] voidT
   , just $ mkMethod' "addRect" "addRectRaw" [qreal, qreal, qreal, qreal] voidT
+  , just $ mkMethod "closeSubpath" np voidT
+  , just $ mkMethod' "lineTo" "lineToPointF" ["endpoint" ~: objT c_QPointF] voidT
+  , just $ mkMethod' "lineTo" "lineToRaw" ["x" ~: intT, "y" ~: intT] voidT
+  , just $ mkMethod' "moveTo" "moveToPointF" ["point" ~: objT c_QPointF] voidT
+  , just $ mkMethod' "moveTo" "moveToRaw" ["x" ~: intT, "y" ~: intT] voidT
+  -- TODO
   ]
 
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPen.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPen.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPen.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPen.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -27,14 +27,24 @@
   ident,
   includeStd,
   makeClass,
+  mkBoolIsProp,
   mkCtor,
+  mkMethod,
+  mkProp,
   np,
   )
 import Foreign.Hoppy.Generator.Spec.ClassFeature (
   ClassFeature (Assignable, Copyable, Equatable),
   classAddFeatures,
   )
-import Foreign.Hoppy.Generator.Types (objT)
+import Foreign.Hoppy.Generator.Types (enumT, intT, objT, refT, voidT)
+import Graphics.UI.Qtah.Generator.Interface.Core.Types (
+  e_PenCapStyle,
+  e_PenJoinStyle,
+  e_PenStyle,
+  qreal,
+  )
+import Graphics.UI.Qtah.Generator.Interface.Gui.QBrush (c_QBrush)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QColor (c_QColor)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
@@ -54,4 +64,16 @@
   makeClass (ident "QPen") Nothing []
   [ mkCtor "new" np
   , mkCtor "newWithColor" [objT c_QColor]
+  , mkProp "brush" $ objT c_QBrush
+  , mkProp "capStyle" $ enumT e_PenCapStyle
+  , mkProp "color" $ objT c_QColor
+  , mkBoolIsProp "cosmetic"
+  , mkProp "dashOffset" qreal
+  -- TODO mkProp "dashPattern" $ objT c_QVectorQreal (QVector's not convertible yet.)
+  , mkProp "joinStyle" $ enumT e_PenJoinStyle
+  , mkProp "miterLimit" qreal
+  , mkProp "style" $ enumT e_PenStyle
+  , mkMethod "swap" [refT $ objT c_QPen] voidT
+  , mkProp "width" intT
+  , mkProp "widthF" qreal
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPixmap.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygon.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygon.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygon.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygon.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygonF.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygonF.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygonF.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPolygonF.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRasterWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRasterWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRasterWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRasterWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,7 +33,7 @@
 import Foreign.Hoppy.Generator.Types (objT, ptrT)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QPaintDeviceWindow (c_QPaintDeviceWindow)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QWindow (c_QWindow)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -42,7 +42,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QRasterWindow"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QRasterWindow"] (Just minVersion) Nothing
   [ qtExport c_QRasterWindow ]
 
 c_QRasterWindow =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRegion.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRegion.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRegion.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QRegion.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QShowEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QShowEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QShowEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QShowEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QStandardItemModel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QStandardItemModel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QStandardItemModel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QStandardItemModel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -67,7 +67,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Gui.QFont (c_QFont)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QIcon (c_QIcon)
 import Graphics.UI.Qtah.Generator.Module (
-  AModule (AQtModule), makeQtModule, makeQtModuleWithMinVersion,
+  AModule (AQtModule), makeQtModule, makeQtModuleWithVersionBounds,
   )
 import Graphics.UI.Qtah.Generator.Types
 
@@ -82,17 +82,19 @@
 itemModule :: AModule
 itemModule =
   AQtModule $
-  makeQtModuleWithMinVersion
+  makeQtModuleWithVersionBounds
     ["Gui", "QStandardItem"]
-    [4, 2]
+    (Just [4, 2])
+    Nothing
     [qtExport c_QStandardItem]
 
 itemListModule :: AModule
 itemListModule =
   AQtModule $
-  makeQtModuleWithMinVersion
+  makeQtModuleWithVersionBounds
     ["Core", "QList", "QStandardItem"]
-    [4, 2]
+    (Just [4, 2])
+    Nothing
     [qtExport c_QListQStandardItem]
 
 c_QStandardItemModel :: Class
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QSurface.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QSurface.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QSurface.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QSurface.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -35,7 +35,7 @@
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QSize (c_QSize)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -44,7 +44,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QSurface"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QSurface"] (Just minVersion) Nothing
   [ qtExport c_QSurface
   , qtExport e_SurfaceClass
   , qtExport e_SurfaceType
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTextDocument.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTextDocument.hs
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTextDocument.hs
@@ -0,0 +1,166 @@
+-- This file is part of Qtah.
+--
+-- Copyright 2024 The Qtah Authors.
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU Lesser General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+module Graphics.UI.Qtah.Generator.Interface.Gui.QTextDocument (
+  aModule,
+  c_QTextDocument,
+  ) where
+
+import Foreign.Hoppy.Generator.Spec (
+  (~:),
+  addReqIncludes,
+  classSetEntityPrefix,
+  ident,
+  includeStd,
+  makeClass,
+  mkBoolIsProp,
+  mkConstMethod,
+  mkCtor,
+  mkMethod,
+  mkMethod',
+  mkProp,
+  np,
+  )
+import Foreign.Hoppy.Generator.Types (boolT, enumT, intT, objT, ptrT, voidT)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
+import Graphics.UI.Qtah.Generator.Interface.Core.Types (e_CursorMoveStyle, qreal)
+import Graphics.UI.Qtah.Generator.Interface.Core.QChar (c_QChar)
+import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
+import Graphics.UI.Qtah.Generator.Interface.Core.QRectF (c_QRectF)
+import Graphics.UI.Qtah.Generator.Interface.Core.QSizeF (c_QSizeF)
+import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
+import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (
+  listener,
+  listenerBool,
+  listenerInt,
+  listenerIntIntInt,
+  listenerQUrl,
+  )
+import Graphics.UI.Qtah.Generator.Interface.Core.QUrl (c_QUrl)
+import Graphics.UI.Qtah.Generator.Interface.Core.QVariant (c_QVariant)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QFont (c_QFont)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QPainter (c_QPainter)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
+import Graphics.UI.Qtah.Generator.Types
+
+{-# ANN module "HLint: ignore Use camelCase" #-}
+
+aModule =
+  AQtModule $
+  makeQtModule ["Gui", "QTextDocument"]
+  [ QtExportClassAndSignals c_QTextDocument signals ]
+
+(c_QTextDocument, signals) =
+  makeQtClassAndSignals signalGens $
+  addReqIncludes [includeStd "QTextDocument"] $
+  classSetEntityPrefix "" $
+  makeClass (ident "QTextDocument") Nothing [c_QObject] $
+  collect
+  [ just $ mkCtor "new" np
+  , just $ mkCtor "newWithParent" [ptrT $ objT c_QObject]
+  , just $ mkCtor "newWithString" [objT c_QString]
+  , just $ mkCtor "newWithStringAndParent" [objT c_QString, ptrT $ objT c_QObject]
+  , just $ mkMethod "addResource" [intT, objT c_QUrl, objT c_QVariant] voidT
+  , just $ mkMethod "adjustSize" np voidT
+  -- TODO allFormats
+  , just $ mkConstMethod "availableRedoSteps" np intT
+  , just $ mkConstMethod "availableUndoSteps" np intT
+  , just $ mkProp "baseUrl" $ objT c_QUrl
+  , test (qtVersion >= [6]) $ mkConstMethod "baselineOffset" np qreal
+  -- TODO begin
+  , just $ mkConstMethod "blockCount" np intT
+  , just $ mkConstMethod "characterAt" [intT] $ objT c_QChar
+  , just $ mkConstMethod "characterCount" np intT
+  , just $ mkMethod "clear" np voidT
+  -- TODO clearUndoRedoStacks
+  , just $ mkMethod "clone" [ptrT $ objT c_QObject] voidT
+  , just $ mkProp "defaultCursorMoveStyle" $ enumT e_CursorMoveStyle
+  , just $ mkProp "defaultFont" $ objT c_QFont
+  -- TODO defaultResourceProvider (>= 6.1)
+  , just $ mkProp "defaultStyleSheet" $ objT c_QString
+  -- TODO defaultTextOption (prop)
+  -- TODO documentLayout (prop)
+  , just $ mkProp "documentMargin" qreal
+  , just $ mkMethod' "drawContents" "drawContents" [ptrT $ objT c_QPainter] voidT
+  , just $ mkMethod' "drawContents" "drawContentsWithRect"
+    [ptrT $ objT c_QPainter, objT c_QRectF] voidT
+  -- TODO end
+  -- TODO find
+  -- TODO findBlock*
+  -- TODO firstBlock
+  , just $ mkConstMethod "idealWidth" np qreal
+  , just $ mkProp "indentWidth" qreal
+  , just $ mkConstMethod "isEmpty" np boolT
+  , just $ mkConstMethod "isRedoAvailable" np boolT
+  , just $ mkConstMethod "isUndoAvailable" np boolT
+  -- TODO lastBlock
+  -- TODO layoutEnabled (prop, >= 6.4) - not accessible?
+  , just $ mkConstMethod "lineCount" np intT
+  , just $ mkMethod "markContentsDirty" ["position" ~: intT, "length" ~: intT] voidT
+  , just $ mkProp "maximumBlockCount" intT
+  -- TODO metaInformation (prop)
+  , just $ mkBoolIsProp "modified"
+  -- TODO object
+  -- TODO objectForFormat
+  , just $ mkConstMethod "pageCount" np intT
+  , just $ mkProp "pageSize" $ objT c_QSizeF
+  -- TODO print
+  , just $ mkMethod "redo" np voidT
+  -- TODO redo(QTextCursor*)
+  , just $ mkConstMethod "resource" [intT, objT c_QUrl] $ objT c_QVariant
+  -- TODO resourceProvider (>= 6.1)
+  , just $ mkConstMethod "revision" np intT
+  -- TODO rootFrame
+  -- TODO setDefaultResourceProvider (>= 6.1)
+  , just $ mkMethod "setHtml" [objT c_QString] voidT
+  , just $ mkMethod "setMarkdown" [objT c_QString] voidT
+  -- TODO setMarkdown(QString, QTextDocument::MarkdownFeatures)
+  , just $ mkMethod "setPlainText" [objT c_QString] voidT
+  -- TODO setResourceProvider (>= 6.1)
+  , test (qtVersion >= [6]) $ mkProp "subScriptBaseline" qreal
+  , test (qtVersion >= [6]) $ mkProp "superScriptBaseline" qreal
+  , just $ mkConstMethod "size" np $ objT c_QSizeF
+  , just $ mkProp "textWidth" qreal
+  , just $ mkConstMethod "toMarkdown" np voidT
+  -- TODO toMarkdown(QTextDocument::MarkdownFeatures)
+  , just $ mkMethod "undo" np voidT
+  -- TODO undo(QTextCursor*)
+  , just $ mkBoolIsProp "undoRedoEnabled"
+  , just $ mkProp "useDesignMetrics" boolT
+  ]
+
+signalGens :: [SignalGen]
+signalGens =
+  [ makeSignal "baseUrlChanged" listenerQUrl
+  , makeSignal "blockCountChanged" listenerInt
+  , makeSignal "contentsChange" listenerIntIntInt
+  , makeSignal "contentsChanged" listener
+  -- TODO cursorPositionChanged
+  , makeSignal "documentLayoutChanged" listener
+  , makeSignal "modificationChanged" listenerBool
+  , makeSignal "redoAvailable" listenerBool
+  , makeSignal "undoAvailable" listenerBool
+  , makeSignal "undoCommandAdded" listener
+  ]
+
+-- TODO FindFlag, FindFlags
+-- TODO MarkdownFeatures (definition not present in Qt docs?)
+-- TODO MetaInformation
+-- TODO ResourceProvider (>= 6.1)
+-- TODO ResourceType
+-- TODO Stacks
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTransform.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTransform.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTransform.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QTransform.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -27,13 +27,20 @@
   ident,
   includeStd,
   makeClass,
+  mkConstMethod,
+  mkConstMethod',
   mkCtor,
+  mkMethod,
+  np,
   )
 import Foreign.Hoppy.Generator.Spec.ClassFeature (
   ClassFeature (Assignable, Copyable, Equatable),
   classAddFeatures,
   )
+import Foreign.Hoppy.Generator.Types (boolT, refT, objT)
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (qreal)
+import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
+import Graphics.UI.Qtah.Generator.Interface.Core.QPointF (c_QPointF)
 import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModule)
 import Graphics.UI.Qtah.Generator.Types
 
@@ -51,4 +58,11 @@
   classSetEntityPrefix "" $
   makeClass (ident "QTransform") Nothing []
   [ mkCtor "new2x2" [qreal, qreal, qreal, qreal, qreal, qreal]
+  , mkConstMethod "inverted" np $ objT c_QTransform  -- TODO Version that can fail.
+  , mkConstMethod "isInvertible" np boolT
+  , mkConstMethod' "map" "mapPoint" [objT c_QPoint] $ objT c_QPoint
+  , mkConstMethod' "map" "mapPointF" [objT c_QPointF] $ objT c_QPointF
+  , mkMethod "scale" [qreal, qreal] $ refT $ objT c_QTransform
+  , mkMethod "translate" [qreal, qreal] $ refT $ objT c_QTransform
+  -- TODO More methods.
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QValidator.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QValidator.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QValidator.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QValidator.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWheelEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWheelEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWheelEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWheelEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -20,6 +20,7 @@
   ) where
 
 import Foreign.Hoppy.Generator.Spec (
+  (~:),
   addReqIncludes,
   classSetEntityPrefix,
   ident,
@@ -29,7 +30,7 @@
   mkCtor,
   np,
   )
-import Foreign.Hoppy.Generator.Types (enumT, intT, objT)
+import Foreign.Hoppy.Generator.Types (boolT, enumT, intT, objT)
 import Foreign.Hoppy.Generator.Version (collect, just, test)
 import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Flags (flagsT)
@@ -38,6 +39,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (
   fl_KeyboardModifiers,
   fl_MouseButtons,
+  e_MouseEventSource,
   e_Orientation,
   e_ScrollPhase,
   )
@@ -65,23 +67,41 @@
     [objT c_QPoint, objT c_QPoint, intT, flagsT fl_MouseButtons, flagsT fl_KeyboardModifiers,
      enumT e_Orientation]
 
-  , test (qtVersion >= [5, 0]) $ mkCtor "new"
+  , test (qtVersion >= [5, 0] && qtVersion < [6]) $ mkCtor "new"
     [objT c_QPointF, objT c_QPointF, objT c_QPoint, objT c_QPoint, intT, enumT e_Orientation,
      flagsT fl_MouseButtons, flagsT fl_KeyboardModifiers]
-  , test (qtVersion >= [5, 2]) $ mkCtor "newWithPhase"
+  , test (qtVersion >= [5, 2] && qtVersion < [6]) $ mkCtor "newWithPhase"
     [objT c_QPointF, objT c_QPointF, objT c_QPoint, objT c_QPoint, intT, enumT e_Orientation,
      flagsT fl_MouseButtons, flagsT fl_KeyboardModifiers, enumT e_ScrollPhase]
+
+  , test (qtVersion >= [6]) $ mkCtor "new"
+    ["pos" ~: objT c_QPointF, "globalPos" ~: objT c_QPointF, "pixelDelta" ~: objT c_QPoint,
+     "angleDelta" ~: objT c_QPoint, "buttons" ~: flagsT fl_MouseButtons,
+     "modifiers" ~: flagsT fl_KeyboardModifiers, "phase" ~: enumT e_ScrollPhase,
+     "inverted" ~: boolT]
+  , test (qtVersion >= [6]) $ mkCtor "newWithSource"
+    ["pos" ~: objT c_QPointF, "globalPos" ~: objT c_QPointF, "pixelDelta" ~: objT c_QPoint,
+     "angleDelta" ~: objT c_QPoint, "buttons" ~: flagsT fl_MouseButtons,
+     "modifiers" ~: flagsT fl_KeyboardModifiers, "phase" ~: enumT e_ScrollPhase,
+     "inverted" ~: boolT, "source" ~: enumT e_MouseEventSource]
+
   , test (qtVersion >= [5, 0]) $ mkConstMethod "angleDelta" np $ objT c_QPoint
   , just $ mkConstMethod "buttons" np $ flagsT fl_MouseButtons
   , test (qtVersion < [5, 0]) $ mkConstMethod "delta" np intT
-  , just $ mkConstMethod "globalPos" np $ objT c_QPoint
-  , test (qtVersion >= [5, 0]) $ mkConstMethod "globalPosF" np $ objT c_QPointF
-  , just $ mkConstMethod "globalX" np intT
-  , just $ mkConstMethod "globalY" np intT
+  , test (qtVersion < [6]) $ mkConstMethod "globalPos" np $ objT c_QPoint
+  , test (qtVersion >= [5, 0] && qtVersion < [6]) $ mkConstMethod "globalPosF" np $ objT c_QPointF
+  , test (qtVersion >= [5, 15]) $  -- (Observed in 5.15.12 docs, bound might not be accurate.)
+    mkConstMethod "globalPosition" np $ objT c_QPointF
+  , test (qtVersion < [6]) $ mkConstMethod "globalX" np intT
+  , test (qtVersion < [6]) $ mkConstMethod "globalY" np intT
+  , test (qtVersion >= [5, 7]) $ mkConstMethod "inverted" np boolT
   , test (qtVersion >= [5, 2]) $ mkConstMethod "phase" np $ enumT e_ScrollPhase
   , test (qtVersion >= [5, 0]) $ mkConstMethod "pixelDelta" np $ objT c_QPoint
-  , just $ mkConstMethod "pos" np $ objT c_QPoint
-  , test (qtVersion >= [5, 0]) $ mkConstMethod "posF" np $ objT c_QPointF
-  , just $ mkConstMethod "x" np intT
-  , just $ mkConstMethod "y" np intT
+  , test (qtVersion < [6]) $ mkConstMethod "pos" np $ objT c_QPoint
+  , test (qtVersion >= [5, 15]) $  -- (Observed in 5.15.12 docs, bound might not be accurate.)
+    mkConstMethod "position" np $ objT c_QPointF
+  , test (qtVersion >= [5, 0] && qtVersion < [6]) $ mkConstMethod "posF" np $ objT c_QPointF
+  , test (qtVersion >= [5, 5]) $ mkConstMethod "source" np $ enumT e_MouseEventSource
+  , test (qtVersion < [6]) $ mkConstMethod "x" np intT
+  , test (qtVersion < [6]) $ mkConstMethod "y" np intT
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -72,7 +72,7 @@
   listenerWindowModality,
   listenerWindowState,
   )
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -81,7 +81,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QWindow"] minVersion $
+  makeQtModuleWithVersionBounds ["Gui", "QWindow"] (Just minVersion) Nothing $
   [ QtExportClassAndSignals c_QWindow signals
   , qtExport e_AncestorMode
   , qtExport e_Visibility
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QWindow.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahOpenGLWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahOpenGLWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahOpenGLWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahOpenGLWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -35,17 +35,18 @@
   c_QOpenGLWindow,
   e_UpdateBehavior,
   minVersion,
+  maxVersion,
   )
 import Graphics.UI.Qtah.Generator.Interface.Gui.QWindow (c_QWindow)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Callback (cb_Void, cb_IntIntVoid)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QtahOpenGLWindow"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QtahOpenGLWindow"] (Just minVersion) (Just maxVersion)
   [ qtExport c_QtahOpenGLWindow ]
 
 c_QtahOpenGLWindow =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahRasterWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahRasterWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahRasterWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QtahRasterWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -34,14 +34,14 @@
 import Graphics.UI.Qtah.Generator.Interface.Gui.QRasterWindow (c_QRasterWindow, minVersion)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QWindow (c_QWindow)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Callback (cb_PtrQPaintEventVoid)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Gui", "QtahRasterWindow"] minVersion
+  makeQtModuleWithVersionBounds ["Gui", "QtahRasterWindow"] (Just minVersion) Nothing
   [ qtExport c_QtahRasterWindow ]
 
 c_QtahRasterWindow =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Imports.hs b/src/Graphics/UI/Qtah/Generator/Interface/Imports.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Imports.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Imports.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal.hs b/src/Graphics/UI/Qtah/Generator/Interface/Internal.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Callback.hs b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Callback.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Callback.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Callback.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -54,6 +54,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
 import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
 import Graphics.UI.Qtah.Generator.Interface.Core.QSize (c_QSize)
+import Graphics.UI.Qtah.Generator.Interface.Core.QUrl (c_QUrl)
 import Graphics.UI.Qtah.Generator.Interface.Core.QVariant (c_QVariant)
 import Graphics.UI.Qtah.Generator.Interface.Core.QAbstractAnimation (c_QAbstractAnimation)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
@@ -108,6 +109,7 @@
       , just $ Export cb_IntVoid
       , just $ Export cb_IntBoolVoid
       , just $ Export cb_IntIntVoid
+      , just $ Export cb_IntIntIntVoid
       , just $ Export cb_OrientationVoid
       , just $ Export cb_OrientationIntIntVoid
       , just $ Export cb_PtrQAbstractButtonVoid
@@ -140,6 +142,7 @@
       , just $ Export cb_QSizeVoid
       , just $ Export cb_QStringVoid
       , just $ Export cb_QSystemTrayIconActivationReasonVoid
+      , just $ Export cb_QUrlVoid
       , just $ Export cb_RefConstQIconVoid
       , just $ Export cb_RefConstQItemSelectionRefConstQItemSelectionVoid
       , test (qtVersion >= e_ScreenOrientation_minVersion) $ Export cb_ScreenOrientationVoid
@@ -188,6 +191,10 @@
   makeCallback (toExtName "CallbackIntIntVoid")
   [intT, intT] voidT
 
+cb_IntIntIntVoid =
+  makeCallback (toExtName "CallbackIntIntIntVoid")
+  [intT, intT, intT] voidT
+
 cb_OrientationVoid =
   makeCallback (toExtName "CallbackOrientationVoid")
   [enumT e_Orientation] voidT
@@ -321,6 +328,10 @@
 cb_QSystemTrayIconActivationReasonVoid =
   makeCallback (toExtName "CallbackQSystemTrayIconActivationReasonVoid")
   [enumT e_ActivationReason] voidT
+
+cb_QUrlVoid =
+  makeCallback (toExtName "CallbackQUrlVoid")
+  [objT c_QUrl] voidT
 
 cb_RefConstQIconVoid =
   makeCallback (toExtName "CallbackRefConstQIconVoid")
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/EventListener.hs b/src/Graphics/UI/Qtah/Generator/Interface/Internal/EventListener.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal/EventListener.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/EventListener.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -31,6 +31,7 @@
   listenerIntBool,
   listenerIntExitStatus,
   listenerIntInt,
+  listenerIntIntInt,
   listenerIntQlonglong,
   listenerOrientation,
   listenerOrientationIntInt,
@@ -60,6 +61,7 @@
   listenerQSize,
   listenerQString,
   listenerQSystemTrayIconActivationReason,
+  listenerQUrl,
   listenerQWindowVisibility,
   listenerQlonglong,
   listenerQreal,
@@ -174,6 +176,7 @@
   , ldIntBool
   , ldIntExitStatus
   , ldIntInt
+  , ldIntIntInt
   , ldIntQlonglong
   , ldOrientation
   , ldOrientationIntInt
@@ -203,6 +206,7 @@
   , ldQSize
   , ldQString
   , ldQSystemTrayIconActivationReason
+  , ldQUrl
   , ldQWindowVisibility
   , ldQlonglong
   , ldQreal
@@ -251,6 +255,9 @@
 (ldIntInt, listenerIntInt) =
   listenerDef "IntInt" cb_IntIntVoid ["int", "int"]
 
+(ldIntIntInt, listenerIntIntInt) =
+  listenerDef "IntIntInt" cb_IntIntIntVoid ["int", "int", "int"]
+
 (ldIntQlonglong, listenerIntQlonglong) =
   listenerDef "IntQlonglong" cb_IntQlonglongVoid ["int", "qlonglong"]
 
@@ -337,6 +344,9 @@
 
 (ldQSystemTrayIconActivationReason, listenerQSystemTrayIconActivationReason) =
   listenerDef "QSystemTrayIconActivationReason" cb_QSystemTrayIconActivationReasonVoid ["QSystemTrayIcon::ActivationReason"]
+
+(ldQUrl, listenerQUrl) =
+  listenerDef "QUrl" cb_QUrlVoid ["QUrl"]
 
 (ldQWindowVisibility, listenerQWindowVisibility) =
   listenerDefVersioned (Just [5, 0]) "QWindowVisibility" cb_QWindowVisibilityVoid ["QWindow::Visibility"]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/SceneEventListener.hs b/src/Graphics/UI/Qtah/Generator/Interface/Internal/SceneEventListener.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal/SceneEventListener.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/SceneEventListener.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,6 +33,7 @@
   np,
   )
 import Foreign.Hoppy.Generator.Types (boolT, intT, objT, ptrT, voidT)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QSize (c_QSize)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QIcon (c_QIcon)
@@ -55,7 +56,9 @@
   classSetEntityPrefix "" $
   makeClass (ident "QAbstractButton") Nothing [c_QWidget]
   -- Abstact.
-  [ mkMethod "animateClick" [intT] voidT
+  [ if qtVersion < [6]
+    then mkMethod "animateClick" [intT] voidT
+    else mkMethod "animateClick" np voidT
   , mkProp "autoExclusive" boolT
   , mkProp "autoRepeat" boolT
   , mkProp "autoRepeatDelay" intT
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractButton.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractGraphicsShapeItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractGraphicsShapeItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractGraphicsShapeItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractGraphicsShapeItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemDelegate.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemDelegate.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemDelegate.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemDelegate.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemView.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemView.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemView.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractItemView.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractScrollArea.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractScrollArea.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractScrollArea.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractScrollArea.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSlider.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSpinBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSpinBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAbstractSpinBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QAction.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QActionGroup.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QActionGroup.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QActionGroup.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QActionGroup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QApplication.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QApplication.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QApplication.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QApplication.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -90,7 +90,7 @@
     -- TODO changeOverrideCursor
   , just $ mkStaticMethod "clipboard" np $ ptrT $ objT c_QClipboard
   , just $ mkStaticMethod "closeAllWindows" np voidT
-  , just $ mkStaticProp "colorSpec" intT
+  , test (qtVersion < [6]) $ mkStaticProp "colorSpec" intT
     -- TODO commitData
   , just $ mkStaticProp "cursorFlashTime" intT
     -- TODO desktop
@@ -102,7 +102,7 @@
   , just $ makeFnMethod (ident2 "qtah" "qapplication" "fontWithClass") "fontWithClass"
     MStatic Nonpure [objT c_QString] $ objT c_QFont
     -- TODO fontMetrics
-  , just $ mkStaticProp "globalStrut" $ objT c_QSize
+  , test (qtVersion < [6]) $ mkStaticProp "globalStrut" $ objT c_QSize
     -- TODO inputContext
     -- TODO isEffectEnabled
   , just $ mkStaticMethod "isLeftToRight" np boolT
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QBoxLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QBoxLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QButtonGroup.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QButtonGroup.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QButtonGroup.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QButtonGroup.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -81,17 +81,21 @@
 signalGens =
   collect
   [ just $ makeSignal' "buttonClicked" "buttonClicked" listenerPtrQAbstractButton
-  , just $ makeSignal' "buttonClicked" "buttonClickedId" listenerInt
+  , test (qtVersion < [6]) $ makeSignal' "buttonClicked" "buttonClickedId" listenerInt
   , test (qtVersion >= [4, 2]) $
     makeSignal' "buttonPressed" "buttonPressed" listenerPtrQAbstractButton
-  , test (qtVersion >= [4, 2]) $
+  , test (qtVersion >= [4, 2] && qtVersion < [6]) $
     makeSignal' "buttonPressed" "buttonPressedId" listenerInt
   , test (qtVersion >= [4, 2]) $
     makeSignal' "buttonReleased" "buttonReleased" listenerPtrQAbstractButton
-  , test (qtVersion >= [4, 2]) $
+  , test (qtVersion >= [4, 2] && qtVersion < [6]) $
     makeSignal' "buttonReleased" "buttonReleasedId" listenerInt
   , test (qtVersion >= [5, 2]) $
     makeSignal' "buttonToggled" "buttonToggled" listenerPtrQAbstractButtonBool
-  , test (qtVersion >= [5, 2]) $
+  , test (qtVersion >= [5, 2] && qtVersion < [6]) $
     makeSignal' "buttonToggled" "buttonToggledId" listenerIntBool
+  , test (qtVersion >= [5, 15]) $ makeSignal "idClicked" listenerInt
+  , test (qtVersion >= [5, 15]) $ makeSignal "idPressed" listenerInt
+  , test (qtVersion >= [5, 15]) $ makeSignal "idReleased" listenerInt
+  , test (qtVersion >= [5, 15]) $ makeSignal "idToggled" listenerIntBool
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QCheckBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QCheckBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QCheckBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QCheckBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QComboBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QComboBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QComboBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QComboBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -32,7 +32,8 @@
   np,
   )
 import Foreign.Hoppy.Generator.Types (intT, objT, ptrT, voidT)
-import Foreign.Hoppy.Generator.Version (collect, just)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Core.QVariant (c_QVariant)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QIcon (c_QIcon)
@@ -69,11 +70,11 @@
   ]
 
 signalGens :: [SignalGen]
-signalGens =
-  [ makeSignal "activated" listenerInt
-  , makeSignal' "activated" "activatedString" listenerQString
-  , makeSignal "currentIndexChanged" listenerInt
-  , makeSignal' "currentIndexChanged" "currentIndexChangedString" listenerQString
+signalGens = collect
+  [ just $ makeSignal "activated" listenerInt
+  , test (qtVersion < [6]) $ makeSignal' "activated" "activatedString" listenerQString
+  , just $ makeSignal "currentIndexChanged" listenerInt
+  , test (qtVersion < [6]) $ makeSignal' "currentIndexChanged" "currentIndexChangedString" listenerQString
   ]
 
 -- TODO The rest of QComboBox.
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateEdit.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateEdit.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateEdit.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateEdit.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateTimeEdit.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateTimeEdit.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateTimeEdit.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDateTimeEdit.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDial.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDial.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDial.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDial.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialog.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialog.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialog.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialog.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialogButtonBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialogButtonBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialogButtonBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDialogButtonBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -50,7 +50,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QAbstractButton (c_QAbstractButton)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QPushButton (c_QPushButton)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QWidget (c_QWidget)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -59,7 +59,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Widgets", "QDialogButtonBox"] minVersion
+  makeQtModuleWithVersionBounds ["Widgets", "QDialogButtonBox"] (Just minVersion) Nothing
   [ QtExportClassAndSignals c_QDialogButtonBox signals
   , qtExport e_ButtonLayout
   , qtExport e_ButtonRole
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -97,11 +97,12 @@
 
 (e_DockWidgetFeature, fl_DockWidgetFeatures) =
   makeQtEnumAndFlags (ident1 "QDockWidget" "DockWidgetFeature") "DockWidgetFeatures"
-  [includeStd "QDockWidget"]
-  [ "NoDockWidgetFeatures"
-  , "DockWidgetClosable"
-  , "DockWidgetMovable"
-  , "DockWidgetFloatable"
-  , "AllDockWidgetFeatures"  -- Deprecated
-  , "DockWidgetVerticalTitleBar"
+  [includeStd "QDockWidget"] $
+  collect
+  [ just "NoDockWidgetFeatures"
+  , just "DockWidgetClosable"
+  , just "DockWidgetMovable"
+  , just "DockWidgetFloatable"
+  , test (qtVersion < [6]) "AllDockWidgetFeatures"
+  , just "DockWidgetVerticalTitleBar"
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDockWidget.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDoubleSpinBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDoubleSpinBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDoubleSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QDoubleSpinBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,6 +33,8 @@
   np,
   )
 import Foreign.Hoppy.Generator.Types (doubleT, intT, objT, ptrT, voidT)
+import Foreign.Hoppy.Generator.Version (collect, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (
   listenerDouble,
@@ -71,7 +73,8 @@
   ]
 
 signalGens :: [SignalGen]
-signalGens =
-  [ makeSignal' "valueChanged" "valueChangedDouble" listenerDouble
-  , makeSignal' "valueChanged" "valueChangedString" listenerQString
+signalGens = collect
+  [ test (qtVersion >= [6]) $ makeSignal "valueChanged" listenerDouble
+  , test (qtVersion < [6]) $ makeSignal' "valueChanged" "valueChangedDouble" listenerDouble
+  , test (qtVersion < [6]) $ makeSignal' "valueChanged" "valueChangedString" listenerQString
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFileDialog.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFileDialog.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFileDialog.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFileDialog.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -181,15 +181,16 @@
   ]
 
 (e_Option, fl_Options) =
-  makeQtEnumAndFlags (ident1 "QFileDialog" "Option") "Options" [includeStd "QFileDialog"]
-  [ "ShowDirsOnly"
-  , "DontResolveSymlinks"
-  , "DontConfirmOverwrite"
-  , "DontUseSheet"
-  , "DontUseNativeDialog"
-  , "ReadOnly"
-  , "HideNameFilterDetails"
-  , "DontUseCustomDirectoryIcons"
+  makeQtEnumAndFlags (ident1 "QFileDialog" "Option") "Options" [includeStd "QFileDialog"] $
+  collect
+  [ just "ShowDirsOnly"
+  , just "DontResolveSymlinks"
+  , just "DontConfirmOverwrite"
+  , test (qtVersion < [6]) "DontUseSheet"
+  , just "DontUseNativeDialog"
+  , just "ReadOnly"
+  , just "HideNameFilterDetails"
+  , just "DontUseCustomDirectoryIcons"
   ]
 
 e_ViewMode =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFormLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFormLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFormLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFormLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -46,7 +46,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QLayout (c_QLayout)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QLayoutItem (c_QLayoutItem)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QWidget (c_QWidget)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -55,7 +55,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Widgets", "QFormLayout"] minVersion
+  makeQtModuleWithVersionBounds ["Widgets", "QFormLayout"] (Just minVersion) Nothing
   [ qtExport c_QFormLayout
   , qtExport e_FieldGrowthPolicy
   , qtExport e_ItemRole
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFrame.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFrame.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFrame.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QFrame.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsEllipseItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsEllipseItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsEllipseItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsEllipseItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -334,41 +334,42 @@
   ]
 
 e_GraphicsItemChange =
-  makeQtEnum (ident1 "QGraphicsItem" "GraphicsItemChange") [includeStd "QGraphicsItem"]
-  [ "ItemEnabledChange"
-  , "ItemEnabledHasChanged"
-  , "ItemMatrixChange"
-  , "ItemPositionChange"
-  , "ItemPositionHasChanged"
-  , "ItemTransformChange"
-  , "ItemTransformHasChanged"
-  , "ItemRotationChange"
-  , "ItemRotationHasChanged"
-  , "ItemScaleChange"
-  , "ItemScaleHasChanged"
-  , "ItemTransformOriginPointChange"
-  , "ItemTransformOriginPointHasChanged"
-  , "ItemSelectedChange"
-  , "ItemSelectedHasChanged"
-  , "ItemVisibleChange"
-  , "ItemVisibleHasChanged"
-  , "ItemParentChange"
-  , "ItemParentHasChanged"
-  , "ItemChildAddedChange"
-  , "ItemChildRemovedChange"
-  , "ItemSceneChange"
-  , "ItemSceneHasChanged"
-  , "ItemCursorChange"
-  , "ItemCursorHasChanged"
-  , "ItemToolTipChange"
-  , "ItemToolTipHasChanged"
-  , "ItemFlagsChange"
-  , "ItemFlagsHaveChanged"
-  , "ItemZValueChange"
-  , "ItemZValueHasChanged"
-  , "ItemOpacityChange"
-  , "ItemOpacityHasChanged"
-  , "ItemScenePositionHasChanged"
+  makeQtEnum (ident1 "QGraphicsItem" "GraphicsItemChange") [includeStd "QGraphicsItem"] $
+  collect
+  [ just "ItemEnabledChange"
+  , just "ItemEnabledHasChanged"
+  , test (qtVersion < [6]) "ItemMatrixChange"
+  , just "ItemPositionChange"
+  , just "ItemPositionHasChanged"
+  , just "ItemTransformChange"
+  , just "ItemTransformHasChanged"
+  , just "ItemRotationChange"
+  , just "ItemRotationHasChanged"
+  , just "ItemScaleChange"
+  , just "ItemScaleHasChanged"
+  , just "ItemTransformOriginPointChange"
+  , just "ItemTransformOriginPointHasChanged"
+  , just "ItemSelectedChange"
+  , just "ItemSelectedHasChanged"
+  , just "ItemVisibleChange"
+  , just "ItemVisibleHasChanged"
+  , just "ItemParentChange"
+  , just "ItemParentHasChanged"
+  , just "ItemChildAddedChange"
+  , just "ItemChildRemovedChange"
+  , just "ItemSceneChange"
+  , just "ItemSceneHasChanged"
+  , just "ItemCursorChange"
+  , just "ItemCursorHasChanged"
+  , just "ItemToolTipChange"
+  , just "ItemToolTipHasChanged"
+  , just "ItemFlagsChange"
+  , just "ItemFlagsHaveChanged"
+  , just "ItemZValueChange"
+  , just "ItemZValueHasChanged"
+  , just "ItemOpacityChange"
+  , just "ItemOpacityHasChanged"
+  , just "ItemScenePositionHasChanged"
   ]
 
 (e_GraphicsItemFlag, fl_GraphicsItemFlags) =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsItem.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPixmapItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPixmapItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPixmapItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPixmapItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPolygonItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPolygonItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPolygonItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsPolygonItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsRectItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsRectItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsRectItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsRectItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsScene.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneMouseEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneMouseEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneMouseEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneMouseEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneWheelEvent.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneWheelEvent.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneWheelEvent.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsSceneWheelEvent.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsView.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsView.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsView.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGraphicsView.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -50,6 +50,8 @@
   ptrT,
   voidT,
   )
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Flags (flagsT)
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (e_AspectRatioMode, fl_Alignment, qreal)
 import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
@@ -88,120 +90,121 @@
 c_QGraphicsView =
   addReqIncludes [includeStd "QGraphicsView"] $
   classSetEntityPrefix "" $
-  makeClass (ident "QGraphicsView") Nothing [c_QAbstractScrollArea]
-  [ mkCtor "new" np
-  , mkCtor "newWithScene" [ptrT $ objT c_QGraphicsScene]
-  , mkCtor "newWithParent" [ptrT $ objT c_QWidget]
-  , mkCtor "newWithSceneAndParent" [ptrT $ objT c_QGraphicsScene, ptrT $ objT c_QWidget]
-  , mkConstMethod "alignment" np $ flagsT fl_Alignment
-  , mkConstMethod "backgroundBrush" np $ objT c_QBrush
-  , mkConstMethod "cacheMode" np $ flagsT fl_CacheMode
-  , mkMethod' "centerOn" "centerOnPointF" [objT c_QPointF] voidT
-  , mkMethod' "centerOn" "centerOnRaw" [qreal, qreal] voidT
-  , mkMethod' "centerOn" "centerOnItem" [ptrT $ constT $ objT c_QGraphicsItem] voidT
-  , mkConstMethod "dragMode" np $ enumT e_DragMode
-  , mkMethod' "ensureVisible" "ensureVisibleRectF" [objT c_QRectF] voidT
-  , mkMethod' "ensureVisible" "ensureVisibleRaw"
+  makeClass (ident "QGraphicsView") Nothing [c_QAbstractScrollArea] $
+  collect
+  [ just $ mkCtor "new" np
+  , just $ mkCtor "newWithScene" [ptrT $ objT c_QGraphicsScene]
+  , just $ mkCtor "newWithParent" [ptrT $ objT c_QWidget]
+  , just $ mkCtor "newWithSceneAndParent" [ptrT $ objT c_QGraphicsScene, ptrT $ objT c_QWidget]
+  , just $ mkConstMethod "alignment" np $ flagsT fl_Alignment
+  , just $ mkConstMethod "backgroundBrush" np $ objT c_QBrush
+  , just $ mkConstMethod "cacheMode" np $ flagsT fl_CacheMode
+  , just $ mkMethod' "centerOn" "centerOnPointF" [objT c_QPointF] voidT
+  , just $ mkMethod' "centerOn" "centerOnRaw" [qreal, qreal] voidT
+  , just $ mkMethod' "centerOn" "centerOnItem" [ptrT $ constT $ objT c_QGraphicsItem] voidT
+  , just $ mkConstMethod "dragMode" np $ enumT e_DragMode
+  , just $ mkMethod' "ensureVisible" "ensureVisibleRectF" [objT c_QRectF] voidT
+  , just $ mkMethod' "ensureVisible" "ensureVisibleRaw"
       [qreal, qreal, qreal, qreal] voidT
-  , mkMethod' "ensureVisible" "ensureVisibleItem"
+  , just $ mkMethod' "ensureVisible" "ensureVisibleItem"
       [ptrT $ constT $ objT c_QGraphicsItem] voidT
-  , mkMethod' "ensureVisible" "ensureVisibleRectFAll"
+  , just $ mkMethod' "ensureVisible" "ensureVisibleRectFAll"
       [objT c_QRectF, intT, intT] voidT
-  , mkMethod' "ensureVisible" "ensureVisibleRawAll"
+  , just $ mkMethod' "ensureVisible" "ensureVisibleRawAll"
       [qreal, qreal, qreal, qreal, intT, intT] voidT
-  , mkMethod' "ensureVisible" "ensureVisibleItemAll"
+  , just $ mkMethod' "ensureVisible" "ensureVisibleItemAll"
       [ptrT $ constT $ objT c_QGraphicsItem, intT, intT] voidT
-  , mkMethod' "fitInView" "fitInViewRectF" [objT c_QRectF] voidT
-  , mkMethod' "fitInView" "fitInViewRect" [qreal, qreal, qreal, qreal] voidT
-  , mkMethod' "fitInView" "fitInViewItem" [ptrT $ constT $ objT c_QGraphicsItem] voidT
-  , mkMethod' "fitInView" "fitInViewRectFAll" [objT c_QRectF, enumT e_AspectRatioMode] voidT
-  , mkMethod' "fitInView" "fitInViewRectAll"
+  , just $ mkMethod' "fitInView" "fitInViewRectF" [objT c_QRectF] voidT
+  , just $ mkMethod' "fitInView" "fitInViewRect" [qreal, qreal, qreal, qreal] voidT
+  , just $ mkMethod' "fitInView" "fitInViewItem" [ptrT $ constT $ objT c_QGraphicsItem] voidT
+  , just $ mkMethod' "fitInView" "fitInViewRectFAll" [objT c_QRectF, enumT e_AspectRatioMode] voidT
+  , just $ mkMethod' "fitInView" "fitInViewRectAll"
       [qreal, qreal, qreal, qreal, enumT e_AspectRatioMode] voidT
-  , mkMethod' "fitInView" "fitInViewItemAll"
+  , just $ mkMethod' "fitInView" "fitInViewItemAll"
       [ptrT $ constT $ objT c_QGraphicsItem, enumT e_AspectRatioMode] voidT
-  , mkConstMethod "foregroundBrush" np $ objT c_QBrush
-  , mkConstMethod "isInteractive" np boolT
-  , mkConstMethod "isTransformed" np boolT
-  , mkConstMethod' "itemAt" "itemAtPoint" [objT c_QPoint] $ ptrT $ objT c_QGraphicsItem
-  , mkConstMethod' "itemAt" "itemAtRaw" [intT, intT] $ ptrT $ objT c_QGraphicsItem
-  -- TODO mkConstMethod "items" np $ objT c_QList<QGraphicsItem $ objT c_*>
-  -- TODO mkConstMethod "items" [objT c_QPoint] $ objT c_QList<QGraphicsItem $ objT c_*>
-  -- TODO mkConstMethod "items" [intT, intT] $ objT c_QList<QGraphicsItem $ objT c_*>
-  -- TODO mkConstMethod "items" [intT, intT, intT, intT, objT c_Qt::ItemSelectionMode] $
+  , just $ mkConstMethod "foregroundBrush" np $ objT c_QBrush
+  , just $ mkConstMethod "isInteractive" np boolT
+  , just $ mkConstMethod "isTransformed" np boolT
+  , just $ mkConstMethod' "itemAt" "itemAtPoint" [objT c_QPoint] $ ptrT $ objT c_QGraphicsItem
+  , just $ mkConstMethod' "itemAt" "itemAtRaw" [intT, intT] $ ptrT $ objT c_QGraphicsItem
+  -- TODO just $ mkConstMethod "items" np $ objT c_QList<QGraphicsItem $ objT c_*>
+  -- TODO just $ mkConstMethod "items" [objT c_QPoint] $ objT c_QList<QGraphicsItem $ objT c_*>
+  -- TODO just $ mkConstMethod "items" [intT, intT] $ objT c_QList<QGraphicsItem $ objT c_*>
+  -- TODO just $ mkConstMethod "items" [intT, intT, intT, intT, objT c_Qt::ItemSelectionMode] $
   --   objT c_QList<QGraphicsItem $ objT c_*>
-  -- TODO mkConstMethod "items" [objT c_QRect, objT c_Qt::ItemSelectionMode] $
+  -- TODO just $ mkConstMethod "items" [objT c_QRect, objT c_Qt::ItemSelectionMode] $
   --   objT c_QList<QGraphicsItem $ objT c_*>
-  -- TODO mkConstMethod "items" [objT c_QPolygon, objT c_Qt::ItemSelectionMode] $
+  -- TODO just $ mkConstMethod "items" [objT c_QPolygon, objT c_Qt::ItemSelectionMode] $
   --   objT c_QList<QGraphicsItem $ objT c_*>
-  -- TODO mkConstMethod "items" [objT c_QPainterPath, objT c_Qt::ItemSelectionMode] $
+  -- TODO just $ mkConstMethod "items" [objT c_QPainterPath, objT c_Qt::ItemSelectionMode] $
   --   objT c_QList<QGraphicsItem $ objT c_*>
-  , mkConstMethod' "mapFromScene" "mapFromScenePointF"
+  , just $ mkConstMethod' "mapFromScene" "mapFromScenePointF"
       [objT c_QPointF] $ objT c_QPoint
-  , mkConstMethod' "mapFromScene" "mapFromSceneRectF"
+  , just $ mkConstMethod' "mapFromScene" "mapFromSceneRectF"
       [objT c_QRectF] $ objT c_QPolygon
-  , mkConstMethod' "mapFromScene" "mapFromScenePolygonF"
+  , just $ mkConstMethod' "mapFromScene" "mapFromScenePolygonF"
       [objT c_QPolygonF] $ objT c_QPolygon
-  , mkConstMethod' "mapFromScene" "mapFromScenePainterPath"
+  , just $ mkConstMethod' "mapFromScene" "mapFromScenePainterPath"
       [objT c_QPainterPath] $ objT c_QPainterPath
-  , mkConstMethod' "mapFromScene" "mapFromScenePointFRaw"
+  , just $ mkConstMethod' "mapFromScene" "mapFromScenePointFRaw"
       [qreal, qreal] $ objT c_QPoint
-  , mkConstMethod' "mapFromScene" "mapFromSceneRectFRaw"
+  , just $ mkConstMethod' "mapFromScene" "mapFromSceneRectFRaw"
       [qreal, qreal, qreal, qreal] $ objT c_QPolygon
-  , mkConstMethod' "mapToScene" "mapToScenePoint"
+  , just $ mkConstMethod' "mapToScene" "mapToScenePoint"
       [objT c_QPoint] $ objT c_QPointF
-  , mkConstMethod' "mapToScene" "mapToSceneRect"
+  , just $ mkConstMethod' "mapToScene" "mapToSceneRect"
       [objT c_QRect] $ objT c_QPolygonF
-  , mkConstMethod' "mapToScene" "mapToScenePolygon"
+  , just $ mkConstMethod' "mapToScene" "mapToScenePolygon"
       [objT c_QPolygon] $ objT c_QPolygonF
-  , mkConstMethod' "mapToScene" "mapToScenePainterPath"
+  , just $ mkConstMethod' "mapToScene" "mapToScenePainterPath"
       [objT c_QPainterPath] $ objT c_QPainterPath
-  , mkConstMethod' "mapToScene" "mapToScenePointRaw"
+  , just $ mkConstMethod' "mapToScene" "mapToScenePointRaw"
       [intT, intT] $ objT c_QPointF
-  , mkConstMethod' "mapToScene" "mapToSceneRectRaw"
+  , just $ mkConstMethod' "mapToScene" "mapToSceneRectRaw"
       [intT, intT, intT, intT] $ objT c_QPolygonF
-  -- TODO mkConstMethod "matrix" np $ objT c_QMatrix
-  , mkConstMethod "optimizationFlags" np $ flagsT fl_OptimizationFlags
-  , mkMethod "render" [ptrT $ objT c_QPainter] voidT
-  , mkMethod' "render" "renderAll"
+  -- TODO test (qtVersion < [6]) $ mkConstMethod "matrix" np $ objT c_QMatrix
+  , just $ mkConstMethod "optimizationFlags" np $ flagsT fl_OptimizationFlags
+  , just $ mkMethod "render" [ptrT $ objT c_QPainter] voidT
+  , just $ mkMethod' "render" "renderAll"
       [ptrT $ objT c_QPainter, objT c_QRectF, objT c_QRect, enumT e_AspectRatioMode] voidT
-  , mkConstMethod "renderHints" np $ flagsT fl_RenderHints
-  , mkMethod "resetCachedContent" np voidT
-  , mkMethod "resetMatrix" np voidT
-  , mkMethod "resetTransform" np voidT
-  , mkConstMethod "resizeAnchor" np $ enumT e_ViewportAnchor
-  , mkMethod "rotate" [qreal] voidT
-  -- TODO mkConstMethod "rubberBandSelectionMode" np $ objT c_Qt::ItemSelectionMode
-  , mkMethod "scale" [qreal, qreal] voidT
-  , mkConstMethod "scene" np $ ptrT $ objT c_QGraphicsScene
-  , mkConstMethod "sceneRect" np $ objT c_QRectF
-  , mkMethod "setAlignment" [flagsT fl_Alignment] voidT
-  , mkMethod "setBackgroundBrush" [objT c_QBrush] voidT
-  , mkMethod "setCacheMode" [flagsT fl_CacheMode] voidT
-  , mkMethod "setDragMode" [enumT e_DragMode] voidT
-  , mkMethod "setForegroundBrush" [objT c_QBrush] voidT
-  , mkMethod "setInteractive" [boolT] voidT
-  -- TODO mkMethod "setMatrix" [objT c_QMatrix] voidT
-  -- TODO mkMethod' "setMatrix" "setMatrixAll" [objT c_QMatrix, boolT] voidT
-  , mkMethod "setOptimizationFlag" [enumT e_OptimizationFlag] voidT
-  , mkMethod' "setOptimizationFlag" "setOptimizationFlagAll" [enumT e_OptimizationFlag, boolT] voidT
-  , mkMethod "setOptimizationFlags" [flagsT fl_OptimizationFlags] voidT
-  , mkMethod "setRenderHint" [enumT e_RenderHint] voidT
-  , mkMethod' "setRenderHint" "setRenderHintAll" [enumT e_RenderHint, boolT] voidT
-  , mkMethod "setRenderHints" [flagsT fl_RenderHints] voidT
-  , mkMethod "setResizeAnchor" [enumT e_ViewportAnchor] voidT
-  -- TODO mkMethod "setRubberBandSelectionMode" [objT c_Qt::ItemSelectionMode] voidT
-  , mkMethod "setScene" [ptrT $ objT c_QGraphicsScene] voidT
-  , mkMethod' "setSceneRect" "setSceneRectF" [objT c_QRectF] voidT
-  , mkMethod' "setSceneRect" "setSceneRectRaw" [qreal, qreal, qreal, qreal] voidT
-  , mkMethod "setTransform" [objT c_QTransform] voidT
-  , mkMethod' "setTransform" "setTransformAll" [objT c_QTransform, boolT] voidT
-  , mkMethod "setTransformationAnchor" [enumT e_ViewportAnchor] voidT
-  , mkMethod "setViewportUpdateMode" [enumT e_ViewportUpdateMode] voidT
-  , mkMethod "shear" [qreal, qreal] voidT
-  , mkConstMethod "transform" np $ objT c_QTransform
-  , mkConstMethod "transformationAnchor" np $ enumT e_ViewportAnchor
-  , mkMethod "translate" [qreal, qreal] voidT
-  , mkConstMethod "viewportTransform" np $ objT c_QTransform
+  , just $ mkConstMethod "renderHints" np $ flagsT fl_RenderHints
+  , just $ mkMethod "resetCachedContent" np voidT
+  , test (qtVersion < [6]) $ mkMethod "resetMatrix" np voidT
+  , just $ mkMethod "resetTransform" np voidT
+  , just $ mkConstMethod "resizeAnchor" np $ enumT e_ViewportAnchor
+  , just $ mkMethod "rotate" [qreal] voidT
+  -- TODO just $ mkConstMethod "rubberBandSelectionMode" np $ objT c_Qt::ItemSelectionMode
+  , just $ mkMethod "scale" [qreal, qreal] voidT
+  , just $ mkConstMethod "scene" np $ ptrT $ objT c_QGraphicsScene
+  , just $ mkConstMethod "sceneRect" np $ objT c_QRectF
+  , just $ mkMethod "setAlignment" [flagsT fl_Alignment] voidT
+  , just $ mkMethod "setBackgroundBrush" [objT c_QBrush] voidT
+  , just $ mkMethod "setCacheMode" [flagsT fl_CacheMode] voidT
+  , just $ mkMethod "setDragMode" [enumT e_DragMode] voidT
+  , just $ mkMethod "setForegroundBrush" [objT c_QBrush] voidT
+  , just $ mkMethod "setInteractive" [boolT] voidT
+  -- TODO test (qtVersion < [6]) $ mkMethod "setMatrix" [objT c_QMatrix] voidT
+  -- TODO test (qtVersion < [6]) $ mkMethod' "setMatrix" "setMatrixAll" [objT c_QMatrix, boolT] voidT
+  , just $ mkMethod "setOptimizationFlag" [enumT e_OptimizationFlag] voidT
+  , just $ mkMethod' "setOptimizationFlag" "setOptimizationFlagAll" [enumT e_OptimizationFlag, boolT] voidT
+  , just $ mkMethod "setOptimizationFlags" [flagsT fl_OptimizationFlags] voidT
+  , just $ mkMethod "setRenderHint" [enumT e_RenderHint] voidT
+  , just $ mkMethod' "setRenderHint" "setRenderHintAll" [enumT e_RenderHint, boolT] voidT
+  , just $ mkMethod "setRenderHints" [flagsT fl_RenderHints] voidT
+  , just $ mkMethod "setResizeAnchor" [enumT e_ViewportAnchor] voidT
+  -- TODO just $ mkMethod "setRubberBandSelectionMode" [objT c_Qt::ItemSelectionMode] voidT
+  , just $ mkMethod "setScene" [ptrT $ objT c_QGraphicsScene] voidT
+  , just $ mkMethod' "setSceneRect" "setSceneRectF" [objT c_QRectF] voidT
+  , just $ mkMethod' "setSceneRect" "setSceneRectRaw" [qreal, qreal, qreal, qreal] voidT
+  , just $ mkMethod "setTransform" [objT c_QTransform] voidT
+  , just $ mkMethod' "setTransform" "setTransformAll" [objT c_QTransform, boolT] voidT
+  , just $ mkMethod "setTransformationAnchor" [enumT e_ViewportAnchor] voidT
+  , just $ mkMethod "setViewportUpdateMode" [enumT e_ViewportUpdateMode] voidT
+  , just $ mkMethod "shear" [qreal, qreal] voidT
+  , just $ mkConstMethod "transform" np $ objT c_QTransform
+  , just $ mkConstMethod "transformationAnchor" np $ enumT e_ViewportAnchor
+  , just $ mkMethod "translate" [qreal, qreal] voidT
+  , just $ mkConstMethod "viewportTransform" np $ objT c_QTransform
   ]
 
 (e_CacheModeFlag, fl_CacheMode) =
@@ -220,11 +223,12 @@
 
 (e_OptimizationFlag, fl_OptimizationFlags) =
   makeQtEnumAndFlags (ident1 "QGraphicsView" "OptimizationFlag") "OptimizationFlags"
-  [includeStd "QGraphicsView"]
-  [ "DontClipPainter"
-  , "DontSavePainterState"
-  , "DontAdjustForAntialiasing"
-  , "IndirectPainting"
+  [includeStd "QGraphicsView"] $
+  collect
+  [ test (qtVersion < [6]) "DontClipPainter"
+  , just "DontSavePainterState"
+  , just "DontAdjustForAntialiasing"
+  , just "IndirectPainting"
   ]
 
 e_ViewportAnchor =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGridLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGridLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGridLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGridLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGroupBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGroupBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGroupBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QGroupBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QHBoxLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QHBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QHBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QHBoxLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QInputDialog.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QInputDialog.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QInputDialog.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QInputDialog.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -50,7 +50,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QDialog (c_QDialog)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QLineEdit (e_EchoMode)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QWidget (c_QWidget)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -59,7 +59,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Widgets", "QInputDialog"] minVersion
+  makeQtModuleWithVersionBounds ["Widgets", "QInputDialog"] (Just minVersion) Nothing
   [ QtExportClassAndSignals c_QInputDialog signals
   , qtExport e_InputDialogOption
   , qtExport fl_InputDialogOptions
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLCDNumber.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLCDNumber.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLCDNumber.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLCDNumber.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLabel.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLabel.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLabel.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLabel.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -43,6 +43,7 @@
   ptrT,
   voidT,
   )
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Flags (flagsT)
 import Graphics.UI.Qtah.Generator.Interface.Core.QString (c_QString)
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (
@@ -83,7 +84,8 @@
     -- TODO movie
   , mkProp "openExternalLinks" boolT
     -- TODO picture
-  , mkConstMethod "pixmap" np $ ptrT $ constT $ objT c_QPixmap
+  , mkConstMethod "pixmap" np $
+    if qtVersion >= [6] then objT c_QPixmap else ptrT $ constT $ objT c_QPixmap
   , mkBoolHasProp "scaledContents"
   , mkConstMethod "selectedText" np $ objT c_QString
   , mkConstMethod "selectionStart" np intT
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayout.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayoutItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayoutItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayoutItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLayoutItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLineEdit.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLineEdit.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLineEdit.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QLineEdit.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QListView.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QListView.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QListView.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QListView.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMainWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMainWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMainWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMainWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiArea.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiArea.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiArea.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiArea.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMdiSubWindow.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenu.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenu.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenu.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenu.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenuBar.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenuBar.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenuBar.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMenuBar.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMessageBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMessageBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMessageBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QMessageBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QOpenGLWidget.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QOpenGLWidget.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QOpenGLWidget.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QOpenGLWidget.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -41,16 +41,17 @@
 import Graphics.UI.Qtah.Generator.Interface.Gui.QImage (c_QImage)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (listener)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QWidget (c_QWidget)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 minVersion = [5, 4]
+maxVersion = [6]  -- TODO Reenable for Qt 6, this isn't actually removed (issue #58).
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Widgets", "QOpenGLWidget"] minVersion $
+  makeQtModuleWithVersionBounds ["Widgets", "QOpenGLWidget"] (Just minVersion) (Just maxVersion) $
   collect
   [ just $ QtExportClassAndSignals c_QOpenGLWidget signals
   , test (qtVersion >= [5, 5]) $ qtExport e_UpdateBehavior
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QProgressBar.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QProgressBar.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QProgressBar.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QProgressBar.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QPushButton.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QPushButton.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QPushButton.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QPushButton.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRadioButton.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRadioButton.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRadioButton.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRadioButton.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRubberBand.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRubberBand.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRubberBand.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QRubberBand.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollArea.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollArea.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollArea.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollArea.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollBar.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollBar.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollBar.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QScrollBar.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSizePolicy.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSizePolicy.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSizePolicy.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSizePolicy.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSlider.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSlider.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSlider.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSlider.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpacerItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpacerItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpacerItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpacerItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpinBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpinBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpinBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSpinBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -72,7 +72,8 @@
   ]
 
 signalGens :: [SignalGen]
-signalGens =
-  [ makeSignal' "valueChanged" "valueChangedInt" listenerInt
-  , makeSignal' "valueChanged" "valueChangedString" listenerQString
+signalGens = collect
+  [ test (qtVersion < [6]) $ makeSignal' "valueChanged" "valueChangedInt" listenerInt
+  , test (qtVersion < [6]) $ makeSignal' "valueChanged" "valueChangedString" listenerQString
+  , test (qtVersion >= [6]) $ makeSignal "valueChanged" listenerInt
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSplitter.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSplitter.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSplitter.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSplitter.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedWidget.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedWidget.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedWidget.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStackedWidget.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStatusBar.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStatusBar.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStatusBar.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStatusBar.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStyledItemDelegate.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStyledItemDelegate.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStyledItemDelegate.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QStyledItemDelegate.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -33,7 +33,7 @@
 -- import Graphics.UI.Qtah.Generator.Interface.Core.QLocale (c_QLocale)
 import Graphics.UI.Qtah.Generator.Interface.Core.QObject (c_QObject)
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QAbstractItemDelegate (c_QAbstractItemDelegate)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
@@ -42,7 +42,7 @@
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Widgets", "QStyledItemDelegate"] minVersion
+  makeQtModuleWithVersionBounds ["Widgets", "QStyledItemDelegate"] (Just minVersion) Nothing
   [ qtExport c_QStyledItemDelegate ]
 
 c_QStyledItemDelegate =
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -47,14 +47,14 @@
   listenerQSystemTrayIconActivationReason,
   )
 import Graphics.UI.Qtah.Generator.Interface.Widgets.QMenu (c_QMenu)
-import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithMinVersion)
+import Graphics.UI.Qtah.Generator.Module (AModule (AQtModule), makeQtModuleWithVersionBounds)
 import Graphics.UI.Qtah.Generator.Types
 
 {-# ANN module "HLint: ignore Use camelCase" #-}
 
 aModule =
   AQtModule $
-  makeQtModuleWithMinVersion ["Widgets", "QSystemTrayIcon"] [4, 2]
+  makeQtModuleWithVersionBounds ["Widgets", "QSystemTrayIcon"] (Just [4, 2]) Nothing
   [ QtExportClassAndSignals c_QSystemTrayIcon signals
   , qtExport e_ActivationReason
   , qtExport e_MessageIcon
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QSystemTrayIcon.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTabWidget.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTabWidget.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTabWidget.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTabWidget.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTextEdit.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTextEdit.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTextEdit.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTextEdit.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -36,6 +36,8 @@
   np,
   )
 import Foreign.Hoppy.Generator.Types (boolT, enumT, intT, objT, ptrT, voidT)
+import Foreign.Hoppy.Generator.Version (collect, just, test)
+import Graphics.UI.Qtah.Generator.Config (qtVersion)
 import Graphics.UI.Qtah.Generator.Flags (flagsT)
 import Graphics.UI.Qtah.Generator.Interface.Core.QPoint (c_QPoint)
 import Graphics.UI.Qtah.Generator.Interface.Core.QRect (c_QRect)
@@ -43,6 +45,7 @@
 import Graphics.UI.Qtah.Generator.Interface.Core.Types (fl_Alignment, qreal)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QColor (c_QColor)
 import Graphics.UI.Qtah.Generator.Interface.Gui.QFont (c_QFont)
+import Graphics.UI.Qtah.Generator.Interface.Gui.QTextDocument (c_QTextDocument)
 import Graphics.UI.Qtah.Generator.Interface.Internal.Listener (
   listener,
   listenerBool,
@@ -68,72 +71,73 @@
   makeQtClassAndSignals signalGens $
   addReqIncludes [includeStd "QTextEdit"] $
   classSetEntityPrefix "" $
-  makeClass (ident "QTextEdit") Nothing [c_QAbstractScrollArea]
-  [ mkCtor "new" np
-  , mkCtor "newWithParent" [ptrT $ objT c_QWidget]
-  , mkCtor "newWithText" [objT c_QString]
-  , mkCtor "newWithTextAndParent" [objT c_QString, ptrT $ objT c_QWidget]
-  , mkProp "acceptRichText" boolT
-  , mkProp "alignment" $ flagsT fl_Alignment
-  , mkConstMethod "anchorAt" [objT c_QPoint] $ objT c_QString
-  , mkMethod "append" [objT c_QString] voidT
-  , mkProp "autoFormatting" $ flagsT fl_AutoFormatting
-  , mkConstMethod "canPaste" np boolT
-  , mkMethod "clear" np voidT
-  , mkMethod "copy" np voidT
-  , mkMethod' "createStandardContextMenu" "createStandardContextMenu" np $ ptrT $ objT c_QMenu
-  , mkMethod' "createStandardContextMenu" "createStandardContextMenuAt" [objT c_QPoint] $
+  makeClass (ident "QTextEdit") Nothing [c_QAbstractScrollArea] $
+  collect
+  [ just $ mkCtor "new" np
+  , just $ mkCtor "newWithParent" [ptrT $ objT c_QWidget]
+  , just $ mkCtor "newWithText" [objT c_QString]
+  , just $ mkCtor "newWithTextAndParent" [objT c_QString, ptrT $ objT c_QWidget]
+  , just $ mkProp "acceptRichText" boolT
+  , just $ mkProp "alignment" $ flagsT fl_Alignment
+  , just $ mkConstMethod "anchorAt" [objT c_QPoint] $ objT c_QString
+  , just $ mkMethod "append" [objT c_QString] voidT
+  , just $ mkProp "autoFormatting" $ flagsT fl_AutoFormatting
+  , just $ mkConstMethod "canPaste" np boolT
+  , just $ mkMethod "clear" np voidT
+  , just $ mkMethod "copy" np voidT
+  , just $ mkMethod' "createStandardContextMenu" "createStandardContextMenu" np $ ptrT $ objT c_QMenu
+  , just $ mkMethod' "createStandardContextMenu" "createStandardContextMenuAt" [objT c_QPoint] $
     ptrT $ objT c_QMenu
     -- TODO currentCharFormat
-  , mkProp "currentFont" $ objT c_QFont
+  , just $ mkProp "currentFont" $ objT c_QFont
     -- TODO cursorForPosition
-  , mkConstMethod' "cursorRect" "cursorRect" np $ objT c_QRect
+  , just $ mkConstMethod' "cursorRect" "cursorRect" np $ objT c_QRect
     -- TODO cursorRect(const QTextCursor&)
-  , mkProp "cursorWidth" intT
-  , mkMethod "cut" np voidT
-    -- TODO document
-  , mkProp "documentTitle" $ objT c_QString
-  , mkMethod "ensureCursorVisible" np voidT
+  , just $ mkProp "cursorWidth" intT
+  , just $ mkMethod "cut" np voidT
+  , just $ mkProp "document" $ ptrT $ objT c_QTextDocument
+  , just $ mkProp "documentTitle" $ objT c_QString
+  , just $ mkMethod "ensureCursorVisible" np voidT
     -- TODO extraSelections
-  , mkMethod' "find" "find" [objT c_QString] boolT
+  , just $ mkMethod' "find" "find" [objT c_QString] boolT
     -- TODO find with FindFlags
-  , mkProp "fontFamily" $ objT c_QString
-  , mkProp "fontItalic" boolT
-  , mkProp "fontPointSize" qreal
-  , mkProp "fontUnderline" boolT
-  , mkProp "fontWeight" intT
-  , mkMethod "insertHtml" [objT c_QString] voidT
-  , mkMethod "insertPlainText" [objT c_QString] voidT
-  , mkProp "lineWrapColumnOrWidth" intT
-  , mkProp "lineWrapMode" $ enumT e_LineWrapMode
+  , just $ mkProp "fontFamily" $ objT c_QString
+  , just $ mkProp "fontItalic" boolT
+  , just $ mkProp "fontPointSize" qreal
+  , just $ mkProp "fontUnderline" boolT
+  , just $ mkProp "fontWeight" intT
+  , just $ mkMethod "insertHtml" [objT c_QString] voidT
+  , just $ mkMethod "insertPlainText" [objT c_QString] voidT
+  , just $ mkProp "lineWrapColumnOrWidth" intT
+  , just $ mkProp "lineWrapMode" $ enumT e_LineWrapMode
     -- TODO loadResource
     -- TODO mergeCurrentCharFormat
     -- TODO moveCursor
-  , mkProp "overwriteMode" boolT
-  , mkMethod "paste" np voidT
+  , just $ mkProp "overwriteMode" boolT
+  , just $ mkMethod "paste" np voidT
     -- TODO print
-  , mkBoolIsProp "readOnly"
-  , mkMethod "redo" np voidT
-  , mkMethod "scrollToAnchor" [objT c_QString] voidT
-  , mkMethod "selectAll" np voidT
-  , mkMethod "setHtml" [objT c_QString] voidT
-  , mkMethod "setPlainText" [objT c_QString] voidT
-  , mkMethod "setText" [objT c_QString] voidT
-  , mkProp "tabChangesFocus" boolT
-  , mkProp "tabStopWidth" intT
-  , mkProp "textBackgroundColor" $ objT c_QColor
-  , mkProp "textColor" $ objT c_QColor
+  , just $ mkBoolIsProp "readOnly"
+  , just $ mkMethod "redo" np voidT
+  , just $ mkMethod "scrollToAnchor" [objT c_QString] voidT
+  , just $ mkMethod "selectAll" np voidT
+  , just $ mkMethod "setHtml" [objT c_QString] voidT
+  , just $ mkMethod "setPlainText" [objT c_QString] voidT
+  , just $ mkMethod "setText" [objT c_QString] voidT
+  , just $ mkProp "tabChangesFocus" boolT
+  , test (qtVersion < [6]) $ mkProp "tabStopWidth" intT
+  , just $ mkProp "textBackgroundColor" $ objT c_QColor
+  , just $ mkProp "textColor" $ objT c_QColor
     -- TODO textCursor
     -- TODO textInteractionFlags
-  , mkConstMethod "toHtml" np $ objT c_QString
-  , mkConstMethod "toPlainText" np $ objT c_QString
-  , mkMethod "undo" np voidT
-  , mkBoolIsProp "undoRedoEnabled"
+  , just $ mkConstMethod "toHtml" np $ objT c_QString
+  , just $ mkConstMethod "toPlainText" np $ objT c_QString
+  , just $ mkMethod "undo" np voidT
+  , just $ mkBoolIsProp "undoRedoEnabled"
     -- TODO wordWrapMode
-  , mkMethod "zoomIn" np voidT
-  , mkMethod' "zoomIn" "zoomInPoints" [intT] voidT
-  , mkMethod "zoomOut" np voidT
-  , mkMethod' "zoomOut" "zoomOutPoints" [intT] voidT
+  , just $ mkMethod "zoomIn" np voidT
+  , just $ mkMethod' "zoomIn" "zoomInPoints" [intT] voidT
+  , just $ mkMethod "zoomOut" np voidT
+  , just $ mkMethod' "zoomOut" "zoomOutPoints" [intT] voidT
   ]
 
 signalGens :: [SignalGen]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBar.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBar.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBar.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBar.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBox.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBox.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBox.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolBox.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2018-2021 The Qtah Authors.
+-- Copyright 2018-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolButton.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolButton.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolButton.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QToolButton.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeView.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeView.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeView.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeView.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidget.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QTreeWidgetItem.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QVBoxLayout.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QVBoxLayout.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QVBoxLayout.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QVBoxLayout.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -88,7 +88,7 @@
   makeQtClassAndSignals signalGens $
   addReqIncludes [includeStd "QWidget"] $
   classSetEntityPrefix "" $
-  makeClass (ident "QWidget") Nothing [c_QObject] $
+  makeClass (ident "QWidget") Nothing [c_QObject, c_QPaintDevice] $
   collect
   [ just $ mkCtor "new" np
   , just $ mkCtor "newWithParent" [ptrT $ objT c_QWidget]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs-boot
--- a/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs-boot
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Widgets/QWidget.hs-boot
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
diff --git a/src/Graphics/UI/Qtah/Generator/ListenerGen.hs b/src/Graphics/UI/Qtah/Generator/ListenerGen.hs
--- a/src/Graphics/UI/Qtah/Generator/ListenerGen.hs
+++ b/src/Graphics/UI/Qtah/Generator/ListenerGen.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -50,6 +50,7 @@
   , "#include <QSize>"
   , "#include <QSystemTrayIcon>"
   , "#include <QTreeWidgetItem>"
+  , "#include <QUrl>"
   , "#include <QVariant>"
   , "#include <QVector>"
   , "#include <QWidget>"
diff --git a/src/Graphics/UI/Qtah/Generator/Main.hs b/src/Graphics/UI/Qtah/Generator/Main.hs
--- a/src/Graphics/UI/Qtah/Generator/Main.hs
+++ b/src/Graphics/UI/Qtah/Generator/Main.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2024 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -68,13 +68,21 @@
 
 -- | Generates the C++ side of the Qtah bindings, producing files in the given
 -- directory.
-generateCpp :: FilePath -> IO ()
-generateCpp path = run ["--gen-cpp", path]
+generateCpp :: FilePath -> FilePath -> FilePath -> IO ()
+generateCpp cppSourcesPath cppGenPath enumEvalCacheFilePath =
+  run [ "--enum-eval-cache-mode", "refresh"
+      , "--enum-eval-cache-path", enumEvalCacheFilePath
+      , "--gen-cpp", cppGenPath, cppSourcesPath
+      ]
 
 -- | Generates the Haskell side of the Qtah bindings in the given source
 -- directory.
-generateHs :: FilePath -> IO ()
-generateHs path = run ["--gen-hs", path]
+generateHs :: FilePath -> FilePath -> IO ()
+generateHs hsGenPath enumEvalCacheFilePath =
+  run [ "--enum-eval-cache-mode", "must-exist"
+      , "--enum-eval-cache-path", enumEvalCacheFilePath
+      , "--gen-hs", hsGenPath
+      ]
 
 -- | Runs the Qtah generator with the given command line arguments.
 run :: [String] -> IO ()
diff --git a/src/Graphics/UI/Qtah/Generator/Module.hs b/src/Graphics/UI/Qtah/Generator/Module.hs
--- a/src/Graphics/UI/Qtah/Generator/Module.hs
+++ b/src/Graphics/UI/Qtah/Generator/Module.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
@@ -22,7 +22,7 @@
   aModuleHoppyModules,
   QtModule,
   makeQtModule,
-  makeQtModuleWithMinVersion,
+  makeQtModuleWithVersionBounds,
   qtModulePath,
   qtModuleQtExports,
   qtModuleHoppy,
@@ -185,14 +185,32 @@
        moduleAddHaskellName modulePath
      }
 
--- | Creates a 'QtModule' (a la 'makeQtModule') that has a minimum version
--- applied to all of its contents.  If Qtah is being built against a version of
--- Qt below this minimum version, then the module will still be generated, but
--- it will be empty; the exports list will be replaced with an empty list.
-makeQtModuleWithMinVersion :: [String] -> Version -> [QtExport] -> QtModule
-makeQtModuleWithMinVersion modulePath minVersion qtExports =
+-- | Creates a 'QtModule' (a la 'makeQtModule') that has lower or upper version
+-- bounds applied to all of its contents.  If Qtah is being built against a
+-- version of Qt outside of these bounds, then the module will still be
+-- generated, but it will be empty; the exports list will be replaced with an
+-- empty list.
+--
+-- Note that for the module's contents to be generated, the lower bound is
+-- inclusive, it being the version in which the module was added.  The upper
+-- bound is exclusive, being the version in which the module was removed.
+--
+-- We generate the module anyway to avoid having to conditionally include
+-- modules in Cabal package definitions.
+makeQtModuleWithVersionBounds :: [String]
+                              -> Maybe Version
+                              -- ^ The Qt version in which the module was added, if known.
+                              -> Maybe Version
+                              -- ^ The Qt version in which the module was removed, if known.
+                              -> [QtExport]
+                              -> QtModule
+makeQtModuleWithVersionBounds modulePath maybeAddedVersion maybeRemovedVersion qtExports =
   makeQtModule modulePath $
-  if qtVersion >= minVersion then qtExports else []
+  case maybeAddedVersion of
+    Just addedVersion | qtVersion < addedVersion -> []
+    _ -> case maybeRemovedVersion of
+      Just removedVersion | qtVersion > removedVersion -> []
+      _ -> qtExports
 
 sayWrapperModule :: [String] -> [QtExport] -> Generator ()
 sayWrapperModule modulePath qtExports = inFunction "<Qtah generateModule>" $ do
diff --git a/src/Graphics/UI/Qtah/Generator/Types.hs b/src/Graphics/UI/Qtah/Generator/Types.hs
--- a/src/Graphics/UI/Qtah/Generator/Types.hs
+++ b/src/Graphics/UI/Qtah/Generator/Types.hs
@@ -1,6 +1,6 @@
 -- This file is part of Qtah.
 --
--- Copyright 2015-2021 The Qtah Authors.
+-- Copyright 2015-2023 The Qtah Authors.
 --
 -- This program is free software: you can redistribute it and/or modify
 -- it under the terms of the GNU Lesser General Public License as published by
