--- khelpcenter/kcmhelpcenter.cpp +++ khelpcenter/kcmhelpcenter.cpp @@ -321,6 +321,7 @@ void KCMHelpCenter::load() { + findWriteableIndexDir(); mIndexDirLabel->setText( Prefs::indexDirectory() ); mListView->clear(); @@ -675,6 +676,12 @@ 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 --- khelpcenter/kcmhelpcenter.h +++ khelpcenter/kcmhelpcenter.h @@ -146,6 +146,11 @@ void advanceProgress(); + /** + * Find a user-writeable location for the indices, if the current location + * is not. + */ + void findWriteableIndexDir(); private: KHC::SearchEngine *mEngine;