[kde-doc-english] Re: [kde-workspace] /: Make font dpi fully configurable by the user

Lukas Sommer SommerLuk at gmail.com
Sat Jun 11 16:35:06 CEST 2011


Hi Anne-Marie.

I'm sorry for inconvenience. I thought that with the review on
reviewboard, this would be okay.

So if you say this is a problem for 4.7, so I asume that 4.7 is still
not branched from master and until 4.7 has been branched, we can't
commit any new features? (Or is there another development branch?)

So, what do I have to do?

1. revert the commit
2. wait until 4.7 is branched, and then commit to master
3. If I commit after the 4.7 branch to master, are there still issues
with i18n or can I commit it without problems.

I'm sorry. Next time I'll make it better. (It was my first commit.)

Best regards.

Lukas

2011/6/11 Anne-Marie Mahfouf <annemarie.mahfouf at free.fr>:
> Hi Lucas,
>
> It looks like you changed a string (you should have asked i18n people prior to
> committing) and you committed a feature which is not allowed in the 4.7
> feature plan.
> http://techbase.kde.org/Schedules/KDE4/4.7_Release_Schedule
>
> Best regards,
>
> Anne-Marie
>
> On Saturday 11 June 2011 11:42:56 Lukas Sommer wrote:
>> Git commit 9e1de272620da40fead11dfdb705cfc3d9a90f10 by Lukas Sommer.
>> Committed on 11/06/2011 at 11:34.
>> Pushed by sommer into branch 'master'.
>>
>> Make font dpi fully configurable by the user
>>
>> Adopts startkde.cmake to accept dpi values different from 96 and 120.
>>
>> Adopts the UI in kcontrol to make dpi values from 1 to 1000 possible.
>> The spinbox uses steps of 24 dpi because the common dpi values 72,
>> 96 and 120 are all multiples of 24. As some fonts are optimized for
>> these resolutions, this could make fonts look better.
>> FEATURE: 190489
>> FIXED-IN: 4.7
>> REVIEW: 101410
>> GUI:
>> DIGEST:
>>
>> M  +28   -20   kcontrol/fonts/fonts.cpp
>> M  +4    -3    kcontrol/fonts/fonts.h
>> M  +2    -6    startkde.cmake
>>
>> http://commits.kde.org/kde-workspace/9e1de272620da40fead11dfdb705cfc3d9a90f
>> 10
>>
>> diff --git a/kcontrol/fonts/fonts.cpp b/kcontrol/fonts/fonts.cpp
>> index 0cd2666..a9b5ef2 100644
>> --- a/kcontrol/fonts/fonts.cpp
>> +++ b/kcontrol/fonts/fonts.cpp
>> @@ -13,6 +13,7 @@
>>  #include <QDir>
>>  #include <QLabel>
>>  #include <QPushButton>
>> +#include <QSpinBox>
>>  #include <QtCore/QSettings>
>>
>>
>> @@ -625,14 +626,11 @@ KFonts::KFonts(QWidget *parent, const QVariantList
>> &args) lay->addWidget( aaSettingsButton, 0, 2 );
>>     connect(cbAA, SIGNAL(activated(int)), SLOT(slotUseAntiAliasing()));
>>  #endif
>> -   label = new QLabel( i18n( "Force fonts DPI:" ), this );
>> -   label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
>> -   lay->addWidget( label, 1, 0 );
>> -   comboForceDpi = new QComboBox( this );
>> -   label->setBuddy( comboForceDpi );
>> -   comboForceDpi->insertItem( DPINone, i18nc("Force fonts DPI", "Disabled"
>> )); // change DPISetti ng type if order changes -
>> comboForceDpi->insertItem( DPI96, i18n( "96 DPI" ));
>> -   comboForceDpi->insertItem( DPI120, i18n( "120 DPI" ));
>> +   checkboxForceDpi = new QCheckBox( i18n( "Force fonts DPI:" ), this );
>> +   lay->addWidget( checkboxForceDpi, 1, 0 );
>> +   spinboxDpi = new QSpinBox( this );
>> +   spinboxDpi->setRange(1, 1000);
>> +   spinboxDpi->setSingleStep(24); // The common DPI values 72, 96 and 120
>> are multiples of 24 QString whatsthis = i18n(
>>         "<p>This option forces a specific DPI value for fonts. It may be
>> useful" " when the real DPI of the hardware is not detected properly and
>> it" @@ -644,9 +642,13 @@ KFonts::KFonts(QWidget *parent, const
>> QVariantList &args) " ServerLocalArgs= in $KDEDIR/share/config/kdm/kdmrc).
>> When fonts do not render" " properly with real DPI value better fonts
>> should be used or configuration" " of font hinting should be checked.</p>"
>> );
>> -   comboForceDpi->setWhatsThis(whatsthis);
>> -   connect( comboForceDpi, SIGNAL( activated( int )), SLOT( changed()));
>> -   lay->addWidget( comboForceDpi, 1, 1 );
>> +   spinboxDpi->setWhatsThis(whatsthis);
>> +   checkboxForceDpi->setChecked(false);
>> +   spinboxDpi->setEnabled(false);
>> +   connect( spinboxDpi, SIGNAL( valueChanged(int)), SLOT( changed()));
>> +   connect( checkboxForceDpi, SIGNAL( toggled(bool)), SLOT( changed()));
>> +   connect( checkboxForceDpi, SIGNAL( toggled(bool)), spinboxDpi, SLOT(
>> setEnabled(bool))); +   lay->addWidget( spinboxDpi, 1, 1 );
>>
>>     layout->addStretch(1);
>>
>> @@ -681,7 +683,8 @@ void KFonts::defaults()
>>    cbAA->setCurrentIndex( useAA );
>>    aaSettings->defaults();
>>  #endif
>> -  comboForceDpi->setCurrentIndex( DPINone );
>> +  checkboxForceDpi->setChecked( false );
>> +  spinboxDpi->setValue( 96 );
>>    emit changed(true);
>>  }
>>
>> @@ -701,9 +704,15 @@ void KFonts::load()
>>    KConfig _cfgfonts( "kcmfonts" );
>>    KConfigGroup cfgfonts(&_cfgfonts, "General");
>>    int dpicfg = cfgfonts.readEntry( "forceFontDPI", 0 );
>> -  DPISetting dpi = dpicfg == 120 ? DPI120 : dpicfg == 96 ? DPI96 :
>> DPINone; -  comboForceDpi->setCurrentIndex( dpi );
>> -  dpi_original = dpi;
>> +  if (dpicfg <= 0) {
>> +    checkboxForceDpi->setChecked(false);
>> +    spinboxDpi->setValue(96);
>> +    dpi_original = 0;
>> +  } else {
>> +    checkboxForceDpi->setChecked(true);
>> +    spinboxDpi->setValue(dpicfg);
>> +    dpi_original = dpicfg;
>> +  };
>>  #ifdef HAVE_FONTCONFIG
>>    if( cfgfonts.readEntry( "dontChangeAASettings", true )) {
>>        useAA_original = useAA = AASystem;
>> @@ -727,16 +736,15 @@ void KFonts::save()
>>
>>    KConfig _cfgfonts( "kcmfonts" );
>>    KConfigGroup cfgfonts(&_cfgfonts, "General");
>> -  DPISetting dpi = static_cast< DPISetting >(
>> comboForceDpi->currentIndex()); -  const int dpi2value[] = { 0, 96, 120 };
>> -  cfgfonts.writeEntry( "forceFontDPI", dpi2value[ dpi ] );
>> +  int dpi = ( checkboxForceDpi->isChecked() ? spinboxDpi->value() : 0 );
>> +  cfgfonts.writeEntry( "forceFontDPI", dpi );
>>  #ifdef HAVE_FONTCONFIG
>>    cfgfonts.writeEntry( "dontChangeAASettings", cbAA->currentIndex() ==
>> AASystem ); #endif
>>    cfgfonts.sync();
>>    // if the setting is reset in the module, remove the dpi value,
>>    // otherwise don't explicitly remove it and leave any possible
>> system-wide value -  if( dpi == DPINone && dpi_original != DPINone ) {
>> +  if( dpi == 0 && dpi_original != 0 ) {
>>        KProcess proc;
>>        proc << "xrdb" << "-quiet" << "-remove" << "-nocpp";
>>        proc.start();
>> @@ -777,7 +785,7 @@ void KFonts::save()
>>    if( aaSave || (useAA != useAA_original) || dpi != dpi_original) {
>>      KMessageBox::information(this,
>>        i18n(
>> -        "<p>Some changes such as anti-aliasing will only affect newly
>> started applications.</p>" +        "<p>Some changes such as anti-aliasing
>> or DPI will only affect newly started applications.</p>" ), i18n("Font
>> Settings Changed"), "FontSettingsChanged");
>>      useAA_original = useAA;
>>      dpi_original = dpi;
>> diff --git a/kcontrol/fonts/fonts.h b/kcontrol/fonts/fonts.h
>> index 2c722d4..2a1b940 100644
>> --- a/kcontrol/fonts/fonts.h
>> +++ b/kcontrol/fonts/fonts.h
>> @@ -20,6 +20,7 @@
>>
>>  class QCheckBox;
>>  class QComboBox;
>> +class QSpinBox;
>>  class KDoubleNumInput;
>>  class FontAASettings;
>>
>> @@ -116,9 +117,9 @@ private:
>>      FontAASettings *aaSettings;
>>  #endif
>>
>> -    enum DPISetting { DPINone, DPI96, DPI120 };
>> -    DPISetting dpi_original;
>> -    QComboBox* comboForceDpi;
>> +    int dpi_original;
>> +    QCheckBox *checkboxForceDpi;
>> +    QSpinBox* spinboxDpi;
>>      QList<FontUseItem *> fontUseList;
>>  };
>>
>> diff --git a/startkde.cmake b/startkde.cmake
>> index dde9c23..afec4eb 100755
>> --- a/startkde.cmake
>> +++ b/startkde.cmake
>> @@ -130,13 +130,9 @@ fi
>>
>>  . krandrstartup 2>/dev/null
>>
>> -if test "$kcmfonts_general_forcefontdpi" -eq 120; then
>> +if test "$kcmfonts_general_forcefontdpi" -ne 0; then
>>      xrdb -quiet -merge -nocpp <<EOF
>> -Xft.dpi: 120
>> -EOF
>> -elif test "$kcmfonts_general_forcefontdpi" -eq 96; then
>> -    xrdb -quiet -merge -nocpp <<EOF
>> -Xft.dpi: 96
>> +Xft.dpi: $kcmfonts_general_forcefontdpi
>>  EOF
>>  fi
>>
>> _______________________________________________
>> kde-doc-english mailing list
>> kde-doc-english at kde.org
>> https://mail.kde.org/mailman/listinfo/kde-doc-english
>


More information about the kde-doc-english mailing list