konqbookmarkmanager.h00001 #ifndef KONQBOOKMARKMANAGER_H
00002 #define KONQBOOKMARKMANAGER_H
00003
00004 #include <kbookmarkmanager.h>
00005 #include <kstandarddirs.h>
00006 #include <libkonq_export.h>
00007
00008 #include <stdlib.h>
00009 #include <qfile.h>
00010 #include <sys/stat.h>
00011 #include <sys/types.h>
00012
00013 #include <fcntl.h>
00014 #include <unistd.h>
00015 #include <dirent.h>
00016
00017 class LIBKONQ_EXPORT KonqBookmarkManager
00018 {
00019 public:
00020 static KBookmarkManager * self() {
00021 if ( !s_bookmarkManager )
00022 {
00023 internationalBookmarks();
00024 QString bookmarksFile = locateLocal("data", QString::fromLatin1("konqueror/bookmarks.xml"));
00025 s_bookmarkManager = KBookmarkManager::managerForFile( bookmarksFile );
00026 }
00027 return s_bookmarkManager;
00028 }
00029 static void internationalBookmarks()
00030 {
00031 QString newBookmarksFile = locateLocal("data", QString::fromLatin1("konqueror/bookmarks.xml"));
00032 QString copyBookmarksFile;
00033 switch(KStandardDirs::mandrake_distro_version())
00034 {
00035 case KStandardDirs::DOWNLOAD:
00036 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-download-%1.xml" );
00037 break;
00038 case KStandardDirs::POWERPACK:
00039 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-powerpack-%1.xml" );
00040 break;
00041 case KStandardDirs::DISCOVERY:
00042 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-discovery-%1.xml" );
00043 break;
00044 case KStandardDirs::POWERPACKPLUS:
00045 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-powerpackplus-%1.xml" );
00046 break;
00047 }
00048 if ( !QFile( newBookmarksFile ).exists() )
00049 {
00050 QStringList langList = QStringList::split(":",QString::fromLocal8Bit(getenv("LANGUAGE")));
00051 bool languageFound = false;
00052 for ( QStringList::Iterator it = langList.begin(); it != langList.end(); ++it )
00053 {
00054 QString tmpFile = copyBookmarksFile.arg(*it);
00055 if( QFile::exists(tmpFile))
00056 {
00057 copyBookmarksFile = tmpFile;
00058 languageFound = true;
00059 break;
00060 }
00061 }
00062 if ( !languageFound )
00063 {
00064
00065 switch(KStandardDirs::mandrake_distro_version())
00066 {
00067 case KStandardDirs::DOWNLOAD:
00068 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-download.xml" );
00069 break;
00070 case KStandardDirs::POWERPACK:
00071 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-powerpack.xml" );
00072 break;
00073 case KStandardDirs::DISCOVERY:
00074 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-discovery.xml" );
00075 break;
00076 case KStandardDirs::POWERPACKPLUS:
00077 copyBookmarksFile = QString("/usr/share/mdk/bookmarks/konqueror/bookmarks-powerpackplus.xml" );
00078 break;
00079 }
00080 if( !QFile::exists(copyBookmarksFile))
00081 copyBookmarksFile="";
00082 }
00083 if ( !copyBookmarksFile.isEmpty() )
00084 {
00085 QCString cmd = "cp ";
00086 cmd += QFile::encodeName( copyBookmarksFile );
00087 cmd += " ";
00088 cmd += QFile::encodeName( newBookmarksFile );
00089 system( cmd );
00090 }
00091 }
00092 }
00093
00094 private:
00095 static KBookmarkManager *s_bookmarkManager;
00096 };
00097
00098 #endif
|