src/hbservers/hbthemeserver/hbthemewatcher_symbian.cpp
changeset 30 80e4d18b72f5
parent 28 b7da29130b0e
--- a/src/hbservers/hbthemeserver/hbthemewatcher_symbian.cpp	Fri Sep 17 08:32:10 2010 +0300
+++ b/src/hbservers/hbthemeserver/hbthemewatcher_symbian.cpp	Mon Oct 04 00:38:12 2010 +0300
@@ -36,67 +36,40 @@
 static _LIT_SECURITY_POLICY_PASS(KAllowAllPolicy);
 static _LIT_SECURITY_POLICY_C1(KThemeChangerPolicy,ECapabilityWriteDeviceData);
 
-CHbThemeWatcher::CHbThemeWatcher(HbThemeServerPrivate& aObserver) : CActive(EPriorityStandard), 
-                                                                    iObserver(aObserver)
-{ 
-    CActiveScheduler::Add(this); 
+
+HbThemeWatcher::HbThemeWatcher(HbThemeServerPrivate &observer) :
+    mObserver(observer)
+{
 }
 
-void CHbThemeWatcher::ConstructL()
+HbThemeWatcher::~HbThemeWatcher()
 {
-    User::LeaveIfError(iFs.Connect());
-}
-
-CHbThemeWatcher* CHbThemeWatcher::NewL(HbThemeServerPrivate& aObserver)
-{
-    CHbThemeWatcher* self = new (ELeave) CHbThemeWatcher(aObserver);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
 }
 
-CHbThemeWatcher::~CHbThemeWatcher()
-{
-    Cancel();
-    iFs.Close();
+void HbThemeWatcher::startWatching(const QString &file)
+{ 
+    mWatcher.removePath(mFile);
+    mWatcher.addPath(file);
+    connect(&mWatcher, SIGNAL(fileChanged(const QString &)),
+            this, SLOT(fileChanged(const QString &)));
+    mFile = file;
 }
 
-void CHbThemeWatcher::startWatchingL(const QString &file)
-{ 
-    // Cancel ongoing watch
-    if (IsActive()) {
-        Cancel();
-    }
-    iFile = file;
-
-    TBuf<256> fileToWatch(iFile.utf16());
-    iFs.NotifyChange(ENotifyAll, iStatus, fileToWatch); 
-    SetActive();
-}
-
-void CHbThemeWatcher::RunL()
+void HbThemeWatcher::fileChanged(const QString &file)
 {
-    if (iStatus != KErrNone) {
+    Q_UNUSED(file);
+    if (QFile::exists(mFile)) {
+        // active theme still exists, continue watching
         return;
     }
     
-    if (QFile::exists(iFile)) {
-        // theme exists continue watching
-        TBuf<256> fileToWatch(iFile.utf16());
-        iFs.NotifyChange(ENotifyAll, iStatus, fileToWatch);
-        SetActive();
-        return;
-    }
+    // theme doesn't exist, change active theme to default
+    mObserver.HandleThemeSelection(
+        HbThemeUtils::getThemeSetting(HbThemeUtils::DefaultThemeSetting));
+}
 
-    // theme doesn't exist, change active theme to default
-    iObserver.HandleThemeSelection(HbThemeUtils::getThemeSetting(HbThemeUtils::DefaultThemeSetting));
-}
- 
-void CHbThemeWatcher::DoCancel()
-{
-    iFs.NotifyChangeCancel(iStatus);
-}
+
+
 
 CHbThemeChangeNotificationListener* CHbThemeChangeNotificationListener::NewL(HbThemeServerPrivate& aObserver)
 {