From: Christian Kamm Date: Thu, 20 Aug 2015 11:25:19 +0000 (+0200) Subject: AccountSettings: Fix margins on 'Add folder' button #3650 X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~1408^2~182 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7aae5e494a148de16dbbfd929fd4310984f60f60;p=nextcloud-desktop.git AccountSettings: Fix margins on 'Add folder' button #3650 --- diff --git a/src/gui/folderstatusdelegate.cpp b/src/gui/folderstatusdelegate.cpp index 97b66ebf1..2e37bd928 100644 --- a/src/gui/folderstatusdelegate.cpp +++ b/src/gui/folderstatusdelegate.cpp @@ -37,6 +37,16 @@ QString FolderStatusDelegate::addFolderText() QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem & option , const QModelIndex & index) const { + QFont aliasFont = option.font; + QFont font = option.font; + aliasFont.setPointSize( font.pointSize() +2 ); + + QFontMetrics fm(font); + QFontMetrics aliasFm(aliasFont); + + int aliasMargin = aliasFm.height()/2; + int margin = fm.height()/4; + auto classif = static_cast(index.model())->classify(index); if (classif == FolderStatusModel::AddButton) { QFontMetrics fm(option.font); @@ -45,24 +55,14 @@ QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem & option , opt.text = addFolderText(); return QApplication::style()->sizeFromContents( QStyle::CT_PushButton, &opt, fm.size(Qt::TextSingleLine, opt.text)). - expandedTo(QApplication::globalStrut()); + expandedTo(QApplication::globalStrut()) + + QSize(0, 2*aliasMargin); } if (classif != FolderStatusModel::RootFolder) { return QStyledItemDelegate::sizeHint(option, index); } - Q_UNUSED(option) - QFont aliasFont = option.font; - QFont font = option.font; - aliasFont.setPointSize( font.pointSize() +2 ); - - QFontMetrics fm(font); - QFontMetrics aliasFm(aliasFont); - - int aliasMargin = aliasFm.height()/2; - int margin = fm.height()/4; - // calc height int h = aliasMargin; // margin to top @@ -93,6 +93,23 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & { QStyledItemDelegate::paint(painter,option,index); + QFont aliasFont = option.font; + QFont subFont = option.font; + QFont errorFont = subFont; + QFont progressFont = subFont; + + progressFont.setPointSize( subFont.pointSize()-2); + //font.setPixelSize(font.weight()+); + aliasFont.setBold(true); + aliasFont.setPointSize( subFont.pointSize()+2 ); + + QFontMetrics subFm( subFont ); + QFontMetrics aliasFm( aliasFont ); + QFontMetrics progressFm( progressFont ); + + int aliasMargin = aliasFm.height()/2; + int margin = subFm.height()/4; + if (index.data(AddButton).toBool()) { QSize hint = sizeHint(option, index); QStyleOptionButton opt; @@ -101,7 +118,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & opt.state |= QStyle::State_Raised; opt.text = addFolderText(); opt.rect.setWidth(qMin(opt.rect.width(), hint.width())); - opt.rect.translate(0, 10); + opt.rect.adjust(0, aliasMargin, 0, -aliasMargin); QApplication::style()->drawControl(QStyle::CE_PushButton, &opt, painter #if QT_VERSION >= QT_VERSION_CHECK(5,0,0) , option.widget @@ -115,23 +132,6 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & } painter->save(); - QFont aliasFont = option.font; - QFont subFont = option.font; - QFont errorFont = subFont; - QFont progressFont = subFont; - - progressFont.setPointSize( subFont.pointSize()-2); - //font.setPixelSize(font.weight()+); - aliasFont.setBold(true); - aliasFont.setPointSize( subFont.pointSize()+2 ); - - QFontMetrics subFm( subFont ); - QFontMetrics aliasFm( aliasFont ); - QFontMetrics progressFm( progressFont ); - - int aliasMargin = aliasFm.height()/2; - int margin = subFm.height()/4; - QIcon statusIcon = qvariant_cast(index.data(FolderStatusIconRole)); QString aliasText = qvariant_cast(index.data(HeaderRole)); QString pathText = qvariant_cast(index.data(FolderPathRole));