forked from qt-creator/qt-creator
Utils: Migrate to new spacing tokens
The spacing tokens in the Figma designs were reorganized. This change adopts the new tokens in Qt Creator. Only constants names do change, all values remain the same as they were. Change-Id: Icedf82bfd55a145ccf3d31d955ddda636ca2f564 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -2129,7 +2129,7 @@ void BoolAspect::addToLayoutHelper(Layouting::Layout &parent, QAbstractButton *b
|
||||
ttLabel->setFont(StyleHelper::uiFont(StyleHelper::UiElementLabelSmall));
|
||||
auto lt = new QVBoxLayout;
|
||||
lt->setContentsMargins({});
|
||||
lt->setSpacing(StyleHelper::SpacingTokens::VGapXxs);
|
||||
lt->setSpacing(StyleHelper::SpacingTokens::GapVXs);
|
||||
lt->addWidget(button);
|
||||
lt->addWidget(ttLabel);
|
||||
parent.addItem(lt);
|
||||
|
@@ -647,9 +647,9 @@ void MarkdownBrowser::highlightCodeBlock(const QString &language, QTextBlock &bl
|
||||
QTextFrameFormat frameFormat;
|
||||
frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_Solid);
|
||||
frameFormat.setBackground(creatorColor(Theme::Token_Background_Muted));
|
||||
frameFormat.setPadding(SpacingTokens::ExPaddingGapM);
|
||||
frameFormat.setLeftMargin(SpacingTokens::VGapM);
|
||||
frameFormat.setRightMargin(SpacingTokens::VGapM);
|
||||
frameFormat.setPadding(SpacingTokens::PaddingVS);
|
||||
frameFormat.setLeftMargin(SpacingTokens::PaddingVXs);
|
||||
frameFormat.setRightMargin(SpacingTokens::PaddingVXs);
|
||||
|
||||
QTextFrame *frame = cursor.insertFrame(frameFormat);
|
||||
QTextCursor frameCursor(frame);
|
||||
@@ -837,8 +837,8 @@ void MarkdownBrowser::postProcessDocument(bool firstTime)
|
||||
};
|
||||
|
||||
if (blockFormat.hasProperty(QTextFormat::HeadingLevel)) {
|
||||
blockFormat.setTopMargin(SpacingTokens::ExVPaddingGapXl * fontScale);
|
||||
blockFormat.setBottomMargin(SpacingTokens::VGapL * fontScale);
|
||||
blockFormat.setTopMargin(SpacingTokens::PaddingVXxl * fontScale);
|
||||
blockFormat.setBottomMargin(SpacingTokens::GapVM * fontScale);
|
||||
} else {
|
||||
blockFormat
|
||||
.setLineHeight(lineHeight(contentTF) * fontScale, QTextBlockFormat::FixedHeight);
|
||||
|
@@ -138,31 +138,31 @@ QSize QtcButton::minimumSizeHint() const
|
||||
void QtcButton::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
// Without pixmap
|
||||
// +----------------+----------------+----------------+
|
||||
// | |(VPadding[S|XS])| |
|
||||
// | +----------------+----------------+
|
||||
// |(HPadding[S|XS])| <label> |(HPadding[S|XS])|
|
||||
// | +----------------+----------------+
|
||||
// | |(VPadding[S|XS])| |
|
||||
// +----------------+---------------------------------+
|
||||
// +------------------------+-----------+------------------------+
|
||||
// | |(PaddingVM)| |
|
||||
// | +-----------+ |
|
||||
// |([PaddingHXL|PaddingHM])| <label> |([PaddingHXL|PaddingHM])|
|
||||
// | +-----------+ |
|
||||
// | |(PaddingVM)| |
|
||||
// +------------------------+-----------+------------------------+
|
||||
//
|
||||
// With pixmap
|
||||
// +-------+--------+-------------------------+---------------------------------+
|
||||
// | | | |(VPadding[S|XS])| |
|
||||
// | | | +----------------+ |
|
||||
// |(HGapS)|<pixmap>|([ExPaddingGapM|HGapXxs])| <label> |(HPadding[S|XS])|
|
||||
// | | | +----------------+ |
|
||||
// | | | |(VPadding[S|XS])| |
|
||||
// +-------+--------+-------------------------+----------------+----------------+
|
||||
// +-----------+--------+----------------+-----------+------------------------+
|
||||
// | | | |(PaddingVM)| |
|
||||
// | | | +-----------+ |
|
||||
// |(PaddingHM)|<pixmap>|([GapHS|GapHXs])| <label> |([PaddingHXL|PaddingHM])|
|
||||
// | | | +-----------+ |
|
||||
// | | | |(PaddingVM)| |
|
||||
// +-----------+--------+----------------+-----------+------------------------+
|
||||
//
|
||||
// SmallLink with pixmap
|
||||
// +--------+---------------+---------------------------------+
|
||||
// | | |(VPadding[S|XS])| |
|
||||
// | | +----------------+ |
|
||||
// |<pixmap>|(ExPaddingGapM)| <label> |(HPadding[S|XS])|
|
||||
// | | +----------------+ |
|
||||
// | | |(VPadding[S|XS])| |
|
||||
// +--------+---------------+----------------+----------------+
|
||||
// +--------+-------+-----------+------------------------+
|
||||
// | | |(PaddingVM)| |
|
||||
// | | +-----------+ |
|
||||
// |<pixmap>|(GapHS)| <label> |([PaddingHXl|PaddingHM])|
|
||||
// | | +-----------+ |
|
||||
// | | |(PaddingVM)| |
|
||||
// +--------+-------+-----------+------------------------+
|
||||
|
||||
const bool hovered = underMouse();
|
||||
const WidgetState state = isChecked() ? WidgetStateChecked : hovered ? WidgetStateHovered
|
||||
@@ -227,7 +227,7 @@ void QtcButton::paintEvent(QPaintEvent *event)
|
||||
|
||||
if (!m_pixmap.isNull()) {
|
||||
const QSizeF pixmapS = m_pixmap.deviceIndependentSize();
|
||||
const int pixmapX = m_role == SmallLink ? 0 : HGapS;
|
||||
const int pixmapX = m_role == SmallLink ? 0 : PaddingHM;
|
||||
const int pixmapY = (bgR.height() - pixmapS.height()) / 2;
|
||||
p.drawPixmap(pixmapX, pixmapY, m_pixmap);
|
||||
}
|
||||
@@ -258,18 +258,17 @@ void QtcButton::setRole(Role role)
|
||||
void QtcButton::updateMargins()
|
||||
{
|
||||
if (m_role == Tag) {
|
||||
setContentsMargins(HPaddingXs, VPaddingXxs, HPaddingXs, VPaddingXxs);
|
||||
setContentsMargins(PaddingHM, PaddingVXs, PaddingHM, PaddingVXs);
|
||||
return;
|
||||
}
|
||||
const bool tokenSizeS = m_role == LargePrimary || m_role == LargeSecondary
|
||||
|| m_role == SmallList || m_role == SmallLink;
|
||||
const int hPaddingR = tokenSizeS ? HPaddingS : HPaddingXs;
|
||||
const int hPaddingR = tokenSizeS ? PaddingHXl : PaddingHM;
|
||||
const int hPaddingL = m_pixmap.isNull() ? hPaddingR
|
||||
: (m_role == SmallLink ? 0 : HGapS)
|
||||
: (m_role == SmallLink ? 0 : PaddingHM)
|
||||
+ int(m_pixmap.deviceIndependentSize().width())
|
||||
+ (tokenSizeS ? ExPaddingGapM : HGapXxs);
|
||||
const int vPadding = tokenSizeS ? VPaddingS : VPaddingXs;
|
||||
setContentsMargins(hPaddingL, vPadding, hPaddingR, vPadding);
|
||||
+ (tokenSizeS ? GapHS : GapHXs);
|
||||
setContentsMargins(hPaddingL, PaddingVM, hPaddingR, PaddingVM);
|
||||
}
|
||||
|
||||
QtcLabel::QtcLabel(const QString &text, Role role, QWidget *parent)
|
||||
@@ -285,7 +284,7 @@ void QtcLabel::setRole(Role role)
|
||||
secondaryTF{primaryTF.themeColor, StyleHelper::UiElement::UiElementH6Capital};
|
||||
|
||||
const TextFormat &tF = role == Primary ? primaryTF : secondaryTF;
|
||||
const int vPadding = role == Primary ? ExPaddingGapM : VPaddingS;
|
||||
const int vPadding = role == Primary ? PaddingVS : PaddingVM;
|
||||
|
||||
setFixedHeight(vPadding + tF.lineHeight() + vPadding);
|
||||
setFont(tF.font());
|
||||
@@ -326,8 +325,8 @@ QtcSearchBox::QtcSearchBox(QWidget *parent)
|
||||
pal.setColor(QPalette::Text, searchBoxTextTF.color());
|
||||
setPalette(pal);
|
||||
|
||||
setContentsMargins({HPaddingXs, ExPaddingGapM, 0, ExPaddingGapM});
|
||||
setFixedHeight(ExPaddingGapM + searchBoxTextTF.lineHeight() + ExPaddingGapM);
|
||||
setContentsMargins({PaddingHM, PaddingVS, 0, PaddingVS});
|
||||
setFixedHeight(PaddingVS + searchBoxTextTF.lineHeight() + PaddingVS);
|
||||
setFiltering(true);
|
||||
}
|
||||
|
||||
@@ -366,13 +365,13 @@ static void paintCommonBackground(QPainter *p, const QRectF &rect, const QWidget
|
||||
|
||||
void QtcSearchBox::paintEvent(QPaintEvent *event)
|
||||
{
|
||||
// +------------+---------------+------------+------+------------+
|
||||
// | |(ExPaddingGapM)| | | |
|
||||
// | +---------------+ | | |
|
||||
// |(HPaddingXs)| <lineEdit> |(HPaddingXs)|<icon>|(HPaddingXs)|
|
||||
// | +---------------+ | | |
|
||||
// | |(ExPaddingGapM)| | | |
|
||||
// +------------+---------------+------------+------+------------+
|
||||
// +-----------+-----------+-------+------+-----------+
|
||||
// | |(PaddingVS)| | | |
|
||||
// | +-----------+ | | |
|
||||
// |(PaddingHM)| <lineEdit>|(GapHM)|<icon>|(PaddingHM)|
|
||||
// | +-----------+ | | |
|
||||
// | |(PaddingVS)| | | |
|
||||
// +-----------+-----------+-------+------+-----------+
|
||||
|
||||
QPainter p(this);
|
||||
|
||||
@@ -380,7 +379,7 @@ void QtcSearchBox::paintEvent(QPaintEvent *event)
|
||||
if (text().isEmpty()) {
|
||||
const QPixmap icon = searchBoxIcon();
|
||||
const QSize iconS = icon.deviceIndependentSize().toSize();
|
||||
const QPoint iconPos(width() - HPaddingXs - iconS.width(), (height() - iconS.height()) / 2);
|
||||
const QPoint iconPos(width() - PaddingHM - iconS.width(), (height() - iconS.height()) / 2);
|
||||
if (!isEnabled())
|
||||
p.setOpacity(disabledIconOpacity);
|
||||
p.drawPixmap(iconPos, icon);
|
||||
@@ -407,8 +406,8 @@ QtcComboBox::QtcComboBox(QWidget *parent)
|
||||
setMouseTracking(true);
|
||||
|
||||
const QSize iconSize = comboBoxIcon().deviceIndependentSize().toSize();
|
||||
setContentsMargins({HPaddingXs, VPaddingXs,
|
||||
HGapXxs + iconSize.width() + HPaddingXs, VPaddingXs});
|
||||
setContentsMargins({PaddingHM, PaddingVM,
|
||||
GapHXs + iconSize.width() + PaddingHM, PaddingVM});
|
||||
}
|
||||
|
||||
QSize QtcComboBox::sizeHint() const
|
||||
@@ -433,13 +432,13 @@ void QtcComboBox::leaveEvent(QEvent *event)
|
||||
|
||||
void QtcComboBox::paintEvent(QPaintEvent *)
|
||||
{
|
||||
// +------------+-------------+---------+-------+------------+
|
||||
// | | (VPaddingXs)| | | |
|
||||
// +-----------+-------------+--------+-------+-----------+
|
||||
// | | (PaddingVM) | | | |
|
||||
// | +-------------+ | | |
|
||||
// |(HPaddingXs)|<currentItem>|(HGapXxs)|<arrow>|(HPaddingXs)|
|
||||
// |(PaddingHM)|<currentItem>|(GapHXs)|<arrow>|(PaddingHM)|
|
||||
// | +-------------+ | | |
|
||||
// | | (VPaddingXs)| | | |
|
||||
// +------------+-------------+---------+-------+------------+
|
||||
// | | (PaddingVM) | | | |
|
||||
// +-----------+-------------+--------+-------+-----------+
|
||||
|
||||
QPainter p(this);
|
||||
paintCommonBackground(&p, rect(), this);
|
||||
@@ -454,7 +453,7 @@ void QtcComboBox::paintEvent(QPaintEvent *)
|
||||
|
||||
const QPixmap icon = comboBoxIcon();
|
||||
const QSize iconS = icon.deviceIndependentSize().toSize();
|
||||
const QPoint iconPos(width() - HPaddingXs - iconS.width(), (height() - iconS.height()) / 2);
|
||||
const QPoint iconPos(width() - PaddingHM - iconS.width(), (height() - iconS.height()) / 2);
|
||||
if (!isEnabled())
|
||||
p.setOpacity(disabledIconOpacity);
|
||||
p.drawPixmap(iconPos, icon);
|
||||
@@ -477,8 +476,8 @@ QSize QtcSwitch::sizeHint() const
|
||||
{
|
||||
const QFontMetrics fm(SwitchLabelTf.font());
|
||||
const int textWidth = fm.size(Qt::TextShowMnemonic, text()).width();
|
||||
const int width = switchTrackS.width() + HGapS + textWidth;
|
||||
return {width, ExPaddingGapM + SwitchLabelTf.lineHeight() + ExPaddingGapM};
|
||||
const int width = switchTrackS.width() + GapHM + textWidth;
|
||||
return {width, PaddingVS + SwitchLabelTf.lineHeight() + PaddingVS};
|
||||
}
|
||||
|
||||
QSize QtcSwitch::minimumSizeHint() const
|
||||
@@ -537,7 +536,7 @@ void QtcSwitch::paintEvent([[maybe_unused]] QPaintEvent *event)
|
||||
StyleHelper::drawCardBg(&p, thumbR, fill, outline, thumbRounding);
|
||||
}
|
||||
{ // switch text label
|
||||
const int switchAndGapWidth = switchTrackS.width() + HGapS;
|
||||
const int switchAndGapWidth = switchTrackS.width() + GapHM;
|
||||
const QRect textR(ltr ? switchAndGapWidth : 0, 0, width() - switchAndGapWidth,
|
||||
trackY + switchTrackS.height());
|
||||
p.setFont(SwitchLabelTf.font());
|
||||
|
@@ -44,35 +44,49 @@ constexpr char C_TOOLBAR_ACTIONWIDGET[] = "toolbar_actionWidget";
|
||||
constexpr char C_QT_SCALE_FACTOR_ROUNDING_POLICY[] = "QT_SCALE_FACTOR_ROUNDING_POLICY";
|
||||
|
||||
namespace SpacingTokens {
|
||||
constexpr int VPaddingXxs = 4; // Top and bottom padding within the component
|
||||
constexpr int HPaddingXxs = 4; // Left and right padding within the component
|
||||
constexpr int VGapXxs = 4; // Vertical Space between TEXT LINE within the Component
|
||||
constexpr int HGapXxs = 4; // Horizontal Space between elements within the Component
|
||||
constexpr int PrimitiveXxs = 2;
|
||||
constexpr int PrimitiveXs = 4;
|
||||
constexpr int PrimitiveS = 6;
|
||||
constexpr int PrimitiveM = 8;
|
||||
constexpr int PrimitiveL = 12;
|
||||
constexpr int PrimitiveXl = 16;
|
||||
constexpr int PrimitiveXxl = 24;
|
||||
|
||||
constexpr int VPaddingXs = 8;
|
||||
constexpr int HPaddingXs = 8;
|
||||
constexpr int VGapXs = 4;
|
||||
constexpr int HGapXs = 8;
|
||||
// Top and bottom padding within the component
|
||||
constexpr int PaddingVXxs = PrimitiveXxs;
|
||||
constexpr int PaddingVXs = PrimitiveXs;
|
||||
constexpr int PaddingVS = PrimitiveS;
|
||||
constexpr int PaddingVM = PrimitiveM;
|
||||
constexpr int PaddingVL = PrimitiveL;
|
||||
constexpr int PaddingVXl = PrimitiveXl;
|
||||
constexpr int PaddingVXxl = PrimitiveXxl;
|
||||
|
||||
constexpr int VPaddingS = 8;
|
||||
constexpr int HPaddingS = 16;
|
||||
constexpr int VGapS = 4;
|
||||
constexpr int HGapS = 8;
|
||||
// Left and right padding within the component
|
||||
constexpr int PaddingHXxs = PrimitiveXxs;
|
||||
constexpr int PaddingHXs = PrimitiveXs;
|
||||
constexpr int PaddingHS = PrimitiveS;
|
||||
constexpr int PaddingHM = PrimitiveM;
|
||||
constexpr int PaddingHL = PrimitiveL;
|
||||
constexpr int PaddingHXl = PrimitiveXl;
|
||||
constexpr int PaddingHXxl = PrimitiveXxl;
|
||||
|
||||
constexpr int VPaddingM = 16;
|
||||
constexpr int HPaddingM = 24;
|
||||
constexpr int VGapM = 4;
|
||||
constexpr int HGapM = 16;
|
||||
// Gap between vertically (on top of each other) positioned elements
|
||||
constexpr int GapVXxs = PrimitiveXxs;
|
||||
constexpr int GapVXs = PrimitiveXs;
|
||||
constexpr int GapVS = PrimitiveS;
|
||||
constexpr int GapVM = PrimitiveM;
|
||||
constexpr int GapVL = PrimitiveL;
|
||||
constexpr int GapVXl = PrimitiveXl;
|
||||
constexpr int GapVXxl = PrimitiveXxl;
|
||||
|
||||
constexpr int VPaddingL = 16;
|
||||
constexpr int HPaddingL = 24;
|
||||
constexpr int VGapL = 8;
|
||||
constexpr int HGapL = 16;
|
||||
|
||||
constexpr int ExPaddingGapS = 2;
|
||||
constexpr int ExPaddingGapM = 6;
|
||||
constexpr int ExPaddingGapL = 12;
|
||||
constexpr int ExVPaddingGapXl = 24;
|
||||
// Gap between horizontally (from left to right) positioned elements
|
||||
constexpr int GapHXxs = PrimitiveXxs;
|
||||
constexpr int GapHXs = PrimitiveXs;
|
||||
constexpr int GapHS = PrimitiveS;
|
||||
constexpr int GapHM = PrimitiveM;
|
||||
constexpr int GapHL = PrimitiveL;
|
||||
constexpr int GapHXl = PrimitiveXl;
|
||||
constexpr int GapHXxl = PrimitiveXxl;
|
||||
}
|
||||
|
||||
enum class ToolbarStyle {
|
||||
|
@@ -124,7 +124,7 @@ void PopupInfoBarDisplay::paintEvent(QPaintEvent *)
|
||||
const QRect r = rect().adjusted(0, layout()->contentsMargins().top(), 0, 0);
|
||||
StyleHelper::drawCardBg(&p, r, creatorColor(Theme::Token_Background_Muted),
|
||||
creatorColor(Theme::Token_Stroke_Subtle),
|
||||
StyleHelper::SpacingTokens::HPaddingXs);
|
||||
StyleHelper::SpacingTokens::PaddingHM);
|
||||
}
|
||||
|
||||
static void disconnectRecursively(QObject *obj)
|
||||
@@ -188,7 +188,7 @@ InfoWidget::InfoWidget(const InfoBarEntry &info, QPointer<InfoBar> infoBar)
|
||||
Column {
|
||||
Layouting::IconDisplay { icon(InfoBarEntry::icon(infoType)) },
|
||||
st,
|
||||
customMargins(0, 0, StyleHelper::SpacingTokens::ExPaddingGapS, 0),
|
||||
customMargins(0, 0, StyleHelper::SpacingTokens::PaddingHXxs, 0),
|
||||
},
|
||||
Column {
|
||||
Row {
|
||||
@@ -201,12 +201,12 @@ InfoWidget::InfoWidget(const InfoBarEntry &info, QPointer<InfoBar> infoBar)
|
||||
}
|
||||
}
|
||||
},
|
||||
Space(StyleHelper::SpacingTokens::HGapS),
|
||||
Space(StyleHelper::SpacingTokens::GapHM),
|
||||
Flow{ bindTo(&buttonLayout), alignment(Qt::AlignRight) },
|
||||
customMargins(StyleHelper::SpacingTokens::HPaddingS,
|
||||
StyleHelper::SpacingTokens::ExPaddingGapL,
|
||||
StyleHelper::SpacingTokens::HPaddingS,
|
||||
StyleHelper::SpacingTokens::ExPaddingGapL),
|
||||
customMargins(StyleHelper::SpacingTokens::PaddingHXl,
|
||||
StyleHelper::SpacingTokens::PaddingVL,
|
||||
StyleHelper::SpacingTokens::PaddingHXl,
|
||||
StyleHelper::SpacingTokens::PaddingVL),
|
||||
}.attachTo(this);
|
||||
// clang-format on
|
||||
|
||||
@@ -298,8 +298,8 @@ void InfoWidget::paintEvent(QPaintEvent *)
|
||||
{
|
||||
QPainter p(this);
|
||||
p.setPen(creatorColor(Theme::Token_Stroke_Subtle));
|
||||
p.drawLine(Utils::StyleHelper::SpacingTokens::HPaddingXs, 0,
|
||||
width() - Utils::StyleHelper::SpacingTokens::HPaddingXs - 1, 0);
|
||||
p.drawLine(Utils::StyleHelper::SpacingTokens::PaddingHM, 0,
|
||||
width() - Utils::StyleHelper::SpacingTokens::PaddingHM - 1, 0);
|
||||
}
|
||||
|
||||
class ProgressTimer : public QObject
|
||||
|
@@ -47,7 +47,7 @@ VersionDialog::VersionDialog()
|
||||
|
||||
auto logoLabel = new QLabel;
|
||||
logoLabel->setPixmap(Icons::QTCREATORLOGO_BIG.pixmap());
|
||||
const int margin = Utils::StyleHelper::SpacingTokens::ExPaddingGapL;
|
||||
const int margin = Utils::StyleHelper::SpacingTokens::PaddingVL;
|
||||
logoLabel->setContentsMargins({margin, margin, margin, margin});
|
||||
|
||||
auto copyRightLabel = new QLabel(ICore::aboutInformationHtml());
|
||||
|
@@ -409,7 +409,7 @@ constexpr QSize thumbnailAreaSize =
|
||||
WelcomeThumbnailSize.grownBy({thumbnailAreaBorderWidth, thumbnailAreaBorderWidth,
|
||||
thumbnailAreaBorderWidth, thumbnailAreaBorderWidth});
|
||||
constexpr int tagsRowsCount = 1;
|
||||
constexpr int tagsHGap = ExPaddingGapM;
|
||||
constexpr int tagsHGap = GapHS;
|
||||
|
||||
constexpr QEasingCurve::Type hoverEasing = QEasingCurve::OutCubic;
|
||||
constexpr std::chrono::milliseconds hoverDuration(300);
|
||||
@@ -420,57 +420,57 @@ QSize ListItemDelegate::itemSize()
|
||||
{
|
||||
const int tagsTfLineHeight = tagsTF.lineHeight();
|
||||
const int width =
|
||||
ExPaddingGapL
|
||||
PaddingHL
|
||||
+ thumbnailAreaSize.width()
|
||||
+ ExPaddingGapL;
|
||||
+ PaddingHL;
|
||||
const int height =
|
||||
ExPaddingGapL
|
||||
PaddingVL
|
||||
+ thumbnailAreaSize.height()
|
||||
+ VGapL
|
||||
+ GapVM
|
||||
+ titleTF.lineHeight()
|
||||
+ VGapL
|
||||
+ GapVM
|
||||
+ tagsTfLineHeight
|
||||
+ (tagsTfLineHeight + ExPaddingGapS) * (tagsRowsCount - 1) // If more than one row
|
||||
+ ExPaddingGapL;
|
||||
return {width + ExVPaddingGapXl, height + ExVPaddingGapXl};
|
||||
+ (tagsTfLineHeight + PaddingVXxs) * (tagsRowsCount - 1) // If more than one row
|
||||
+ PaddingVL;
|
||||
return {width + GapHXxl, height + GapVXxl};
|
||||
}
|
||||
|
||||
void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
{
|
||||
// Unhovered tile
|
||||
// +---------------+------------------+---------------+-----------------+
|
||||
// | | (ExPaddingGapL) | | |
|
||||
// +-----------+------------------+-----------+---------+
|
||||
// | | (PaddingVL) | | |
|
||||
// | +------------------+ | |
|
||||
// | | <thumbnail> | | |
|
||||
// | +------------------+ | |
|
||||
// | | (VGapL) | | |
|
||||
// | | (GapVM) | | |
|
||||
// | +------------------+ | |
|
||||
// |(ExPaddingGapL)| <title> |(ExPaddingGapL)|(ExVPaddingGapXs)|
|
||||
// |(PaddingHL)| <title> |(PaddingHL)|(GapHXxl)|
|
||||
// | +------------------+ | |
|
||||
// | | (VGapL) | | |
|
||||
// | | (GapVM) | | |
|
||||
// | +-----------+------+ | |
|
||||
// | |<tagsLabel>|<tags>| | |
|
||||
// | +-----------+------+ | |
|
||||
// | | (ExPaddingGapL) | | |
|
||||
// +---------------+------------------+---------------+-----------------+
|
||||
// | (ExVPaddingGapXs) |
|
||||
// +--------------------------------------------------------------------+
|
||||
// | | (PaddingVL) | | |
|
||||
// +-----------+------------------+-----------+---------+
|
||||
// | (GapVXxl) |
|
||||
// +----------------------------------------------------+
|
||||
//
|
||||
// Hovered, final animation state of the are above tagsLabel
|
||||
// +---------------+------------------+---------------+
|
||||
// | | (ExPaddingGapL) | |
|
||||
// | +------------------+ |
|
||||
// +-----------+-------------+-----------+
|
||||
// | | (PaddingVL) | |
|
||||
// | +-------------+ |
|
||||
// | | <title> | |
|
||||
// | +------------------+ |
|
||||
// | | (ExPaddingGapS) | |
|
||||
// |(ExPaddingGapL)+------------------+(ExPaddingGapL)| ...
|
||||
// | +-------------+ |
|
||||
// | | (GapVXxs) | |
|
||||
// |(PaddingHL)+-------------+(PaddingHL)| ...
|
||||
// | | <hr> | |
|
||||
// | +------------------+ |
|
||||
// | | (ExPaddingGapS) | |
|
||||
// | +------------------+ |
|
||||
// | | <description> | |
|
||||
// +---------------+------------------+---------------+
|
||||
// | +-------------+ |
|
||||
// | | (GapVXxs) | |
|
||||
// | +-------------+ |
|
||||
// | |<description>| |
|
||||
// +-----------+-------------+-----------+
|
||||
// ...
|
||||
|
||||
const ListItem *item = index.data(ListModel::ItemRole).value<Core::ListItem *>();
|
||||
@@ -478,22 +478,22 @@ void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
||||
const QFont tagsLabelFont = tagsLabelTF.font();
|
||||
const QFontMetrics tagsLabelFM(tagsLabelFont);
|
||||
|
||||
const QRect bgRGlobal = option.rect.adjusted(0, 0, -ExVPaddingGapXl, -ExVPaddingGapXl);
|
||||
const QRect bgRGlobal = option.rect.adjusted(0, 0, -PaddingHXxl, -PaddingVXxl);
|
||||
const QRect bgR = bgRGlobal.translated(-option.rect.topLeft());
|
||||
const QRect thumbnailAreaR(bgR.left() + ExPaddingGapL, bgR.top() + ExPaddingGapL,
|
||||
const QRect thumbnailAreaR(bgR.left() + PaddingHL, bgR.top() + PaddingVL,
|
||||
thumbnailAreaSize.width(), thumbnailAreaSize.height());
|
||||
const QRect titleR(thumbnailAreaR.left(), thumbnailAreaR.bottom() + VGapL + 1,
|
||||
const QRect titleR(thumbnailAreaR.left(), thumbnailAreaR.bottom() + GapVM + 1,
|
||||
thumbnailAreaR.width(), titleTF.lineHeight());
|
||||
const QString tagsLabelText = Tr::tr("Tags:");
|
||||
const int tagsLabelTextWidth = tagsLabelFM.horizontalAdvance(tagsLabelText);
|
||||
const QRect tagsLabelR(titleR.left(), titleR.bottom() + VGapL + 1,
|
||||
const QRect tagsLabelR(titleR.left(), titleR.bottom() + GapVM + 1,
|
||||
tagsLabelTextWidth, tagsTF.lineHeight());
|
||||
const QRect tagsR(tagsLabelR.right() + 1 + tagsHGap, tagsLabelR.top(),
|
||||
bgR.right() - ExPaddingGapL - tagsLabelR.right() - tagsHGap,
|
||||
bgR.right() - PaddingHL - tagsLabelR.right() - tagsHGap,
|
||||
tagsLabelR.height()
|
||||
+ (tagsLabelR.height() + ExPaddingGapS) * (tagsRowsCount - 1));
|
||||
QTC_CHECK(option.rect.height() == tagsR.bottom() + 1 + ExPaddingGapL + ExVPaddingGapXl);
|
||||
QTC_CHECK(option.rect.width() == tagsR.right() + 1 + ExPaddingGapL + ExVPaddingGapXl);
|
||||
+ (tagsLabelR.height() + PaddingVXxs) * (tagsRowsCount - 1));
|
||||
QTC_CHECK(option.rect.height() == tagsR.bottom() + 1 + GapVL + PaddingVXxl);
|
||||
QTC_CHECK(option.rect.width() == tagsR.right() + 1 + GapHL + PaddingHXxl);
|
||||
|
||||
QTextOption wrapTO;
|
||||
wrapTO.setWrapMode(QTextOption::WordWrap);
|
||||
@@ -604,11 +604,11 @@ void ListItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
||||
painter->setOpacity(animationProgress); // "fade in" separator line and description
|
||||
|
||||
// The separator line below the example title.
|
||||
const QRect hrR(titleR.x(), titleR.bottom() + 1 + ExPaddingGapS, thumbnailAreaR.width(), 1);
|
||||
const QRect hrR(titleR.x(), titleR.bottom() + 1 + GapVXxs, thumbnailAreaR.width(), 1);
|
||||
painter->fillRect(hrR, themeColor(Theme::Token_Stroke_Muted));
|
||||
|
||||
// The description text.
|
||||
const QRect descriptionR(hrR.x(), hrR.bottom() + 1 + ExPaddingGapS,
|
||||
const QRect descriptionR(hrR.x(), hrR.bottom() + 1 + GapVXxs,
|
||||
thumbnailAreaR.width(), shiftY);
|
||||
painter->setPen(descriptionTF.color());
|
||||
painter->setFont(descriptionTF.font());
|
||||
@@ -846,8 +846,8 @@ ListModel *SectionedGridView::addSection(const Section §ion, const QList<Lis
|
||||
createTitleLabel(section.name),
|
||||
st,
|
||||
seeAllLink,
|
||||
Space(ExVPaddingGapXl),
|
||||
customMargins(0, ExPaddingGapM, 0, ExPaddingGapM),
|
||||
Space(GapHXxl),
|
||||
customMargins(0, PaddingVS, 0, PaddingVS),
|
||||
}.emerge();
|
||||
m_sectionLabels.append(sectionLabel);
|
||||
auto scrollArea = qobject_cast<QScrollArea *>(widget(0));
|
||||
@@ -917,8 +917,8 @@ void SectionedGridView::zoomInSection(const Section §ion)
|
||||
createTitleLabel(section.name),
|
||||
st,
|
||||
backLink,
|
||||
Space(ExVPaddingGapXl),
|
||||
customMargins(0, ExPaddingGapM, 0, ExPaddingGapM),
|
||||
Space(GapHXxl),
|
||||
customMargins(0, PaddingVS, 0, PaddingVS),
|
||||
}.emerge();
|
||||
|
||||
auto gridView = new GridView(zoomedInWidget);
|
||||
|
@@ -83,7 +83,7 @@ ExtensionManagerSettings::ExtensionManagerSettings()
|
||||
st,
|
||||
},
|
||||
st,
|
||||
spacing(Utils::StyleHelper::SpacingTokens::ExVPaddingGapXl),
|
||||
spacing(Utils::StyleHelper::SpacingTokens::GapVXxl),
|
||||
};
|
||||
});
|
||||
// clang-format on
|
||||
|
@@ -85,8 +85,8 @@ static QLabel *sectionTitle(const TextFormat &tf, const QString &title)
|
||||
|
||||
static QWidget *toScrollableColumn(QWidget *widget)
|
||||
{
|
||||
widget->setContentsMargins(SpacingTokens::ExVPaddingGapXl, SpacingTokens::ExVPaddingGapXl,
|
||||
SpacingTokens::ExVPaddingGapXl, SpacingTokens::ExVPaddingGapXl);
|
||||
widget->setContentsMargins(SpacingTokens::PaddingHXxl, SpacingTokens::PaddingVXxl,
|
||||
SpacingTokens::PaddingHXxl, SpacingTokens::PaddingVXxl);
|
||||
widget->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
|
||||
|
||||
auto scrollArea = new QScrollArea;
|
||||
@@ -285,11 +285,11 @@ public:
|
||||
Widget {
|
||||
bindTo(&m_dlCountItems),
|
||||
Row {
|
||||
Space(SpacingTokens::HGapXs),
|
||||
Space(SpacingTokens::GapHM),
|
||||
m_divider,
|
||||
Space(SpacingTokens::HGapXs),
|
||||
Space(SpacingTokens::GapHM),
|
||||
m_dlIcon,
|
||||
Space(SpacingTokens::HGapXxs),
|
||||
Space(SpacingTokens::GapHXs),
|
||||
m_dlCount,
|
||||
noMargin, spacing(0),
|
||||
},
|
||||
@@ -306,7 +306,7 @@ public:
|
||||
m_versionSelector,
|
||||
st,
|
||||
},
|
||||
noMargin, spacing(SpacingTokens::ExPaddingGapL),
|
||||
noMargin, spacing(SpacingTokens::GapHL),
|
||||
}.attachTo(this);
|
||||
// clang-format on
|
||||
|
||||
@@ -526,7 +526,7 @@ public:
|
||||
// clang-format off
|
||||
Flow {
|
||||
noMargin,
|
||||
spacing(SpacingTokens::HGapXs),
|
||||
spacing(SpacingTokens::GapHM),
|
||||
Utils::transform(tags, tagToButton)
|
||||
}.attachTo(this);
|
||||
// clang-format on
|
||||
@@ -594,7 +594,7 @@ static QWidget *descriptionPlaceHolder()
|
||||
WelcomePageHelpers::createRule(Qt::Horizontal),
|
||||
text,
|
||||
Stretch(3),
|
||||
spacing(SpacingTokens::ExPaddingGapL),
|
||||
spacing(SpacingTokens::GapVL),
|
||||
},
|
||||
st,
|
||||
noMargin,
|
||||
@@ -618,7 +618,7 @@ ExtensionManagerWidget::ExtensionManagerWidget()
|
||||
QPalette browserPal = m_description->palette();
|
||||
browserPal.setColor(QPalette::Base, creatorColor(Theme::Token_Background_Default));
|
||||
m_description->setPalette(browserPal);
|
||||
const int verticalPadding = SpacingTokens::ExVPaddingGapXl - SpacingTokens::VPaddingM;
|
||||
const int verticalPadding = SpacingTokens::PaddingVXxl - SpacingTokens::PaddingVXl;
|
||||
m_description->setMargins({verticalPadding, 0, verticalPadding, 0});
|
||||
m_description->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Preferred);
|
||||
|
||||
@@ -664,15 +664,14 @@ ExtensionManagerWidget::ExtensionManagerWidget()
|
||||
auto detailsSplitter = new MiniSplitter;
|
||||
|
||||
using namespace Layouting;
|
||||
const auto spL = spacing(SpacingTokens::VPaddingL);
|
||||
const auto spXxs = spacing(SpacingTokens::VPaddingXxs);
|
||||
const auto spXxs = spacing(SpacingTokens::GapVXs);
|
||||
// clang-format off
|
||||
Column {
|
||||
Row {
|
||||
m_headingWidget,
|
||||
m_pluginStatus,
|
||||
customMargins(SpacingTokens::ExVPaddingGapXl, SpacingTokens::ExVPaddingGapXl,
|
||||
SpacingTokens::ExVPaddingGapXl, SpacingTokens::ExVPaddingGapXl),
|
||||
customMargins(SpacingTokens::PaddingHXxl, SpacingTokens::PaddingVXxl,
|
||||
SpacingTokens::PaddingHXxl, SpacingTokens::PaddingVXxl),
|
||||
},
|
||||
m_description,
|
||||
noMargin, spacing(0),
|
||||
@@ -686,16 +685,16 @@ ExtensionManagerWidget::ExtensionManagerWidget()
|
||||
Column { m_platformsTitle, m_platforms, spXxs },
|
||||
Column { m_dependenciesTitle, m_dependencies, spXxs },
|
||||
Column { m_packExtensionsTitle, m_packExtensions, spXxs },
|
||||
spacing(SpacingTokens::VPaddingL),
|
||||
spacing(SpacingTokens::GapVXl),
|
||||
},
|
||||
st,
|
||||
noMargin, spacing(SpacingTokens::ExVPaddingGapXl),
|
||||
noMargin, spacing(SpacingTokens::GapVXxl),
|
||||
}.attachTo(secondaryDetails);
|
||||
|
||||
Column {
|
||||
new StyledBar,
|
||||
Row {
|
||||
Space(SpacingTokens::ExVPaddingGapXl),
|
||||
Space(SpacingTokens::GapHXxl),
|
||||
m_extensionBrowser,
|
||||
WelcomePageHelpers::createRule(Qt::Vertical),
|
||||
Stack {
|
||||
@@ -788,7 +787,7 @@ void ExtensionManagerWidget::updateView(const QModelIndex ¤t)
|
||||
|
||||
const QString description = current.data(RoleDescriptionLong).toString();
|
||||
m_description->setMarkdown(description);
|
||||
m_description->document()->setDocumentMargin(SpacingTokens::VPaddingM);
|
||||
m_description->document()->setDocumentMargin(SpacingTokens::PaddingVXl);
|
||||
|
||||
auto idToDisplayName = [this](const QString &id) {
|
||||
const QModelIndex dependencyIndex = m_extensionModel->indexOfId(id);
|
||||
|
@@ -64,7 +64,7 @@ namespace ExtensionManager::Internal {
|
||||
|
||||
Q_LOGGING_CATEGORY(browserLog, "qtc.extensionmanager.browser", QtWarningMsg)
|
||||
|
||||
constexpr int gapSize = HGapL;
|
||||
constexpr int gapSize = GapHXl;
|
||||
constexpr int itemWidth = 330;
|
||||
constexpr int cellWidth = itemWidth + gapSize;
|
||||
|
||||
@@ -84,22 +84,22 @@ public:
|
||||
protected:
|
||||
void paintEvent([[maybe_unused]] QPaintEvent *event) override
|
||||
{
|
||||
// +------------+------+---------+---------------+------------+
|
||||
// | | | | (VPaddingXs) | |
|
||||
// +-----------+------+--------+---------------+-----------+
|
||||
// | | | | (PaddingVM) | |
|
||||
// | | | +---------------+ |
|
||||
// |(HPaddingXs)|(icon)|(HGapXxs)|<template%item>|(HPaddingXs)|
|
||||
// |(PaddingHM)|(icon)|(GapHXs)|<template%item>|(PaddingHM)|
|
||||
// | | | +---------------+ |
|
||||
// | | | | (VPaddingXs) | |
|
||||
// +------------+------+---------+---------------+------------+
|
||||
// | | | | (PaddingVM) | |
|
||||
// +-----------+------+--------+---------------+-----------+
|
||||
|
||||
const bool active = currentIndex() > 0;
|
||||
const bool hover = underMouse();
|
||||
const TextFormat &tF = (active || hover) ? m_itemActiveTf : m_itemDefaultTf;
|
||||
|
||||
const QRect iconRect(HPaddingXs, 0, m_iconSize.width(), height());
|
||||
const int textX = iconRect.right() + 1 + HGapXxs;
|
||||
const QRect textRect(textX, VPaddingXs,
|
||||
width() - HPaddingXs - textX, tF.lineHeight());
|
||||
const QRect iconRect(PaddingHM, 0, m_iconSize.width(), height());
|
||||
const int textX = iconRect.right() + 1 + GapHXs;
|
||||
const QRect textRect(textX, PaddingVM,
|
||||
width() - PaddingHM - textX, tF.lineHeight());
|
||||
|
||||
QPainter p(this);
|
||||
(active ? m_iconActive : m_iconDefault).paint(&p, iconRect);
|
||||
@@ -107,7 +107,7 @@ protected:
|
||||
p.setFont(tF.font());
|
||||
const QString elidedText = p.fontMetrics().elidedText(currentFormattedText(),
|
||||
Qt::ElideRight,
|
||||
textRect.width() + HPaddingXs);
|
||||
textRect.width() + PaddingHM);
|
||||
p.drawText(textRect, tF.drawTextFlags, elidedText);
|
||||
}
|
||||
|
||||
@@ -129,15 +129,15 @@ private:
|
||||
const QFontMetrics fm(m_itemDefaultTf.font());
|
||||
const int textWidth = fm.horizontalAdvance(currentFormattedText());
|
||||
const int width =
|
||||
HPaddingXs
|
||||
PaddingHM
|
||||
+ m_iconSize.width()
|
||||
+ HGapXxs
|
||||
+ GapHXs
|
||||
+ textWidth
|
||||
+ HPaddingXs;
|
||||
+ PaddingHM;
|
||||
const int height =
|
||||
VPaddingXs
|
||||
PaddingVM
|
||||
+ m_itemDefaultTf.lineHeight()
|
||||
+ VPaddingXs;
|
||||
+ PaddingVM;
|
||||
return {width, height};
|
||||
}
|
||||
|
||||
@@ -195,23 +195,23 @@ public:
|
||||
ExtensionItemWidget(QWidget *parent = nullptr)
|
||||
: QWidget(parent)
|
||||
{
|
||||
// +---------------+-------+---------------+-----------------------------------------------------------------------------------+---------------+---------+
|
||||
// | | | | (ExPaddingGapL) | | |
|
||||
// | | | +----------+---------+---------------+---------+--------------+---------+-----------+ | |
|
||||
// | | | |<itemName>|(HGapXxs)|<releaseStatus>|(HGapXxs)|<installState>|(HGapXxs)|<checkmark>| | |
|
||||
// | | | +----------+---------+---------------+---------+--------------+---------+-----------+ | |
|
||||
// | | | | (VGapXxs) | | |
|
||||
// | | | +---------------------+--------+--------------+--------+--------+---------+---------+ | |
|
||||
// |(ExPaddingGapL)|<icon> |(ExPaddingGapL)| <vendor> |(HGapXs)|<divider>(h16)|(HGapXs)|<dlIcon>|(HGapXxs)|<dlCount>|(ExPaddingGapL)|(gapSize)|
|
||||
// | |(50x50)| +---------------------+--------+--------------+--------+--------+---------+---------+ | |
|
||||
// | | | | (VGapXxs) | | |
|
||||
// | | | +-----------------------------------------------------------------------------------+ | |
|
||||
// +-----------+-------+-------+--------------------------------------------------------------------------------+-----------+---------+
|
||||
// | | | | (PaddingVL) | | |
|
||||
// | | | +----------+--------+---------------+--------+--------------+--------+-----------+ | |
|
||||
// | | | |<itemName>|(GapHXs)|<releaseStatus>|(GapHXs)|<installState>|(GapHXs)|<checkmark>| | |
|
||||
// | | | +----------+--------+---------------+--------+--------------+--------+-----------+ | |
|
||||
// | | | | (GapVXs) | | |
|
||||
// | | | +---------------------+-------+--------------+-------+--------+--------+---------+ | |
|
||||
// |(PaddingHL)|<icon> |(GapHL)| <vendor> |(GapHM)|<divider>(h16)|(GapHM)|<dlIcon>|(GapHXs)|<dlCount>|(PaddingHL)|(gapSize)|
|
||||
// | |(50x50)| +---------------------+-------+--------------+-------+--------+--------+---------+ | |
|
||||
// | | | | (GapVXs) | | |
|
||||
// | | | +--------------------------------------------------------------------------------+ | |
|
||||
// | | | | <shortDescription> | | |
|
||||
// | | | +-----------------------------------------------------------------------------------+ | |
|
||||
// | | | | (ExPaddingGapL) | | |
|
||||
// +---------------+-------+---------------+-----------------------------------------------------------------------------------+---------------+---------+
|
||||
// | | | +--------------------------------------------------------------------------------+ | |
|
||||
// | | | | (PaddingVL) | | |
|
||||
// +-----------+-------+-------+--------------------------------------------------------------------------------+-----------+---------+
|
||||
// | (gapSize) |
|
||||
// +-----------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
// +----------------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
m_iconLabel = new QLabel;
|
||||
m_iconLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
|
||||
@@ -249,11 +249,11 @@ public:
|
||||
Row {
|
||||
m_installStateLabel,
|
||||
m_installStateIcon,
|
||||
spacing(HGapXxs),
|
||||
spacing(GapHXs),
|
||||
noMargin,
|
||||
},
|
||||
},
|
||||
spacing(HGapXxs),
|
||||
spacing(GapHXs),
|
||||
},
|
||||
Row {
|
||||
m_vendorLabel,
|
||||
@@ -261,21 +261,21 @@ public:
|
||||
bindTo(&m_downloads),
|
||||
Row {
|
||||
m_downloadDividerLabel,
|
||||
Space(HGapXs),
|
||||
Space(GapHM),
|
||||
m_downloadIconLabel,
|
||||
Space(HGapXxs),
|
||||
Space(GapHXs),
|
||||
m_downloadCountLabel,
|
||||
tight,
|
||||
},
|
||||
},
|
||||
spacing(HGapXs),
|
||||
spacing(GapHM),
|
||||
},
|
||||
m_shortDescriptionLabel,
|
||||
noMargin,
|
||||
spacing(VGapXxs),
|
||||
spacing(GapVXs),
|
||||
},
|
||||
customMargins(ExPaddingGapL, ExPaddingGapL, ExPaddingGapL, ExPaddingGapL),
|
||||
spacing(ExPaddingGapL),
|
||||
customMargins(PaddingHL, PaddingVL, PaddingHL, PaddingVL),
|
||||
spacing(GapHL),
|
||||
}.attachTo(this);
|
||||
|
||||
setFixedWidth(itemWidth);
|
||||
@@ -523,7 +523,7 @@ static QWidget *extensionViewPlaceHolder()
|
||||
using namespace Layouting;
|
||||
// clang-format off
|
||||
return Column {
|
||||
Space(SpacingTokens::ExVPaddingGapXl),
|
||||
Space(SpacingTokens::PaddingVXxl),
|
||||
text,
|
||||
st,
|
||||
noMargin,
|
||||
@@ -595,14 +595,14 @@ ExtensionsBrowser::ExtensionsBrowser(ExtensionsModel *model, QWidget *parent)
|
||||
Row {
|
||||
titleLabel,
|
||||
settingsToolButton,
|
||||
customMargins(0, VPaddingM, rightMargin, 0),
|
||||
customMargins(0, PaddingVXl, rightMargin, 0),
|
||||
},
|
||||
Row {
|
||||
Column {
|
||||
Row{ st, externalRepoSwitch },
|
||||
d->searchBox,
|
||||
},
|
||||
customMargins(0, VPaddingM, rightMargin, VPaddingM),
|
||||
customMargins(0, PaddingVXl, rightMargin, PaddingVXl),
|
||||
},
|
||||
Row {
|
||||
d->filterChooser,
|
||||
@@ -702,7 +702,7 @@ QSize ExtensionsBrowser::sizeHint() const
|
||||
int ExtensionsBrowser::extraListViewWidth() const
|
||||
{
|
||||
// TODO: Investigate "transient" scrollbar, just for this list view.
|
||||
constexpr int extraPadding = qMax(0, ExVPaddingGapXl - gapSize);
|
||||
constexpr int extraPadding = qMax(0, PaddingHXxl - gapSize);
|
||||
return d->extensionsView->style()->pixelMetric(QStyle::PM_ScrollBarExtent)
|
||||
+ extraPadding
|
||||
+ 1; // Needed
|
||||
@@ -934,8 +934,8 @@ QPixmap itemBadge(const QModelIndex &index, [[maybe_unused]] Size size)
|
||||
|
||||
const QFont font = badgeTF.font();
|
||||
const int textWidth = QFontMetrics(font).horizontalAdvance(badgeText);
|
||||
const QSize badgeS(ExPaddingGapM + textWidth + ExPaddingGapM,
|
||||
ExPaddingGapS + badgeTF.lineHeight() + ExPaddingGapS);
|
||||
const QSize badgeS(PaddingHS + textWidth + PaddingHS,
|
||||
PaddingVXxs + badgeTF.lineHeight() + PaddingVXxs);
|
||||
const QRect badgeR(QPoint(), badgeS);
|
||||
const qreal dpr = qApp->devicePixelRatio();
|
||||
QPixmap pixmap(badgeS * dpr);
|
||||
|
@@ -498,7 +498,7 @@ public:
|
||||
Column {
|
||||
Row {
|
||||
m_searcher,
|
||||
customMargins(0, 0, ExVPaddingGapXl, 0),
|
||||
customMargins(0, 0, PaddingVXxl, 0),
|
||||
},
|
||||
Grid {
|
||||
GridCell({
|
||||
@@ -507,8 +507,8 @@ public:
|
||||
Align(Qt::AlignCenter, detailWdgt),
|
||||
}),
|
||||
},
|
||||
spacing(ExVPaddingGapXl),
|
||||
customMargins(ExVPaddingGapXl, ExVPaddingGapXl, 0, 0),
|
||||
spacing(GapVXxl),
|
||||
customMargins(PaddingHXxl, PaddingVXxl, 0, 0),
|
||||
}.attachTo(this);
|
||||
// clang-format on
|
||||
|
||||
|
@@ -233,7 +233,7 @@ void setupFetchModule()
|
||||
QLabel *list = new QLabel();
|
||||
list->setTextFormat(Qt::TextFormat::MarkdownText);
|
||||
list->setText(markdown);
|
||||
list->setMargin(StyleHelper::SpacingTokens::ExPaddingGapS);
|
||||
list->setMargin(StyleHelper::SpacingTokens::PaddingVXxs);
|
||||
return list;
|
||||
});
|
||||
entry.addCustomButton(
|
||||
|
@@ -398,7 +398,7 @@ void setupInstallModule()
|
||||
QLabel *list = new QLabel();
|
||||
list->setTextFormat(Qt::TextFormat::MarkdownText);
|
||||
list->setText(details);
|
||||
list->setMargin(StyleHelper::SpacingTokens::ExPaddingGapS);
|
||||
list->setMargin(StyleHelper::SpacingTokens::PaddingVXxs);
|
||||
return list;
|
||||
});
|
||||
ICore::infoBar()->addInfo(entry);
|
||||
|
@@ -63,8 +63,8 @@ constexpr TextFormat shortcutNumberTF {Theme::Token_Text_Default,
|
||||
StyleHelper::UiElementCaptionStrong,
|
||||
Qt::AlignCenter | Qt::TextDontClip};
|
||||
constexpr int shortcutNumberWidth = 6;
|
||||
constexpr int sessionScrollBarGap = HPaddingXs;
|
||||
const int itemSpacing = VGapL;
|
||||
constexpr int sessionScrollBarGap = PaddingHM;
|
||||
const int itemSpacing = GapVM;
|
||||
|
||||
static FilePaths pathsForSession(const QString &session, QString *title = nullptr)
|
||||
{
|
||||
@@ -313,7 +313,7 @@ public:
|
||||
{
|
||||
m_shortcut = new QLabel;
|
||||
applyTf(m_shortcut, shortcutNumberTF, false);
|
||||
const int shortcutWidth = HPaddingXs + shortcutNumberWidth + HGapXs;
|
||||
const int shortcutWidth = PaddingHM + shortcutNumberWidth + GapHM;
|
||||
m_shortcut->setMinimumWidth(shortcutWidth);
|
||||
|
||||
static const QPixmap icon = pixmap("session", Theme::Token_Text_Muted);
|
||||
@@ -328,8 +328,8 @@ public:
|
||||
m_sessionNameLabel->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
|
||||
m_sessionNameLabel->setTextInteractionFlags(Qt::NoTextInteraction);
|
||||
|
||||
const int collapsedHeight = VPaddingXs + std::max(16, sessionNameTF.lineHeight())
|
||||
+ VPaddingXs;
|
||||
const int collapsedHeight = PaddingVM + std::max(16, sessionNameTF.lineHeight())
|
||||
+ PaddingVM;
|
||||
m_shortcut->setMinimumHeight(collapsedHeight);
|
||||
iconLabel->setMinimumHeight(collapsedHeight);
|
||||
|
||||
@@ -338,7 +338,7 @@ public:
|
||||
|
||||
m_sessionType = new ElidingLabel;
|
||||
applyTf(m_sessionType, sessionTypeTF);
|
||||
m_sessionType->setFixedHeight(m_sessionType->height() + VGapXs);
|
||||
m_sessionType->setFixedHeight(m_sessionType->height() + GapVXs);
|
||||
m_sessionType->setSizePolicy(m_sessionNameLabel->sizePolicy());
|
||||
m_sessionType->setTextInteractionFlags(Qt::NoTextInteraction);
|
||||
|
||||
@@ -353,15 +353,15 @@ public:
|
||||
|
||||
auto space = [] {
|
||||
auto sp = new QWidget;
|
||||
sp->setFixedSize(HGapXs, VGapXs);
|
||||
sp->setFixedSize(GapHM, GapVXs);
|
||||
return sp;
|
||||
};
|
||||
|
||||
using namespace Layouting;
|
||||
Column paths {
|
||||
m_sessionType,
|
||||
spacing(ExPaddingGapS),
|
||||
customMargins(0, 0, HPaddingXs, 0),
|
||||
spacing(GapVXxs),
|
||||
customMargins(0, 0, PaddingHM, 0),
|
||||
};
|
||||
for (int i = 0; i < kMaxPathsDisplay + 1; ++i) {
|
||||
auto pathLine = new ElidingLabel;
|
||||
@@ -387,10 +387,10 @@ public:
|
||||
createRule(Qt::Vertical),
|
||||
m_delete,
|
||||
st,
|
||||
spacing(ExPaddingGapM),
|
||||
spacing(GapHS),
|
||||
noMargin,
|
||||
},
|
||||
customMargins(0, VPaddingXs, 0, VPaddingXs),
|
||||
customMargins(0, PaddingVM, 0, PaddingVM),
|
||||
},
|
||||
customMargins(0, 0, sessionScrollBarGap, itemSpacing),
|
||||
spacing(0),
|
||||
@@ -542,7 +542,7 @@ public:
|
||||
{
|
||||
m_shortcut = new QLabel;
|
||||
applyTf(m_shortcut, shortcutNumberTF, false);
|
||||
const int shortcutWidth = HPaddingXs + shortcutNumberWidth + HGapXs;
|
||||
const int shortcutWidth = PaddingHM + shortcutNumberWidth + GapHM;
|
||||
m_shortcut->setMinimumWidth(shortcutWidth);
|
||||
|
||||
const QPixmap icon = pixmap("project", Theme::Token_Text_Muted);
|
||||
@@ -564,14 +564,14 @@ public:
|
||||
Row {
|
||||
m_shortcut,
|
||||
iconLabel,
|
||||
Space(HGapXs),
|
||||
Space(GapHM),
|
||||
Column {
|
||||
m_projectName,
|
||||
m_projectPath,
|
||||
customMargins(0, VPaddingXs, 0, VPaddingXs),
|
||||
spacing(VGapXs),
|
||||
customMargins(0, PaddingVM, 0, PaddingVM),
|
||||
spacing(GapVXs),
|
||||
},
|
||||
customMargins(0, 0, HPaddingXs, 0),
|
||||
customMargins(0, 0, PaddingHM, 0),
|
||||
spacing(0),
|
||||
}.attachTo(this);
|
||||
|
||||
@@ -599,7 +599,7 @@ public:
|
||||
const bool hovered = option.widget->isActiveWindow()
|
||||
&& option.state & QStyle::State_MouseOver;
|
||||
|
||||
const QRect bgRGlobal = option.rect.adjusted(0, 0, -HPaddingXs, -itemSpacing);
|
||||
const QRect bgRGlobal = option.rect.adjusted(0, 0, -PaddingHM, -itemSpacing);
|
||||
const QRect bgR = bgRGlobal.translated(-option.rect.topLeft());
|
||||
|
||||
QFont projectNameFont = m_projectName->font();
|
||||
@@ -744,11 +744,11 @@ public:
|
||||
sessionsLabel,
|
||||
st,
|
||||
manageSessionsButton,
|
||||
customMargins(HPaddingS, 0, sessionScrollBarGap, 0),
|
||||
customMargins(PaddingHXl, 0, sessionScrollBarGap, 0),
|
||||
},
|
||||
m_sessionList,
|
||||
spacing(ExPaddingGapL),
|
||||
customMargins(ExVPaddingGapXl, ExVPaddingGapXl, 0, 0),
|
||||
spacing(GapVL),
|
||||
customMargins(PaddingHXxl, PaddingVXxl, 0, 0),
|
||||
}.attachTo(sessions);
|
||||
connect(manageSessionsButton, &QtcButton::clicked,
|
||||
this, &SessionManager::showSessionManager);
|
||||
@@ -770,11 +770,11 @@ public:
|
||||
Column {
|
||||
Row {
|
||||
projectsLabel,
|
||||
customMargins(HPaddingS, 0, 0, 0),
|
||||
customMargins(PaddingHXl, 0, 0, 0),
|
||||
},
|
||||
projectsList,
|
||||
spacing(ExPaddingGapL),
|
||||
customMargins(ExVPaddingGapXl - sessionScrollBarGap, ExVPaddingGapXl, 0, 0),
|
||||
spacing(GapVL),
|
||||
customMargins(PaddingHXxl - sessionScrollBarGap, PaddingVXxl, 0, 0),
|
||||
}.attachTo(projects);
|
||||
}
|
||||
|
||||
|
@@ -252,7 +252,7 @@ protected:
|
||||
painter->setCompositionMode(QPainter::CompositionMode_Difference);
|
||||
painter->setPen(Qt::white);
|
||||
painter->drawText(
|
||||
currentPixmapRect.translated(0, -StyleHelper::SpacingTokens::VPaddingXxs),
|
||||
currentPixmapRect.translated(0, -StyleHelper::SpacingTokens::PaddingVXs),
|
||||
exampleItem->videoLength, Qt::AlignBottom | Qt::AlignHCenter);
|
||||
painter->restore();
|
||||
static const QPixmap playOverlay =
|
||||
@@ -280,8 +280,8 @@ public:
|
||||
using namespace StyleHelper::SpacingTokens;
|
||||
using namespace Layouting;
|
||||
Row titleRow {
|
||||
customMargins(0, 0, ExVPaddingGapXl, 0),
|
||||
spacing(ExVPaddingGapXl),
|
||||
customMargins(0, 0, PaddingHXxl, 0),
|
||||
spacing(GapHXxl),
|
||||
};
|
||||
|
||||
m_searcher = new QtcSearchBox;
|
||||
@@ -291,7 +291,7 @@ public:
|
||||
auto exampleSetSelector = new QtcComboBox;
|
||||
exampleSetSelector->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||
exampleSetSelector->setMinimumWidth(ListItemDelegate::itemSize().width()
|
||||
- ExVPaddingGapXl);
|
||||
- PaddingVXxl);
|
||||
exampleSetSelector->setModel(s_exampleSetModel);
|
||||
exampleSetSelector->setCurrentIndex(s_exampleSetModel->selectedExampleSet());
|
||||
titleRow.addItem(exampleSetSelector);
|
||||
@@ -317,8 +317,8 @@ public:
|
||||
Column {
|
||||
titleRow,
|
||||
gridView,
|
||||
spacing(ExVPaddingGapXl),
|
||||
customMargins(ExVPaddingGapXl, ExVPaddingGapXl, 0, 0),
|
||||
spacing(GapVXxl),
|
||||
customMargins(PaddingHXxl, PaddingVXxl, 0, 0),
|
||||
}.attachTo(this);
|
||||
|
||||
connect(&m_exampleDelegate, &ExampleDelegate::tagClicked,
|
||||
|
@@ -63,7 +63,7 @@ public:
|
||||
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
|
||||
|
||||
m_pluginButtons = new QHBoxLayout;
|
||||
m_pluginButtons->setSpacing(VGapL);
|
||||
m_pluginButtons->setSpacing(GapVM);
|
||||
m_pluginButtons->setContentsMargins({});
|
||||
|
||||
auto newButton = new QtcButton(Tr::tr("Create Project..."), QtcButton::LargePrimary);
|
||||
@@ -76,8 +76,8 @@ public:
|
||||
st,
|
||||
newButton,
|
||||
openButton,
|
||||
spacing(HGapM),
|
||||
customMargins(HPaddingM, VPaddingM, HPaddingM, VPaddingM),
|
||||
spacing(GapHXl),
|
||||
customMargins(PaddingHXxl, PaddingVXl, PaddingHXxl, PaddingVXl),
|
||||
},
|
||||
createRule(Qt::Horizontal),
|
||||
noMargin, spacing(0),
|
||||
|
Reference in New Issue
Block a user