author | llornkcor <llornkcor> | 2002-03-18 01:43:17 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-03-18 01:43:17 (UTC) |
commit | d9290bfa0b37c3026dbe0ffbd88663379df44fa2 (patch) (side-by-side diff) | |
tree | 45d17ef84edc8543cdfe1f7b659c76fd36a54311 | |
parent | 4c0bbc662731b8d3e61f43735fd6131746da306f (diff) | |
download | opie-d9290bfa0b37c3026dbe0ffbd88663379df44fa2.zip opie-d9290bfa0b37c3026dbe0ffbd88663379df44fa2.tar.gz opie-d9290bfa0b37c3026dbe0ffbd88663379df44fa2.tar.bz2 |
added a popupmenu to filedialog
-rw-r--r-- | core/apps/textedit/fileBrowser.cpp | 106 | ||||
-rw-r--r-- | core/apps/textedit/fileBrowser.h | 8 | ||||
-rw-r--r-- | core/apps/textedit/textedit.pro | 6 |
3 files changed, 113 insertions, 7 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp index 8cb7c38..1fdf9d9 100644 --- a/core/apps/textedit/fileBrowser.cpp +++ b/core/apps/textedit/fileBrowser.cpp @@ -11,8 +11,10 @@ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include "fileBrowser.h" +#include "inputDialog.h" + #include <qpe/config.h> #include <qpe/resource.h> #include <qpe/fileselector.h> #include <qpe/qpeapplication.h> @@ -24,8 +26,13 @@ #include <qfile.h> #include <qmessagebox.h> #include <qlayout.h> #include <unistd.h> +#include <qpopupmenu.h> +#include <qlineedit.h> + +#include <unistd.h> +#include <stdlib.h> static int u_id = 1; static int get_unique_id() { @@ -66,9 +73,9 @@ fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags layout->addWidget( homeButton, 0, 2 ); FileStack = new QWidgetStack( this ); - ListView = new QListView( this, "ListView" ); + ListView = new QListView( this, "ListView" ); ListView->setMinimumSize( QSize( 100, 25 ) ); ListView->addColumn( tr( "Name" ) ); ListView->setColumnWidth(0,120); ListView->setSorting( 2, FALSE); @@ -80,9 +87,14 @@ fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags ListView->setColumnAlignment(1,QListView::AlignRight); ListView->setColumnAlignment(2,QListView::AlignRight); ListView->setAllColumnsShowFocus( TRUE ); - connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); + QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold); + connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)), + this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) ); + + connect( ListView, SIGNAL( clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); + FileStack->addWidget( ListView, get_unique_id() ); fileSelector = new FileSelector( "text/*", FileStack, "fileselector" , FALSE, FALSE); //buggy // connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) ); @@ -271,4 +283,94 @@ void fileBrowser::docOpen( const DocLnk &doc ) { fileList.append( doc.file().latin1() ); accept(); } + +void fileBrowser::ListPressed( int mouse, QListViewItem *item, const QPoint &point, int i) +{ + switch (mouse) { + case 1: + break; + case 2: + showListMenu(item); + break; + }; +} + +void fileBrowser::showListMenu(QListViewItem *item) { + + QPopupMenu m;// = new QPopupMenu( Local_View ); + if( item->text(0).find("/",0,TRUE)) + m.insertItem( tr( "Change Directory" ), this, SLOT( doCd() )); + else + m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() )); + m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); + m.insertSeparator(); + m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); + m.exec( QCursor::pos() ); + +} + +void fileBrowser::doCd() { + listClicked( ListView->currentItem()); +} + +void fileBrowser::makDir() { + InputDialog *fileDlg; + fileDlg = new InputDialog(this,"Make Directory",TRUE, 0); + fileDlg->exec(); + if( fileDlg->result() == 1 ) { + QString filename = fileDlg->LineEdit1->text(); + currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); + } + populateList(); +} + +void fileBrowser::localRename() { + QString curFile = ListView->currentItem()->text(0); + InputDialog *fileDlg; + fileDlg = new InputDialog(this,"Rename",TRUE, 0); + fileDlg->inputText = curFile; + fileDlg->exec(); + if( fileDlg->result() == 1 ) { + QString oldname = currentDir.canonicalPath() + "/" + curFile; + QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist"; + if( rename(oldname.latin1(), newName.latin1())== -1) + QMessageBox::message("Note","Could not rename"); + } + populateList(); +} + +void fileBrowser::localDelete() { + QString f = ListView->currentItem()->text(0); + if(QDir(f).exists() ) { + switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f+ + " ?\nIt must be empty","Yes","No",0,0,1) ) { + case 0: { + f=currentDir.canonicalPath()+"/"+f; + QString cmd="rmdir "+f; + system( cmd.latin1()); + populateList(); + } + break; + case 1: + // exit + break; + }; + + } else { + switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f + +" ?","Yes","No",0,0,1) ) { + case 0: { + f=currentDir.canonicalPath()+"/"+f; + QString cmd="rm "+f; + system( cmd.latin1()); + populateList(); + } + break; + case 1: + // exit + break; + }; + } + +} diff --git a/core/apps/textedit/fileBrowser.h b/core/apps/textedit/fileBrowser.h index d8f0d0d..4f765dd 100644 --- a/core/apps/textedit/fileBrowser.h +++ b/core/apps/textedit/fileBrowser.h @@ -33,8 +33,9 @@ class QListViewItem; class QPushButton; class QComboBox; class QWidgetStack; class FileSelector; +class QPoint; class fileBrowser : public QDialog { Q_OBJECT @@ -61,9 +62,14 @@ public: public slots: void homeButtonPushed(); void docButtonPushed(); - + void ListPressed( int, QListViewItem *, const QPoint&, int); + void showListMenu(QListViewItem*); + void doCd(); + void makDir(); + void localRename(); + void localDelete(); private: private slots: void upDir(); diff --git a/core/apps/textedit/textedit.pro b/core/apps/textedit/textedit.pro index 2c25d43..f019bf7 100644 --- a/core/apps/textedit/textedit.pro +++ b/core/apps/textedit/textedit.pro @@ -1,12 +1,10 @@ TEMPLATE = app CONFIG += qt warn_on release DESTDIR = $(OPIEDIR)/bin - -HEADERS = textedit.h fileBrowser.h fontDialog.h fileSaver.h filePermissions.h - -SOURCES = main.cpp textedit.cpp fileBrowser.cpp fontDialog.cpp fileSaver.cpp filePermissions.cpp +HEADERS = textedit.h fileBrowser.h fontDialog.h fileSaver.h filePermissions.h inputDialog.h +SOURCES = main.cpp textedit.cpp fileBrowser.cpp fontDialog.cpp fileSaver.cpp filePermissions.cpp inputDialog.cpp INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include LIBS += -lqpe |