First Backbone draft ready
[mdictionary] / trunk / src / base / backbone / backbone.cpp
index 6ebb152..1cf89d2 100644 (file)
@@ -34,8 +34,8 @@ Backbone::~Backbone()
 
 }
 
-Backbone::Backbone(const Backbone &b) {
-    dicts = QList<CommonDictInterface* > (b.dicts);
+Backbone::Backbone(const Backbone &b){
+    dicts = QHash<CommonDictInterface*, bool > (b.dicts);
     plugins = QList<CommonDictInterface* > (b.plugins);
     resultv = QHash<QString, Translation* > (b.resultv);
 }
@@ -44,27 +44,32 @@ int Backbone::searchLimit() {
     return searchLimitv;
 }
 
-QHash<const CommonDictInterface*, bool > Backbone::getDictionaries() {
+QHash<CommonDictInterface*, bool > Backbone::getDictionaries() {
     return dicts;
 }
 
-QList<const CommonDictInterface* > Backbone::getPlugins() {
+QList<CommonDictInterface* > Backbone::getPlugins() {
     return plugins;
 }
 
+QList<QString> Backbone::getHistory() {
+    //TODO code needed
+}
+
 QHash<QString, Translation*> Backbone::result() {
     return resultv;
 }
 
 void Backbone::stopSearching() {
-    foreach(CommonDictInterface* dict, dicts)
+    foreach(CommonDictInterface* dict, dicts.keys())
         dict->stop();
 }
 
 void Backbone::search(QString word) {
     //TODO add running searches in new threads
-    foreach(CommonDictInterface* dict, dicts)
-        dict->search(word, searchLimit());
+    foreach(CommonDictInterface* dict, dicts.keys())
+        if(dicts[dict] == 1)
+            dict->search(word, searchLimit());
 }
 
  void Backbone::selectedDictionaries(QList<CommonDictInterface* > activeDicts) {
@@ -75,5 +80,17 @@ void Backbone::search(QString word) {
              dicts[dict] = 0;
  }
 
+ void Backbone::addDictionary(Settings *settings) {
+     CommonDictInterface* dict = settings->type()->getNew(settings);
+     dicts[dict] = 1;
+ }
+
+ void Backbone::quit() {
+    foreach(CommonDictInterface* dict, dicts.keys())
+        dict->stop();
+    Q_EMIT closeOk();
+}
+
+