Added new methods to the class FolderManager for delete operation.
Added delete queue and some methods for making delete operation
to the FileTransfer class.
Code improvements.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@432 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/vncviewer/FTDialog.cxx b/vncviewer/FTDialog.cxx
index 4045470..8734060 100644
--- a/vncviewer/FTDialog.cxx
+++ b/vncviewer/FTDialog.cxx
@@ -431,15 +431,19 @@
 void 
 FTDialog::onLocalDelete()
 {
-  MessageBox(NULL, "onLocalDelete", "FTDialog", MB_OK);
-
+  FileInfo fi;
+  if (m_pLocalLV->getSelectedItems(&fi) > 0) {
+    m_pFileTransfer->addDeleteQueue(m_szLocalPath, &fi, FT_ATTR_DELETE_LOCAL);
+  }
 }
 
 void 
 FTDialog::onRemoteDelete()
 {
-  MessageBox(NULL, "onRemoteDelete", "FTDialog", MB_OK);
-
+  FileInfo fi;
+  if (m_pRemoteLV->getSelectedItems(&fi) > 0) {
+    m_pFileTransfer->addDeleteQueue(m_szRemotePath, &fi, FT_ATTR_DELETE_REMOTE);
+  }
 }
 
 void 
diff --git a/vncviewer/FileTransfer.cxx b/vncviewer/FileTransfer.cxx
index fe08dd8..a9c4738 100644
--- a/vncviewer/FileTransfer.cxx
+++ b/vncviewer/FileTransfer.cxx
@@ -46,6 +46,8 @@
     delete m_pFTDialog;
     m_pFTDialog = NULL;
   }
+  
+  freeQueues();
 }
 
 bool 
@@ -56,7 +58,7 @@
   m_pReader = new FTMsgReader(pIS);
   m_pWriter = new FTMsgWriter(pOS);
 
-  m_TransferQueue.free();
+  freeQueues();
 
   m_bInitialized = true;
   return true;
@@ -103,6 +105,20 @@
 }
 
 void 
+FileTransfer::addDeleteQueue(char *pPathPrefix, FileInfo *pFI, unsigned int flags)
+{
+  m_DeleteQueue.add(pPathPrefix, "", pFI, flags);
+
+  checkDeleteQueue();
+}
+
+void
+FileTransfer::checkDeleteQueue()
+{
+
+}
+
+void 
 FileTransfer::addTransferQueue(char *pLocalPath, char *pRemotePath, 
                                FileInfo *pFI, unsigned int flags)
 {
@@ -388,10 +404,17 @@
 int
 FileTransfer::isExistName(FileInfo *pFI, char *pName)
 {
-  for (int i = 0; i < pFI->getNumEntries(); i++) {
+  for (unsigned int i = 0; i < pFI->getNumEntries(); i++) {
     if (strcmp(pFI->getNameAt(i), pName) == 0) {
       return i;
     }
   }
   return -1;
 }
+
+void
+FileTransfer::freeQueues()
+{
+  m_TransferQueue.free();
+  m_DeleteQueue.free();
+}
diff --git a/vncviewer/FileTransfer.h b/vncviewer/FileTransfer.h
index dcc78c7..7652edb 100644
--- a/vncviewer/FileTransfer.h
+++ b/vncviewer/FileTransfer.h
@@ -53,9 +53,14 @@
 
       void addTransferQueue(char *pLocalPath, char *pRemotePath, 
                             FileInfo *pFI, unsigned int flags);
+      void addDeleteQueue(char *pPathPrefix, FileInfo *pFI, 
+                          unsigned int flags);
 
       bool isTransferEnable();
+
       void checkTransferQueue();
+      void checkDeleteQueue();
+
       void uploadFilePortion();
       void downloadFilePortion();
 
@@ -74,12 +79,14 @@
       FileInfo m_queueFileListRqst;
 
       TransferQueue m_TransferQueue;
+      TransferQueue m_DeleteQueue;
 
       bool resizeSending();
       bool uploadFile();
       bool downloadFile();
 
-      int isExistName(FileInfo *pFI, char *pName);
+      int  isExistName(FileInfo *pFI, char *pName);
+      void freeQueues();
       
       bool procFileListDataMsg();
       bool procFileDownloadDataMsg();