summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-03-18 01:43:17 (UTC)
committer llornkcor <llornkcor>2002-03-18 01:43:17 (UTC)
commitd9290bfa0b37c3026dbe0ffbd88663379df44fa2 (patch) (side-by-side diff)
tree45d17ef84edc8543cdfe1f7b659c76fd36a54311
parent4c0bbc662731b8d3e61f43735fd6131746da306f (diff)
downloadopie-d9290bfa0b37c3026dbe0ffbd88663379df44fa2.zip
opie-d9290bfa0b37c3026dbe0ffbd88663379df44fa2.tar.gz
opie-d9290bfa0b37c3026dbe0ffbd88663379df44fa2.tar.bz2
added a popupmenu to filedialog
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/apps/textedit/fileBrowser.cpp104
-rw-r--r--core/apps/textedit/fileBrowser.h8
-rw-r--r--core/apps/textedit/textedit.pro6
3 files changed, 112 insertions, 6 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
@@ -14,2 +14,4 @@
#include "fileBrowser.h"
+#include "inputDialog.h"
+
#include <qpe/config.h>
@@ -27,2 +29,7 @@
#include <unistd.h>
+#include <qpopupmenu.h>
+#include <qlineedit.h>
+
+#include <unistd.h>
+#include <stdlib.h>
@@ -83,3 +90,8 @@ fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags
- 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() );
@@ -274 +286,91 @@ void fileBrowser::docOpen( const DocLnk &doc )
}
+
+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
@@ -36,2 +36,3 @@ class QWidgetStack;
class FileSelector;
+class QPoint;
@@ -64,3 +65,8 @@ public slots:
void docButtonPushed();
-
+ void ListPressed( int, QListViewItem *, const QPoint&, int);
+ void showListMenu(QListViewItem*);
+ void doCd();
+ void makDir();
+ void localRename();
+ void localDelete();
private:
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
@@ -4,6 +4,4 @@ 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