summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/io/qfile.h')
-rw-r--r--src/corelib/io/qfile.h33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/corelib/io/qfile.h b/src/corelib/io/qfile.h
index 0ee8f39d95..565701befb 100644
--- a/src/corelib/io/qfile.h
+++ b/src/corelib/io/qfile.h
@@ -76,14 +76,35 @@ public:
QString fileName() const;
void setFileName(const QString &name);
- typedef QByteArray (*EncoderFn)(const QString &fileName);
- typedef QString (*DecoderFn)(const QByteArray &localfileName);
- static QByteArray encodeName(const QString &fileName);
- static QString decodeName(const QByteArray &localFileName);
+#if defined(Q_OS_DARWIN)
+ // Mac always expects filenames in UTF-8... and decomposed...
+ static inline QByteArray encodeName(const QString &fileName)
+ {
+ return fileName.normalized(QString::NormalizationForm_D).toUtf8();
+ }
+ static QString decodeName(const QByteArray &localFileName)
+ {
+ return QString::fromUtf8(localFileName).normalized(QString::NormalizationForm_C);
+ }
+#else
+ static inline QByteArray encodeName(const QString &fileName)
+ {
+ return fileName.toLocal8Bit();
+ }
+ static QString decodeName(const QByteArray &localFileName)
+ {
+ return QString::fromLocal8Bit(localFileName);
+ }
+#endif
inline static QString decodeName(const char *localFileName)
{ return decodeName(QByteArray(localFileName)); }
- static void setEncodingFunction(EncoderFn);
- static void setDecodingFunction(DecoderFn);
+
+#if QT_DEPRECATED_SINCE(5,0)
+ typedef QByteArray (*EncoderFn)(const QString &fileName);
+ typedef QString (*DecoderFn)(const QByteArray &localfileName);
+ QT_DEPRECATED static void setEncodingFunction(EncoderFn) {}
+ QT_DEPRECATED static void setDecodingFunction(DecoderFn) {}
+#endif
bool exists() const;
static bool exists(const QString &fileName);