kcelbookmarkmanager.cpp
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:3k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /***************************************************************************
  2.                           kcelbookmarkmanager.cpp  -  description
  3.                              -------------------
  4.     begin                : Sat Aug 31 2002
  5.     copyright            : (C) 2002 by chris
  6.     email                : chris@tux.teyssier.org
  7.  ***************************************************************************/
  8. /***************************************************************************
  9.  *                                                                         *
  10.  *   This program is free software; you can redistribute it and/or modify  *
  11.  *   it under the terms of the GNU General Public License as published by  *
  12.  *   the Free Software Foundation; either version 2 of the License, or     *
  13.  *   (at your option) any later version.                                   *
  14.  *                                                                         *
  15.  ***************************************************************************/
  16. #include <qfile.h>
  17. #include <qdir.h>
  18. #include <kstandarddirs.h>
  19. #include "kcelbookmarkmanager.h"
  20. KBookmarkManager* KCelBookmarkManager::self() {
  21.     if ( !s_bookmarkManager )
  22.     {
  23.         QString bookmarksFile = locateLocal("data", QString::fromLatin1("celestia/bookmarks.xml"));
  24.         QFile local(bookmarksFile);
  25.         if (!local.exists()) { 
  26.             QString bookmarksFileDefault = locate("data", QString::fromLatin1("celestia/bookmarks.xml"));
  27.             copy(bookmarksFileDefault, bookmarksFile);
  28.             QString faviconsDefault = locate("data", QString::fromLatin1("celestia/favicons/"));
  29.             QDir faviconsDir(faviconsDefault, "*.png");
  30.             QStringList iconsList = faviconsDir.entryList();                                                            
  31.             QString faviconsDest = locateLocal("cache", "favicons/");
  32.             for ( QStringList::Iterator i = iconsList.begin(); i != iconsList.end(); ++i ) {
  33.                 copy(faviconsDefault + *i, faviconsDest + *i);
  34.             }
  35.         }
  36.         s_bookmarkManager = KBookmarkManager::managerForFile( bookmarksFile );
  37.         s_bookmarkManager->setShowNSBookmarks(false);
  38.     }
  39.     return s_bookmarkManager;
  40. }
  41. void KCelBookmarkManager::copy(const QString& source, const QString& destination) {
  42.     QFile src(source), dst(destination);
  43.     if (!src.exists()) return;
  44.     src.open(IO_ReadOnly);
  45.     dst.open(IO_WriteOnly);
  46.     int bufSize=16384;
  47.     char* buf = new char[bufSize];
  48.     int len = src.readBlock(buf, bufSize);
  49.     do {
  50.         dst.writeBlock(buf, len);
  51.         len = src.readBlock(buf, len);
  52.     } while (len > 0);
  53.     src.close();
  54.     dst.close();
  55.     delete[] buf;
  56. }