77 *mErrString = source; |
78 *mErrString = source; |
78 ret = FmErrSrcPathDoNotExist; |
79 ret = FmErrSrcPathDoNotExist; |
79 return ret; |
80 return ret; |
80 } |
81 } |
81 QString newName; |
82 QString newName; |
|
83 bool isAcceptReplace = false; |
82 QFileInfo destFi( mTargetPath + fi.fileName() ); |
84 QFileInfo destFi( mTargetPath + fi.fileName() ); |
|
85 // while for duplicated file/dir |
83 while( destFi.exists() ) { |
86 while( destFi.exists() ) { |
84 emit askForRename( destFi.absoluteFilePath(), &newName ); |
87 if( destFi.isFile() && destFi.absoluteFilePath().compare( fi.absoluteFilePath(), Qt::CaseInsensitive ) != 0 ) { |
85 if( newName.isEmpty() ) { |
88 emit askForReplace( destFi.absoluteFilePath(), fi.absoluteFilePath(), &isAcceptReplace ); |
86 ret = FmErrCancel; |
89 if( isAcceptReplace ) { |
87 break; |
90 //delete src file |
88 } |
91 if( !QFile::remove( destFi.absoluteFilePath() ) ) { |
89 QString targetName = mTargetPath + newName; |
92 *mErrString = destFi.absoluteFilePath(); |
90 destFi.setFile( targetName ); |
93 ret = FmErrCannotRemove; |
|
94 break; |
|
95 } |
|
96 destFi.setFile( destFi.absoluteFilePath() ); |
|
97 } else { |
|
98 emit askForRename( destFi.absoluteFilePath(), &newName ); |
|
99 if( newName.isEmpty() ) { |
|
100 ret = FmErrCancel; |
|
101 break; |
|
102 } |
|
103 QString targetName = mTargetPath + newName; |
|
104 destFi.setFile( targetName ); |
|
105 } |
|
106 } else{ |
|
107 // destination is dir |
|
108 emit askForRename( destFi.absoluteFilePath(), &newName ); |
|
109 if( newName.isEmpty() ) { |
|
110 ret = FmErrCancel; |
|
111 break; |
|
112 } |
|
113 QString targetName = mTargetPath + newName; |
|
114 destFi.setFile( targetName ); |
|
115 } |
91 } |
116 } |
92 if( ret != FmErrNone ) { |
117 if( ret != FmErrNone ) { |
93 return ret; |
118 return ret; |
94 } |
119 } |
95 |
120 |
130 *mErrString = source; |
155 *mErrString = source; |
131 ret = FmErrCannotRemove; |
156 ret = FmErrCannotRemove; |
132 } |
157 } |
133 IncreaseProgress( fileSize ); |
158 IncreaseProgress( fileSize ); |
134 } else if (fi.isDir()) { |
159 } else if (fi.isDir()) { |
135 ret = moveDirInsideContent( source, newName ); |
160 if( FmUtils::isDefaultFolder( source ) ){ |
|
161 ret = FmErrRemoveDefaultFolder; |
|
162 } |
|
163 else{ |
|
164 ret = moveDirInsideContent( source, newName ); |
|
165 } |
|
166 |
136 if( ret!= FmErrNone ) { |
167 if( ret!= FmErrNone ) { |
137 return ret; |
168 return ret; |
138 } |
169 } |
139 if ( !fi.dir().rmdir( fi.absoluteFilePath() ) ) { |
170 if ( !fi.dir().rmdir( fi.absoluteFilePath() ) ) { |
140 *mErrString = fi.absolutePath(); |
171 *mErrString = fi.absolutePath(); |