diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:12:46 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:12:46 +0200 |
commit | b338e29fd3eaf700f8c8360aa0310048ba941d54 (patch) | |
tree | 122f8ef3790d12cd10275ef7453a9e8053322d78 /shared/file_error.h | |
parent | 3.18 (diff) | |
download | FreeFileSync-b338e29fd3eaf700f8c8360aa0310048ba941d54.tar.gz FreeFileSync-b338e29fd3eaf700f8c8360aa0310048ba941d54.tar.bz2 FreeFileSync-b338e29fd3eaf700f8c8360aa0310048ba941d54.zip |
3.19
Diffstat (limited to 'shared/file_error.h')
-rw-r--r-- | shared/file_error.h | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/shared/file_error.h b/shared/file_error.h index 7325e14b..ae9cc83e 100644 --- a/shared/file_error.h +++ b/shared/file_error.h @@ -7,7 +7,9 @@ #ifndef FILEERROR_H_INCLUDED #define FILEERROR_H_INCLUDED -#include <wx/string.h> +#include "zstring.h" +#include "string_utf8.h" +#include <string> namespace zen @@ -15,24 +17,32 @@ namespace zen class FileError //Exception base class used to notify file/directory copy/delete errors { public: - FileError(const wxString& message) : errorMessage(message) {} + FileError(const std::wstring& message) : errorMessage(message) {} virtual ~FileError() {} - const wxString& msg() const - { - return errorMessage; - } + const std::wstring& msg() const { return errorMessage; } private: - const wxString errorMessage; + std::wstring errorMessage; }; -#define DEFINE_NEW_FILE_ERROR(X) struct X : public FileError { X(const wxString& message) : FileError(message) {} }; +#define DEFINE_NEW_FILE_ERROR(X) struct X : public FileError { X(const std::wstring& message) : FileError(message) {} }; DEFINE_NEW_FILE_ERROR(ErrorNotExisting); DEFINE_NEW_FILE_ERROR(ErrorTargetExisting); DEFINE_NEW_FILE_ERROR(ErrorTargetPathMissing); DEFINE_NEW_FILE_ERROR(ErrorFileLocked); + + + +//facilitate usage of std::wstring for error messages: + +//allow implicit UTF8 conversion: since std::wstring models a GUI string, convenience is more important than performance +inline std::wstring operator+(const std::wstring& lhs, const Zstring& rhs) { return std::wstring(lhs) += zen::utf8CvrtTo<std::wstring>(rhs); } + +//we musn't put our overloads in namespace std, but namespace zen (+ using directive) is sufficient +inline std::wstring operator+(const std::wstring& lhs, const char* rhs) { return std::wstring(lhs) += utf8CvrtTo<std::wstring>(rhs); } +inline std::wstring operator+(const std::wstring& lhs, const std::string& rhs) { return std::wstring(lhs) += utf8CvrtTo<std::wstring>(rhs); } } #endif // FILEERROR_H_INCLUDED |