|
1 | 1 | module FF.Qt (printChildrenTree, whenUIIdle) where |
2 | 2 |
|
3 | | -import Data.Foldable (for_) |
4 | | -import qualified Graphics.UI.Qtah.Core.QMetaClassInfo as QMetaClassInfo |
5 | | -import qualified Graphics.UI.Qtah.Core.QMetaObject as QMetaObject |
6 | | -import Graphics.UI.Qtah.Core.QObject (QObjectPtr, toQObject) |
7 | | -import qualified Graphics.UI.Qtah.Core.QObject as QObject |
8 | | -import qualified Graphics.UI.Qtah.Core.QTimer as QTimer |
9 | | -import Graphics.UI.Qtah.Signal (connect_) |
| 3 | +import Data.Foldable (for_) |
| 4 | +import Graphics.UI.Qtah.Core.QMetaClassInfo qualified as QMetaClassInfo |
| 5 | +import Graphics.UI.Qtah.Core.QMetaObject qualified as QMetaObject |
| 6 | +import Graphics.UI.Qtah.Core.QObject (QObjectPtr, toQObject) |
| 7 | +import Graphics.UI.Qtah.Core.QObject qualified as QObject |
| 8 | +import Graphics.UI.Qtah.Core.QTimer qualified as QTimer |
| 9 | +import Graphics.UI.Qtah.Signal (connect_) |
10 | 10 |
|
11 | | -printChildrenTree :: QObjectPtr object => object -> IO () |
12 | | -printChildrenTree = go 0 . toQObject where |
13 | | - go level object = do |
14 | | - name <- QObject.objectName object |
15 | | - meta <- QObject.metaObject object |
16 | | - classInfo <- QMetaObject.classInfo meta 0 |
17 | | - className <- QMetaClassInfo.name classInfo |
18 | | - putStrLn $ |
19 | | - unwords $ replicate level "| " ++ [show name, ":", show className] |
20 | | - children <- QObject.children object |
21 | | - for_ children $ go (level + 1) |
| 11 | +printChildrenTree :: (QObjectPtr object) => object -> IO () |
| 12 | +printChildrenTree = go 0 . toQObject |
| 13 | + where |
| 14 | + go level object = do |
| 15 | + name <- QObject.objectName object |
| 16 | + meta <- QObject.metaObject object |
| 17 | + classInfo <- QMetaObject.classInfo meta 0 |
| 18 | + className <- QMetaClassInfo.name classInfo |
| 19 | + putStrLn . unwords $ |
| 20 | + replicate level "| " ++ [show name, ":", show className] |
| 21 | + children <- QObject.children object |
| 22 | + for_ children $ go (level + 1) |
22 | 23 |
|
23 | 24 | whenUIIdle :: IO () -> IO () |
24 | 25 | whenUIIdle action = do |
25 | | - t <- QTimer.new |
26 | | - connect_ t QTimer.timeoutSignal action |
27 | | - QTimer.start t 0 |
| 26 | + t <- QTimer.new |
| 27 | + connect_ t QTimer.timeoutSignal action |
| 28 | + QTimer.start t 0 |
0 commit comments