ginebra2/Snippets.cpp
changeset 0 1450b09d0cfd
child 3 0954f5dd2cd0
child 5 0f2326c2a325
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/Snippets.cpp	Tue May 04 12:39:35 2010 +0300
@@ -0,0 +1,78 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+#include "Snippets.h"
+#include "ChromeSnippet.h"
+#include "ChromeWidget.h"
+
+namespace GVA {
+  Snippets::Snippets(ChromeWidget * chrome, QObject * parent)
+    : QObject(parent),
+      m_chrome(chrome)
+  {
+    setObjectName("snippets");
+  }
+
+  Snippets::~Snippets()
+  {
+    // clear();
+  }
+
+  ChromeSnippet * Snippets::getSnippet(const QString & id)
+  {
+    return m_snippetMap.value(id);
+  }
+
+  void Snippets::addSnippet(ChromeSnippet * snippet, const QString & id)
+  {
+    m_snippetMap[id] = snippet;
+  }
+
+  QObjectList Snippets::getList() 
+  {
+    QObjectList result;
+    foreach(GVA::ChromeSnippet *snippet, m_snippetMap) {
+      result.append(snippet);
+    }
+    return result;
+  }
+
+  void Snippets::clear()
+  {
+   
+    foreach(ChromeSnippet *snippet, m_snippetMap){
+      if(snippet){
+        //If anchored, shrink the anchor bar
+        m_chrome->snippetHiding(snippet);
+        //Remove about-to-be-deleted snippet from scene
+        m_chrome->getScene()->removeItem(snippet->widget());
+        delete snippet;
+      }
+    }
+
+    m_snippetMap.clear();
+  }
+
+  void Snippets::dump() {
+    qDebug() << "Snippets::dump: count=" << m_snippetMap.count();
+    foreach(ChromeSnippet *snippet, m_snippetMap){
+      snippet->dump();
+    }
+  }
+}
+