summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/remotefileengine.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2014-07-10 12:56:38 +0200
committerKarsten Heimrich <karsten.heimrich@digia.com>2014-07-10 13:03:47 +0200
commit2d8d458f1043b132c73d179a3d75576552a5eddd (patch)
tree56d673d073ee4fd8d3e041d8de08014fede9564c /src/libs/installer/remotefileengine.cpp
parent519cf01c4e99fed3315a2d11829a70254ca88dd7 (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.cpp98
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