implement file copying
Modified: trunk/reactos/subsys/system/winefile/Sv.rc
Modified: trunk/reactos/subsys/system/winefile/cs.rc
Modified: trunk/reactos/subsys/system/winefile/de.rc
Modified: trunk/reactos/subsys/system/winefile/en.rc
Modified: trunk/reactos/subsys/system/winefile/es.rc
Modified: trunk/reactos/subsys/system/winefile/fr.rc
Modified: trunk/reactos/subsys/system/winefile/hu.rc
Modified: trunk/reactos/subsys/system/winefile/it.rc
Modified: trunk/reactos/subsys/system/winefile/nl.rc
Modified: trunk/reactos/subsys/system/winefile/pl.rc
Modified: trunk/reactos/subsys/system/winefile/pt.rc
Modified: trunk/reactos/subsys/system/winefile/resource.h
Modified: trunk/reactos/subsys/system/winefile/resource.rc
Modified: trunk/reactos/subsys/system/winefile/ru.rc
Modified: trunk/reactos/subsys/system/winefile/si.rc
Modified: trunk/reactos/subsys/system/winefile/winefile.c
Modified: trunk/reactos/subsys/system/winefile/zh.rc
_____
Modified: trunk/reactos/subsys/system/winefile/Sv.rc
--- trunk/reactos/subsys/system/winefile/Sv.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/Sv.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -31,7 +31,7 @@
POPUP "&Arkiv" {
MENUITEM "&Íppna\tEnter", ID_ACTIVATE
MENUITEM "&Flytta...\tF7", ID_FILE_MOVE
- MENUITEM "&Kopiera...\tF8", 107
+ MENUITEM "&Kopiera...\tF8", ID_FILE_COPY
MENUITEM "&I urklipp...\tF9", 118
MENUITEM "&Ta bort\tDel", 108
MENUITEM "&Byt namn...", 109
_____
Modified: trunk/reactos/subsys/system/winefile/cs.rc
--- trunk/reactos/subsys/system/winefile/cs.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/cs.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -30,7 +30,7 @@
POPUP "&Soubor" {
MENUITEM "&Otev°Ýt\tEnter" ,
ID_ACTIVATE
MENUITEM "&P°esunout...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&KopÝrovat...\tF8" , 107
+ MENUITEM "&KopÝrovat...\tF8" ,
ID_FILE_COPY
MENUITEM "&Ve schrßnce...\tF9" , 118
MENUITEM "&Smazat\tDel" , 108
MENUITEM "P°&ejmenovat..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/de.rc
--- trunk/reactos/subsys/system/winefile/de.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/de.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -32,7 +32,7 @@
POPUP "&Datei" {
MENUITEM "Í&ffnen\tEingabetaste" ,
ID_ACTIVATE
MENUITEM "&Verschieben...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Kopieren...\tF8" , 107
+ MENUITEM "&Kopieren...\tF8" ,
ID_FILE_COPY
MENUITEM "&In Zwischenablage...\tF9" , 118
MENUITEM "&L÷schen\tEntf" , 108
MENUITEM "&Umbenennen..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/en.rc
--- trunk/reactos/subsys/system/winefile/en.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/en.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -32,7 +32,7 @@
POPUP "&File" {
MENUITEM "&Open\tEnter" ,
ID_ACTIVATE
MENUITEM "&Move...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copy...\tF8" , 107
+ MENUITEM "&Copy...\tF8" ,
ID_FILE_COPY
MENUITEM "&In Clipboard...\tF9" , 118
MENUITEM "&Delete\tDel" , 108
MENUITEM "Re&name..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/es.rc
--- trunk/reactos/subsys/system/winefile/es.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/es.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -28,7 +28,7 @@
POPUP "&Archivo" {
MENUITEM "&Abrir\tEnter" ,
ID_ACTIVATE
MENUITEM "Mo&ver...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copiar...\tF8" , 107
+ MENUITEM "&Copiar...\tF8" ,
ID_FILE_COPY
MENUITEM "E&n portapapeles...\tF9" , 118
MENUITEM "&Eliminar\tDel" , 108
MENUITEM "&Renombrar..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/fr.rc
--- trunk/reactos/subsys/system/winefile/fr.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/fr.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -31,7 +31,7 @@
POPUP "&Fichier" {
MENUITEM "&Ouvrir\tEntrÚe" ,
ID_ACTIVATE
MENUITEM "&DÚplacer...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copier...\tF8" , 107
+ MENUITEM "&Copier...\tF8" ,
ID_FILE_COPY
MENUITEM "P&resse-Papiers...\tF9" , 118
MENUITEM "&Effacer\tDel" , 108
MENUITEM "Re&nommer..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/hu.rc
--- trunk/reactos/subsys/system/winefile/hu.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/hu.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -31,7 +31,7 @@
POPUP "&Fßjl" {
MENUITEM "&Megynitßs\tEnter" ,
ID_ACTIVATE
MENUITEM "?t&helyezÚs...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Mßsolßs...\tF8" , 107
+ MENUITEM "&Mßsolßs...\tF8" ,
ID_FILE_COPY
MENUITEM "&Vßg¾lapon...\tF9" , 118
MENUITEM "&T÷rlÚs\tDel" , 108
MENUITEM "?t&nevezÚs..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/it.rc
--- trunk/reactos/subsys/system/winefile/it.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/it.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -31,7 +31,7 @@
POPUP "&File" {
MENUITEM "&Apri\tInvio" ,
ID_ACTIVATE
MENUITEM "&Sposta...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copia...\tF8" , 107
+ MENUITEM "&Copia...\tF8" ,
ID_FILE_COPY
MENUITEM "&Negli Appunti...\tF9" , 118
MENUITEM "&Cancella\tDel" , 108
MENUITEM "Ri&nomina..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/nl.rc
--- trunk/reactos/subsys/system/winefile/nl.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/nl.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -27,7 +27,7 @@
POPUP "&Bestand" {
MENUITEM "&Openen\tEnter" , ID_ACTIVATE
MENUITEM "&Verplaatsen...\tF7" , ID_FILE_MOVE
- MENUITEM "&KopiÙren...\tF8" , 107
+ MENUITEM "&KopiÙren...\tF8" , ID_FILE_COPY
MENUITEM "Naar &klembord...\tF9" , 118
MENUITEM "Ver&wijderen\tDel" , 108
MENUITEM "&Naam wijzigen..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/pl.rc
--- trunk/reactos/subsys/system/winefile/pl.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/pl.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -31,7 +31,7 @@
POPUP "&Plik" {
MENUITEM "&Otw¾rz\tEnter" ,
ID_ACTIVATE
MENUITEM "&Przenie£...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Kopiuj...\tF8" , 107
+ MENUITEM "&Kopiuj...\tF8" ,
ID_FILE_COPY
MENUITEM "W s&chowku...\tF9" , 118
MENUITEM "&Usu±\tDel" , 108
MENUITEM "&Zmie± nazwÛ..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/pt.rc
--- trunk/reactos/subsys/system/winefile/pt.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/pt.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -30,7 +30,7 @@
POPUP "&Arquivo" {
MENUITEM "A&brir\tEnter" ,
ID_ACTIVATE
MENUITEM "&Mover...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copiar...\tF8" , 107
+ MENUITEM "&Copiar...\tF8" ,
ID_FILE_COPY
MENUITEM "&In Clipboard...\tF9" , 118
MENUITEM "E&xcluir\tDel" , 108
MENUITEM "Re&nomear..." , 109
@@ -158,7 +158,7 @@
POPUP "&Ficheiro" {
MENUITEM "A&brir\tEnter" ,
ID_ACTIVATE
MENUITEM "&Mover...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copiar...\tF8" , 107
+ MENUITEM "&Copiar...\tF8" ,
ID_FILE_COPY
MENUITEM "&Na Area de Transferencia...\tF9" ,
118
MENUITEM "E&xcluir\tDel" , 108
MENUITEM "Re&nomear..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/resource.h
--- trunk/reactos/subsys/system/winefile/resource.h 2005-05-29
08:38:23 UTC (rev 15651)
+++ trunk/reactos/subsys/system/winefile/resource.h 2005-05-29
08:47:23 UTC (rev 15652)
@@ -43,6 +43,7 @@
#define ID_ACTIVATE 101
#define ID_EXECUTE 105
#define ID_FILE_MOVE 106
+#define ID_FILE_COPY 107
#define ID_FILE_EXIT 115
#define ID_FORMAT_DISK 203
#define ID_CONNECT_NETWORK_DRIVE 252
_____
Modified: trunk/reactos/subsys/system/winefile/resource.rc
--- trunk/reactos/subsys/system/winefile/resource.rc 2005-05-29
08:38:23 UTC (rev 15651)
+++ trunk/reactos/subsys/system/winefile/resource.rc 2005-05-29
08:47:23 UTC (rev 15652)
@@ -21,6 +21,7 @@
VK_F1, ID_HELP, VIRTKEY, NOINVERT
VK_F5, ID_REFRESH, VIRTKEY, NOINVERT
VK_F7, ID_FILE_MOVE, VIRTKEY, NOINVERT
+ VK_F8, ID_FILE_COPY, VIRTKEY, NOINVERT
VK_RETURN, ID_ACTIVATE, VIRTKEY, NOINVERT
#ifndef _NO_EXTENSIONS
"X", ID_FILE_EXIT, VIRTKEY, ALT, NOINVERT
_____
Modified: trunk/reactos/subsys/system/winefile/ru.rc
--- trunk/reactos/subsys/system/winefile/ru.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/ru.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -27,7 +27,7 @@
POPUP "&ÈÓÚÙ" {
MENUITEM "&??Û¹?³\tEnter" ,
ID_ACTIVATE
MENUITEM "&¤ÕÕýÕ±?Þ?³...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&?¯´Þ¯ÔÓ?³...\tF8" , 107
+ MENUITEM "&?¯´Þ¯ÔÓ?³...\tF8" ,
ID_FILE_COPY
MENUITEM "&? ß¾¶Õ ¯ßýÕÝÓ...\tF9" , 118
MENUITEM "&ËõÓÙÞ?³\tDel" , 108
MENUITEM "¤ÕÕÞýÕݯÔÓ?³..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/si.rc
--- trunk/reactos/subsys/system/winefile/si.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/si.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -28,7 +28,7 @@
POPUP "&File" {
MENUITEM "&Open\tEnter" ,
ID_ACTIVATE
MENUITEM "&Move...\tF7" ,
ID_FILE_MOVE
- MENUITEM "&Copy...\tF8" , 107
+ MENUITEM "&Copy...\tF8" ,
ID_FILE_COPY
MENUITEM "&In Clipboard...\tF9" , 118
MENUITEM "&Delete\tDel" , 108
MENUITEM "Re&name..." , 109
_____
Modified: trunk/reactos/subsys/system/winefile/winefile.c
--- trunk/reactos/subsys/system/winefile/winefile.c 2005-05-29
08:38:23 UTC (rev 15651)
+++ trunk/reactos/subsys/system/winefile/winefile.c 2005-05-29
08:47:23 UTC (rev 15652)
@@ -3811,6 +3811,33 @@
}
+BOOL prompt_target(Pane* pane, LPTSTR source, LPTSTR target)
+{
+ int len, ret;
+
+ get_path(pane->cur, target);
+
+ ret = DialogBoxParam(Globals.hInstance,
MAKEINTRESOURCE(IDD_SELECT_DESTINATION), pane->hwnd, DestinationDlgProc,
(LPARAM)target);
+ if (ret != IDOK)
+ return FALSE;
+
+ if (target[0]!='/' && target[1]!=':') {
+ get_path(pane->cur->up, source);
+ len = lstrlen(source);
+
+ if (source[len-1]!='\\' && source[len-1]!='/')
+ source[len++] = '/';
+
+ lstrcpy(source+len, target);
+ lstrcpy(target, source);
+ }
+
+ get_path(pane->cur, source);
+
+ return TRUE;
+}
+
+
static IContextMenu2* s_pctxmenu2 = NULL;
#ifndef __MINGW32__ /* IContextMenu3 missing in MinGW (as of
6.2.2005) */
@@ -4099,39 +4126,25 @@
break;
case ID_FILE_MOVE: {
- TCHAR new_name[BUFFER_LEN],
old_name[BUFFER_LEN];
- int len, ret;
+ TCHAR source[BUFFER_LEN],
target[BUFFER_LEN];
- get_path(pane->cur, new_name);
-
- ret =
DialogBoxParam(Globals.hInstance,
MAKEINTRESOURCE(IDD_SELECT_DESTINATION), hwnd, DestinationDlgProc,
(LPARAM)new_name);
- if (ret != IDOK)
- break;
-
- if (new_name[0]!='/' &&
new_name[1]!=':') {
- get_path(pane->cur->up,
old_name);
- len = lstrlen(old_name);
-
- if
(old_name[len-1]!='\\' && old_name[len-1]!='/')
- old_name[len++]
= '/';
-
- lstrcpy(old_name+len,
new_name);
- lstrcpy(new_name,
old_name);
+ if (prompt_target(pane, source,
target)) {
+ if (MoveFileEx(source,
target, MOVEFILE_COPY_ALLOWED))
+
refresh_child(child);
+ else
+
display_error(hwnd, GetLastError());
}
+ break;}
- get_path(pane->cur, old_name);
+ case ID_FILE_COPY: {
+ TCHAR source[BUFFER_LEN],
target[BUFFER_LEN];
- if (MoveFileEx(old_name,
new_name, MOVEFILE_COPY_ALLOWED)) {
- if (pane->treePane) {
-
pane->root->scanned = FALSE;
- pane->cur =
pane->root;
-
activate_entry(child, pane, hwnd);
- }
+ if (prompt_target(pane, source,
target)) {
+ if (CopyFileEx(source,
target, NULL, NULL, NULL,
COPY_FILE_RESTARTABLE|COPY_FILE_ALLOW_DECRYPTED_DESTINATION))
+
refresh_child(child);
else
-
refresh_child(child);
+
display_error(hwnd, GetLastError());
}
- else
- display_error(hwnd,
GetLastError());
break;}
case ID_VIEW_SORT_NAME:
_____
Modified: trunk/reactos/subsys/system/winefile/zh.rc
--- trunk/reactos/subsys/system/winefile/zh.rc 2005-05-29 08:38:23 UTC
(rev 15651)
+++ trunk/reactos/subsys/system/winefile/zh.rc 2005-05-29 08:47:23 UTC
(rev 15652)
@@ -28,7 +28,7 @@
POPUP "????ú¿&Fú®" {
MENUITEM "???¬ú¿&Oú®\tEnter" ,
ID_ACTIVATE
MENUITEM "Êã»ú¿&Mú®...\tF7" ,
ID_FILE_MOVE
- MENUITEM "©?Íãú¿&Cú®...\tF8" , 107
+ MENUITEM "©?Íãú¿&Cú®...\tF8" ,
ID_FILE_COPY
MENUITEM "??Ë??¶?¨?Õú¿&Iú®...\tF9" , 118
MENUITEM "?¥?²ú¿&Dú®\tDel" , 108
MENUITEM "©??¹ú¿&Nú®..." , 109