LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File make-wallpapers-hideable.diff of Package kdebase3 (Project openSUSE:Factory)

Index: kcontrol/background/bgdialog.cpp
===================================================================
--- kcontrol/background/bgdialog.cpp.orig
+++ kcontrol/background/bgdialog.cpp
@@ -477,14 +477,23 @@ void BGDialog::loadWallpaperFilesList()
    //search for .desktop files before searching for images without .desktop files
    QStringList lst = m_pDirs->findAllResources("wallpaper", "*desktop", false, true);
    QStringList files;
+   QStringList hiddenfiles;
    for (QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it)
    {
       KSimpleConfig fileConfig(*it);
       fileConfig.setGroup("Wallpaper");
 
+      int slash = (*it).findRev('/') + 1;
+      QString directory = (*it).left(slash);
+      
       QString imageCaption = fileConfig.readEntry("Name");
       QString fileName = fileConfig.readEntry("File");
 
+      if (fileConfig.readBoolEntry("Hidden",false)) {
+         hiddenfiles.append(directory + fileName);
+         continue;
+      }
+      
       if (imageCaption.isEmpty())
       {
          imageCaption = fileName;
@@ -500,9 +509,8 @@ void BGDialog::loadWallpaperFilesList()
          rs = imageCaption + " (" + QString::number(n) + ')';
          lrs = rs.lower();
       }
-      int slash = (*it).findRev('/') + 1;
-      QString directory = (*it).left(slash);
       bool canLoadScaleable = false;
+
 #ifdef HAVE_LIBART
       canLoadScaleable = true;
 #endif
@@ -516,7 +524,7 @@ void BGDialog::loadWallpaperFilesList()
    lst = m_pDirs->findAllResources("wallpaper", "*", false, true);
    for (QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it)
    {
-      if ( !(*it).endsWith(".desktop") && files.grep(*it).empty() ) {
+      if ( !(*it).endsWith(".desktop") && files.grep(*it).empty() && hiddenfiles.grep(*it).empty() ) {
          // First try to see if we have a comment describing the image.  If we do
          // just use the first line of said comment.
          KFileMetaInfo metaInfo(*it);