Branch: master

e96ee72f 2014-06-16 23:04:01 Michele Calgaro
Added code to copy global bookmarks from /opt/trinity/share/apps/konqueror/bookmarks.xml to
$HOME/.trinity/share/apps/konqueror/bookmarks.xml if the user has no personal bookmarks.
This allows giving default bookmarks to the users upon first konqueror startup.
Thanks to François Andriot for the original patch, which had to be fixed in order to
get this to work correctly. This relates to bug 1499.
M libkonq/konqbookmarkmanager.h
diff --git a/libkonq/konqbookmarkmanager.h b/libkonq/konqbookmarkmanager.h
index 9774d92..88ff45c 100644
--- a/libkonq/konqbookmarkmanager.h
+++ b/libkonq/konqbookmarkmanager.h
@@ -3,15 +3,27 @@
 
 #include <kbookmarkmanager.h>
 #include <kstandarddirs.h>
+#include <kurl.h>
+#include <tdeio/job.h>
 #include <libkonq_export.h>
+#include <tdeapplication.h>
 
 class LIBKONQ_EXPORT KonqBookmarkManager
 {
 public:
-    static KBookmarkManager * self() {
+    static KBookmarkManager * self()
+    {
         if ( !s_bookmarkManager )
         {
-            TQString bookmarksFile = locateLocal("data", TQString::fromLatin1("konqueror/bookmarks.xml"));
+            TQString globalBookmarkFile = locate( "data",  TQString::fromLatin1( "konqueror/bookmarks.xml" ) );
+            TQString bookmarksFile = locateLocal( "data", TQString::fromLatin1("konqueror/bookmarks.xml" ), true);
+            if (globalBookmarkFile != TQString::null && bookmarksFile != TQString::null &&
+                globalBookmarkFile != bookmarksFile)
+            {
+                TDEIO::file_copy(KURL::fromPathOrURL(globalBookmarkFile),
+                                 KURL::fromPathOrURL(bookmarksFile));
+                kapp->processEvents(3000);   // Allows up to 3 seconds to copy the file
+            }
             s_bookmarkManager = KBookmarkManager::managerForFile( bookmarksFile );
         }
         return s_bookmarkManager;