void BGDialog::slotPrimaryColor(const QColor &color) { KBackgroundRenderer *r = eRenderer(); if (color == r->colorA()) return; r->stop(); r->setColorA(color); r->start(true); m_copyAllScreens = true; emit changed(true); }
void BGDialog::updateUI() { KBackgroundRenderer *r = eRenderer(); m_comboScreen->setCurrentIndex(m_eScreen); m_colorPrimary->setColor(r->colorA()); m_colorSecondary->setColor(r->colorB()); int wallpaperMode = r->wallpaperMode(); int multiMode = r->multiWallpaperMode(); if (r->backgroundMode() == KBackgroundSettings::Program && wallpaperMode == KBackgroundSettings::NoWallpaper) groupBox3->setEnabled(false); else groupBox3->setEnabled(true); if ((multiMode == KBackgroundSettings::NoMultiRandom) || (multiMode == KBackgroundSettings::NoMulti)) { // No wallpaper if (wallpaperMode == KBackgroundSettings::NoWallpaper) { if (!m_readOnly) { m_urlWallpaperBox->setEnabled(false); m_urlWallpaperButton->setEnabled(false); m_buttonSetupWallpapers->setEnabled(false); m_comboWallpaperPos->setEnabled(false); m_lblWallpaperPos->setEnabled(false); } m_buttonGroupBackground->setSelected( m_buttonGroupBackground->id(m_radioNoPicture)); } // 1 Picture else { if (!m_readOnly) { m_urlWallpaperBox->setEnabled(true); m_urlWallpaperButton->setEnabled(true); m_buttonSetupWallpapers->setEnabled(false); m_comboWallpaperPos->setEnabled(true); m_lblWallpaperPos->setEnabled(true); } setWallpaper(r->wallpaper()); m_buttonGroupBackground->setSelected( m_buttonGroupBackground->id(m_radioPicture)); } } // Slide show else { if (!m_readOnly) { m_urlWallpaperBox->setEnabled(false); m_urlWallpaperButton->setEnabled(false); m_buttonSetupWallpapers->setEnabled(true); m_comboWallpaperPos->setEnabled(true); m_lblWallpaperPos->setEnabled(true); } m_buttonGroupBackground->setSelected( m_buttonGroupBackground->id(m_radioSlideShow)); } m_comboWallpaperPos->setCurrentIndex(r->wallpaperMode() - 1); bool bSecondaryEnabled = true; m_comboPattern->blockSignals(true); switch (r->backgroundMode()) { case KBackgroundSettings::Flat: m_comboPattern->setCurrentIndex(0); bSecondaryEnabled = false; break; case KBackgroundSettings::Pattern: { int i = m_patterns.indexOf(r->KBackgroundPattern::name()); if (i >= 0) m_comboPattern->setCurrentIndex(NR_PREDEF_PATTERNS + i); else m_comboPattern->setCurrentIndex(0); } break; case KBackgroundSettings::Program: m_comboPattern->setCurrentIndex(0); bSecondaryEnabled = false; break; default: // Gradient m_comboPattern->setCurrentIndex( 1 + r->backgroundMode() - KBackgroundSettings::HorizontalGradient); break; } m_comboPattern->blockSignals(false); m_colorSecondary->setEnabled(bSecondaryEnabled && !m_readOnly); int mode = r->blendMode(); m_comboBlend->blockSignals(true); m_sliderBlend->blockSignals(true); m_comboBlend->setCurrentIndex(mode); m_cbBlendReverse->setChecked(r->reverseBlending()); m_sliderBlend->setValue(r->blendBalance() / 10); m_comboBlend->blockSignals(false); m_sliderBlend->blockSignals(false); // turn it off if there is no background picture set! setBlendingEnabled(wallpaperMode != KBackgroundSettings::NoWallpaper); // Start preview renderer(s) if (m_eScreen == 0) { r->setPreview(m_pMonitorArrangement->combinedPreviewSize()); r->start(true); } else if (m_eScreen == 1) { r->setPreview(m_pMonitorArrangement->maxPreviewSize()); r->start(true); } else { for (unsigned j = 0; j < m_numScreens; ++j) { m_renderer[j+2]->stop(); m_renderer[j+2]->setPreview(m_pMonitorArrangement->monitor(j)->previewRect().size()); m_renderer[j+2]->start(true); } } }