diff --git a/src/backends/AddressBookBackend.mm b/src/backends/AddressBookBackend.mm index 34f3ec7355d57b94051276b3243ec074a5044f9a..f98e7736059098f9dde7de49bf11b55e4e1e4fa4 100644 --- a/src/backends/AddressBookBackend.mm +++ b/src/backends/AddressBookBackend.mm @@ -38,6 +38,7 @@ #import <QtWidgets/QApplication> #import <QtCore/QStandardPaths> #import <QTimer> +#import <QPixmap> #import <QtGlobal> //Ring @@ -202,14 +203,21 @@ void AddressBookBackend::asyncLoad(int startingPoint) for (int i = startingPoint; i < endPoint; ++i) { - Person* person = new Person(QByteArray::fromNSData(((ABPerson*)[everyone objectAtIndex:i]).vCardRepresentation), + ABPerson* abPerson = ((ABPerson*)[everyone objectAtIndex:i]); + + Person* person = new Person(QByteArray::fromNSData(abPerson.vCardRepresentation), Person::Encoding::vCard, this); + + if(abPerson.imageData) + person->setPhoto(QVariant(QPixmap::fromImage(QImage::fromData(QByteArray::fromNSData((abPerson.imageData)))))); + if([person->formattedName().toNSString() isEqualToString:@""] && [person->secondName().toNSString() isEqualToString:@""] && [person->firstName().toNSString() isEqualToString:@""]) { continue; } + person->setCollection(this); editor<Person>()->addExisting(person); diff --git a/src/delegates/ImageManipulationDelegate.mm b/src/delegates/ImageManipulationDelegate.mm index 8c5cd0c2b3a4ec60013d60425abbae450e9b5324..fb0b91eb53514f58913ebc5279ee20e75c8f43ba 100644 --- a/src/delegates/ImageManipulationDelegate.mm +++ b/src/delegates/ImageManipulationDelegate.mm @@ -137,9 +137,10 @@ QPixmap ImageManipulationDelegate::drawDefaultUserPixmap(const QSize& size, bool CGImageRef ImageManipulationDelegate::resizeCGImage(CGImageRef image, const QSize& size) { // create context, keeping original image properties CGColorSpaceRef colorspace = CGImageGetColorSpace(image); + CGContextRef context = CGBitmapContextCreate(NULL, size.width(), size.height(), CGImageGetBitsPerComponent(image), - CGImageGetBytesPerRow(image), + size.width() * CGImageGetBitsPerComponent(image), colorspace, CGImageGetAlphaInfo(image)); CGColorSpaceRelease(colorspace);