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();