X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f5f2ccf8eec5abffb41255e487746881091ff8a1..7eeb8dba6aeba09aa3dfa7fa5f0b00840d4d8317:/src/tooltips/tooltipmanager.cpp diff --git a/src/tooltips/tooltipmanager.cpp b/src/tooltips/tooltipmanager.cpp index 8cf6ec3b5..bcb3d60cd 100644 --- a/src/tooltips/tooltipmanager.cpp +++ b/src/tooltips/tooltipmanager.cpp @@ -24,7 +24,9 @@ #include #include +#include +#include "panels/information/kmetadatamodel.h" #include "panels/information/kmetadatawidget.h" #include "tooltips/ktooltip.h" @@ -35,6 +37,7 @@ #include #include #include +#include ToolTipManager::ToolTipManager(QAbstractItemView* parent, DolphinSortFilterProxyModel* model) : @@ -243,18 +246,45 @@ QWidget* ToolTipManager::createTipContent(const QPixmap& pixmap) const { QWidget* tipContent = new QWidget(); + // add pixmap QLabel* pixmapLabel = new QLabel(tipContent); pixmapLabel->setPixmap(pixmap); pixmapLabel->setFixedSize(pixmap.size()); + // add item name + QLabel* nameLabel = new QLabel(tipContent); + nameLabel->setText(m_item.text()); + nameLabel->setWordWrap(true); + QFont font = nameLabel->font(); + font.setBold(true); + nameLabel->setFont(font); + nameLabel->setAlignment(Qt::AlignHCenter); + nameLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + + // add meta data KMetaDataWidget* metaDataWidget = new KMetaDataWidget(tipContent); + metaDataWidget->setModel(new KMetaDataModel(tipContent)); + metaDataWidget->setForegroundRole(QPalette::ToolTipText); metaDataWidget->setItem(m_item); - metaDataWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Maximum); + metaDataWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + metaDataWidget->setReadOnly(true); + + // the stretchwidget allows the metadata widget to be top aligned and fills + // the remaining vertical space + QWidget* stretchWidget = new QWidget(tipContent); + stretchWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + + QWidget* textContainer = new QWidget(tipContent); + QVBoxLayout* textLayout = new QVBoxLayout(textContainer); + textLayout->addWidget(nameLabel); + textLayout->addWidget(new KSeparator()); + textLayout->addWidget(metaDataWidget); + textLayout->addWidget(stretchWidget); QHBoxLayout* tipLayout = new QHBoxLayout(tipContent); tipLayout->setMargin(0); tipLayout->addWidget(pixmapLabel); - tipLayout->addWidget(metaDataWidget); + tipLayout->addWidget(textContainer); return tipContent; }