summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-06-17 01:07:27 (UTC)
committer llornkcor <llornkcor>2003-06-17 01:07:27 (UTC)
commitf48df16919769a1abb73eab9d229659a792a6b8a (patch) (unidiff)
treef1368b9f2d7c9656805d13d4f2c92bebf5f6b625
parentfc79272790448b77eeb7e656d80ce1b799c5cd38 (diff)
downloadopie-f48df16919769a1abb73eab9d229659a792a6b8a.zip
opie-f48df16919769a1abb73eab9d229659a792a6b8a.tar.gz
opie-f48df16919769a1abb73eab9d229659a792a6b8a.tar.bz2
fix crash on menu - no item selected
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieftp/opieftp.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/noncore/net/opieftp/opieftp.cpp b/noncore/net/opieftp/opieftp.cpp
index 668a03d..269449e 100644
--- a/noncore/net/opieftp/opieftp.cpp
+++ b/noncore/net/opieftp/opieftp.cpp
@@ -733,65 +733,66 @@ bool OpieFtp::populateRemoteView( )
733 fileL = fileL+"/"; 733 fileL = fileL+"/";
734 fileS = s.mid(month - 8, 8); // FIXME 734 fileS = s.mid(month - 8, 8); // FIXME
735 fileS = fileS.stripWhiteSpace(); 735 fileS = fileS.stripWhiteSpace();
736 736
737 if(s.left(1) == "d" || fileL.find("/",0,TRUE) != -1) { 737 if(s.left(1) == "d" || fileL.find("/",0,TRUE) != -1) {
738 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"d"); 738 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"d");
739 item->setPixmap( 0, Resource::loadPixmap( "folder" )); 739 item->setPixmap( 0, Resource::loadPixmap( "folder" ));
740// if(itemDir) 740// if(itemDir)
741 item->moveItem(itemDir); 741 item->moveItem(itemDir);
742 itemDir=item; 742 itemDir=item;
743 } else { 743 } else {
744 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"f"); 744 QListViewItem * item = new QListViewItem( Remote_View, fileL, fileDate, fileS,"f");
745 item->setPixmap( 0, Resource::loadPixmap( "fileopen" )); 745 item->setPixmap( 0, Resource::loadPixmap( "fileopen" ));
746// if(itemFile) 746// if(itemFile)
747 item->moveItem(itemDir); 747 item->moveItem(itemDir);
748 item->moveItem(itemFile); 748 item->moveItem(itemFile);
749 itemFile=item; 749 itemFile=item;
750 } 750 }
751 } 751 }
752 QListViewItem * item1 = new QListViewItem( Remote_View, "../"); 752 QListViewItem * item1 = new QListViewItem( Remote_View, "../");
753 item1->setPixmap( 0, Resource::loadPixmap( "folder" )); 753 item1->setPixmap( 0, Resource::loadPixmap( "folder" ));
754 file.close(); 754 file.close();
755 if( file.exists()) 755 if( file.exists())
756 file. remove(); 756 file. remove();
757 } else 757 } else
758 qDebug("temp file not opened successfullly "+sfile); 758 qDebug("temp file not opened successfullly "+sfile);
759 Remote_View->setSorting( 4,TRUE); 759 Remote_View->setSorting( 4,TRUE);
760 return true; 760 return true;
761} 761}
762 762
763void OpieFtp::remoteListClicked(QListViewItem *selectedItem) 763void OpieFtp::remoteListClicked(QListViewItem *selectedItem)
764{ 764{
765 if( selectedItem) { 765 if( selectedItem) {
766 // if(selectedItem!= NULL) {
766// QCopEnvelope ( "QPE/System", "busy()" ); 767// QCopEnvelope ( "QPE/System", "busy()" );
767 QString oldRemoteCurrentDir = currentRemoteDir; 768 QString oldRemoteCurrentDir = currentRemoteDir;
768 QString strItem=selectedItem->text(0); 769 QString strItem=selectedItem->text(0);
769 strItem=strItem.simplifyWhiteSpace(); 770 strItem=strItem.simplifyWhiteSpace();
770 if(strItem == "../") { // the user wants to go ^ 771 if(strItem == "../") { // the user wants to go ^
771 if( FtpCDUp( conn) == 0) { 772 if( FtpCDUp( conn) == 0) {
772 QString msg; 773 QString msg;
773 msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn)); 774 msg.sprintf(tr("Unable to cd up\n")+"%s",FtpLastResponse(conn));
774 msg.replace(QRegExp(":"),"\n"); 775 msg.replace(QRegExp(":"),"\n");
775 QMessageBox::message(tr("Note"),msg); 776 QMessageBox::message(tr("Note"),msg);
776// qDebug(msg); 777// qDebug(msg);
777 } 778 }
778 char path[256]; 779 char path[256];
779 if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string 780 if( FtpPwd( path,sizeof(path),conn) == 0) { //this is easier than fudging the string
780 QString msg; 781 QString msg;
781 msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn)); 782 msg.sprintf(tr("Unable to get working dir\n")+"%s",FtpLastResponse(conn));
782 msg.replace(QRegExp(":"),"\n"); 783 msg.replace(QRegExp(":"),"\n");
783 QMessageBox::message(tr("Note"),msg); 784 QMessageBox::message(tr("Note"),msg);
784// qDebug(msg); 785// qDebug(msg);
785 } 786 }
786 currentRemoteDir=path; 787 currentRemoteDir=path;
787 } else { 788 } else {
788 if(strItem.find("->",0,TRUE) != -1) { //symlink on some servers 789 if(strItem.find("->",0,TRUE) != -1) { //symlink on some servers
789 strItem=strItem.right( strItem.length() - strItem.find("->",0,TRUE) - 2 ); 790 strItem=strItem.right( strItem.length() - strItem.find("->",0,TRUE) - 2 );
790 strItem = strItem.stripWhiteSpace(); 791 strItem = strItem.stripWhiteSpace();
791 currentRemoteDir = strItem; 792 currentRemoteDir = strItem;
792 if( !remoteChDir( (const QString &)strItem)) { 793 if( !remoteChDir( (const QString &)strItem)) {
793 currentRemoteDir = oldRemoteCurrentDir; 794 currentRemoteDir = oldRemoteCurrentDir;
794 strItem=""; 795 strItem="";
795// qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir); 796// qDebug("RemoteCurrentDir1 "+oldRemoteCurrentDir);
796 } 797 }
797 } else if(strItem.find("/",0,TRUE) != -1) { // this is a directory 798 } else if(strItem.find("/",0,TRUE) != -1) { // this is a directory
@@ -879,88 +880,92 @@ void OpieFtp::showHidden()
879 localMenu->setItemChecked(localMenu->idAt(0),TRUE); 880 localMenu->setItemChecked(localMenu->idAt(0),TRUE);
880// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 881// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
881 b=TRUE; 882 b=TRUE;
882 883
883 } else { 884 } else {
884 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All); 885 currentDir.setFilter( QDir::Files | QDir::Dirs/* | QDir::Hidden*/ | QDir::All);
885 localMenu->setItemChecked(localMenu->idAt(0),FALSE); 886 localMenu->setItemChecked(localMenu->idAt(0),FALSE);
886// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 887// currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
887 b=FALSE; 888 b=FALSE;
888 } 889 }
889 populateLocalView(); 890 populateLocalView();
890} 891}
891 892
892void OpieFtp::ListPressed( int mouse, QListViewItem *item, const QPoint &, int) 893void OpieFtp::ListPressed( int mouse, QListViewItem *item, const QPoint &, int)
893{ 894{
894// if(item) 895// if(item)
895 if (mouse == 2) { 896 if (mouse == 2) {
896 showLocalMenu(item); 897 showLocalMenu(item);
897 } 898 }
898} 899}
899 900
900void OpieFtp::RemoteListPressed( int mouse, QListViewItem *item, const QPoint &, int ) 901void OpieFtp::RemoteListPressed( int mouse, QListViewItem *item, const QPoint &, int )
901{ 902{
902 if(mouse == 2) { 903 if(mouse == 2) {
903 showRemoteMenu(item); 904 showRemoteMenu(item);
904 } 905 }
905} 906}
906 907
907void OpieFtp::showRemoteMenu(QListViewItem * item) 908void OpieFtp::showRemoteMenu(QListViewItem * item)
908{ 909{
909 QPopupMenu * m;// = new QPopupMenu( Local_View ); 910 QPopupMenu * m;// = new QPopupMenu( Local_View );
910 m = new QPopupMenu(this); 911 m = new QPopupMenu(this);
911 if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) != -1) 912 if(item != NULL ) {
912 m->insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() )); 913 if( item->text(0).find("/",0,TRUE) != -1)
913 else 914 m->insertItem( tr( "Change Directory" ), this, SLOT( doRemoteCd() ));
914 m->insertItem( tr( "Download" ), this, SLOT( remoteDownload() )); 915 else
916 m->insertItem( tr( "Download" ), this, SLOT( remoteDownload() ));
917 }
915 m->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() )); 918 m->insertItem( tr( "Make Directory" ), this, SLOT( remoteMakDir() ));
916 m->insertItem( tr("Rescan"), this, SLOT( populateLocalView() )); 919 m->insertItem( tr("Rescan"), this, SLOT( populateLocalView() ));
917 m->insertItem( tr( "Rename" ), this, SLOT( remoteRename() )); 920 m->insertItem( tr( "Rename" ), this, SLOT( remoteRename() ));
918 m->insertSeparator(); 921 m->insertSeparator();
919 m->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() )); 922 m->insertItem( tr( "Delete" ), this, SLOT( remoteDelete() ));
920 m->exec( QCursor::pos() ); 923 m->exec( QCursor::pos() );
921 delete m; 924 delete m;
922} 925}
923 926
924void OpieFtp::showLocalMenu(QListViewItem * item) 927void OpieFtp::showLocalMenu(QListViewItem * item)
925{ 928{
926 929
927 QPopupMenu *m; 930 QPopupMenu *m;
928 m = new QPopupMenu( this); 931 m = new QPopupMenu( this);
929 m->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() )); 932 m->insertItem( tr( "Show Hidden Files" ), this, SLOT( showHidden() ));
930 m->insertSeparator(); 933 m->insertSeparator();
931 if( /*item->text(0).right(1) == "/" ||*/ item->text(0).find("/",0,TRUE) !=-1) 934 if(item != NULL ) {
932 m->insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() )); 935 if( item->text(0).find("/",0,TRUE) !=-1)
933 else 936 m->insertItem( tr( "Change Directory" ), this, SLOT( doLocalCd() ));
934 m->insertItem( tr( "Upload" ), this, SLOT( localUpload() )); 937 else
938 m->insertItem( tr( "Upload" ), this, SLOT( localUpload() ));
939 }
935 m->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() )); 940 m->insertItem( tr( "Make Directory" ), this, SLOT( localMakDir() ));
936 m->insertItem( tr("Rescan"), this, SLOT( populateRemoteView() )); 941 m->insertItem( tr("Rescan"), this, SLOT( populateRemoteView() ));
937 m->insertItem( tr( "Rename" ), this, SLOT( localRename() )); 942 m->insertItem( tr( "Rename" ), this, SLOT( localRename() ));
938 m->insertSeparator(); 943 m->insertSeparator();
939 m->insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 944 m->insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
940 m->setCheckable(TRUE); 945 m->setCheckable(TRUE);
941 if (b) 946 if (b)
942 m->setItemChecked(m->idAt(0),TRUE); 947 m->setItemChecked(m->idAt(0),TRUE);
943 else 948 else
944 m->setItemChecked(m->idAt(0),FALSE); 949 m->setItemChecked(m->idAt(0),FALSE);
945 950
946 m->exec( QCursor::pos() ); 951 m->exec( QCursor::pos() );
947 delete m; 952 delete m;
948} 953}
949 954
950void OpieFtp::localMakDir() 955void OpieFtp::localMakDir()
951{ 956{
952 InputDialog *fileDlg; 957 InputDialog *fileDlg;
953 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0); 958 fileDlg = new InputDialog(this,tr("Make Directory"),TRUE, 0);
954 fileDlg->exec(); 959 fileDlg->exec();
955 if( fileDlg->result() == 1 ) { 960 if( fileDlg->result() == 1 ) {
956 QString filename = fileDlg->LineEdit1->text(); 961 QString filename = fileDlg->LineEdit1->text();
957 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); 962 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
958 } 963 }
959 populateLocalView(); 964 populateLocalView();
960} 965}
961 966
962void OpieFtp::localDelete() 967void OpieFtp::localDelete()
963{ 968{
964 QList<QListViewItem> * getSelectedItems( QListView * Local_View ); 969 QList<QListViewItem> * getSelectedItems( QListView * Local_View );
965 QListViewItemIterator it( Local_View ); 970 QListViewItemIterator it( Local_View );
966 for ( ; it.current(); ++it ) { 971 for ( ; it.current(); ++it ) {