summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/io/qfilesystemwatcher_symbian.cpp29
-rw-r--r--src/corelib/io/qfilesystemwatcher_symbian_p.h4
-rw-r--r--src/network/kernel/qnetworkinterface_symbian.cpp26
-rw-r--r--src/s60installs/.gitignore1
4 files changed, 33 insertions, 27 deletions
diff --git a/src/corelib/io/qfilesystemwatcher_symbian.cpp b/src/corelib/io/qfilesystemwatcher_symbian.cpp
index 49a5f34..412372a 100644
--- a/src/corelib/io/qfilesystemwatcher_symbian.cpp
+++ b/src/corelib/io/qfilesystemwatcher_symbian.cpp
@@ -52,20 +52,25 @@
QT_BEGIN_NAMESPACE
CNotifyChangeEvent* CNotifyChangeEvent::New(RFs &fs, const TDesC& file,
- QSymbianFileSystemWatcherEngine* e)
+ QSymbianFileSystemWatcherEngine* e, bool aIsDir)
{
- CNotifyChangeEvent* self = new CNotifyChangeEvent(fs, file, e);
+ CNotifyChangeEvent* self = new CNotifyChangeEvent(fs, file, e, aIsDir);
return self;
}
CNotifyChangeEvent::CNotifyChangeEvent(RFs &fs, const TDesC& file,
- QSymbianFileSystemWatcherEngine* e, TInt aPriority) :
+ QSymbianFileSystemWatcherEngine* e, bool aIsDir, TInt aPriority) :
CActive(aPriority),
+ isDir(aIsDir),
fsSession(fs),
watchedPath(file),
engine(e)
{
- fsSession.NotifyChange(ENotifyAll, iStatus, file);
+ if(isDir) {
+ fsSession.NotifyChange(ENotifyEntry, iStatus, file);
+ } else {
+ fsSession.NotifyChange(ENotifyAll, iStatus, file);
+ }
CActiveScheduler::Add(this);
SetActive();
}
@@ -77,8 +82,12 @@ CNotifyChangeEvent::~CNotifyChangeEvent()
void CNotifyChangeEvent::RunL()
{
- if (iStatus.Int() == KErrNone){
- fsSession.NotifyChange(ENotifyAll, iStatus, watchedPath);
+ if (iStatus.Int() == KErrNone) {
+ if(isDir) {
+ fsSession.NotifyChange(ENotifyEntry, iStatus, watchedPath);
+ } else {
+ fsSession.NotifyChange(ENotifyAll, iStatus, watchedPath);
+ }
SetActive();
QT_TRYCATCH_LEAVING(engine->emitPathChanged(this));
} else {
@@ -88,7 +97,7 @@ void CNotifyChangeEvent::RunL()
void CNotifyChangeEvent::DoCancel()
{
- fsSession.NotifyChangeCancel();
+ fsSession.NotifyChangeCancel(iStatus);
}
QSymbianFileSystemWatcherEngine::QSymbianFileSystemWatcherEngine() :
@@ -132,8 +141,8 @@ QStringList QSymbianFileSystemWatcherEngine::addPaths(const QStringList &paths,
// Use absolute filepath as relative paths seem to have some issues.
QString filePath = fi.absoluteFilePath();
- if(isDir && filePath.at(filePath.size()-1) != QChar('/')) {
- filePath += QChar('/');
+ if(isDir && filePath.at(filePath.size()-1) != QChar(L'/')) {
+ filePath += QChar(L'/');
}
currentEvent = NULL;
@@ -264,7 +273,7 @@ void QSymbianFileSystemWatcherEngine::addNativeListener(const QString &directory
QMutexLocker locker(&mutex);
QString nativeDir(QDir::toNativeSeparators(directoryPath));
TPtrC ptr(qt_QString2TPtrC(nativeDir));
- currentEvent = CNotifyChangeEvent::New(fsSession, ptr, this);
+ currentEvent = CNotifyChangeEvent::New(fsSession, ptr, this, directoryPath.endsWith(QChar(L'/'), Qt::CaseSensitive));
syncCondition.wakeOne();
}
diff --git a/src/corelib/io/qfilesystemwatcher_symbian_p.h b/src/corelib/io/qfilesystemwatcher_symbian_p.h
index 53b2b13..846541b 100644
--- a/src/corelib/io/qfilesystemwatcher_symbian_p.h
+++ b/src/corelib/io/qfilesystemwatcher_symbian_p.h
@@ -71,10 +71,10 @@ class CNotifyChangeEvent : public CActive
{
public:
CNotifyChangeEvent(RFs &fsSession, const TDesC& file, QSymbianFileSystemWatcherEngine* engine,
- TInt aPriority = EPriorityStandard);
+ bool aIsDir, TInt aPriority = EPriorityStandard);
~CNotifyChangeEvent();
static CNotifyChangeEvent* New(RFs &fsSession, const TDesC& file,
- QSymbianFileSystemWatcherEngine* engine);
+ QSymbianFileSystemWatcherEngine* engine, bool aIsDir);
bool isDir;
diff --git a/src/network/kernel/qnetworkinterface_symbian.cpp b/src/network/kernel/qnetworkinterface_symbian.cpp
index 717d80d..2ba5350 100644
--- a/src/network/kernel/qnetworkinterface_symbian.cpp
+++ b/src/network/kernel/qnetworkinterface_symbian.cpp
@@ -43,6 +43,7 @@
#include "qnetworkinterface.h"
#include "qnetworkinterface_p.h"
+#include "../corelib/kernel/qcore_symbian_p.h"
#ifndef QT_NO_NETWORKINTERFACE
@@ -66,11 +67,6 @@ static QNetworkInterface::InterfaceFlags convertFlags(const TSoInetInterfaceInfo
return flags;
}
-QString qstringFromDesc(const TDesC& aData)
-{
- return QString::fromUtf16(aData.Ptr(), aData.Length());
-}
-
static QList<QNetworkInterfacePrivate *> interfaceListing()
{
TInt err(KErrNone);
@@ -111,7 +107,7 @@ static QList<QNetworkInterfacePrivate *> interfaceListing()
iface = new QNetworkInterfacePrivate;
iface->index = ifindex++;
interfaces << iface;
- iface->name = qstringFromDesc(info.iName);
+ iface->name = qt_TDesC2QString(info.iName);
iface->flags = convertFlags(info);
if (/*info.iFeatures&KIfHasHardwareAddr &&*/ info.iHwAddr.Family() != KAFUnspec) {
@@ -121,37 +117,37 @@ static QList<QNetworkInterfacePrivate *> interfaceListing()
address.Append(_L(":"));
}
address.UpperCase();
- iface->hardwareAddress = qstringFromDesc(address);
+ iface->hardwareAddress = qt_TDesC2QString(address);
}
// Get the address of the interface
info.iAddress.Output(address);
- entry.setIp(QHostAddress(qstringFromDesc(address)));
+ entry.setIp(QHostAddress(qt_TDesC2QString(address)));
// Get the interface netmask
// For some reason netmask is always 0.0.0.0
// info.iNetMask.Output(address);
- // entry.setNetmask( QHostAddress( qstringFromDesc( address ) ) );
+ // entry.setNetmask( QHostAddress( qt_TDesC2QString( address ) ) );
// Workaround: Let Symbian determine netmask based on IP address class
// TODO: Works only for IPv4 - Task: 259128 Implement IPv6 support
TInetAddr netmask;
netmask.NetMask(info.iAddress);
netmask.Output(address);
- entry.setNetmask(QHostAddress(qstringFromDesc(address)));
+ entry.setNetmask(QHostAddress(qt_TDesC2QString(address)));
// Get the interface broadcast address
if (iface->flags & QNetworkInterface::CanBroadcast) {
// For some reason broadcast address is always 0.0.0.0
// info.iBrdAddr.Output(address);
- // entry.setBroadcast( QHostAddress( qstringFromDesc( address ) ) );
+ // entry.setBroadcast( QHostAddress( qt_TDesC2QString( address ) ) );
// Workaround: Let Symbian determine broadcast address based on IP address
// TODO: Works only for IPv4 - Task: 259128 Implement IPv6 support
TInetAddr broadcast;
broadcast.NetBroadcast(info.iAddress);
broadcast.Output(address);
- entry.setBroadcast(QHostAddress(qstringFromDesc(address)));
+ entry.setBroadcast(QHostAddress(qt_TDesC2QString(address)));
}
// Add new entry to interface address entries
@@ -193,12 +189,12 @@ static QList<QNetworkInterfacePrivate *> interfaceListing()
// get interface address
routeInfo.iIfAddr.Output(address);
- QHostAddress ifAddr(qstringFromDesc(address));
+ QHostAddress ifAddr(qt_TDesC2QString(address));
if (ifAddr.isNull())
continue;
routeInfo.iDstAddr.Output(address);
- QHostAddress destination(qstringFromDesc(address));
+ QHostAddress destination(qt_TDesC2QString(address));
if (destination.isNull() || destination != ifAddr)
continue;
@@ -215,7 +211,7 @@ static QList<QNetworkInterfacePrivate *> interfaceListing()
continue;
} else {
routeInfo.iNetMask.Output(address);
- QHostAddress netmask(qstringFromDesc(address));
+ QHostAddress netmask(qt_TDesC2QString(address));
entry.setNetmask(netmask);
// NULL boradcast address for
// ::postProcess to have effect
diff --git a/src/s60installs/.gitignore b/src/s60installs/.gitignore
new file mode 100644
index 0000000..d0a1b02
--- /dev/null
+++ b/src/s60installs/.gitignore
@@ -0,0 +1 @@
+bld.inf.qt_libs