diff options
| author | Sushruta Das <[email protected]> | 2026-01-08 16:32:51 +0530 |
|---|---|---|
| committer | Méven Car <[email protected]> | 2026-01-08 11:02:51 +0000 |
| commit | 5b6dfad767522060596ba2a76044e14ca99db57b (patch) | |
| tree | c2784abeaca7a4de74c6edd9cc795a46313d08f7 /src/settings/viewmodes | |
| parent | 538169a816e816b59745bd41945a3596a4cde945 (diff) | |
Dolphin: Inform user when italic filename style is not supported by the font
Currently, Dolphin silently falls back to a non-italic variant because italics are reserved for symbolic links. The new message informs users that their selected style cannot be fully applied to avoid confusion.
BUG: 499784
Diffstat (limited to 'src/settings/viewmodes')
| -rw-r--r-- | src/settings/viewmodes/viewsettingstab.cpp | 35 | ||||
| -rw-r--r-- | src/settings/viewmodes/viewsettingstab.h | 5 |
2 files changed, 37 insertions, 3 deletions
diff --git a/src/settings/viewmodes/viewsettingstab.cpp b/src/settings/viewmodes/viewsettingstab.cpp index fc9e94131..425f5e009 100644 --- a/src/settings/viewmodes/viewsettingstab.cpp +++ b/src/settings/viewmodes/viewsettingstab.cpp @@ -16,14 +16,17 @@ #include <KLocalizedString> +#include <KColorScheme> #include <QApplication> #include <QButtonGroup> #include <QCheckBox> #include <QComboBox> #include <QFormLayout> #include <QHelpEvent> +#include <QLabel> #include <QRadioButton> #include <QSpinBox> +#include <qfont.h> ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget *parent) : SettingsPageBase(parent) @@ -61,6 +64,17 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget *parent) m_fontRequester = new DolphinFontRequester(this); topLayout->addRow(i18nc("@label:listbox", "Label font:"), m_fontRequester); + // Reserved font style warning + m_fontWarningLabel = new QLabel(this); + m_fontWarningLabel->setWordWrap(true); + m_fontWarningLabel->setVisible(false); + m_fontWarningLabel->setText(i18nc("@info", "Some font styles are reserved by Dolphin and may be overridden.")); + topLayout->addRow(QString(), m_fontWarningLabel); + KColorScheme scheme(QPalette::Normal); + QPalette palette = m_fontWarningLabel->palette(); + palette.setColor(QPalette::WindowText, scheme.foreground(KColorScheme::InactiveText).color()); + m_fontWarningLabel->setPalette(palette); + switch (m_mode) { case IconsMode: { m_widthBox = new QComboBox(); @@ -114,6 +128,7 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget *parent) connect(m_defaultSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed); connect(m_previewSizeSlider, &QSlider::valueChanged, this, &ViewSettingsTab::changed); connect(m_fontRequester, &DolphinFontRequester::changed, this, &ViewSettingsTab::changed); + connect(m_fontRequester, &DolphinFontRequester::changed, this, &ViewSettingsTab::checkFontStyle); switch (m_mode) { case IconsMode: @@ -136,6 +151,23 @@ ViewSettingsTab::~ViewSettingsTab() { } +void ViewSettingsTab::checkFontStyle() +{ + const QFont font = m_fontRequester->currentFont(); + const bool wantsReservedStyle = font.italic() || font.underline() || font.strikeOut(); + + // Disabled warning for System Font + if (m_fontRequester->mode() != DolphinFontRequester::CustomFont) { + m_fontWarningLabel->setVisible(false); + return; + } + + if (wantsReservedStyle) { + m_fontWarningLabel->setVisible(true); + return; + } +} + void ViewSettingsTab::applySettings() { switch (m_mode) { @@ -187,7 +219,6 @@ void ViewSettingsTab::applySettings() settings.setUseSystemFont(useSystemFont); settings.setViewFont(font); - settings.save(); } @@ -255,4 +286,4 @@ void ViewSettingsTab::showToolTip(QSlider *slider, int value) QApplication::sendEvent(slider, &toolTipEvent); } -#include "moc_viewsettingstab.cpp" +#include "moc_viewsettingstab.cpp"
\ No newline at end of file diff --git a/src/settings/viewmodes/viewsettingstab.h b/src/settings/viewmodes/viewsettingstab.h index 5181e8018..6ea7a3bf3 100644 --- a/src/settings/viewmodes/viewsettingstab.h +++ b/src/settings/viewmodes/viewsettingstab.h @@ -15,6 +15,7 @@ class QCheckBox; class QSlider; class QSpinBox; class QRadioButton; +class QLabel; /** * @brief Represents one tab of the view-settings page. @@ -36,6 +37,7 @@ private Q_SLOTS: void slotDefaultSliderMoved(int value); void slotPreviewSliderMoved(int value); + void checkFontStyle(); private: void loadSettings(); @@ -52,6 +54,7 @@ private: QRadioButton *m_entireRow; QRadioButton *m_iconAndNameOnly; QCheckBox *m_expandableFolders; + QLabel *m_fontWarningLabel; }; -#endif +#endif
\ No newline at end of file |
