delegates: adapt to new LRC interfaces API

Issue: #79656
Change-Id: I6d63c8fda34d931ee3650f82288c950a7c858303
diff --git a/src/delegates/ImageManipulationDelegate.mm b/src/delegates/ImageManipulationDelegate.mm
index 40f7a0a..3fdd8bd 100644
--- a/src/delegates/ImageManipulationDelegate.mm
+++ b/src/delegates/ImageManipulationDelegate.mm
@@ -47,114 +47,183 @@
 #import <person.h>
 #import <contactmethod.h>
 
-ImageManipulationDelegate::ImageManipulationDelegate() : PixmapManipulationDelegate()
-{
+namespace Interfaces {
 
-}
+    ImageManipulationDelegate::ImageManipulationDelegate()
+    {
 
-QVariant ImageManipulationDelegate::contactPhoto(Person* c, const QSize& size, bool displayPresence) {
-    const int radius = (size.height() > 35) ? 7 : 5;
+    }
 
-    QPixmap pxm;
-    if (c->photo().isValid()) {
-        QPixmap contactPhoto((qvariant_cast<QPixmap>(c->photo())).scaledToWidth(size.height()-6));
-        pxm = QPixmap(size);
+    QVariant ImageManipulationDelegate::contactPhoto(Person* c, const QSize& size, bool displayPresence) {
+        const int radius = (size.height() > 35) ? 7 : 5;
+
+        QPixmap pxm;
+        if (c->photo().isValid()) {
+            QPixmap contactPhoto((qvariant_cast<QPixmap>(c->photo())).scaledToWidth(size.height()-6));
+            pxm = QPixmap(size);
+            pxm.fill(Qt::transparent);
+            QPainter painter(&pxm);
+
+            //Clear the pixmap
+            painter.setCompositionMode(QPainter::CompositionMode_Clear);
+            painter.fillRect(0,0,size.width(),size.height(),QBrush(Qt::white));
+            painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
+
+            //Add corner radius to the Pixmap
+            QRect pxRect = contactPhoto.rect();
+            QBitmap mask(pxRect.size());
+            QPainter customPainter(&mask);
+            customPainter.setRenderHint  (QPainter::Antialiasing, true      );
+            customPainter.fillRect       (pxRect                , Qt::white );
+            customPainter.setBackground  (Qt::black                         );
+            customPainter.setBrush       (Qt::black                         );
+            customPainter.drawRoundedRect(pxRect,radius,radius);
+            contactPhoto.setMask(mask);
+            painter.drawPixmap(3,3,contactPhoto);
+            painter.setBrush(Qt::NoBrush);
+            painter.setPen(Qt::white);
+            painter.setRenderHint  (QPainter::Antialiasing, true   );
+            painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
+            painter.drawRoundedRect(3,3,pxm.height()-6,pxm.height()-6,radius,radius);
+            painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
+
+        }
+        else {
+            pxm = drawDefaultUserPixmap(size, false, false);
+        }
+
+        return pxm;
+    }
+
+    QVariant
+    ImageManipulationDelegate::callPhoto(Call* c, const QSize& size, bool displayPresence)
+    {
+        return callPhoto(c->peerContactMethod(), size, displayPresence);
+    }
+
+    QVariant
+    ImageManipulationDelegate::callPhoto(const ContactMethod* n, const QSize& size, bool displayPresence)
+    {
+        if (n->contact()) {
+            return contactPhoto(n->contact(), size, displayPresence);
+        } else {
+            return drawDefaultUserPixmap(size, false, false);
+        }
+    }
+
+    QVariant ImageManipulationDelegate::personPhoto(const QByteArray& data, const QString& type)
+    {
+        QImage image;
+        //For now, ENCODING is only base64 and image type PNG or JPG
+        const bool ret = image.loadFromData(QByteArray::fromBase64(data),type.toLatin1());
+        if (!ret)
+            qDebug() << "vCard image loading failed";
+
+        return QPixmap::fromImage(image);
+    }
+
+    QByteArray ImageManipulationDelegate::toByteArray(const QVariant& pxm)
+    {
+        //Preparation of our QPixmap
+        QByteArray bArray;
+        QBuffer buffer(&bArray);
+        buffer.open(QIODevice::WriteOnly);
+
+        //PNG ?
+        (qvariant_cast<QPixmap>(pxm)).save(&buffer, "PNG");
+        buffer.close();
+
+        return bArray;
+    }
+
+    QPixmap ImageManipulationDelegate::drawDefaultUserPixmap(const QSize& size, bool displayPresence, bool isPresent) {
+
+        QPixmap pxm(size);
         pxm.fill(Qt::transparent);
         QPainter painter(&pxm);
 
-        //Clear the pixmap
-        painter.setCompositionMode(QPainter::CompositionMode_Clear);
-        painter.fillRect(0,0,size.width(),size.height(),QBrush(Qt::white));
-        painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
+        // create the image somehow, load from file, draw into it...
+        auto sourceImgRef = CGImageSourceCreateWithData((CFDataRef)[[NSImage imageNamed:@"NSUser"] TIFFRepresentation], NULL);
+        auto imgRef = CGImageSourceCreateImageAtIndex(sourceImgRef, 0, NULL);
+        auto finalImgRef =  resizeCGImage(imgRef, size);
+        painter.drawPixmap(3,3,QtMac::fromCGImageRef(finalImgRef));
 
-        //Add corner radius to the Pixmap
-        QRect pxRect = contactPhoto.rect();
-        QBitmap mask(pxRect.size());
-        QPainter customPainter(&mask);
-        customPainter.setRenderHint  (QPainter::Antialiasing, true      );
-        customPainter.fillRect       (pxRect                , Qt::white );
-        customPainter.setBackground  (Qt::black                         );
-        customPainter.setBrush       (Qt::black                         );
-        customPainter.drawRoundedRect(pxRect,radius,radius);
-        contactPhoto.setMask(mask);
-        painter.drawPixmap(3,3,contactPhoto);
-        painter.setBrush(Qt::NoBrush);
-        painter.setPen(Qt::white);
-        painter.setRenderHint  (QPainter::Antialiasing, true   );
-        painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
-        painter.drawRoundedRect(3,3,pxm.height()-6,pxm.height()-6,radius,radius);
-        painter.setCompositionMode(QPainter::CompositionMode_SourceOver);
+        CFRelease(sourceImgRef);
+        CFRelease(imgRef);
+        CFRelease(finalImgRef);
 
+        return pxm;
     }
-    else {
-        pxm = drawDefaultUserPixmap(size, false, false);
+
+    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),
+                                                     size.width() * CGImageGetBitsPerComponent(image),
+                                                     colorspace,
+                                                     CGImageGetAlphaInfo(image));
+
+        if(context == NULL)
+            return nil;
+
+        // draw image to context (resizing it)
+        CGContextDrawImage(context, CGRectMake(0, 0, size.width(), size.height()), image);
+        // extract resulting image from context
+        CGImageRef imgRef = CGBitmapContextCreateImage(context);
+        CGContextRelease(context);
+
+        return imgRef;
+    }
+
+    QVariant
+    ImageManipulationDelegate::numberCategoryIcon(const QVariant& p, const QSize& size, bool displayPresence, bool isPresent)
+    {
+        Q_UNUSED(p)
+        Q_UNUSED(size)
+        Q_UNUSED(displayPresence)
+        Q_UNUSED(isPresent)
+        return QVariant();
+    }
+
+    QVariant
+    ImageManipulationDelegate::securityIssueIcon(const QModelIndex& index)
+    {
+        Q_UNUSED(index)
+        return QVariant();
+    }
+
+    QVariant
+    ImageManipulationDelegate::collectionIcon(const CollectionInterface* interface, PixmapManipulatorI::CollectionIconHint hint) const
+    {
+        Q_UNUSED(interface)
+        Q_UNUSED(hint)
+        return QVariant();
+    }
+    QVariant
+    ImageManipulationDelegate::securityLevelIcon(const SecurityEvaluationModel::SecurityLevel level) const
+    {
+        Q_UNUSED(level)
+        return QVariant();
+    }
+    QVariant
+    ImageManipulationDelegate::historySortingCategoryIcon(const CategorizedHistoryModel::SortedProxy::Categories cat) const
+    {
+        Q_UNUSED(cat)
+        return QVariant();
+    }
+    QVariant
+    ImageManipulationDelegate::contactSortingCategoryIcon(const CategorizedContactModel::SortedProxy::Categories cat) const
+    {
+        Q_UNUSED(cat)
+        return QVariant();
+    }
+    QVariant
+    ImageManipulationDelegate::userActionIcon(const UserActionElement& state) const
+    {
+        Q_UNUSED(state)
+        return QVariant();
     }
     
-    return pxm;
-}
-
-QVariant ImageManipulationDelegate::personPhoto(const QByteArray& data, const QString& type)
-{
-    QImage image;
-    //For now, ENCODING is only base64 and image type PNG or JPG
-    const bool ret = image.loadFromData(QByteArray::fromBase64(data),type.toLatin1());
-    if (!ret)
-        qDebug() << "vCard image loading failed";
-
-    return QPixmap::fromImage(image);
-}
-
-QByteArray ImageManipulationDelegate::toByteArray(const QVariant& pxm)
-{
-    //Preparation of our QPixmap
-    QByteArray bArray;
-    QBuffer buffer(&bArray);
-    buffer.open(QIODevice::WriteOnly);
-
-    //PNG ?
-    (qvariant_cast<QPixmap>(pxm)).save(&buffer, "PNG");
-    buffer.close();
-
-    return bArray;
-}
-
-QPixmap ImageManipulationDelegate::drawDefaultUserPixmap(const QSize& size, bool displayPresence, bool isPresent) {
-
-    QPixmap pxm(size);
-    pxm.fill(Qt::transparent);
-    QPainter painter(&pxm);
-
-    // create the image somehow, load from file, draw into it...
-    auto sourceImgRef = CGImageSourceCreateWithData((CFDataRef)[[NSImage imageNamed:@"NSUser"] TIFFRepresentation], NULL);
-    auto imgRef = CGImageSourceCreateImageAtIndex(sourceImgRef, 0, NULL);
-    auto finalImgRef =  resizeCGImage(imgRef, size);
-    painter.drawPixmap(3,3,QtMac::fromCGImageRef(finalImgRef));
-
-    CFRelease(sourceImgRef);
-    CFRelease(imgRef);
-    CFRelease(finalImgRef);
-
-    return pxm;
-}
-
-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),
-                                                 size.width() * CGImageGetBitsPerComponent(image),
-                                                 colorspace,
-                                                 CGImageGetAlphaInfo(image));
-
-    if(context == NULL)
-        return nil;
-
-    // draw image to context (resizing it)
-    CGContextDrawImage(context, CGRectMake(0, 0, size.width(), size.height()), image);
-    // extract resulting image from context
-    CGImageRef imgRef = CGBitmapContextCreateImage(context);
-    CGContextRelease(context);
-
-    return imgRef;
-}
+} // namespace Interfaces