Added window messages to FTDialog
for operating upload, download and transfer queue.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@420 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/vncviewer/FileTransfer.cxx b/vncviewer/FileTransfer.cxx
index 5b01334..0a3009a 100644
--- a/vncviewer/FileTransfer.cxx
+++ b/vncviewer/FileTransfer.cxx
@@ -102,29 +102,46 @@
 }
 
 void 
-FileTransfer::upload(TransferQueue *pTransQueue)
+FileTransfer::addTransferQueue(char *pLocalPath, char *pRemotePath, 
+                               FileInfo *pFI, unsigned int flags)
 {
   if ((m_bFTDlgShown) && (!isTransferEnable())) m_pFTDialog->setStatusText("Starting Copy Operation");
   
-  pTransQueue->setFlagToAll(FT_ATTR_RESIZE_NEEDED);
-  
-  m_TransferQueue.add(pTransQueue);
-
-  resizeSending();
+  m_TransferQueue.add(pLocalPath, pRemotePath, pFI, (flags | FT_ATTR_RESIZE_NEEDED));
 
   checkTransferQueue();
 }
 
-void 
-FileTransfer::download(TransferQueue *pTransQueue)
-{
-
-}
-
-void
+bool
 FileTransfer::resizeSending()
 {
-
+  for (unsigned int i = 0; i < m_TransferQueue.getNumEntries(); i++) {
+    unsigned int flags = m_TransferQueue.getFlagsAt(i);
+    if (flags & FT_ATTR_RESIZE_NEEDED) {
+      if (flags & FT_ATTR_FILE) {
+        m_dw64SizeSending += m_TransferQueue.getSizeAt(i);
+        m_TransferQueue.clearFlagAt(i, FT_ATTR_RESIZE_NEEDED);
+      } else {
+        if (flags & FT_ATTR_DIR) {
+          if (flags & FT_ATTR_COPY_DOWNLOAD) {
+            char *pPath = m_TransferQueue.getFullRemPathAt(i);
+            m_dirSizeRqstNum = i;
+            m_pWriter->writeFileDirSizeRqst(strlen(pPath), pPath);
+            return false;
+          } else {
+            if (flags & FT_ATTR_COPY_UPLOAD) {
+              FolderManager fm;
+              DWORD64 dw64Size;
+              fm.getDirSize(m_TransferQueue.getFullLocPathAt(i), &dw64Size);
+              m_dw64SizeSending += dw64Size;
+              m_TransferQueue.clearFlagAt(i, FT_ATTR_RESIZE_NEEDED);
+            }
+          } // if (flags & FT_ATTR_COPY_DOWNLOAD)
+        } // if (flags & FT_ATTR_FOLDER)
+      } // if (flags & FT_ATTR_FILE)
+    } // if (flags & FT_ATTR_NEEDED_RESIZE)
+  } // for (unsigned int i = 0; i < m_TransferQueue.getNumEntries(); i++)
+  return true;
 }
 
 void
@@ -138,35 +155,10 @@
       return;
     }
   } else {
-    for (unsigned int i = 0; i < m_TransferQueue.getNumEntries(); i++) {
-      unsigned int flags = m_TransferQueue.getFlagsAt(i);
-      if (flags & FT_ATTR_RESIZE_NEEDED) {
-        if (flags & FT_ATTR_FILE) {
-          m_dw64SizeSending += m_TransferQueue.getSizeAt(i);
-          m_TransferQueue.clearFlagAt(i, FT_ATTR_RESIZE_NEEDED);
-        } else {
-          if (flags & FT_ATTR_DIR) {
-            if (flags & FT_ATTR_COPY_DOWNLOAD) {
-              char *pPath = m_TransferQueue.getFullRemPathAt(i);
-              m_dirSizeRqstNum = i;
-              m_pWriter->writeFileDirSizeRqst(strlen(pPath), pPath);
-              return;
-            } else {
-              if (flags & FT_ATTR_COPY_UPLOAD) {
-                FolderManager fm;
-                DWORD64 dw64Size;
-                fm.getDirSize(m_TransferQueue.getFullLocPathAt(i), &dw64Size);
-                m_dw64SizeSending += dw64Size;
-                m_TransferQueue.clearFlagAt(i, FT_ATTR_RESIZE_NEEDED);
-              }
-            } // if (flags & FT_ATTR_COPY_DOWNLOAD)
-          } // if (flags & FT_ATTR_FOLDER)
-        } // if (flags & FT_ATTR_FILE)
-      } // if (flags & FT_ATTR_NEEDED_RESIZE)
-    } // for (unsigned int i = 0; i < m_TransferQueue.getNumEntries(); i++)
+    if (!resizeSending()) return;
 
     unsigned int flag0 = m_TransferQueue.getFlagsAt(0);
-    
+   
     if (flag0 & FT_ATTR_COPY_UPLOAD) {
       if (flag0 & FT_ATTR_FILE) {
           uploadFile();
@@ -208,6 +200,18 @@
   return false;
 }
 
+void
+FileTransfer::uploadFilePortion()
+{
+
+}
+
+void
+FileTransfer::downloadFilePortion()
+{
+
+}
+
 bool 
 FileTransfer::procFileListDataMsg()
 {
@@ -271,6 +275,7 @@
   DWORD64 dw64DirSize = 0;
   m_pReader->readFileDirSizeData(&dw64DirSize);
   m_TransferQueue.clearFlagAt(m_dirSizeRqstNum, FT_ATTR_RESIZE_NEEDED);
+  checkTransferQueue();
   return true;
 }