gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r7276 - gnunet-qt/src/plugins/fs


From: gnunet
Subject: [GNUnet-SVN] r7276 - gnunet-qt/src/plugins/fs
Date: Thu, 19 Jun 2008 13:07:08 -0600 (MDT)

Author: durner
Date: 2008-06-19 13:07:08 -0600 (Thu, 19 Jun 2008)
New Revision: 7276

Modified:
   gnunet-qt/src/plugins/fs/fs-search.cc
   gnunet-qt/src/plugins/fs/fs.h
   gnunet-qt/src/plugins/fs/searchController.cc
Log:
download directories only once

Modified: gnunet-qt/src/plugins/fs/fs-search.cc
===================================================================
--- gnunet-qt/src/plugins/fs/fs-search.cc       2008-06-19 17:40:28 UTC (rev 
7275)
+++ gnunet-qt/src/plugins/fs/fs-search.cc       2008-06-19 19:07:08 UTC (rev 
7276)
@@ -86,18 +86,23 @@
   
   model = (GItemModel *) index.model();
   model->lock();
-  idx = model->index(index.row(), EXTRACTOR_MIMETYPE, index.parent());
-  if (model->data(idx) == "application/gnunet-directory")
+  if (model->data(index, Qt::UserRole) != RESULT_DOWNLOADED)
   {
-    GPersistentModelIndexList list;
-    
-    list.append(idx);
-    
-    model->unlock();
-    emit download(m, uri, list, spinAnon->value(), false); 
+    idx = model->index(index.row(), EXTRACTOR_MIMETYPE, index.parent());
+    if (model->data(idx) == "application/gnunet-directory")
+    {
+      GPersistentModelIndexList list;
+      
+      list.append(index);
+      
+      model->unlock();
+      emit download(m, uri, list, spinAnon->value(), false);
+      
+      return;
+    }
   }
-  else
-    model->unlock();
+  
+  model->unlock();
 }
 
 void GFSSearch::clear()

Modified: gnunet-qt/src/plugins/fs/fs.h
===================================================================
--- gnunet-qt/src/plugins/fs/fs.h       2008-06-19 17:40:28 UTC (rev 7275)
+++ gnunet-qt/src/plugins/fs/fs.h       2008-06-19 19:07:08 UTC (rev 7276)
@@ -43,6 +43,8 @@
   GFSEcrsUri uri;
 } GFSNewSearchInfo;
 
+typedef enum {RESULT_UNKNOWN, RESULT_DUMMY, RESULT_DOWNLOADED} GResultType;
+
 class GFSPlugin : public GPlugin, protected Ui::FSWnd
 {
   Q_OBJECT

Modified: gnunet-qt/src/plugins/fs/searchController.cc
===================================================================
--- gnunet-qt/src/plugins/fs/searchController.cc        2008-06-19 17:40:28 UTC 
(rev 7275)
+++ gnunet-qt/src/plugins/fs/searchController.cc        2008-06-19 19:07:08 UTC 
(rev 7276)
@@ -167,7 +167,7 @@
     child->appendRow(item);
 
     itemIdx = model->index(0, 0, childIdx);
-    model->setData(itemIdx, QVariant(1), Qt::UserRole);
+    model->setData(itemIdx, QVariant(RESULT_DUMMY), Qt::UserRole);
   }
 
   // insert serialized URI (used by download)
@@ -398,10 +398,13 @@
   index = model->index(idxRow, MODEL_IDX(EXTRACTOR_MIMETYPE), idx.parent());
   if (model->data(index).toString() == "application/gnunet-directory")
   {
+    // mark directory as downloaded
+    model->setData(idx, QVariant(RESULT_DOWNLOADED), Qt::UserRole);
+
     // remove dummy child
-    index = model->index(idxRow, 0, idx.parent());
+    index = model->index(idxRow, 0, idx.parent());    
     model->removeRow(0, index);
-    
+
     // read directory
     if (file.endsWith("/") || file.endsWith("\\"))
       file = file.left(file.length() - 1);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]