File indexing completed on 2024-04-28 15:51:42

0001 /*
0002     SPDX-FileCopyrightText: 2006 Pino Toscano <toscano.pino@tiscali.it>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "dlgperformance.h"
0008 
0009 #include <KLocalizedString>
0010 
0011 #include <QCheckBox>
0012 #include <QComboBox>
0013 #include <QFormLayout>
0014 #include <QLabel>
0015 
0016 #include "settings_core.h"
0017 
0018 DlgPerformance::DlgPerformance(QWidget *parent)
0019     : QWidget(parent)
0020     , m_memoryExplanationLabel(new QLabel(this))
0021 {
0022     QFormLayout *layout = new QFormLayout(this);
0023 
0024     // BEGIN Checkbox: transparency effects
0025     QCheckBox *useTransparencyEffects = new QCheckBox(this);
0026     useTransparencyEffects->setText(i18nc("@option:check Config dialog, performance page", "Enable transparency effects"));
0027     useTransparencyEffects->setObjectName(QStringLiteral("kcfg_EnableCompositing"));
0028     layout->addRow(i18nc("@label Config dialog, performance page", "CPU usage:"), useTransparencyEffects);
0029     // END Checkbox: transparency effects
0030 
0031     layout->addRow(new QLabel(this));
0032 
0033     // BEGIN Radio buttons: memory usage
0034     QComboBox *m_memoryLevel = new QComboBox(this);
0035     m_memoryLevel->addItem(i18nc("@item:inlistbox Config dialog, performance page, memory usage", "Low"));
0036     m_memoryLevel->addItem(i18nc("@item:inlistbox Config dialog, performance page, memory usage", "Normal (default)"));
0037     m_memoryLevel->addItem(i18nc("@item:inlistbox Config dialog, performance page, memory usage", "Aggressive"));
0038     m_memoryLevel->addItem(i18nc("@item:inlistbox Config dialog, performance page, memory usage", "Greedy"));
0039     m_memoryLevel->setObjectName(QStringLiteral("kcfg_MemoryLevel"));
0040     layout->addRow(i18nc("@label:listbox Config dialog, performance page, memory usage", "Memory usage:"), m_memoryLevel);
0041 
0042     // Setup and initialize explanation label:
0043     m_memoryExplanationLabel->setWordWrap(true);
0044     layout->addRow(m_memoryExplanationLabel);
0045     m_memoryLevel->setCurrentIndex(0);
0046     slotMemoryLevelSelected(0);
0047     connect(m_memoryLevel, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &DlgPerformance::slotMemoryLevelSelected);
0048     // END Radio buttons: memory usage
0049 
0050     layout->addRow(new QLabel(this));
0051 
0052     // BEGIN Checkboxes: rendering options
0053     QCheckBox *useTextAntialias = new QCheckBox(this);
0054     useTextAntialias->setText(i18nc("@option:check Config dialog, performance page", "Enable text antialias"));
0055     useTextAntialias->setObjectName(QStringLiteral("kcfg_TextAntialias"));
0056     layout->addRow(i18nc("@title:group Config dialog, performance page", "Rendering options:"), useTextAntialias);
0057 
0058     QCheckBox *useGraphicsAntialias = new QCheckBox(this);
0059     useGraphicsAntialias->setText(i18nc("@option:check Config dialog, performance page", "Enable graphics antialias"));
0060     useGraphicsAntialias->setObjectName(QStringLiteral("kcfg_GraphicsAntialias"));
0061     layout->addRow(QString(), useGraphicsAntialias);
0062 
0063     QCheckBox *useTextHinting = new QCheckBox(this);
0064     useTextHinting->setText(i18nc("@option:check Config dialog, performance page", "Enable text hinting"));
0065     useTextHinting->setObjectName(QStringLiteral("kcfg_TextHinting"));
0066     layout->addRow(QString(), useTextHinting);
0067     // END Checkboxes: rendering options
0068 
0069     //    m_dlg->cpuLabel->setPixmap(QIcon::fromTheme(QStringLiteral("cpu")).pixmap(32));
0070     //    m_dlg->memoryLabel->setPixmap( QIcon::fromTheme( "kcmmemory" ).pixmap(  32 ) ); // TODO: enable again when proper icon is available TODO: Figure out a new place in the layout for these pixmaps
0071 }
0072 
0073 void DlgPerformance::slotMemoryLevelSelected(int which)
0074 {
0075     switch (which) {
0076     case 0:
0077         m_memoryExplanationLabel->setText(i18n("Keeps used memory as low as possible. Do not reuse anything. (For systems with low memory.)"));
0078         break;
0079     case 1:
0080         m_memoryExplanationLabel->setText(i18n("A good compromise between memory usage and speed gain. Preload next page and boost searches. (For systems with 2GB of memory, typically.)"));
0081         break;
0082     case 2:
0083         m_memoryExplanationLabel->setText(i18n("Keeps everything in memory. Preload next pages. Boost searches. (For systems with more than 4GB of memory.)"));
0084         break;
0085     case 3:
0086         // xgettext: no-c-format
0087         m_memoryExplanationLabel->setText(i18n("Loads and keeps everything in memory. Preload all pages. (Will use at maximum 50% of your total memory or your free memory, whatever is bigger.)"));
0088         break;
0089     }
0090 }