diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2016-01-13 13:57:15 +0300 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2016-01-13 13:57:15 +0300 |
commit | a18b13d56e4d70b3089cbe49470561149dc6afe6 (patch) | |
tree | 54250b7968190c64195e12b033eb018bd5d6f3f5 /src/gui/folderstatusdelegate.cpp | |
parent | 31da3e98c91facc27bf240b52d2fd26883df6a27 (diff) |
FolderDelegate: fix positions and margin
- Fix the margin of the progressbar to let some room for the '...' button
- Fix the size of the "Add Folder" button
Diffstat (limited to 'src/gui/folderstatusdelegate.cpp')
-rw-r--r-- | src/gui/folderstatusdelegate.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/gui/folderstatusdelegate.cpp b/src/gui/folderstatusdelegate.cpp index 45fec4a6d..8c5816aff 100644 --- a/src/gui/folderstatusdelegate.cpp +++ b/src/gui/folderstatusdelegate.cpp @@ -55,10 +55,9 @@ QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem & option , QFontMetrics fm(font); QFontMetrics aliasFm(aliasFont); - int margin = fm.height()/4; - auto classif = static_cast<const FolderStatusModel *>(index.model())->classify(index); if (classif == FolderStatusModel::AddButton) { + int margins = fm.height(); QFontMetrics fm(option.font); QStyleOptionButton opt; static_cast<QStyleOption&>(opt) = option; @@ -66,7 +65,7 @@ QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem & option , return QApplication::style()->sizeFromContents( QStyle::CT_PushButton, &opt, fm.size(Qt::TextSingleLine, opt.text)). expandedTo(QApplication::globalStrut()) - + QSize(0, margin); + + QSize(0, margins); } if (classif != FolderStatusModel::RootFolder) { @@ -78,6 +77,7 @@ QSize FolderStatusDelegate::sizeHint(const QStyleOptionViewItem & option , // add some space to show an error condition. if( ! qvariant_cast<QStringList>(index.data(FolderErrorMsg)).isEmpty() ) { + int margin = fm.height()/4; QStringList errMsgs = qvariant_cast<QStringList>(index.data(FolderErrorMsg)); h += margin + errMsgs.count()*fm.height(); } @@ -188,6 +188,8 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & int iconSize = iconRect.width(); + auto optionsButtonVisualRect = optionsButtonRect(option.rect, option.direction); + QPixmap pm = statusIcon.pixmap(iconSize, iconSize, syncEnabled ? QIcon::Normal : QIcon::Disabled ); painter->drawPixmap(QStyle::visualRect(option.direction, option.rect, iconRect).left(), iconRect.top(), pm); @@ -287,8 +289,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & if (showProgess) { int fileNameTextHeight = subFm.boundingRect(tr("File")).height(); int barHeight = qMax(fileNameTextHeight, aliasFm.height()+4); - const int optionsButtonWidth = 2*aliasMargin; // vague estimate - int overallWidth = option.rect.right() - aliasMargin - optionsButtonWidth - nextToIcon; + int overallWidth = option.rect.right() - aliasMargin - optionsButtonVisualRect.width() - nextToIcon; painter->save(); @@ -350,7 +351,7 @@ void FolderStatusDelegate::paint(QPainter *painter, const QStyleOptionViewItem & btnOpt.state |= QStyle::State_Raised; btnOpt.arrowType = Qt::NoArrow; btnOpt.subControls = QStyle::SC_ToolButton; - btnOpt.rect = optionsButtonRect(option.rect, btnOpt.direction); + btnOpt.rect = optionsButtonVisualRect; btnOpt.icon = m_moreIcon; btnOpt.iconSize = btnOpt.rect.size(); QApplication::style()->drawComplexControl( QStyle::CC_ToolButton, &btnOpt, painter ); |