diff options
author | kh1 <karsten.heimrich@digia.com> | 2014-07-10 12:56:38 +0200 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@digia.com> | 2014-07-10 13:03:47 +0200 |
commit | 2d8d458f1043b132c73d179a3d75576552a5eddd (patch) | |
tree | 56d673d073ee4fd8d3e041d8de08014fede9564c /src/libs/installer/remotefileengine.cpp | |
parent | 519cf01c4e99fed3315a2d11829a70254ca88dd7 (diff) |
Add/remove/implement/reorder methods to match Qt5.
Unify if statements for better reading. Implement missing methods.
Adjust {extension, supportsExtension} to tell that our remote does
not support any extensions but our local file engine does probably.
Change-Id: I6c1c392b531e4060cf12bde8b32eb6c6ec8f1037
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src/libs/installer/remotefileengine.cpp')
-rw-r--r-- | src/libs/installer/remotefileengine.cpp | 98 |
1 files changed, 64 insertions, 34 deletions
diff --git a/src/libs/installer/remotefileengine.cpp b/src/libs/installer/remotefileengine.cpp index 776f8301e..02469be34 100644 --- a/src/libs/installer/remotefileengine.cpp +++ b/src/libs/installer/remotefileengine.cpp @@ -144,9 +144,20 @@ bool RemoteFileEngine::atEnd() const QAbstractFileEngine::Iterator* RemoteFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames) { - QStringList entries = entryList(filters, filterNames); - entries.removeAll(QString()); - return new RemoteFileEngineIterator(filters, filterNames, entries); + if (connectToServer()) { + QStringList entries = entryList(filters, filterNames); + entries.removeAll(QString()); + return new RemoteFileEngineIterator(filters, filterNames, entries); + } + return m_fileEngine.beginEntryList(filters, filterNames); + +} + +QAbstractFileEngine::Iterator* RemoteFileEngine::endEntryList() +{ + if (connectToServer()) + return 0; // right now all other implementations return 0 too + return m_fileEngine.endEntryList(); } /*! @@ -219,14 +230,8 @@ QString RemoteFileEngine::errorString() const */ bool RemoteFileEngine::extension(Extension extension, const ExtensionOption *eo, ExtensionReturn *er) { - return false; - if (extension == UnMapExtension || extension == MapExtension) + if (connectToServer()) return false; - - if (connectToServer()) { - return callRemoteMethod<bool>(QString::fromLatin1(Protocol::QAbstractFileEngineExtension), - static_cast<qint32> (extension)); - } return m_fileEngine.extension(extension, eo, er); } @@ -460,8 +465,7 @@ qint64 RemoteFileEngine::size() const */ bool RemoteFileEngine::supportsExtension(Extension extension) const { - return false; - if (extension == UnMapExtension || extension == MapExtension) + if ((const_cast<RemoteFileEngine *>(this))->connectToServer()) return false; return m_fileEngine.supportsExtension(extension); } @@ -471,18 +475,18 @@ bool RemoteFileEngine::supportsExtension(Extension extension) const */ qint64 RemoteFileEngine::read(char *data, qint64 maxlen) { - if (!connectToServer()) - return m_fileEngine.read(data, maxlen); + if (connectToServer()) { + QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> > + (QString::fromLatin1(Protocol::QAbstractFileEngineRead), maxlen); - QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> > - (QString::fromLatin1(Protocol::QAbstractFileEngineRead), maxlen); + if (result.first <= 0) + return result.first; - if (result.first <= 0) + QDataStream dataStream(result.second); + dataStream.readRawData(data, result.first); return result.first; - - QDataStream dataStream(result.second); - dataStream.readRawData(data, result.first); - return result.first; + } + return m_fileEngine.read(data, maxlen); } /*! @@ -490,18 +494,18 @@ qint64 RemoteFileEngine::read(char *data, qint64 maxlen) */ qint64 RemoteFileEngine::readLine(char *data, qint64 maxlen) { - if (!connectToServer()) - return m_fileEngine.readLine(data, maxlen); + if (connectToServer()) { + QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> > + (QString::fromLatin1(Protocol::QAbstractFileEngineReadLine), maxlen); - QPair<qint64, QByteArray> result = callRemoteMethod<QPair<qint64, QByteArray> > - (QString::fromLatin1(Protocol::QAbstractFileEngineReadLine), maxlen); + if (result.first <= 0) + return result.first; - if (result.first <= 0) + QDataStream dataStream(result.second); + dataStream.readRawData(data, result.first); return result.first; - - QDataStream dataStream(result.second); - dataStream.readRawData(data, result.first); - return result.first; + } + return m_fileEngine.readLine(data, maxlen); } /*! @@ -509,11 +513,37 @@ qint64 RemoteFileEngine::readLine(char *data, qint64 maxlen) */ qint64 RemoteFileEngine::write(const char *data, qint64 len) { - if (!connectToServer()) - return m_fileEngine.write(data, len); + if (connectToServer()) { + QByteArray ba(data, len); + return callRemoteMethod<qint64>(QString::fromLatin1(Protocol::QAbstractFileEngineWrite), ba); + } + return m_fileEngine.write(data, len); +} + +bool RemoteFileEngine::syncToDisk() +{ + if (connectToServer()) + return callRemoteMethod<bool>(QString::fromLatin1(Protocol::QAbstractFileEngineSyncToDisk)); + return m_fileEngine.syncToDisk(); +} + +bool RemoteFileEngine::renameOverwrite(const QString &newName) +{ + if (connectToServer()) { + return callRemoteMethod<bool> + (QString::fromLatin1(Protocol::QAbstractFileEngineRenameOverwrite), newName); + } + return m_fileEngine.renameOverwrite(newName); +} - QByteArray ba(data, len); - return callRemoteMethod<qint64>(QString::fromLatin1(Protocol::QAbstractFileEngineWrite), ba); +QDateTime RemoteFileEngine::fileTime(FileTime time) const +{ + if ((const_cast<RemoteFileEngine *>(this))->connectToServer()) { + return callRemoteMethod<QDateTime> + (QString::fromLatin1(Protocol::QAbstractFileEngineFileTime), + static_cast<qint32> (time)); + } + return m_fileEngine.fileTime(time); } } // namespace QInstaller |