+void StatusBarSpaceInfo::initialiseInstallFilelightWidgetAction()
+{
+ Q_ASSERT(!m_installFilelightWidgetAction);
+
+ auto containerWidget = new QWidget{this};
+ containerWidget->setContentsMargins(Dolphin::VERTICAL_SPACER_HEIGHT,
+ Dolphin::VERTICAL_SPACER_HEIGHT,
+ Dolphin::VERTICAL_SPACER_HEIGHT, // Using the same value for every spacing in this containerWidget looks nice.
+ Dolphin::VERTICAL_SPACER_HEIGHT);
+ auto vLayout = new QVBoxLayout(containerWidget);
+
+ auto installFilelightTitle = new QLabel(i18nc("@title", "Free Up Disk Space"), containerWidget);
+ installFilelightTitle->setAlignment(Qt::AlignCenter);
+ installFilelightTitle->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard | Qt::LinksAccessibleByKeyboard);
+ QFont titleFont{installFilelightTitle->font()};
+ titleFont.setPointSize(titleFont.pointSize() + 2);
+ installFilelightTitle->setFont(titleFont);
+ vLayout->addWidget(installFilelightTitle);
+
+ vLayout->addSpacing(Dolphin::VERTICAL_SPACER_HEIGHT);
+
+ auto installFilelightBody =
+ // i18n: The new line ("<nl/>") tag is only there to format this text visually pleasing, i.e. to avoid having one very long line.
+ new QLabel(xi18nc("@title", "<para>Install additional software to view disk usage statistics<nl/>and identify big files and folders.</para>"),
+ containerWidget);
+ installFilelightBody->setAlignment(Qt::AlignCenter);
+ installFilelightBody->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard | Qt::LinksAccessibleByKeyboard);
+ vLayout->addWidget(installFilelightBody);
+
+ vLayout->addSpacing(Dolphin::VERTICAL_SPACER_HEIGHT);
+
+ auto installFilelightButton =
+ new QPushButton(QIcon::fromTheme(QStringLiteral("filelight")), i18nc("@action:button", "Install Filelight…"), containerWidget);
+ installFilelightButton->setMinimumWidth(std::max(installFilelightButton->sizeHint().width(), installFilelightTitle->sizeHint().width()));
+ auto buttonLayout = new QHBoxLayout; // The parent is automatically set on addLayout() below.
+ buttonLayout->addWidget(installFilelightButton, 0, Qt::AlignHCenter);
+ vLayout->addLayout(buttonLayout);
+
+ // Make sure one Tab press focuses the button after the UI opened.
+ m_buttonMenu->setFocusProxy(installFilelightButton);
+ containerWidget->setFocusPolicy(Qt::TabFocus);
+ containerWidget->setFocusProxy(installFilelightButton);
+ installFilelightButton->setAccessibleDescription(installFilelightBody->text());
+ connect(installFilelightButton, &QAbstractButton::clicked, this, &StatusBarSpaceInfo::slotInstallFilelightButtonClicked);
+
+ m_installFilelightWidgetAction = new QWidgetAction{this};
+ m_installFilelightWidgetAction->setDefaultWidget(containerWidget); // transfers ownership of containerWidget
+}
+