From 6959085e3c70048aa23c7c5728232d3993bf907d Mon Sep 17 00:00:00 2001 From: kelson42 Date: Mon, 5 Sep 2011 18:53:02 +0000 Subject: [PATCH] + better deal with accented paths --- src/common/kiwix/manager.cpp | 9 +++++++-- src/common/kiwix/manager.h | 2 +- src/common/pathTools.cpp | 8 ++++++++ src/common/pathTools.h | 1 + 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/common/kiwix/manager.cpp b/src/common/kiwix/manager.cpp index 1f136174d..2ded03f32 100644 --- a/src/common/kiwix/manager.cpp +++ b/src/common/kiwix/manager.cpp @@ -251,10 +251,10 @@ namespace kiwix { return library.current; } - bool Manager::addBookFromPath(const string path, const string url, const bool checkMetaData) { + bool Manager::addBookFromPath(const string pathToOpen, const string pathToSave, const string url, const bool checkMetaData) { kiwix::Book book; - if (this->readBookFromPath(path, book)) { + if (this->readBookFromPath(pathToOpen, book)) { if (!checkMetaData || checkMetaData && !book.title.empty() && !book.language.empty() && !book.date.empty()) { @@ -262,6 +262,11 @@ namespace kiwix { library.addBook(book); return true; } + + if (!pathToSave.empty() && pathToSave != pathToOpen) { + book.path = pathToSave; + book.pathAbsolute = pathToSave; + } } return false; diff --git a/src/common/kiwix/manager.h b/src/common/kiwix/manager.h index 9e81be8a3..94a056b5a 100644 --- a/src/common/kiwix/manager.h +++ b/src/common/kiwix/manager.h @@ -55,7 +55,7 @@ namespace kiwix { bool setBookIndex(const string id, const string path, const supportedIndexType type); bool setBookPath(const string id, const string path); string getCurrentBookId(); - bool addBookFromPath(const string path, const string url = "", const bool checkMetaData = false); + bool addBookFromPath(const string pathToOpen, const string pathToSave = "", const string url = "", const bool checkMetaData = false); Library cloneLibrary(); bool getBookById(const string id, Book &book); unsigned int getBookCount(const bool localBooks, const bool remoteBooks); diff --git a/src/common/pathTools.cpp b/src/common/pathTools.cpp index 2b9578bc4..169405ca9 100644 --- a/src/common/pathTools.cpp +++ b/src/common/pathTools.cpp @@ -32,3 +32,11 @@ const char *nsStringToCString(const nsAString &str) { NS_CStringGetData(tmpStr, &cStr); return cStr; } + +const char *nsStringToUTF8(const nsAString &str) { + const char *cStr; + nsCString tmpStr; + CopyUTF16toUTF8(str, tmpStr); + NS_CStringGetData(tmpStr, &cStr); + return cStr; +} diff --git a/src/common/pathTools.h b/src/common/pathTools.h index 9713d4fcb..31577026d 100644 --- a/src/common/pathTools.h +++ b/src/common/pathTools.h @@ -23,5 +23,6 @@ #include "nsStringAPI.h" const char *nsStringToCString(const nsAString &path); +const char *nsStringToUTF8(const nsAString &str); #endif