summaryrefslogtreecommitdiff
Unidiff
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
@@ -9,12 +9,14 @@
9** 9**
10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
12** 12**
13****************************************************************************/ 13****************************************************************************/
14#include "fileBrowser.h" 14#include "fileBrowser.h"
15#include "inputDialog.h"
16
15#include <qpe/config.h> 17#include <qpe/config.h>
16#include <qpe/resource.h> 18#include <qpe/resource.h>
17#include <qpe/fileselector.h> 19#include <qpe/fileselector.h>
18#include <qpe/qpeapplication.h> 20#include <qpe/qpeapplication.h>
19 21
20#include <qwidgetstack.h> 22#include <qwidgetstack.h>
@@ -22,12 +24,17 @@
22#include <qcombo.h> 24#include <qcombo.h>
23#include <qpushbutton.h> 25#include <qpushbutton.h>
24#include <qfile.h> 26#include <qfile.h>
25#include <qmessagebox.h> 27#include <qmessagebox.h>
26#include <qlayout.h> 28#include <qlayout.h>
27#include <unistd.h> 29#include <unistd.h>
30#include <qpopupmenu.h>
31#include <qlineedit.h>
32
33#include <unistd.h>
34#include <stdlib.h>
28 35
29static int u_id = 1; 36static int u_id = 1;
30static int get_unique_id() 37static int get_unique_id()
31{ 38{
32 return u_id++; 39 return u_id++;
33} 40}
@@ -78,13 +85,18 @@ fileBrowser::fileBrowser( QWidget* parent, const char* name, bool modal, WFlags
78// ListView->addColumn( tr( "" ) ); 85// ListView->addColumn( tr( "" ) );
79 ListView->setColumnWidthMode(0,QListView::Manual); 86 ListView->setColumnWidthMode(0,QListView::Manual);
80 ListView->setColumnAlignment(1,QListView::AlignRight); 87 ListView->setColumnAlignment(1,QListView::AlignRight);
81 ListView->setColumnAlignment(2,QListView::AlignRight); 88 ListView->setColumnAlignment(2,QListView::AlignRight);
82 ListView->setAllColumnsShowFocus( TRUE ); 89 ListView->setAllColumnsShowFocus( TRUE );
83 90
84 connect( ListView, SIGNAL(pressed( QListViewItem*)), SLOT(listClicked(QListViewItem *)) ); 91 QPEApplication::setStylusOperation( ListView->viewport(),QPEApplication::RightOnHold);
92 connect( ListView, SIGNAL( mouseButtonPressed( int, QListViewItem *, const QPoint&, int)),
93 this,SLOT( ListPressed(int, QListViewItem *, const QPoint&, int)) );
94
95 connect( ListView, SIGNAL( clicked( QListViewItem*)), SLOT(listClicked(QListViewItem *)) );
96
85 FileStack->addWidget( ListView, get_unique_id() ); 97 FileStack->addWidget( ListView, get_unique_id() );
86 98
87 fileSelector = new FileSelector( "text/*", FileStack, "fileselector" , FALSE, FALSE); //buggy 99 fileSelector = new FileSelector( "text/*", FileStack, "fileselector" , FALSE, FALSE); //buggy
88// connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) ); 100// connect( fileSelector, SIGNAL( closeMe() ), this, SLOT( showEditTools() ) );
89// connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) ); 101// connect( fileSelector, SIGNAL( newSelected( const DocLnk &) ), this, SLOT( newFile( const DocLnk & ) ) );
90 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( docOpen( const DocLnk & ) ) ); 102 connect( fileSelector, SIGNAL( fileSelected( const DocLnk &) ), this, SLOT( docOpen( const DocLnk & ) ) );
@@ -269,6 +281,96 @@ void fileBrowser::selectionChanged( const QString &select )
269 281
270void fileBrowser::docOpen( const DocLnk &doc ) 282void fileBrowser::docOpen( const DocLnk &doc )
271{ 283{
272 fileList.append( doc.file().latin1() ); 284 fileList.append( doc.file().latin1() );
273 accept(); 285 accept();
274} 286}
287
288void fileBrowser::ListPressed( int mouse, QListViewItem *item, const QPoint &point, int i)
289{
290 switch (mouse) {
291 case 1:
292 break;
293 case 2:
294 showListMenu(item);
295 break;
296 };
297}
298
299void fileBrowser::showListMenu(QListViewItem *item) {
300
301 QPopupMenu m;// = new QPopupMenu( Local_View );
302 if( item->text(0).find("/",0,TRUE))
303 m.insertItem( tr( "Change Directory" ), this, SLOT( doCd() ));
304 else
305 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() ));
306 m.insertItem( tr( "Rename" ), this, SLOT( localRename() ));
307 m.insertSeparator();
308 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
309 m.exec( QCursor::pos() );
310
311}
312
313void fileBrowser::doCd() {
314 listClicked( ListView->currentItem());
315}
316
317void fileBrowser::makDir() {
318 InputDialog *fileDlg;
319 fileDlg = new InputDialog(this,"Make Directory",TRUE, 0);
320 fileDlg->exec();
321 if( fileDlg->result() == 1 ) {
322 QString filename = fileDlg->LineEdit1->text();
323 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
324 }
325 populateList();
326}
327
328void fileBrowser::localRename() {
329 QString curFile = ListView->currentItem()->text(0);
330 InputDialog *fileDlg;
331 fileDlg = new InputDialog(this,"Rename",TRUE, 0);
332 fileDlg->inputText = curFile;
333 fileDlg->exec();
334 if( fileDlg->result() == 1 ) {
335 QString oldname = currentDir.canonicalPath() + "/" + curFile;
336 QString newName = currentDir.canonicalPath() + "/" + fileDlg->LineEdit1->text();//+".playlist";
337 if( rename(oldname.latin1(), newName.latin1())== -1)
338 QMessageBox::message("Note","Could not rename");
339 }
340 populateList();
341}
342
343void fileBrowser::localDelete() {
344 QString f = ListView->currentItem()->text(0);
345 if(QDir(f).exists() ) {
346 switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f+
347 " ?\nIt must be empty","Yes","No",0,0,1) ) {
348 case 0: {
349 f=currentDir.canonicalPath()+"/"+f;
350 QString cmd="rmdir "+f;
351 system( cmd.latin1());
352 populateList();
353 }
354 break;
355 case 1:
356 // exit
357 break;
358 };
359
360 } else {
361 switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f
362 +" ?","Yes","No",0,0,1) ) {
363 case 0: {
364 f=currentDir.canonicalPath()+"/"+f;
365 QString cmd="rm "+f;
366 system( cmd.latin1());
367 populateList();
368 }
369 break;
370 case 1:
371 // exit
372 break;
373 };
374 }
375
376}
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
@@ -31,12 +31,13 @@ class QGridLayout;
31class QListView; 31class QListView;
32class QListViewItem; 32class QListViewItem;
33class QPushButton; 33class QPushButton;
34class QComboBox; 34class QComboBox;
35class QWidgetStack; 35class QWidgetStack;
36class FileSelector; 36class FileSelector;
37class QPoint;
37 38
38class fileBrowser : public QDialog 39class fileBrowser : public QDialog
39{ 40{
40 Q_OBJECT 41 Q_OBJECT
41 42
42public: 43public:
@@ -59,13 +60,18 @@ public:
59 QWidgetStack *FileStack; 60 QWidgetStack *FileStack;
60 FileSelector *fileSelector; 61 FileSelector *fileSelector;
61 62
62public slots: 63public slots:
63 void homeButtonPushed(); 64 void homeButtonPushed();
64 void docButtonPushed(); 65 void docButtonPushed();
65 66 void ListPressed( int, QListViewItem *, const QPoint&, int);
67 void showListMenu(QListViewItem*);
68 void doCd();
69 void makDir();
70 void localRename();
71 void localDelete();
66private: 72private:
67 73
68private slots: 74private slots:
69 void upDir(); 75 void upDir();
70 void listClicked( QListViewItem * ); 76 void listClicked( QListViewItem * );
71 void selectionChanged( const QString & ); 77 void selectionChanged( const QString & );
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,14 +1,12 @@
1TEMPLATE = app 1TEMPLATE = app
2CONFIG += qt warn_on release 2CONFIG += qt warn_on release
3 3
4DESTDIR = $(OPIEDIR)/bin 4DESTDIR = $(OPIEDIR)/bin
5 5HEADERS = textedit.h fileBrowser.h fontDialog.h fileSaver.h filePermissions.h inputDialog.h
6HEADERS = textedit.h fileBrowser.h fontDialog.h fileSaver.h filePermissions.h 6SOURCES = main.cpp textedit.cpp fileBrowser.cpp fontDialog.cpp fileSaver.cpp filePermissions.cpp inputDialog.cpp
7
8SOURCES = main.cpp textedit.cpp fileBrowser.cpp fontDialog.cpp fileSaver.cpp filePermissions.cpp
9 7
10INCLUDEPATH += $(OPIEDIR)/include 8INCLUDEPATH += $(OPIEDIR)/include
11DEPENDPATH += $(OPIEDIR)/include 9DEPENDPATH += $(OPIEDIR)/include
12LIBS += -lqpe 10LIBS += -lqpe
13 11
14TARGET = textedit 12TARGET = textedit