]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/information/metatextlabel.cpp
* Use Nepomuk for getting the meta data instead of KFileMetaInfo.
[dolphin.git] / src / panels / information / metatextlabel.cpp
index 66f12db9033367d80d4f72d4014dd154e70c576d..017d5e1dce95de3284f00fb9424aaed5cfb4e261 100644 (file)
 
 MetaTextLabel::MetaTextLabel(QWidget* parent) :
     QWidget(parent),
-    m_minimumHeight(0),
     m_metaInfos()
 {
     setFont(KGlobalSettings::smallestReadableFont());
+    setMinimumHeight(0);
 }
 
 MetaTextLabel::~MetaTextLabel()
@@ -41,7 +41,7 @@ MetaTextLabel::~MetaTextLabel()
 
 void MetaTextLabel::clear()
 {
-    m_minimumHeight = 0;
+    setMinimumHeight(0);
     m_metaInfos.clear();
     update();
 }
@@ -51,31 +51,28 @@ void MetaTextLabel::add(const QString& labelText, const QString& infoText)
     MetaInfo metaInfo;
     metaInfo.label = labelText;
     metaInfo.info = infoText;
-    
     m_metaInfos.append(metaInfo);
-    
-    m_minimumHeight += requiredHeight(metaInfo);
-    setMinimumHeight(m_minimumHeight);
-    
+
+    setMinimumHeight(minimumHeight() + requiredHeight(metaInfo));
     update();
 }
 
 void MetaTextLabel::paintEvent(QPaintEvent* event)
 {
     QWidget::paintEvent(event);
-    
+
     QPainter painter(this);
-    
+
     const QColor infoColor = palette().color(QPalette::Foreground);
     QColor labelColor = infoColor;
     labelColor.setAlpha(128);
-    
+
     int y = 0;
     const int infoWidth = width() / 2;
     const int labelWidth = infoWidth - 2 * Spacing;
     const int infoX = infoWidth;
     const int maxHeight = fontMetrics().height() * 5;
-    
+
     QRect boundingRect;
     foreach (const MetaInfo& metaInfo, m_metaInfos) {
         // draw label (e. g. "Date:")
@@ -83,42 +80,31 @@ void MetaTextLabel::paintEvent(QPaintEvent* event)
         painter.drawText(0, y, labelWidth, maxHeight,
                          Qt::AlignTop | Qt::AlignRight | Qt::TextWordWrap,
                          metaInfo.label);
-                         
+
         // draw information (e. g. "2008-11-09 20:12")
         painter.setPen(infoColor);
         painter.drawText(infoX, y, infoWidth, maxHeight,
                          Qt::AlignTop | Qt::AlignLeft | Qt::TextWordWrap,
                          metaInfo.info,
                          &boundingRect);
-                         
-        y += boundingRect.height() + Spacing;
-    }
-}
 
-void MetaTextLabel::resizeEvent(QResizeEvent* event)
-{
-    QWidget::resizeEvent(event);
-    
-    m_minimumHeight = 0;
-    foreach (const MetaInfo& metaInfo, m_metaInfos) {
-        m_minimumHeight += requiredHeight(metaInfo);
+        y += boundingRect.height() + Spacing;
     }
-    setMinimumHeight(m_minimumHeight);
 }
 
 int MetaTextLabel::requiredHeight(const MetaInfo& metaInfo) const
 {
     QTextOption textOption;
     textOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
-    
+
     qreal height = 0;
     const int leading = fontMetrics().leading();
     const int availableWidth = width() / 2;
-    
+
     QTextLayout textLayout(metaInfo.info);
     textLayout.setFont(font());
     textLayout.setTextOption(textOption);
-    
+
     textLayout.beginLayout();
     QTextLine line = textLayout.createLine();
     while (line.isValid()) {
@@ -126,9 +112,9 @@ int MetaTextLabel::requiredHeight(const MetaInfo& metaInfo) const
         height += leading;
         height += line.height();
         line = textLayout.createLine();
-    }    
+    }
     textLayout.endLayout();
-    
+
     return static_cast<int>(height) + Spacing;
 }