diff --git a/kcontrol/displayconfig/CMakeLists.txt b/kcontrol/displayconfig/CMakeLists.txt index a96b60197..9f5192b9e 100644 --- a/kcontrol/displayconfig/CMakeLists.txt +++ b/kcontrol/displayconfig/CMakeLists.txt @@ -9,6 +9,8 @@ # ################################################# +add_subdirectory( pics ) + include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} diff --git a/kcontrol/displayconfig/displayconfig.cpp b/kcontrol/displayconfig/displayconfig.cpp index 98285276a..3498327b0 100644 --- a/kcontrol/displayconfig/displayconfig.cpp +++ b/kcontrol/displayconfig/displayconfig.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include @@ -642,18 +643,84 @@ void KDisplayConfig::moveMonitor(DraggableMonitor* monitor, int realx, int realy monitor->move(base->monitorPhyArrange->width(), base->monitorPhyArrange->height()); } +// int KDisplayConfig::realResolutionSliderValue() { +// return base->resolutionSlider->maxValue() - base->resolutionSlider->value(); +// } +// +// void KDisplayConfig::setRealResolutionSliderValue(int index) { +// base->resolutionSlider->setValue(base->resolutionSlider->maxValue() - index); +// } + +TQStringList sortResolutions(TQStringList unsorted) { + int i; + int xres; + int largest; + TQStringList sorted; + TQStringList::Iterator it; + TQStringList::Iterator largestit; + + while (unsorted.count()) { + largest = -1; + for ( it = unsorted.begin(); it != unsorted.end(); ++it ) { + TQString resolutionstring = *it; + int separator_pos = resolutionstring.find(" x "); + TQString x_res_string = resolutionstring.left(separator_pos); + TQString y_res_string = resolutionstring.right(resolutionstring.length()-separator_pos-3); + xres = x_res_string.toInt(); + if (xres > largest) { + largest = xres; + largestit = it; + } + } + sorted.prepend(*largestit); + unsorted.remove(largestit); + } + + return sorted; +} + int KDisplayConfig::realResolutionSliderValue() { - return base->resolutionSlider->maxValue() - base->resolutionSlider->value(); + int i; + int j; + SingleScreenData *screendata; + + screendata = m_screenInfoArray.at(base->monitorDisplaySelectDD->currentItem()); + TQStringList sortedList = screendata->resolutions; + sortedList = sortResolutions(sortedList); + + j=0; + for (i=0; iresolutions.count(); i++) { + if ((*sortedList.at(base->resolutionSlider->value())) == (*screendata->resolutions.at(i))) { + j=i; + } + } + + return j; } void KDisplayConfig::setRealResolutionSliderValue(int index) { - base->resolutionSlider->setValue(base->resolutionSlider->maxValue() - index); + int i; + int j; + SingleScreenData *screendata; + + screendata = m_screenInfoArray.at(base->monitorDisplaySelectDD->currentItem()); + TQStringList sortedList = screendata->resolutions; + sortedList = sortResolutions(sortedList); + + j=0; + for (i=0; iresolutions.count(); i++) { + if ((*sortedList.at(i)) == (*screendata->resolutions.at(index))) { + j=i; + } + } + + base->resolutionSlider->setValue(j); } /**** KDisplayConfig ****/ KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStringList &) - : KCModule(KDisplayCFactory::instance(), parent, name), m_randrsimple(0) + : KCModule(KDisplayCFactory::instance(), parent, name), m_randrsimple(0), m_gammaApplyTimer(0) { m_randrsimple = new KRandrSimpleAPI(); @@ -669,6 +736,9 @@ KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStrin about->addAuthor("Timothy Pearson", 0, "kb9vqf@pearsoncomputing.net"); setAboutData( about ); + m_gammaApplyTimer = new TQTimer(); + connect(m_gammaApplyTimer, SIGNAL(timeout()), this, SLOT(applyGamma())); + base = new DisplayConfigBase(this); layout->add(base); @@ -678,12 +748,19 @@ KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStrin connect(base->systemEnableSupport, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); connect(base->systemEnableSupport, TQT_SIGNAL(clicked()), TQT_SLOT(processLockoutControls())); connect(base->monitorDisplaySelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + connect(base->gammamonitorDisplaySelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(changed())); + connect(base->gammaTargetSelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(gammaTargetChanged(int))); connect(base->rotationSelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(rotationInfoChanged())); connect(base->refreshRateDD, TQT_SIGNAL(activated(int)), TQT_SLOT(refreshInfoChanged())); connect(base->orientationHFlip, TQT_SIGNAL(clicked()), TQT_SLOT(rotationInfoChanged())); connect(base->orientationVFlip, TQT_SIGNAL(clicked()), TQT_SLOT(rotationInfoChanged())); connect(base->resolutionSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(resolutionSliderChanged(int))); + connect(base->gammaAllSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(gammaAllSliderChanged(int))); + connect(base->gammaRedSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(gammaRedSliderChanged(int))); + connect(base->gammaGreenSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(gammaGreenSliderChanged(int))); + connect(base->gammaBlueSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(gammaBlueSliderChanged(int))); connect(base->monitorDisplaySelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(selectScreen(int))); + connect(base->gammamonitorDisplaySelectDD, TQT_SIGNAL(activated(int)), TQT_SLOT(gammaselectScreen(int))); connect(base->monitorPhyArrange, TQT_SIGNAL(workspaceRelayoutNeeded()), this, TQT_SLOT(layoutDragDropDisplay())); connect(base->isPrimaryMonitorCB, TQT_SIGNAL(clicked()), TQT_SLOT(changed())); @@ -708,6 +785,10 @@ KDisplayConfig::KDisplayConfig(TQWidget *parent, const char *name, const TQStrin KDisplayConfig::~KDisplayConfig() { delete systemconfig; + if (m_gammaApplyTimer) { + delete m_gammaApplyTimer; + m_gammaApplyTimer = 0; + } if (m_randrsimple) { delete m_randrsimple; m_randrsimple = 0; @@ -750,7 +831,7 @@ void KDisplayConfig::identifyMonitors () { ScreenInfo *randr_screen_info; XRROutputInfo *output_info; - randr_display = XOpenDisplay(NULL); + randr_display = qt_xdisplay(); randr_screen_info = m_randrsimple->read_screen_info(randr_display); for (i = 0; i < randr_screen_info->n_output; i++) { @@ -774,6 +855,8 @@ void KDisplayConfig::identifyMonitors () { KDialog::centerOnScreen(idWidget, i); TQTimer::singleShot(3000, idWidget, SLOT(close())); } + + m_randrsimple->freeScreenInfoStructure(randr_screen_info); } void KDisplayConfig::deleteProfile () { @@ -803,6 +886,7 @@ void KDisplayConfig::selectProfile (int slotNumber) { void KDisplayConfig::selectScreen (int slotNumber) { base->monitorDisplaySelectDD->setCurrentItem(slotNumber); + base->gammamonitorDisplaySelectDD->setCurrentItem(slotNumber); updateDisplayedInformation(); } @@ -920,6 +1004,12 @@ void KDisplayConfig::refreshDisplayedInformation () { base->monitorDisplaySelectDD->insertItem(screendata->screenFriendlyName, i); } base->monitorDisplaySelectDD->setCurrentItem(currentScreenIndex); + base->gammamonitorDisplaySelectDD->clear(); + for (i=0;igammamonitorDisplaySelectDD->insertItem(screendata->screenFriendlyName, i); + } + base->gammamonitorDisplaySelectDD->setCurrentItem(currentScreenIndex); updateDisplayedInformation(); @@ -956,7 +1046,7 @@ void KDisplayConfig::updateDragDropDisplay() { for (j=0;j<2;j++) { for (i=0;iis_primary==true)) || (j==1)) { // This ensures that the primary monitor is always the first one created and placed on the configuration widget + if (((j==0) && (screendata->is_primary==true)) || ((j==1) && (screendata->is_primary==false))) { // This ensures that the primary monitor is always the first one created and placed on the configuration widget TQString rotationDesired = *screendata->rotations.at(screendata->current_rotation_index); bool isvisiblyrotated = ((rotationDesired == "Rotate 90 degrees") || (rotationDesired == "Rotate 270 degrees")); DraggableMonitor *m = new DraggableMonitor( base->monitorPhyArrange, 0, WStyle_Customize | WDestructiveClose | WStyle_NoBorder | WX11BypassWM ); @@ -1080,18 +1170,173 @@ int KDisplayConfig::findScreenIndex(TQString screenName) { } +void KDisplayConfig::setGammaLabels() { + SingleScreenData *screendata; + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + + // Round off the gammas to one decimal place + screendata->gamma_red = floorf(screendata->gamma_red * 10 + 0.5) / 10; + screendata->gamma_green = floorf(screendata->gamma_green * 10 + 0.5) / 10; + screendata->gamma_blue = floorf(screendata->gamma_blue * 10 + 0.5) / 10; + + // Set the labels + base->gammaAllLabel->setText(TQString("%1").tqarg(((float)base->gammaAllSlider->value())/10.0, 0, 'f', 1)); + base->gammaRedLabel->setText(TQString("%1").tqarg(((float)base->gammaRedSlider->value())/10.0, 0, 'f', 1)); + base->gammaGreenLabel->setText(TQString("%1").tqarg(((float)base->gammaGreenSlider->value())/10.0, 0, 'f', 1)); + base->gammaBlueLabel->setText(TQString("%1").tqarg(((float)base->gammaBlueSlider->value())/10.0, 0, 'f', 1)); +} + +void KDisplayConfig::gammaSetAverageAllSlider() { + float average_gamma; + SingleScreenData *screendata; + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + average_gamma = (screendata->gamma_red+screendata->gamma_green+screendata->gamma_blue)/3.0; + average_gamma = floorf(average_gamma* 10 + 0.5) / 10; // Round off the gamma to one decimal place + base->gammaAllSlider->setValue(average_gamma*10.0); +} + +void KDisplayConfig::gammaselectScreen (int slotNumber) { + SingleScreenData *screendata; + + base->gammaAllSlider->blockSignals(true); + base->gammaRedSlider->blockSignals(true); + base->gammaGreenSlider->blockSignals(true); + base->gammaBlueSlider->blockSignals(true); + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + base->gammaRedSlider->setValue(screendata->gamma_red*10.0); + base->gammaGreenSlider->setValue(screendata->gamma_green*10.0); + base->gammaBlueSlider->setValue(screendata->gamma_blue*10.0); + gammaSetAverageAllSlider(); + setGammaLabels(); + + base->gammaAllSlider->blockSignals(false); + base->gammaRedSlider->blockSignals(false); + base->gammaGreenSlider->blockSignals(false); + base->gammaBlueSlider->blockSignals(false); +} + +void KDisplayConfig::gammaAllSliderChanged(int index) { + SingleScreenData *screendata; + + base->gammaAllSlider->blockSignals(true); + base->gammaRedSlider->blockSignals(true); + base->gammaGreenSlider->blockSignals(true); + base->gammaBlueSlider->blockSignals(true); + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + + base->gammaRedSlider->setValue(base->gammaAllSlider->value()); + base->gammaGreenSlider->setValue(base->gammaAllSlider->value()); + base->gammaBlueSlider->setValue(base->gammaAllSlider->value()); + setGammaLabels(); + + screendata->gamma_red = ((float)base->gammaAllSlider->value())/10.0; + screendata->gamma_green = ((float)base->gammaAllSlider->value())/10.0; + screendata->gamma_blue = ((float)base->gammaAllSlider->value())/10.0; + + m_gammaApplyTimer->start(10, TRUE); + + base->gammaAllSlider->blockSignals(false); + base->gammaRedSlider->blockSignals(false); + base->gammaGreenSlider->blockSignals(false); + base->gammaBlueSlider->blockSignals(false); + + changed(); +} + +void KDisplayConfig::gammaRedSliderChanged(int index) { + SingleScreenData *screendata; + + base->gammaAllSlider->blockSignals(true); + base->gammaRedSlider->blockSignals(true); + base->gammaGreenSlider->blockSignals(true); + base->gammaBlueSlider->blockSignals(true); + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + screendata->gamma_red = ((float)index)/10.0; + gammaSetAverageAllSlider(); + setGammaLabels(); + m_gammaApplyTimer->start(10, TRUE); + + base->gammaAllSlider->blockSignals(false); + base->gammaRedSlider->blockSignals(false); + base->gammaGreenSlider->blockSignals(false); + base->gammaBlueSlider->blockSignals(false); + + changed(); +} + +void KDisplayConfig::gammaGreenSliderChanged(int index) { + SingleScreenData *screendata; + + base->gammaAllSlider->blockSignals(true); + base->gammaRedSlider->blockSignals(true); + base->gammaGreenSlider->blockSignals(true); + base->gammaBlueSlider->blockSignals(true); + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + screendata->gamma_green = ((float)index)/10.0; + gammaSetAverageAllSlider(); + setGammaLabels(); + m_gammaApplyTimer->start(10, TRUE); + + base->gammaAllSlider->blockSignals(false); + base->gammaRedSlider->blockSignals(false); + base->gammaGreenSlider->blockSignals(false); + base->gammaBlueSlider->blockSignals(false); + + changed(); +} + +void KDisplayConfig::gammaBlueSliderChanged(int index) { + SingleScreenData *screendata; + + base->gammaAllSlider->blockSignals(true); + base->gammaRedSlider->blockSignals(true); + base->gammaGreenSlider->blockSignals(true); + base->gammaBlueSlider->blockSignals(true); + + screendata = m_screenInfoArray.at(base->gammamonitorDisplaySelectDD->currentItem()); + screendata->gamma_blue = ((float)index)/10.0; + gammaSetAverageAllSlider(); + setGammaLabels(); + m_gammaApplyTimer->start(10, TRUE); + + base->gammaAllSlider->blockSignals(false); + base->gammaRedSlider->blockSignals(false); + base->gammaGreenSlider->blockSignals(false); + base->gammaBlueSlider->blockSignals(false); + + changed(); +} + +void KDisplayConfig::applyGamma() { + m_randrsimple->applySystemwideDisplayGamma(m_screenInfoArray); +} + +void KDisplayConfig::gammaTargetChanged (int slotNumber) { + TQPixmap gammaPixmap( locate("data", TQString("kcontrol/pics/gamma%1.png").arg(base->gammaTargetSelectDD->text(slotNumber))) ); + base->gammaTestImage->setBackgroundPixmap( gammaPixmap ); +} + void KDisplayConfig::processLockoutControls() { if (getuid() != 0 || !systemconfig->checkConfigFilesWritable( true )) { base->globalTab->setEnabled(false); base->resolutionTab->setEnabled(false); + base->gammaTab->setEnabled(false); } else { base->globalTab->setEnabled(true); if (base->systemEnableSupport->isChecked()) { base->resolutionTab->setEnabled(true); + base->gammaTab->setEnabled(true); } else { base->resolutionTab->setEnabled(false); + base->gammaTab->setEnabled(false); } } @@ -1133,6 +1378,17 @@ void KDisplayConfig::load(bool useDefaults ) refreshDisplayedInformation(); + gammaselectScreen(base->gammamonitorDisplaySelectDD->currentItem()); + base->gammaTargetSelectDD->clear(); + base->gammaTargetSelectDD->insertItem("1.4", 0); + base->gammaTargetSelectDD->insertItem("1.6", 1); + base->gammaTargetSelectDD->insertItem("1.8", 2); + base->gammaTargetSelectDD->insertItem("2.0", 3); + base->gammaTargetSelectDD->insertItem("2.2", 4); + base->gammaTargetSelectDD->insertItem("2.4", 5); + base->gammaTargetSelectDD->setCurrentItem(4); + gammaTargetChanged(4); + emit changed(useDefaults); } diff --git a/kcontrol/displayconfig/displayconfig.h b/kcontrol/displayconfig/displayconfig.h index 835f1209a..cddb8186e 100644 --- a/kcontrol/displayconfig/displayconfig.h +++ b/kcontrol/displayconfig/displayconfig.h @@ -91,6 +91,10 @@ private: bool applyMonitorLayoutRules(void); bool applyMonitorLayoutRules(DraggableMonitor* primary_monitor); void updateDraggableMonitorInformationInternal (int, bool); + TQTimer* m_gammaApplyTimer; + void gammaSetAverageAllSlider(); + void setGammaLabels(); + void generateSortedResolutions(); private slots: void selectProfile (int slotNumber); @@ -114,6 +118,13 @@ private slots: void identifyMonitors (void); void rescanHardware (void); void reloadProfile (void); + void gammaAllSliderChanged(int index); + void gammaRedSliderChanged(int index); + void gammaGreenSliderChanged(int index); + void gammaBlueSliderChanged(int index); + void applyGamma(); + void gammaselectScreen (int slotNumber); + void gammaTargetChanged (int slotNumber); }; #endif diff --git a/kcontrol/displayconfig/displayconfigbase.ui b/kcontrol/displayconfig/displayconfigbase.ui index cbffc91fd..a0d73f4e9 100644 --- a/kcontrol/displayconfig/displayconfigbase.ui +++ b/kcontrol/displayconfig/displayconfigbase.ui @@ -302,6 +302,296 @@ + + + gammaTab + + + Brightness and Gamma + + + + unnamed + + + + unnamed + + + + textLabel7_4 + + + Display: + + + + + gammamonitorDisplaySelectDD + + + + + groupGamma + + + Gamma + + + + + groupGammaImages + + + Visual Calibration Aid + + + + + gammaTestImage + + + + 305 + 105 + + + + + 305 + 105 + + + + + + textLabel7_4 + + + Target gamma: + + + + + gammaTargetSelectDD + + + + + Spacer6 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + Spacer7 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + + + groupHardware + + + Hardware Gamma Control + + + + + textLabel7_0 + + + All + + + + + gammaAllSlider + + + 30 + + + Horizontal + + + Below + + + 1 + + + + + gammaAllLabel + + + + + + + + textLabel7_1 + + + Red + + + + + gammaRedSlider + + + 30 + + + Horizontal + + + Below + + + 1 + + + + + gammaRedLabel + + + + + + + + textLabel7_2 + + + Green + + + + + gammaGreenSlider + + + 30 + + + Horizontal + + + Below + + + 1 + + + + + gammaGreenLabel + + + + + + + + textLabel7_3 + + + Blue + + + + + gammaBlueSlider + + + 30 + + + Horizontal + + + Below + + + 1 + + + + + gammaBlueLabel + + + + + + + + + + gammaTipText + + + Adjust the gamma sliders to make the squares above fade into their backgrounds as much as possible. + + + + + gammaTipText2 + + + Tip: Most computer software expects a gamma of 2.2. + + + + + Spacer4 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + + + diff --git a/kcontrol/displayconfig/pics/CMakeLists.txt b/kcontrol/displayconfig/pics/CMakeLists.txt new file mode 100644 index 000000000..bfee8505e --- /dev/null +++ b/kcontrol/displayconfig/pics/CMakeLists.txt @@ -0,0 +1,23 @@ +################################################# +# +# (C) 2010-2011 Serghei Amelian +# serghei (DOT) amelian (AT) gmail.com +# +# Improvements and feedback are welcome +# +# This file is released under GPL >= 2 +# +################################################# + +install( FILES gamma1.4.gif DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma1.4.png DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma1.6.gif DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma1.6.png DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma1.8.gif DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma1.8.png DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma2.0.gif DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma2.0.png DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma2.2.gif DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma2.2.png DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma2.4.gif DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) +install( FILES gamma2.4.png DESTINATION ${DATA_INSTALL_DIR}/kcontrol/pics ) \ No newline at end of file diff --git a/kcontrol/displayconfig/pics/gamma1.4.gif b/kcontrol/displayconfig/pics/gamma1.4.gif new file mode 100644 index 000000000..3813ffe79 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma1.4.gif differ diff --git a/kcontrol/displayconfig/pics/gamma1.4.png b/kcontrol/displayconfig/pics/gamma1.4.png new file mode 100644 index 000000000..f193a4c09 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma1.4.png differ diff --git a/kcontrol/displayconfig/pics/gamma1.6.gif b/kcontrol/displayconfig/pics/gamma1.6.gif new file mode 100644 index 000000000..4dd9af3c8 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma1.6.gif differ diff --git a/kcontrol/displayconfig/pics/gamma1.6.png b/kcontrol/displayconfig/pics/gamma1.6.png new file mode 100644 index 000000000..0110dad26 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma1.6.png differ diff --git a/kcontrol/displayconfig/pics/gamma1.8.gif b/kcontrol/displayconfig/pics/gamma1.8.gif new file mode 100644 index 000000000..a73c83249 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma1.8.gif differ diff --git a/kcontrol/displayconfig/pics/gamma1.8.png b/kcontrol/displayconfig/pics/gamma1.8.png new file mode 100644 index 000000000..71fc121aa Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma1.8.png differ diff --git a/kcontrol/displayconfig/pics/gamma2.0.gif b/kcontrol/displayconfig/pics/gamma2.0.gif new file mode 100644 index 000000000..2e98232a4 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma2.0.gif differ diff --git a/kcontrol/displayconfig/pics/gamma2.0.png b/kcontrol/displayconfig/pics/gamma2.0.png new file mode 100644 index 000000000..6a3f72a8f Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma2.0.png differ diff --git a/kcontrol/displayconfig/pics/gamma2.2.gif b/kcontrol/displayconfig/pics/gamma2.2.gif new file mode 100644 index 000000000..cb10c1fd2 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma2.2.gif differ diff --git a/kcontrol/displayconfig/pics/gamma2.2.png b/kcontrol/displayconfig/pics/gamma2.2.png new file mode 100644 index 000000000..573a57e70 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma2.2.png differ diff --git a/kcontrol/displayconfig/pics/gamma2.4.gif b/kcontrol/displayconfig/pics/gamma2.4.gif new file mode 100644 index 000000000..c7bde1117 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma2.4.gif differ diff --git a/kcontrol/displayconfig/pics/gamma2.4.png b/kcontrol/displayconfig/pics/gamma2.4.png new file mode 100644 index 000000000..88bc32395 Binary files /dev/null and b/kcontrol/displayconfig/pics/gamma2.4.png differ