Skip to content

Commit e674fca

Browse files
author
timlinux
committed
Fix height bug manifesting in plugin manager and grass toolbox list view
git-svn-id: http://svn.osgeo.org/qgis/trunk@8609 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 5d8b454 commit e674fca

File tree

1 file changed

+28
-19
lines changed

1 file changed

+28
-19
lines changed

src/gui/qgsdetaileditemdelegate.cpp

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -193,27 +193,36 @@ QSize QgsDetailedItemDelegate::sizeHint(
193193
{
194194
if (qVariantCanConvert<QgsDetailedItemData>(theIndex.data(Qt::UserRole)))
195195
{
196-
return QSize(378,mpWidget->height());
196+
QgsDetailedItemData myData =
197+
qVariantValue<QgsDetailedItemData>(theIndex.data(Qt::UserRole));
198+
if (myData.isRenderedAsWidget())
199+
{
200+
return QSize(378,mpWidget->height());
201+
}
202+
else // fall back to hand calculated & hand drawn item
203+
{
204+
QFont myFont = theOption.font;
205+
QFont myTitleFont = myFont;
206+
myTitleFont.setBold(true);
207+
myTitleFont.setPointSize(myFont.pointSize() + 3);
208+
QFontMetrics myTitleMetrics(myTitleFont);
209+
QFontMetrics myDetailMetrics(myFont);
210+
int myVerticalSpacer = 3; //spacing between title and description
211+
int myHorizontalSpacer = 5; //spacing between checkbox / icon and description
212+
int myHeight = myTitleMetrics.height() + myVerticalSpacer;
213+
QString myDetailString = theIndex.model()->data(theIndex, Qt::UserRole).toString();
214+
QStringList myList = wordWrap( myDetailString,
215+
myDetailMetrics,
216+
theOption.rect.width() - (mpCheckBox->width() + myHorizontalSpacer));
217+
myHeight += (myList.count() + 1) * (myDetailMetrics.height() - myVerticalSpacer);
218+
//for some reason itmes are non selectable if using rect.width() on osx and win
219+
return QSize(50, myHeight + myVerticalSpacer);
220+
//return QSize(theOption.rect.width(), myHeight + myVerticalSpacer);
221+
}
197222
}
198-
else // fall back to hand calculated & hand drawn item
223+
else //cant convert to qgsdetaileditemdata
199224
{
200-
QFont myFont = theOption.font;
201-
QFont myTitleFont = myFont;
202-
myTitleFont.setBold(true);
203-
myTitleFont.setPointSize(myFont.pointSize() + 3);
204-
QFontMetrics myTitleMetrics(myTitleFont);
205-
QFontMetrics myDetailMetrics(myFont);
206-
int myVerticalSpacer = 3; //spacing between title and description
207-
int myHorizontalSpacer = 5; //spacing between checkbox / icon and description
208-
int myHeight = myTitleMetrics.height() + myVerticalSpacer;
209-
QString myDetailString = theIndex.model()->data(theIndex, Qt::UserRole).toString();
210-
QStringList myList = wordWrap( myDetailString,
211-
myDetailMetrics,
212-
theOption.rect.width() - (mpCheckBox->width() + myHorizontalSpacer));
213-
myHeight += (myList.count() + 1) * (myDetailMetrics.height() - myVerticalSpacer);
214-
//for some reason itmes are non selectable if using rect.width() on osx and win
215-
return QSize(50, myHeight + myVerticalSpacer);
216-
//return QSize(theOption.rect.width(), myHeight + myVerticalSpacer);
225+
return QSize(50,50); //fallback
217226
}
218227
}
219228

0 commit comments

Comments
 (0)