LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File khelpcenter-localindices.patch of Package kdebase3 (Project openSUSE:Factory)

Index: khelpcenter/kcmhelpcenter.cpp
===================================================================
--- khelpcenter/kcmhelpcenter.cpp.orig
+++ khelpcenter/kcmhelpcenter.cpp
@@ -321,6 +321,7 @@ bool KCMHelpCenter::save()
 
 void KCMHelpCenter::load()
 {
+  findWriteableIndexDir();
   mIndexDirLabel->setText( Prefs::indexDirectory() );
 
   mListView->clear();
@@ -675,6 +676,12 @@ void KCMHelpCenter::checkSelection()
   enableButtonOK( count != 0 );
 }
 
+void KCMHelpCenter::findWriteableIndexDir()
+{
+  QFileInfo currentDir( Prefs::indexDirectory() );
+  if ( !currentDir.isWritable() )
+    Prefs::setIndexDirectory( KGlobal::dirs()->saveLocation("data", "khelpcenter/index/") );
+}
 #include "kcmhelpcenter.moc"
 
 // vim:ts=2:sw=2:et
Index: khelpcenter/kcmhelpcenter.h
===================================================================
--- khelpcenter/kcmhelpcenter.h.orig
+++ khelpcenter/kcmhelpcenter.h
@@ -146,6 +146,11 @@ class KCMHelpCenter : public KDialogBase
 
     void advanceProgress();
 
+    /**
+     * Find a user-writeable location for the indices, if the current location
+     * is not.
+     */
+    void findWriteableIndexDir();
   private:
     KHC::SearchEngine *mEngine;