┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/settings
diff options
context:
space:
mode:
authorConway <[email protected]>2026-05-01 10:25:05 -0400
committerConway <[email protected]>2026-05-01 10:25:05 -0400
commit41d6039c918b6158d833fecbeffd218d9eb102fc (patch)
tree84e6970cfbac7736ef3be36a6c84b6d1ae8e6402 /src/settings
parent4139e59154bde18667dc27155afb922cda4c28c4 (diff)
Adds options for pixel scaling and filename extensions
Diffstat (limited to 'src/settings')
-rw-r--r--src/settings/dolphin_contentdisplaysettings.kcfg4
-rw-r--r--src/settings/dolphin_iconsmodesettings.kcfg4
-rw-r--r--src/settings/viewmodes/contentdisplaytab.cpp8
-rw-r--r--src/settings/viewmodes/contentdisplaytab.h2
-rw-r--r--src/settings/viewmodes/viewsettingstab.cpp7
-rw-r--r--src/settings/viewmodes/viewsettingstab.h1
6 files changed, 26 insertions, 0 deletions
diff --git a/src/settings/dolphin_contentdisplaysettings.kcfg b/src/settings/dolphin_contentdisplaysettings.kcfg
index 6e8f8e9d5..dd10d09e8 100644
--- a/src/settings/dolphin_contentdisplaysettings.kcfg
+++ b/src/settings/dolphin_contentdisplaysettings.kcfg
@@ -46,5 +46,9 @@
</choices>
<default>Middle</default>
</entry>
+ <entry name="HideFileExtensions" type="Bool">
+ <label>Hide file name extensions</label>
+ <default>false</default>
+ </entry>
</group>
</kcfg>
diff --git a/src/settings/dolphin_iconsmodesettings.kcfg b/src/settings/dolphin_iconsmodesettings.kcfg
index 7948af75d..d4e3ca8d5 100644
--- a/src/settings/dolphin_iconsmodesettings.kcfg
+++ b/src/settings/dolphin_iconsmodesettings.kcfg
@@ -31,5 +31,9 @@
<label>Maximum textlines (0 means unlimited)</label>
<default>3</default>
</entry>
+ <entry name="UsePixelatedScaling" type="Bool">
+ <label>Use nearest-neighbor scaling for icons (better for pixel art)</label>
+ <default>false</default>
+ </entry>
</group>
</kcfg>
diff --git a/src/settings/viewmodes/contentdisplaytab.cpp b/src/settings/viewmodes/contentdisplaytab.cpp
index 747c3ff20..7b854182e 100644
--- a/src/settings/viewmodes/contentdisplaytab.cpp
+++ b/src/settings/viewmodes/contentdisplaytab.cpp
@@ -10,6 +10,7 @@
#include <KLocalizedString>
#include <QButtonGroup>
+#include <QCheckBox>
#include <QFormLayout>
#include <QHBoxLayout>
#include <QRadioButton>
@@ -31,6 +32,7 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent)
, m_useCombinedPermissions(nullptr)
, m_elideMiddle(nullptr)
, m_elideEnding(nullptr)
+ , m_hideFileExtensions(nullptr)
{
QFormLayout *topLayout = new QFormLayout(this);
topLayout->setFormAlignment(Qt::AlignHCenter);
@@ -114,6 +116,9 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent)
elidingModeGroup->addButton(m_elideMiddle);
elidingModeGroup->addButton(m_elideEnding);
+ m_hideFileExtensions = new QCheckBox(i18nc("@option:check", "Hide file name extensions"));
+ topLayout->addRow(QString(), m_hideFileExtensions);
+
#ifndef Q_OS_WIN
connect(m_recursiveDirectorySizeLimit, &QSpinBox::valueChanged, this, &SettingsPageBase::changed);
connect(m_numberOfItems, &QRadioButton::toggled, this, &SettingsPageBase::changed);
@@ -133,6 +138,7 @@ ContentDisplayTab::ContentDisplayTab(QWidget *parent)
connect(m_caseSensitiveSorting, &QRadioButton::toggled, this, &SettingsPageBase::changed);
connect(m_elideMiddle, &QRadioButton::toggled, this, &SettingsPageBase::changed);
connect(m_elideEnding, &QRadioButton::toggled, this, &SettingsPageBase::changed);
+ connect(m_hideFileExtensions, &QCheckBox::toggled, this, &SettingsPageBase::changed);
loadSettings();
}
@@ -166,6 +172,7 @@ void ContentDisplayTab::applySettings()
} else if (m_elideEnding->isChecked()) {
settings->setElidingMode(ContentDisplaySettings::ElidingMode::Right);
}
+ settings->setHideFileExtensions(m_hideFileExtensions->isChecked());
settings->save();
GeneralSettings::self()->save();
@@ -188,6 +195,7 @@ void ContentDisplayTab::loadSettings()
loadSortingChoiceSettings();
m_elideMiddle->setChecked(settings->elidingMode() == ContentDisplaySettings::ElidingMode::Middle);
m_elideEnding->setChecked(settings->elidingMode() == ContentDisplaySettings::ElidingMode::Right);
+ m_hideFileExtensions->setChecked(settings->hideFileExtensions());
}
void ContentDisplayTab::setSortingChoiceValue()
diff --git a/src/settings/viewmodes/contentdisplaytab.h b/src/settings/viewmodes/contentdisplaytab.h
index 2bae5a87c..6d673b0f6 100644
--- a/src/settings/viewmodes/contentdisplaytab.h
+++ b/src/settings/viewmodes/contentdisplaytab.h
@@ -10,6 +10,7 @@
#include "dolphin_generalsettings.h"
#include "settings/settingspagebase.h"
+class QCheckBox;
class QRadioButton;
class QSpinBox;
@@ -45,6 +46,7 @@ private:
QRadioButton *m_useCombinedPermissions;
QRadioButton *m_elideMiddle;
QRadioButton *m_elideEnding;
+ QCheckBox *m_hideFileExtensions;
};
#endif // GENERALTAB_H
diff --git a/src/settings/viewmodes/viewsettingstab.cpp b/src/settings/viewmodes/viewsettingstab.cpp
index 3593f23dd..12a8c11cb 100644
--- a/src/settings/viewmodes/viewsettingstab.cpp
+++ b/src/settings/viewmodes/viewsettingstab.cpp
@@ -37,6 +37,7 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget *parent)
, m_widthBox(nullptr)
, m_maxLinesBox(nullptr)
, m_expandableFolders(nullptr)
+ , m_pixelatedScaling(nullptr)
{
QFormLayout *topLayout = new QFormLayout(this);
topLayout->setFormAlignment(Qt::AlignHCenter);
@@ -93,6 +94,9 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget *parent)
m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "4"));
m_maxLinesBox->addItem(i18nc("@item:inlistbox Maximum lines", "5"));
topLayout->addRow(i18nc("@label:listbox", "Maximum lines:"), m_maxLinesBox);
+
+ m_pixelatedScaling = new QCheckBox(i18nc("@option:check", "Use pixelated thumbnail scaling"));
+ topLayout->addRow(QString(), m_pixelatedScaling);
break;
}
case CompactMode: {
@@ -135,6 +139,7 @@ ViewSettingsTab::ViewSettingsTab(Mode mode, QWidget *parent)
case IconsMode:
connect(m_widthBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed);
connect(m_maxLinesBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed);
+ connect(m_pixelatedScaling, &QCheckBox::toggled, this, &ViewSettingsTab::changed);
break;
case CompactMode:
connect(m_widthBox, &QComboBox::currentIndexChanged, this, &ViewSettingsTab::changed);
@@ -173,6 +178,7 @@ void ViewSettingsTab::applySettings()
case IconsMode:
IconsModeSettings::setTextWidthIndex(m_widthBox->currentIndex());
IconsModeSettings::setMaximumTextLines(m_maxLinesBox->currentIndex());
+ IconsModeSettings::setUsePixelatedScaling(m_pixelatedScaling->isChecked());
IconsModeSettings::self()->save();
break;
case CompactMode:
@@ -235,6 +241,7 @@ void ViewSettingsTab::loadSettings()
case IconsMode:
m_widthBox->setCurrentIndex(IconsModeSettings::textWidthIndex());
m_maxLinesBox->setCurrentIndex(IconsModeSettings::maximumTextLines());
+ m_pixelatedScaling->setChecked(IconsModeSettings::usePixelatedScaling());
break;
case CompactMode:
m_widthBox->setCurrentIndex(CompactModeSettings::maximumTextWidthIndex());
diff --git a/src/settings/viewmodes/viewsettingstab.h b/src/settings/viewmodes/viewsettingstab.h
index 6ea7a3bf3..2f2e75180 100644
--- a/src/settings/viewmodes/viewsettingstab.h
+++ b/src/settings/viewmodes/viewsettingstab.h
@@ -55,6 +55,7 @@ private:
QRadioButton *m_iconAndNameOnly;
QCheckBox *m_expandableFolders;
QLabel *m_fontWarningLabel;
+ QCheckBox *m_pixelatedScaling;
};
#endif \ No newline at end of file