Hello, I'm quite new to Qt development and my C++ and Obj-C skills are both
long-time neophyte. Perfect conditions for learning, eh?
I'm trying to upgrade a project from Qt 4.x to 5.x. I've worked through some of
the issues here and there, but I'm finding one that I can't seem to shake.
I have this method in a Obj-C class:
void MacDockIconHandler::setIcon(const QIcon &icon)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSImage *image;
if (icon.isNull())
image = [[NSImage imageNamed:@"NSApplicationIcon"] retain];
else {
QSize size = icon.actualSize(QSize(128, 128));
QPixmap pixmap = icon.pixmap(size);
CGImageRef cgImage = pixmap.toMacCGImageRef();//compile errors here
image = [[NSImage alloc] initWithCGImage:cgImage size:NSZeroSize];
CFRelease(cgImage);
}
[NSApp setApplicationIconImage:image];
[image release];
[pool release];
}
When I compile against Qt 5.0.0-beta2, it errors at the line marked above.
Looking through the Qt5 documentation, it appears that
QPixmap::toMacCGImageRef() no longer exists. I looked through the documentation
and verified its presence in Qt4 [1] and its absence in 5.0 [2].
As you can see, the code snippet here needs to take a QIcon and make it into an
NSImage. I can obviously transform the QIcon to a QPixmap, but I'm not sure
where to go from there. The QPixmap can be transformed to a QImage, but there
doesn't seem to be anywhere to go from there.
Is there another recommended way to accomplish this? Could these CGImageRef
methods have been erroneously removed? or perhaps simply moved to another class?
Any assistance welcome.
[1]: https://qt-project.org/doc/qt-4.8/QPixmap.html
[2]: https://qt-project.org/doc/qt-5.0/QPixmap.html
--
Colin Dean
[email protected]
_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest