Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.6.2
-
-
d8371ebbd (dev), cbdd82039 (6.7), e7f00c064 (6.6), 92b32225c (tqtc/lts-6.5)
Description
Reproducer attached. Replace MACOSX_BUNDLE_INFO_PLIST with correct path before building. Use Xcode as generator.
In main function, reflection delegate is set as:
NSApplication * macOSApp = [NSApplication sharedApplication]; AppDelegate * delegate = [[AppDelegate alloc] init]; [macOSApp setDelegate: delegate];
and it is after QGuiApplication being created. But somehow reflection delegate methods are working correctly. Application output:
2024-03-05 18:31:53.264 OpenFile[3624:1277868] [MacOSOSProjectStructure]: main(int, char* []) | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main} 2024-03-05 18:31:53.342 OpenFile[3624:1277868] [MacOSOSProjectStructure]: About to enter Qt's event loop.. 2024-03-05 18:31:53.343 OpenFile[3624:1277868] [MacOSOSProjectStructure]: applicationWillFinishLaunching(_:) | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main} 2024-03-05 18:31:53.350 OpenFile[3624:1277868] [MacOSOSProjectStructure]: applicationDidFinishLaunching(_:) | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main} 2024-03-05 18:31:53.350 OpenFile[3624:1277868] [MacOSOSProjectStructure]: TWFunc | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main} 2024-03-05 18:31:54.995 OpenFile[3624:1277868] [MacOSOSProjectStructure]: applicationWillBecomeActive(_:) | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main} 2024-03-05 18:31:54.996 OpenFile[3624:1277868] [MacOSOSProjectStructure]: applicationDidBecomeActive(_:) | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main} 2024-03-05 18:31:58.333 OpenFile[3624:1277868] [MacOSOSProjectStructure]: applicationWillTerminate(_:) | Thread.current = <_NSMainThread: 0x600002664080>{number = 1, name = main}
But if reflection delegate setup is moved to the beginning of main function, somehow some delegate methods are not invoked:
2024-03-05 18:33:28.600 OpenFile[3742:1279543] [MacOSOSProjectStructure]: main(int, char* []) | Thread.current = <_NSMainThread: 0x6000033ac680>{number = 1, name = main} 2024-03-05 18:33:28.633 OpenFile[3742:1279543] [MacOSOSProjectStructure]: About to enter Qt's event loop.. 2024-03-05 18:33:28.640 OpenFile[3742:1279543] [MacOSOSProjectStructure]: TWFunc | Thread.current = <_NSMainThread: 0x6000033ac680>{number = 1, name = main} 2024-03-05 18:33:30.701 OpenFile[3742:1279543] [MacOSOSProjectStructure]: applicationWillBecomeActive(_:) | Thread.current = <_NSMainThread: 0x6000033ac680>{number = 1, name = main} 2024-03-05 18:33:30.702 OpenFile[3742:1279543] [MacOSOSProjectStructure]: applicationDidBecomeActive(_:) | Thread.current = <_NSMainThread: 0x6000033ac680>{number = 1, name = main} 2024-03-05 18:33:34.176 OpenFile[3742:1279543] [MacOSProjectStructure]: Exited from Qt's event loop with returnValue = 0 | Thread.current = <_NSMainThread: 0x6000033ac680>{number = 1, name = main}
Particularly, applicationWillFinishLaunching, applicationDidFinishLaunching and applicationWillTerminate are missing.
Environment is macOS14 + Xcode15. Strictly speaking, it is too new to be supported. Not sure of it is the problem.
Attachments
For Gerrit Dashboard: QTBUG-122996 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
545534,2 | macOS: Forward application{Will,Did}FinishLaunching to reflection delegate | dev | qt/qtbase | Status: MERGED | +2 | 0 |
547869,2 | macOS: Forward application{Will,Did}FinishLaunching to reflection delegate | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |
548006,2 | macOS: Forward application{Will,Did}FinishLaunching to reflection delegate | 6.6 | qt/qtbase | Status: MERGED | +2 | 0 |
548078,2 | macOS: Forward application{Will,Did}FinishLaunching to reflection delegate | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |