[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/containments/desktop
From:       Jeremy Paul Whiting <jeremy () scitools ! com>
Date:       2008-01-10 18:13:44
Message-ID: 1199988824.439936.14510.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 759478 by whiting:

add new mode "None" to use just color, thanks to Cody Tracy

 M  +5 -16     BackgroundDialog.ui  
 M  +28 -4     backgrounddialog.cpp  
 M  +3 -1      backgrounddialog.h  
 M  +3 -2      desktop.cpp  
 M  +7 -3      renderthread.cpp  


--- trunk/KDE/kdebase/workspace/plasma/containments/desktop/BackgroundDialog.ui #759477:759478
@@ -51,6 +51,11 @@
             <string>Slideshow</string>
            </property>
           </item>
+          <item>
+           <property name="text" >
+            <string>None</string>
+           </property>
+          </item>
          </widget>
         </item>
         <item>
@@ -487,22 +492,6 @@
  <resources/>
  <connections>
   <connection>
-   <sender>m_mode</sender>
-   <signal>currentIndexChanged(int)</signal>
-   <receiver>stackedWidget</receiver>
-   <slot>setCurrentIndex(int)</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>234</x>
-     <y>69</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>204</x>
-     <y>218</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
    <sender>m_showIcons</sender>
    <signal>toggled(bool)</signal>
    <receiver>m_alignToGrid</receiver>
--- trunk/KDE/kdebase/workspace/plasma/containments/desktop/backgrounddialog.cpp #759477:759478
@@ -341,7 +341,7 @@
     QWidget * main = new QWidget(this);
     setupUi(main);
 
-    // static or slideshow?
+    // static, slideshow or none?
     connect(m_mode, SIGNAL(currentIndexChanged(int)),
             this, SLOT(changeBackgroundMode(int)));
 
@@ -370,7 +370,7 @@
 
     // color
     m_color->setColor(palette().color(QPalette::Window));
-    connect(m_color, SIGNAL(changed(QColor)), main, SLOT(update()));
+    connect(m_color, SIGNAL(changed(QColor)), this, SLOT(update()));
 
     // slideshow
     m_addDir->setIcon(KIcon("list-add"));
@@ -468,8 +468,10 @@
         config.writeEntry("wallpaperposition", 
             m_resizeMethod->itemData(m_resizeMethod->currentIndex()).toInt());
         config.writeEntry("selected", m_selected);
-    }
-    else {
+    } else if (mode == kNoBackground) {
+        config.writeEntry("wallpaper", QString());
+        config.writeEntry("wallpapercolor", m_color->color());
+    } else {
         QStringList dirs;
         for (int i = 0; i < m_dirlist->count(); i++) {
             dirs << m_dirlist->item(i)->text();
@@ -549,6 +551,11 @@
 
 void BackgroundDialog::update()
 {
+    if (m_mode->currentIndex() == kNoBackground) {
+        m_img.clear();
+        setPreview(m_img, Background::Scale);
+        return;
+    }
     int index = m_view->currentIndex();
     if (index == -1) {
         return;
@@ -648,14 +655,31 @@
     {
     case kStaticBackground:
         m_preview_timer.stop();
+        stackedWidget->setCurrentIndex(0);
+        enableButtons(true);
         update();
         break;
+    case kNoBackground:
+        m_preview_timer.stop();
+        stackedWidget->setCurrentIndex(0);
+        enableButtons(false);
+        update();
+        break;
     case kSlideshowBackground:
+        stackedWidget->setCurrentIndex(1);
         updateSlideshow();
+        enableButtons(true);
         break;
     }
 }
 
+void BackgroundDialog::enableButtons(bool enabled)
+{
+    m_view->setEnabled(enabled);
+    m_resizeMethod->setEnabled(enabled);
+    m_pictureUrlButton->setEnabled(enabled);
+}
+
 bool BackgroundDialog::contains(const QString &path) const
 {
     foreach (Background *bg, m_slideshowBackgrounds)
--- trunk/KDE/kdebase/workspace/plasma/containments/desktop/backgrounddialog.h #759477:759478
@@ -37,7 +37,8 @@
 public:
     enum BackgroundMode {
         kStaticBackground,
-        kSlideshowBackground
+        kSlideshowBackground,
+        kNoBackground
     };
     
     // FIXME seems that we're leaking, make a distructor
@@ -100,6 +101,7 @@
     void getNewStuff();
     void browse();
     void showFileDialog();
+    void enableButtons(bool enabled);
     
     void slotAddDir();
     void slotRemoveDir();
--- trunk/KDE/kdebase/workspace/plasma/containments/desktop/desktop.cpp #759477:759478
@@ -187,7 +187,8 @@
     m_wallpaperPosition = cg.readEntry("wallpaperposition", 0);
     m_wallpaperColor = cg.readEntry("wallpapercolor", QColor(Qt::black));
 
-    if (m_backgroundMode == BackgroundDialog::kStaticBackground) {
+    if (m_backgroundMode == BackgroundDialog::kStaticBackground ||
+        m_backgroundMode == BackgroundDialog::kNoBackground) {
         m_slideshowTimer.stop();
         // Only set the wallpaper if constraints have been loaded
         if (!skipUpdates) {
@@ -233,7 +234,7 @@
 
 void DefaultDesktop::updateBackground()
 {
-    if (m_wallpaperPath.isEmpty()) {
+    if (m_wallpaperPath.isEmpty() && m_backgroundMode != BackgroundDialog::kNoBackground) {
         QString defaultPath = QString("EOS/contents/images/%1x%2.jpg");
 
         QString testPath = defaultPath.arg(geometry().width()).arg(geometry().height());
--- trunk/KDE/kdebase/workspace/plasma/containments/desktop/renderthread.cpp #759477:759478
@@ -97,6 +97,13 @@
             mode = m_mode;
         }
         
+        QImage result(size, QImage::Format_ARGB32_Premultiplied);
+        result.fill(color.rgb());
+
+        if (file.isEmpty()) {
+            emit done(token, result);
+        }
+        
         QPoint pos(0, 0);
         bool tiled = false;
         bool scalable = file.endsWith("svg") || file.endsWith("svgz");
@@ -163,9 +170,6 @@
             break;
         }
         
-        QImage result(size, QImage::Format_ARGB32_Premultiplied);
-        result.fill(color.rgb());
-        
         QPainter p(&result);
         if (scalable) {
             // tiling is ignored for scalable wallpapers
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic