Exemplo n.º 1
0
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);
    }
}
Exemplo n.º 2
0
void
MyApplication::renderDone()
{
	desktop()->setBackgroundPixmap( renderer.pixmap() );
	desktop()->repaint( true );
	renderer.saveCacheFile();
	renderer.cleanup();
	for (unsigned i=0; i<renderer.numRenderers(); ++i)
	{
		KBackgroundRenderer * r = renderer.renderer(i);
		if (r->backgroundMode() == KBackgroundSettings::Program ||
		    (r->multiWallpaperMode() != KBackgroundSettings::NoMulti &&
		     r->multiWallpaperMode() != KBackgroundSettings::NoMultiRandom))
			return;
	}
	quit();
}
Exemplo n.º 3
0
void
MyApplication::renderDone()
{
    QPalette palette;
    palette.setBrush(desktop()->backgroundRole(), QBrush(renderer.pixmap()));
    desktop()->setPalette(palette);
    XClearWindow(QX11Info::display(), desktop()->winId());

    renderer.saveCacheFile();
    renderer.cleanup();
    for (unsigned i = 0; i < renderer.numRenderers(); ++i) {
        KBackgroundRenderer *r = renderer.renderer(i);
        if (r->backgroundMode() == KBackgroundSettings::Program ||
            (r->multiWallpaperMode() != KBackgroundSettings::NoMulti &&
             r->multiWallpaperMode() != KBackgroundSettings::NoMultiRandom))
            return;
    }
    quit();
}
Exemplo n.º 4
0
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);
        }
    }
}