[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