void BGDialog::slotSetupMulti() { KBackgroundRenderer *r = eRenderer(); BGMultiWallpaperDialog dlg(r, window()); if (dlg.exec() == QDialog::Accepted) { r->stop(); m_slideShowRandom = r->multiWallpaperMode(); r->setWallpaperMode(m_wallpaperPos); r->start(true); m_copyAllScreens = true; emit changed(true); } }
void BGDialog::slotWallpaperPos(int mode) { KBackgroundRenderer *r = eRenderer(); mode++; m_wallpaperPos = mode; if (mode == r->wallpaperMode()) return; r->stop(); r->setWallpaperMode(mode); r->start(true); m_copyAllScreens = true; emit changed(true); }
void BGDialog::defaults() { m_pGlobals->setCommonScreenBackground(_defCommonScreen); m_pGlobals->setLimitCache(_defLimitCache); m_pGlobals->setCacheSize(_defCacheSize); m_comboWallpaperPos->setCurrentIndex(0); getEScreen(); m_pGlobals->setDrawBackgroundPerScreen(false); KBackgroundRenderer *r = eRenderer(); if (r->isActive()) r->stop(); if (QPixmap::defaultDepth() > 8) r->setBackgroundMode(_defBackgroundMode); else r->setBackgroundMode(KBackgroundSettings::Flat); r->setColorA(_defColorA); r->setColorB(_defColorB); r->setWallpaperMode(_defWallpaperMode); r->setMultiWallpaperMode(_defMultiMode); m_slideShowRandom = _defMultiMode; if (m_slideShowRandom == KBackgroundSettings::NoMultiRandom) m_slideShowRandom = KBackgroundSettings::Random; if (m_slideShowRandom == KBackgroundSettings::NoMulti) m_slideShowRandom = KBackgroundSettings::InOrder; r->setBlendMode(_defBlendMode); r->setBlendBalance(_defBlendBalance); r->setReverseBlending(_defReverseBlending); updateUI(); m_copyAllScreens = true; emit changed(true); }
void BGDialog::slotWallpaperTypeChanged(int i) { KBackgroundRenderer *r = eRenderer(); r->stop(); // No picture if (i == m_buttonGroupBackground->id(m_radioNoPicture)) { //None m_urlWallpaperBox->setEnabled(false); m_urlWallpaperButton->setEnabled(false); m_buttonSetupWallpapers->setEnabled(false); m_comboWallpaperPos->setEnabled(false); m_lblWallpaperPos->setEnabled(false); r->setWallpaperMode(KBackgroundSettings::NoWallpaper); if (m_slideShowRandom == KBackgroundSettings::InOrder) r->setMultiWallpaperMode(KBackgroundSettings::NoMulti); else r->setMultiWallpaperMode(KBackgroundSettings::NoMultiRandom); setBlendingEnabled(false); } // Slide show else if (i == m_buttonGroupBackground->id(m_radioSlideShow)) { m_urlWallpaperBox->setEnabled(false); m_urlWallpaperButton->setEnabled(false); m_buttonSetupWallpapers->setEnabled(true); m_comboWallpaperPos->setEnabled(true); m_lblWallpaperPos->setEnabled(true); setBlendingEnabled(true); m_comboWallpaperPos->blockSignals(true); m_comboWallpaperPos->setCurrentIndex(m_wallpaperPos - 1); m_comboWallpaperPos->blockSignals(false); if (r->wallpaperList().count() == 0) r->setWallpaperMode(KBackgroundSettings::NoWallpaper); else r->setWallpaperMode(m_wallpaperPos); r->setMultiWallpaperMode(m_slideShowRandom); setWallpaper(r->wallpaper()); setBlendingEnabled(true); } // 1 Picture else if (i == m_buttonGroupBackground->id(m_radioPicture)) { m_urlWallpaperBox->setEnabled(true); m_urlWallpaperButton->setEnabled(true); m_buttonSetupWallpapers->setEnabled(false); m_lblWallpaperPos->setEnabled(true); m_comboWallpaperPos->setEnabled(true); setBlendingEnabled(true); if (m_slideShowRandom == KBackgroundSettings::InOrder) r->setMultiWallpaperMode(KBackgroundSettings::NoMulti); else r->setMultiWallpaperMode(KBackgroundSettings::NoMultiRandom); int j = m_urlWallpaperBox->currentIndex(); QString path; for (QMap<QString, int>::ConstIterator it = m_wallpaper.constBegin(); it != m_wallpaper.constEnd(); ++it) { if (it.value() == j) { path = it.key(); break; } } KFileMetaInfo metaInfo(path); if (metaInfo.isValid() && metaInfo.item("Dimensions").isValid()) { // If the image is greater than 800x600 default to using scaled mode, // otherwise default to tiled. QSize s = metaInfo.item("Dimensions").value().toSize(); if (s.width() >= 800 && s.height() >= 600) m_wallpaperPos = KBackgroundSettings::Scaled; else m_wallpaperPos = KBackgroundSettings::Tiled; } else if (KMimeType::findByPath(path)->is("image/svg+xml")) { m_wallpaperPos = KBackgroundSettings::Scaled; } r->setWallpaperMode(m_wallpaperPos); m_comboWallpaperPos->blockSignals(true); m_comboWallpaperPos->setCurrentIndex(m_wallpaperPos - 1); m_comboWallpaperPos->blockSignals(false); r->setWallpaper(path); } r->start(true); m_copyAllScreens = true; emit changed(true); }