konqbookmarkmanager.h

00001 #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            //default
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
KDE Home | KDE Accessibility Home | Description of Access Keys