1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-01 22:36:39 +00:00

DataDisplayDelegate doesn't draw a text outside a table cell

This commit is contained in:
Stanislav Bas 2015-06-16 00:19:51 +03:00
parent c560f8b8a2
commit d906a9d7d1
2 changed files with 17 additions and 16 deletions

View file

@ -15,8 +15,6 @@ CSVWorld::DataDisplayDelegate::DataDisplayDelegate(const ValueList &values,
mIcons (icons), mIconSize (QSize(16, 16)), mIconLeftOffset(3), mIcons (icons), mIconSize (QSize(16, 16)), mIconLeftOffset(3),
mTextLeftOffset(8), mSettingKey (pageName + '/' + settingName) mTextLeftOffset(8), mSettingKey (pageName + '/' + settingName)
{ {
mTextAlignment.setAlignment (Qt::AlignLeft | Qt::AlignVCenter );
buildPixmaps(); buildPixmaps();
QString value = QString value =
@ -81,24 +79,28 @@ void CSVWorld::DataDisplayDelegate::paint (QPainter *painter, const QStyleOption
void CSVWorld::DataDisplayDelegate::paintIcon (QPainter *painter, const QStyleOptionViewItem &option, int index) const void CSVWorld::DataDisplayDelegate::paintIcon (QPainter *painter, const QStyleOptionViewItem &option, int index) const
{ {
//function-level statics
QRect iconRect = option.rect; QRect iconRect = option.rect;
QRect textRect = iconRect; QRect textRect = iconRect;
const QString &text = mValues.at(index).second; iconRect.setLeft(iconRect.left() + mIconLeftOffset);
iconRect.setRight(option.rect.right());
iconRect.setSize (mIconSize); if (mDisplayMode == Mode_IconAndText)
iconRect.translate(mIconLeftOffset, (option.rect.height() - iconRect.height())/2);
if (mDisplayMode == Mode_IconAndText )
{ {
textRect.translate (iconRect.width() + mTextLeftOffset, 0 ); iconRect.setWidth(mIconSize.width());
painter->drawText (textRect, text, mTextAlignment); textRect.setLeft(iconRect.right() + mTextLeftOffset);
} textRect.setRight(option.rect.right());
else
iconRect.translate( (option.rect.width() - iconRect.width()) / 2, 0);
painter->drawPixmap (iconRect, mPixmaps.at(index).second); QString text = option.fontMetrics.elidedText(mValues.at(index).second,
option.textElideMode,
textRect.width());
QApplication::style()->drawItemText(painter,
textRect,
Qt::AlignLeft | Qt::AlignVCenter,
option.palette,
true,
text);
}
QApplication::style()->drawItemPixmap(painter, iconRect, Qt::AlignCenter, mPixmaps.at(index).second);
} }
void CSVWorld::DataDisplayDelegate::updateUserSetting (const QString &name, void CSVWorld::DataDisplayDelegate::updateUserSetting (const QString &name,

View file

@ -30,7 +30,6 @@ namespace CSVWorld
private: private:
std::vector <std::pair <int, QPixmap> > mPixmaps; std::vector <std::pair <int, QPixmap> > mPixmaps;
QTextOption mTextAlignment;
QSize mIconSize; QSize mIconSize;
int mIconLeftOffset; int mIconLeftOffset;
int mTextLeftOffset; int mTextLeftOffset;