summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/advancedfm/advancedfm.cpp65
1 files changed, 50 insertions, 15 deletions
diff --git a/noncore/apps/advancedfm/advancedfm.cpp b/noncore/apps/advancedfm/advancedfm.cpp
index faa03dc..bd513c0 100644
--- a/noncore/apps/advancedfm/advancedfm.cpp
+++ b/noncore/apps/advancedfm/advancedfm.cpp
@@ -789,97 +789,96 @@ void AdvancedFm::remoteMakDir()
789 populateRemoteView(); 789 populateRemoteView();
790} 790}
791 791
792void AdvancedFm::localDelete() 792void AdvancedFm::localDelete()
793{ 793{
794 QStringList curFileList = getPath(); 794 QStringList curFileList = getPath();
795 QString myFile; 795 QString myFile;
796 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 796 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
797 myFile = (*it); 797 myFile = (*it);
798 if( myFile.find(" -> ",0,TRUE) != -1) 798 if( myFile.find(" -> ",0,TRUE) != -1)
799 myFile = myFile.left( myFile.find(" -> ",0,TRUE)); 799 myFile = myFile.left( myFile.find(" -> ",0,TRUE));
800 800
801 QString f = currentDir.canonicalPath(); 801 QString f = currentDir.canonicalPath();
802 if(f.right(1).find("/",0,TRUE) == -1) 802 if(f.right(1).find("/",0,TRUE) == -1)
803 f+="/"; 803 f+="/";
804 f+=myFile; 804 f+=myFile;
805 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { 805 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
806 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ 806 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
807 "\nand all it's contents ?" 807 "\nand all it's contents ?"
808 ,tr("Yes"),tr("No"),0,0,1) ) { 808 ,tr("Yes"),tr("No"),0,0,1) ) {
809 case 0: { 809 case 0: {
810 f=f.left(f.length()-1); 810 f=f.left(f.length()-1);
811 QString cmd="rm -rf "+f; 811 QString cmd="rm -rf "+f;
812 system( cmd.latin1()); 812 system( cmd.latin1());
813 populateLocalView(); 813 populateLocalView();
814 } 814 }
815 break; 815 break;
816 case 1: 816 case 1:
817 // exit 817 // exit
818 break; 818 break;
819 }; 819 };
820 820
821 } else { 821 } else {
822 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f 822 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
823 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 823 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
824 case 0: { 824 case 0: {
825 QString cmd="rm "+f; 825 QString cmd="rm "+f;
826 QFile file(f); 826 QFile file(f);
827 file.remove(); 827 file.remove();
828// system( cmd.latin1()); 828// system( cmd.latin1());
829 populateLocalView(); 829 populateLocalView();
830 } 830 }
831 break; 831 break;
832 case 1: 832 case 1:
833 // exit 833 // exit
834 break; 834 break;
835 }; 835 };
836 } 836 }
837
838 } 837 }
839} 838}
840 839
841void AdvancedFm::remoteDelete() 840void AdvancedFm::remoteDelete()
842{ 841{
843 QStringList curFileList = getPath(); 842 QStringList curFileList = getPath();
844 QString myFile; 843 QString myFile;
845 844
846 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 845 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
847 myFile = (*it); 846 myFile = (*it);
848 if(myFile.find(" -> ",0,TRUE) != -1) 847 if(myFile.find(" -> ",0,TRUE) != -1)
849 myFile = myFile.left(myFile.find(" -> ",0,TRUE)); 848 myFile = myFile.left(myFile.find(" -> ",0,TRUE));
850 QString f = currentDir.canonicalPath(); 849 QString f = currentDir.canonicalPath();
851 if(f.right(1).find("/",0,TRUE) == -1) 850 if(f.right(1).find("/",0,TRUE) == -1)
852 f+="/"; 851 f+="/";
853 f+=myFile; 852 f+=myFile;
854 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) { 853 if(QDir(f).exists() && !QFileInfo(f).isSymLink() ) {
855 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+ 854 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f+
856 "\nand all it's contents ?", 855 "\nand all it's contents ?",
857 tr("Yes"),tr("No"),0,0,1) ) { 856 tr("Yes"),tr("No"),0,0,1) ) {
858 case 0: { 857 case 0: {
859 f=f.left(f.length()-1); 858 f=f.left(f.length()-1);
860 QString cmd="rm -rf "+f; 859 QString cmd="rm -rf "+f;
861 system( cmd.latin1()); 860 system( cmd.latin1());
862 populateRemoteView(); 861 populateRemoteView();
863 } 862 }
864 break; 863 break;
865 case 1: 864 case 1:
866 // exit 865 // exit
867 break; 866 break;
868 }; 867 };
869 868
870 } else { 869 } else {
871 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f 870 switch ( QMessageBox::warning(this,tr("Delete"),tr("Do you really want to delete\n")+f
872 +" ?",tr("Yes"),tr("No"),0,0,1) ) { 871 +" ?",tr("Yes"),tr("No"),0,0,1) ) {
873 case 0: { 872 case 0: {
874 QString cmd="rm "+f; 873 QString cmd="rm "+f;
875 QFile file(f); 874 QFile file(f);
876 file.remove(); 875 file.remove();
877// system( cmd.latin1()); 876// system( cmd.latin1());
878 populateRemoteView(); 877 populateRemoteView();
879 } 878 }
880 break; 879 break;
881 case 1: 880 case 1:
882 // exit 881 // exit
883 break; 882 break;
884 }; 883 };
885 } 884 }
@@ -1095,205 +1094,241 @@ void AdvancedFm::SDButtonPushed() {
1095 1094
1096} 1095}
1097 1096
1098void AdvancedFm::CFButtonPushed() { 1097void AdvancedFm::CFButtonPushed() {
1099 QString current = "/mnt/cf"; 1098 QString current = "/mnt/cf";
1100 chdir( current.latin1() ); 1099 chdir( current.latin1() );
1101 if (TabWidget->currentPageIndex() == 0) { 1100 if (TabWidget->currentPageIndex() == 0) {
1102 currentDir.cd( current, TRUE); 1101 currentDir.cd( current, TRUE);
1103 populateLocalView(); 1102 populateLocalView();
1104 } else { 1103 } else {
1105 currentRemoteDir.cd( current, TRUE); 1104 currentRemoteDir.cd( current, TRUE);
1106 populateRemoteView(); 1105 populateRemoteView();
1107 } 1106 }
1108 update(); 1107 update();
1109 1108
1110} 1109}
1111 1110
1112 1111
1113void AdvancedFm::upDir() 1112void AdvancedFm::upDir()
1114{ 1113{
1115 if (TabWidget->currentPageIndex() == 0) { 1114 if (TabWidget->currentPageIndex() == 0) {
1116 QString current = currentDir.canonicalPath(); 1115 QString current = currentDir.canonicalPath();
1117 QDir dir(current); 1116 QDir dir(current);
1118 dir.cdUp(); 1117 dir.cdUp();
1119 current = dir.canonicalPath(); 1118 current = dir.canonicalPath();
1120 chdir( current.latin1() ); 1119 chdir( current.latin1() );
1121 currentDir.cd( current, TRUE); 1120 currentDir.cd( current, TRUE);
1122 populateLocalView(); 1121 populateLocalView();
1123 update(); 1122 update();
1124 } else { 1123 } else {
1125 QString current = currentRemoteDir.canonicalPath(); 1124 QString current = currentRemoteDir.canonicalPath();
1126 QDir dir(current); 1125 QDir dir(current);
1127 dir.cdUp(); 1126 dir.cdUp();
1128 current = dir.canonicalPath(); 1127 current = dir.canonicalPath();
1129 chdir( current.latin1() ); 1128 chdir( current.latin1() );
1130 currentRemoteDir.cd( current, TRUE); 1129 currentRemoteDir.cd( current, TRUE);
1131 populateRemoteView(); 1130 populateRemoteView();
1132 update(); 1131 update();
1133 } 1132 }
1134} 1133}
1135 1134
1136void AdvancedFm::copy() 1135void AdvancedFm::copy()
1137{ 1136{
1138 QStringList curFileList = getPath(); 1137 QStringList curFileList = getPath();
1139 QString curFile; 1138 QString curFile;
1140 if (TabWidget->currentPageIndex() == 0) { 1139 if (TabWidget->currentPageIndex() == 0) {
1141 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1140 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1142 1141
1143 QString destFile = currentRemoteDir.canonicalPath()+"/"+(*it); 1142 QString destFile = currentRemoteDir.canonicalPath();
1144 curFile = currentDir.canonicalPath()+"/"+(*it); 1143 if(destFile.right(1).find("/",0,TRUE) == -1)
1144 destFile+="/";
1145 destFile +=(*it);
1146 curFile = currentDir.canonicalPath();
1147 if(curFile.right(1).find("/",0,TRUE) == -1)
1148 curFile +="/";
1149 curFile +=(*it);
1145 QFile f(destFile); 1150 QFile f(destFile);
1146 if( f.exists()) 1151 if( f.exists())
1147 f.remove(); 1152 f.remove();
1148 if(!copyFile(destFile, curFile) ) 1153 if(!copyFile(destFile, curFile) )
1149 qWarning("nothin doing"); 1154 qWarning("nothin doing");
1150 } 1155 }
1151 populateRemoteView(); 1156 populateRemoteView();
1152 TabWidget->setCurrentPage(1); 1157 TabWidget->setCurrentPage(1);
1153 1158
1154 } else { 1159 } else {
1155 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1160 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1156 1161
1157 QString destFile = currentDir.canonicalPath()+"/"+(*it); 1162 QString destFile = currentDir.canonicalPath();
1158 curFile = currentRemoteDir.canonicalPath()+"/"+(*it); 1163 if(destFile.right(1).find("/",0,TRUE) == -1)
1164 destFile+="/";
1165 destFile +=(*it);
1166 curFile = currentRemoteDir.canonicalPath();
1167 if(curFile.right(1).find("/",0,TRUE) == -1)
1168 curFile +="/";
1169 curFile +=(*it);
1159 QFile f(destFile); 1170 QFile f(destFile);
1160 if( f.exists()) 1171 if( f.exists())
1161 f.remove(); 1172 f.remove();
1162 if(!copyFile(destFile, curFile) ) 1173 if(!copyFile(destFile, curFile) )
1163 qWarning("nothin doing"); 1174 qWarning("nothin doing");
1164 } 1175 }
1165 populateLocalView(); 1176 populateLocalView();
1166 TabWidget->setCurrentPage(0); 1177 TabWidget->setCurrentPage(0);
1167 } 1178 }
1168} 1179}
1169 1180
1170void AdvancedFm::copyAs() 1181void AdvancedFm::copyAs()
1171{ 1182{
1172 QStringList curFileList = getPath(); 1183 QStringList curFileList = getPath();
1173 QString curFile; 1184 QString curFile;
1174 InputDialog *fileDlg; 1185 InputDialog *fileDlg;
1175 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); 1186 fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
1176 1187
1177 if (TabWidget->currentPageIndex() == 0) { 1188 if (TabWidget->currentPageIndex() == 0) {
1178 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1189 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1179 QString destFile = *it; 1190 QString destFile;
1180 curFile = currentDir.canonicalPath()+"/"+(*it); 1191 curFile = currentDir.canonicalPath();
1192 if(curFile.right(1).find("/",0,TRUE) == -1)
1193 curFile +="/";
1194 curFile+=(*it);
1181// InputDialog *fileDlg; 1195// InputDialog *fileDlg;
1182// fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0); 1196// fileDlg = new InputDialog(this,tr("Copy As"),TRUE, 0);
1183 fileDlg->setInputText((const QString &) destFile ); 1197 fileDlg->setInputText((const QString &) destFile );
1184 fileDlg->exec(); 1198 fileDlg->exec();
1185 if( fileDlg->result() == 1 ) { 1199 if( fileDlg->result() == 1 ) {
1186 QString filename = fileDlg->LineEdit1->text(); 1200 QString filename = fileDlg->LineEdit1->text();
1187 destFile = currentRemoteDir.canonicalPath()+"/"+destFile; 1201 destFile = currentRemoteDir.canonicalPath();
1202 if(destFile.right(1).find("/",0,TRUE) == -1)
1203 destFile+="/";
1204 destFile +=(*it);
1188 1205
1189 QFile f(destFile); 1206 QFile f(destFile);
1190 if( f.exists()) 1207 if( f.exists())
1191 f.remove(); 1208 f.remove();
1192 if(!copyFile(destFile, curFile) ) 1209 if(!copyFile(destFile, curFile) )
1193 qWarning("nothin doing"); 1210 qWarning("nothin doing");
1194 } 1211 }
1195 } 1212 }
1196 1213
1197 populateRemoteView(); 1214 populateRemoteView();
1198 TabWidget->setCurrentPage(1); 1215 TabWidget->setCurrentPage(1);
1199 } else { 1216 } else {
1200 if (TabWidget->currentPageIndex() == 0) { 1217 if (TabWidget->currentPageIndex() == 0) {
1201 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1218 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1202 1219
1203 curFile = currentDir.canonicalPath()+"/"+(*it); 1220 curFile = currentDir.canonicalPath();
1204 QString destFile = *it; 1221 if(curFile.right(1).find("/",0,TRUE) == -1)
1222 curFile +="/";
1223 curFile+=(*it);
1224 QString destFile;
1205 fileDlg->setInputText((const QString &) destFile); 1225 fileDlg->setInputText((const QString &) destFile);
1206 fileDlg->exec(); 1226 fileDlg->exec();
1207 if( fileDlg->result() == 1 ) { 1227 if( fileDlg->result() == 1 ) {
1208 QString filename = fileDlg->LineEdit1->text(); 1228 QString filename = fileDlg->LineEdit1->text();
1209 destFile = currentDir.canonicalPath()+"/"+destFile; 1229 destFile = currentDir.canonicalPath();
1230 if(destFile.right(1).find("/",0,TRUE) == -1)
1231 destFile+="/";
1232 destFile +=(*it);
1210 1233
1211 QFile f(destFile); 1234 QFile f(destFile);
1212 if( f.exists()) 1235 if( f.exists())
1213 f.remove(); 1236 f.remove();
1214 if(!copyFile(destFile, curFile) ) 1237 if(!copyFile(destFile, curFile) )
1215 qWarning("nothin doing"); 1238 qWarning("nothin doing");
1216 } 1239 }
1217 } 1240 }
1218 populateLocalView(); 1241 populateLocalView();
1219 TabWidget->setCurrentPage(0); 1242 TabWidget->setCurrentPage(0);
1220 } 1243 }
1221 } 1244 }
1222} 1245}
1223 1246
1224void AdvancedFm::move() { 1247void AdvancedFm::move() {
1225 1248
1226 QStringList curFileList = getPath(); 1249 QStringList curFileList = getPath();
1227 QString curFile; 1250 QString curFile;
1228// qDebug(curFile); 1251// qDebug(curFile);
1229 QString destFile; 1252 QString destFile;
1230 1253
1231 if (TabWidget->currentPageIndex() == 0) { 1254 if (TabWidget->currentPageIndex() == 0) {
1232 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1255 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1233 QString destFile = currentRemoteDir.canonicalPath() + "/" + *it; 1256 QString destFile = currentRemoteDir.canonicalPath();
1234 curFile = currentDir.canonicalPath()+"/"+(*it); 1257 if(destFile.right(1).find("/",0,TRUE) == -1)
1258 destFile+="/";
1259 destFile +=(*it);
1260 curFile = currentDir.canonicalPath();
1235 qDebug("Destination file is "+destFile); 1261 qDebug("Destination file is "+destFile);
1262 if(curFile.right(1).find("/",0,TRUE) == -1)
1263 curFile +="/";
1264 curFile+=(*it);
1236 1265
1237 QFile f(destFile); 1266 QFile f(destFile);
1238 if( f.exists()) 1267 if( f.exists())
1239 f.remove(); 1268 f.remove();
1240 if(!copyFile( destFile, curFile) ) { 1269 if(!copyFile( destFile, curFile) ) {
1241 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile)); 1270 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
1242 return; 1271 return;
1243 } 1272 }
1244 QFile::remove(curFile); 1273 QFile::remove(curFile);
1245 } 1274 }
1246 TabWidget->setCurrentPage(1); 1275 TabWidget->setCurrentPage(1);
1247 } else { 1276 } else {
1248 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) { 1277 for ( QStringList::Iterator it = curFileList.begin(); it != curFileList.end(); ++it ) {
1249 QString destFile = currentRemoteDir.canonicalPath() + "/" + *it; 1278 QString destFile = currentRemoteDir.canonicalPath();
1279 if(destFile.right(1).find("/",0,TRUE) == -1)
1280 destFile+="/";
1281 destFile +=(*it);
1250 qDebug("Destination file is "+destFile); 1282 qDebug("Destination file is "+destFile);
1251 curFile = currentDir.canonicalPath()+"/"+(*it); 1283 curFile = currentDir.canonicalPath();
1284 if(curFile.right(1).find("/",0,TRUE) == -1)
1285 curFile +="/";
1286 curFile+=(*it);
1252 1287
1253 QFile f(destFile); 1288 QFile f(destFile);
1254 if( f.exists()) 1289 if( f.exists())
1255 f.remove(); 1290 f.remove();
1256 if(!copyFile(destFile, curFile) ) { 1291 if(!copyFile(destFile, curFile) ) {
1257 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile)); 1292 QMessageBox::message(tr("Note"),tr("Could not move\n"+curFile));
1258 return; 1293 return;
1259 } 1294 }
1260 QFile::remove(curFile); 1295 QFile::remove(curFile);
1261 TabWidget->setCurrentPage(0); 1296 TabWidget->setCurrentPage(0);
1262 } 1297 }
1263 } 1298 }
1264 populateRemoteView(); 1299 populateRemoteView();
1265 populateLocalView(); 1300 populateLocalView();
1266 } 1301 }
1267 1302
1268 bool AdvancedFm::copyFile( const QString & dest, const QString & src ) 1303 bool AdvancedFm::copyFile( const QString & dest, const QString & src )
1269{ 1304{
1270 char bf[ 50000 ]; 1305 char bf[ 50000 ];
1271 int bytesRead; 1306 int bytesRead;
1272 bool success = TRUE; 1307 bool success = TRUE;
1273 struct stat status; 1308 struct stat status;
1274 1309
1275 QFile s( src ); 1310 QFile s( src );
1276 QFile d( dest ); 1311 QFile d( dest );
1277 1312
1278 if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) { 1313 if( s.open( IO_ReadOnly | IO_Raw ) && d.open( IO_WriteOnly | IO_Raw ) ) {
1279 while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) { 1314 while( (bytesRead = s.readBlock( bf, sizeof( bf ) )) == sizeof( bf ) ) {
1280 if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){ 1315 if( d.writeBlock( bf, sizeof( bf ) ) != sizeof( bf ) ){
1281 success = FALSE; 1316 success = FALSE;
1282 break; 1317 break;
1283 } 1318 }
1284 } 1319 }
1285 if( success && (bytesRead > 0) ){ 1320 if( success && (bytesRead > 0) ){
1286 d.writeBlock( bf, bytesRead ); 1321 d.writeBlock( bf, bytesRead );
1287 } 1322 }
1288 } else { 1323 } else {
1289 success = FALSE; 1324 success = FALSE;
1290 } 1325 }
1291 1326
1292 // Set file permissions 1327 // Set file permissions
1293 if( stat( (const char *) src, &status ) == 0 ){ 1328 if( stat( (const char *) src, &status ) == 0 ){
1294 chmod( (const char *) dest, status.st_mode ); 1329 chmod( (const char *) dest, status.st_mode );
1295 } 1330 }
1296 1331
1297 return success; 1332 return success;
1298} 1333}
1299 1334