/// Constructor to build item representing file name cell. TFileAttachmentItem(const QFileInfo& fileInfo, TFileAttachmentWidget* owner) : AAttachmentItem(fileInfo.fileName().toStdString().c_str(), owner, nullptr), FileInfo(fileInfo), _contactCardData(nullptr) { owner->TotalAttachmentSize += fileInfo.size(); QString path = fileInfo.absoluteFilePath(); TImage image; image.load(path); if (image.isNull()) setToolTip(path); else setToolTip(image.toHtml() ); }
void TFileAttachmentWidget::LoadAttachedFiles(const TAttachmentContainer& attachedFiles) { bool sortEnabled = FreezeAttachmentTable(); for(const TPhysicalAttachment& a : attachedFiles) { size_t size = a.body.size(); uchar *imageData = (uchar*)a.body.data (); TImage image; image.loadFromData(imageData, size); TScaledSize scaledSize = ScaleAttachmentSize(size); /// Allocate objects representing table items - name item automatically will register in the list. TVirtualAttachmentItem* fileNameItem = new TVirtualAttachmentItem(a, this); TVirtualAttachmentItem* fileSizeItem = new TVirtualAttachmentItem(fileNameItem, scaledSize); fileNameItem->setToolTip( image.toHtml() ); AddAttachmentItems(fileNameItem, fileSizeItem); } UnFreezeAttachmentTable(sortEnabled); UpdateColumnHeaders(); }