[QGIS Commit] r8609 - trunk/qgis/src/gui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Jun 6 17:58:59 EDT 2008


Author: timlinux
Date: 2008-06-06 17:58:59 -0400 (Fri, 06 Jun 2008)
New Revision: 8609

Modified:
   trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp
Log:
Fix height bug manifesting in plugin manager and grass toolbox list view


Modified: trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp
===================================================================
--- trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp	2008-06-06 21:08:32 UTC (rev 8608)
+++ trunk/qgis/src/gui/qgsdetaileditemdelegate.cpp	2008-06-06 21:58:59 UTC (rev 8609)
@@ -193,27 +193,36 @@
 {
   if (qVariantCanConvert<QgsDetailedItemData>(theIndex.data(Qt::UserRole))) 
   {
-    return QSize(378,mpWidget->height());
+    QgsDetailedItemData myData = 
+      qVariantValue<QgsDetailedItemData>(theIndex.data(Qt::UserRole));
+    if (myData.isRenderedAsWidget())
+    {
+      return QSize(378,mpWidget->height());
+    }
+    else // fall back to hand calculated & hand drawn item
+    {
+      QFont myFont = theOption.font;
+      QFont myTitleFont = myFont;
+      myTitleFont.setBold(true);
+      myTitleFont.setPointSize(myFont.pointSize() + 3);
+      QFontMetrics myTitleMetrics(myTitleFont);
+      QFontMetrics myDetailMetrics(myFont);
+      int myVerticalSpacer = 3; //spacing between title and description
+      int myHorizontalSpacer = 5; //spacing between checkbox / icon and description
+      int myHeight = myTitleMetrics.height() + myVerticalSpacer;
+      QString myDetailString = theIndex.model()->data(theIndex, Qt::UserRole).toString();
+      QStringList myList = wordWrap( myDetailString, 
+          myDetailMetrics, 
+          theOption.rect.width() - (mpCheckBox->width() + myHorizontalSpacer));
+      myHeight += (myList.count() + 1) * (myDetailMetrics.height() - myVerticalSpacer);
+      //for some reason itmes are non selectable if using rect.width() on osx and win
+      return QSize(50, myHeight + myVerticalSpacer);
+      //return QSize(theOption.rect.width(), myHeight + myVerticalSpacer);
+    }
   }
-  else // fall back to hand calculated & hand drawn item
+  else //cant convert to qgsdetaileditemdata
   {
-    QFont myFont = theOption.font;
-    QFont myTitleFont = myFont;
-    myTitleFont.setBold(true);
-    myTitleFont.setPointSize(myFont.pointSize() + 3);
-    QFontMetrics myTitleMetrics(myTitleFont);
-    QFontMetrics myDetailMetrics(myFont);
-    int myVerticalSpacer = 3; //spacing between title and description
-    int myHorizontalSpacer = 5; //spacing between checkbox / icon and description
-    int myHeight = myTitleMetrics.height() + myVerticalSpacer;
-    QString myDetailString = theIndex.model()->data(theIndex, Qt::UserRole).toString();
-    QStringList myList = wordWrap( myDetailString, 
-                                   myDetailMetrics, 
-                                   theOption.rect.width() - (mpCheckBox->width() + myHorizontalSpacer));
-    myHeight += (myList.count() + 1) * (myDetailMetrics.height() - myVerticalSpacer);
-    //for some reason itmes are non selectable if using rect.width() on osx and win
-    return QSize(50, myHeight + myVerticalSpacer);
-    //return QSize(theOption.rect.width(), myHeight + myVerticalSpacer);
+    return QSize(50,50); //fallback
   }
 }
 



More information about the QGIS-commit mailing list