Add nearest and bicubic filtering

This commit is contained in:
2023-12-18 15:54:15 +01:00
parent 0e9c980325
commit 2134f13b06
4 changed files with 114 additions and 2 deletions
+9
View File
@@ -8,6 +8,7 @@
extern int DEFAULT_WIDTH;
extern double SATURATION;
extern int FILTERING;
class EvenNumber : public QSpinBox
{
@@ -59,10 +60,15 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
m_useNativeDialog = new QCheckBox(tr("Don't use native file dialog"), this);
m_useNativeDialog->setChecked(QApplication::testAttribute(Qt::AA_DontUseNativeDialogs));
m_filtering = new QComboBox(this);
m_filtering->addItems({tr("Nearest"), tr("Bilinear"), tr("Bicubic")});
m_filtering->setCurrentIndex(FILTERING);
layout->addRow(tr("Image preload count"), m_preloadImages);
layout->addRow(tr("Thumbnails size"), m_thumSize);
layout->addRow(tr("Saturation"), m_saturation);
layout->addRow(m_useNativeDialog);
layout->addRow(tr("Image filtering"), m_filtering);
//layout->addRow(new QLabel(tr("Changes in settings will take effect after program restart.")));
QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
@@ -82,6 +88,7 @@ void SettingsDialog::loadSettings()
THUMB_SIZE_BORDER_Y = THUMB_SIZE + 30;
DEFAULT_WIDTH = settings.value("settings/preloadimagecount", DEFAULT_WIDTH).toInt();
SATURATION = settings.value("settings/saturation", 95.0).toDouble() / 100.0;
FILTERING = settings.value("settings/filtering", FILTERING).toInt();
QApplication::setAttribute(Qt::AA_DontUseNativeDialogs, settings.value("settings/dontusenativedialogs", false).toBool());
}
@@ -102,6 +109,8 @@ void SettingsDialog::saveSettings()
settings.setValue("settings/preloadimagecount", m_preloadImages->value());
settings.setValue("settings/dontusenativedialogs", m_useNativeDialog->isChecked());
settings.setValue("settings/saturation", m_saturation->value());
FILTERING = m_filtering->currentIndex();
settings.setValue("settings/filtering", FILTERING);
SATURATION = m_saturation->value() / 100.0;
QApplication::setAttribute(Qt::AA_DontUseNativeDialogs, m_useNativeDialog->isChecked());
if(DEFAULT_WIDTH != m_preloadImages->value())