1 #include "dolphintooltip.h"
4 #include <kio/previewjob.h>
7 #include <QtGui/QPixmap>
9 const int PREVIEW_WIDTH
= 256;
10 const int PREVIEW_HEIGHT
= 256;
12 DolphinToolTipItem::DolphinToolTipItem(const KFileItem
& fileItem
) :
13 KToolTipItem(KIcon(fileItem
.iconName()), fileItem
.getToolTipText(), UserType
)
16 //if (icon().actualSize(QSize(256,256)).width() != PREVIEW_WIDTH)
18 QPixmap paddedImage(QSize(PREVIEW_WIDTH, PREVIEW_HEIGHT));
19 paddedImage.fill(Qt::transparent);
20 QPainter painter(&paddedImage);
21 KIcon kicon(fileItem.iconName());
22 painter.drawPixmap((PREVIEW_WIDTH - 128) / 2, (PREVIEW_HEIGHT - 128) / 2, kicon.pixmap(QSize(128,128)));
23 setData(Qt::DecorationRole, QIcon(paddedImage));
26 // Initiate the preview job.
27 KFileItemList fileItems
;
28 fileItems
<< fileItem
;
29 KIO::PreviewJob
* job
= KIO::filePreview(fileItems
, PREVIEW_WIDTH
, PREVIEW_HEIGHT
);
30 connect(job
, SIGNAL(gotPreview(const KFileItem
&, const QPixmap
&)),
31 this, SLOT(setPreview(const KFileItem
&, const QPixmap
&)));
34 DolphinToolTipItem::~DolphinToolTipItem()
37 void DolphinToolTipItem::setPreview(const KFileItem
& fileItem
, const QPixmap
& preview
)
40 /* QPixmap paddedImage(QSize(PREVIEW_WIDTH, PREVIEW_HEIGHT));
41 paddedImage.fill(Qt::transparent);
42 QPainter painter(&paddedImage);
43 KIcon kicon(fileItem.iconName());
44 painter.drawPixmap((PREVIEW_WIDTH - preview.width()) / 2, (PREVIEW_HEIGHT - preview.height()) / 2, preview);
45 setData(Qt::DecorationRole, QIcon(paddedImage));*/
46 setData(Qt::DecorationRole
, QIcon(preview
));
48 // Delegate everything to the base class, after re-setting the decorationSize
49 // to the preview size.
50 QSize
DolphinBalloonTooltipDelegate::sizeHint(const KStyleOptionToolTip
*option
, const KToolTipItem
*item
) const
52 KStyleOptionToolTip updatedStyleOption
= *option
;
53 updatedStyleOption
.decorationSize
= QSize(PREVIEW_WIDTH
, PREVIEW_HEIGHT
);
54 return KFormattedBalloonTipDelegate::sizeHint(&updatedStyleOption
, item
);
56 void DolphinBalloonTooltipDelegate::paint(QPainter
*painter
, const KStyleOptionToolTip
*option
, const KToolTipItem
*item
) const
58 KStyleOptionToolTip updatedStyleOption
= *option
;
59 updatedStyleOption
.decorationSize
= QSize(PREVIEW_WIDTH
, PREVIEW_HEIGHT
);
60 return KFormattedBalloonTipDelegate::paint(painter
, &updatedStyleOption
, item
);