From b338e29fd3eaf700f8c8360aa0310048ba941d54 Mon Sep 17 00:00:00 2001 From: Daniel Wilhelm Date: Fri, 18 Apr 2014 17:12:46 +0200 Subject: 3.19 --- shared/file_error.h | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'shared/file_error.h') 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 +#include "zstring.h" +#include "string_utf8.h" +#include 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(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(rhs); } +inline std::wstring operator+(const std::wstring& lhs, const std::string& rhs) { return std::wstring(lhs) += utf8CvrtTo(rhs); } } #endif // FILEERROR_H_INCLUDED -- cgit