summaryrefslogtreecommitdiff
path: root/core/apps/textedit
Unidiff
Diffstat (limited to 'core/apps/textedit') (more/less context) (show whitespace changes)
-rw-r--r--core/apps/textedit/fileBrowser.cpp17
-rw-r--r--core/apps/textedit/fileBrowser.h2
-rw-r--r--core/apps/textedit/fileSaver.cpp45
3 files changed, 54 insertions, 10 deletions
diff --git a/core/apps/textedit/fileBrowser.cpp b/core/apps/textedit/fileBrowser.cpp
index 8c942a1..8ea8067 100644
--- a/core/apps/textedit/fileBrowser.cpp
+++ b/core/apps/textedit/fileBrowser.cpp
@@ -168,24 +168,24 @@ void fileBrowser::setFileView( int selection )
168 selectionChanged( SelectionCombo->currentText() ); 168 selectionChanged( SelectionCombo->currentText() );
169} 169}
170 170
171void fileBrowser::populateList() 171void fileBrowser::populateList()
172{ 172{
173 ListView->clear(); 173 ListView->clear();
174 QListViewItem * item;
174 bool isDir=FALSE; 175 bool isDir=FALSE;
175//qDebug(currentDir.canonicalPath()); 176//qDebug(currentDir.canonicalPath());
176 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 177 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
177 currentDir.setMatchAllDirs(TRUE); 178 currentDir.setMatchAllDirs(TRUE);
178 179
179// currentDir.setNameFilter("*.txt;*.etx"); 180// currentDir.setNameFilter("*.txt;*.etx");
180 QString fileL, fileS, fileDate; 181 QString fileL, fileS, fileDate;
181 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 182 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
182 QFileInfoListIterator it(*list); 183 QFileInfoListIterator it(*list);
183 QFileInfo *fi; 184 QFileInfo *fi;
184 while ( (fi=it.current()) ) { 185 while ( (fi=it.current()) ) {
185
186 if (fi->isSymLink() ){ 186 if (fi->isSymLink() ){
187 QString symLink=fi->readLink(); 187 QString symLink=fi->readLink();
188// qDebug("Symlink detected "+symLink); 188// qDebug("Symlink detected "+symLink);
189 QFileInfo sym( symLink); 189 QFileInfo sym( symLink);
190 fileS.sprintf( "%10li", sym.size() ); 190 fileS.sprintf( "%10li", sym.size() );
191 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() ); 191 fileL.sprintf( "%s -> %s", sym.fileName().data(),sym.absFilePath().data() );
@@ -198,13 +198,13 @@ void fileBrowser::populateList()
198 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { 198 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
199 fileL+="/"; 199 fileL+="/";
200 isDir=TRUE; 200 isDir=TRUE;
201// qDebug( fileL); 201// qDebug( fileL);
202 } 202 }
203 } 203 }
204 if(fileL !="./") { 204 if(fileL !="./" && fi->exists()) {
205 item= new QListViewItem( ListView,fileL,fileS , fileDate); 205 item= new QListViewItem( ListView,fileL,fileS , fileDate);
206 QPixmap pm; 206 QPixmap pm;
207 207
208 if(isDir || fileL.find("/",0,TRUE) != -1) { 208 if(isDir || fileL.find("/",0,TRUE) != -1) {
209 if( !QDir( fi->filePath() ).isReadable()) 209 if( !QDir( fi->filePath() ).isReadable())
210 pm = Resource::loadPixmap( "lockedfolder" ); 210 pm = Resource::loadPixmap( "lockedfolder" );
@@ -231,12 +231,13 @@ void fileBrowser::populateList()
231 pm.setMask( pm.createHeuristicMask( FALSE ) ); 231 pm.setMask( pm.createHeuristicMask( FALSE ) );
232 item->setPixmap( 0, pm); 232 item->setPixmap( 0, pm);
233 } 233 }
234 } 234 }
235 isDir=FALSE; 235 isDir=FALSE;
236 ++it; 236 ++it;
237// }
237 } 238 }
238 ListView->setSorting( 3, FALSE); 239 ListView->setSorting( 3, FALSE);
239 QString currentPath = currentDir.canonicalPath(); 240 QString currentPath = currentDir.canonicalPath();
240 241
241 fillCombo( (const QString &)currentPath); 242 fillCombo( (const QString &)currentPath);
242// dirPathCombo->lineEdit()->setText(currentPath); 243// dirPathCombo->lineEdit()->setText(currentPath);
@@ -260,12 +261,13 @@ void fileBrowser::upDir()
260 update(); 261 update();
261} 262}
262 263
263// you may want to switch these 2 functions. I like single clicks 264// you may want to switch these 2 functions. I like single clicks
264void fileBrowser::listClicked(QListViewItem *selectedItem) 265void fileBrowser::listClicked(QListViewItem *selectedItem)
265{ 266{
267 if(selectedItem) {
266 QString strItem=selectedItem->text(0); 268 QString strItem=selectedItem->text(0);
267 QString strSize=selectedItem->text(1); 269 QString strSize=selectedItem->text(1);
268// qDebug("strItem is "+strItem); 270// qDebug("strItem is "+strItem);
269 strSize.stripWhiteSpace(); 271 strSize.stripWhiteSpace();
270// qDebug(strSize); 272// qDebug(strSize);
271 273
@@ -300,12 +302,13 @@ void fileBrowser::listClicked(QListViewItem *selectedItem)
300 OnOK(); 302 OnOK();
301 } 303 }
302 } //end not symlink 304 } //end not symlink
303 chdir(strItem.latin1()); 305 chdir(strItem.latin1());
304 } 306 }
305} 307}
308}
306 309
307void fileBrowser::OnOK() 310void fileBrowser::OnOK()
308{ 311{
309 QListViewItemIterator it1( ListView); 312 QListViewItemIterator it1( ListView);
310 for ( ; it1.current(); ++it1 ) { 313 for ( ; it1.current(); ++it1 ) {
311 if ( it1.current()->isSelected() ) { 314 if ( it1.current()->isSelected() ) {
@@ -375,34 +378,39 @@ void fileBrowser::ListPressed( int mouse, QListViewItem *item, const QPoint &poi
375 }; 378 };
376} 379}
377 380
378void fileBrowser::showListMenu(QListViewItem *item) { 381void fileBrowser::showListMenu(QListViewItem *item) {
379 382
380 QPopupMenu m;// = new QPopupMenu( Local_View ); 383 QPopupMenu m;// = new QPopupMenu( Local_View );
384 if(item) {
381 if( item->text(0).find("/",0,TRUE)) 385 if( item->text(0).find("/",0,TRUE))
382 m.insertItem( tr( "Change Directory" ), this, SLOT( doCd() )); 386 m.insertItem( tr( "Change Directory" ), this, SLOT( doCd() ));
383 else
384 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() )); 387 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() ));
385 m.insertItem( tr( "Rescan" ), this, SLOT( populateList() )); 388 m.insertItem( tr( "Rescan" ), this, SLOT( populateList() ));
386 m.insertItem( tr( "Rename" ), this, SLOT( localRename() )); 389 m.insertItem( tr( "Rename" ), this, SLOT( localRename() ));
387 m.insertSeparator(); 390 m.insertSeparator();
388 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() )); 391 m.insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
389 m.exec( QCursor::pos() ); 392 } else {
393 m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() ));
394 m.insertItem( tr( "Rescan" ), this, SLOT( populateList() ));
390 395
391} 396}
397 m.exec( QCursor::pos() );
398}
392 399
393void fileBrowser::doCd() { 400void fileBrowser::doCd() {
394 listClicked( ListView->currentItem()); 401 listClicked( ListView->currentItem());
395} 402}
396 403
397void fileBrowser::makDir() { 404void fileBrowser::makDir() {
398 InputDialog *fileDlg; 405 InputDialog *fileDlg;
399 fileDlg = new InputDialog(this,"Make Directory",TRUE, 0); 406 fileDlg = new InputDialog(this,"Make Directory",TRUE, 0);
400 fileDlg->exec(); 407 fileDlg->exec();
401 if( fileDlg->result() == 1 ) { 408 if( fileDlg->result() == 1 ) {
402 QString filename = fileDlg->LineEdit1->text(); 409 QString filename = fileDlg->LineEdit1->text();
410 qDebug("Make dir");
403 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename); 411 currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
404 } 412 }
405 populateList(); 413 populateList();
406} 414}
407 415
408void fileBrowser::localRename() { 416void fileBrowser::localRename() {
@@ -433,13 +441,12 @@ void fileBrowser::localDelete() {
433 } 441 }
434 break; 442 break;
435 case 1: 443 case 1:
436 // exit 444 // exit
437 break; 445 break;
438 }; 446 };
439
440 } else { 447 } else {
441 switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f 448 switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f
442 +" ?","Yes","No",0,0,1) ) { 449 +" ?","Yes","No",0,0,1) ) {
443 case 0: { 450 case 0: {
444 f=currentDir.canonicalPath()+"/"+f; 451 f=currentDir.canonicalPath()+"/"+f;
445 QString cmd="rm "+f; 452 QString cmd="rm "+f;
diff --git a/core/apps/textedit/fileBrowser.h b/core/apps/textedit/fileBrowser.h
index 339483f..e76c7df 100644
--- a/core/apps/textedit/fileBrowser.h
+++ b/core/apps/textedit/fileBrowser.h
@@ -64,13 +64,13 @@ private:
64 QPushButton *buttonOk, *buttonCancel, *homeButton, *docButton, *hideButton, *cdUpButton; 64 QPushButton *buttonOk, *buttonCancel, *homeButton, *docButton, *hideButton, *cdUpButton;
65 QListView* ListView; 65 QListView* ListView;
66 QLabel *dirLabel; 66 QLabel *dirLabel;
67 QString filterStr, mimeType; 67 QString filterStr, mimeType;
68 QDir currentDir; 68 QDir currentDir;
69 QStringList dirPathStringList, mimetypes; 69 QStringList dirPathStringList, mimetypes;
70 QListViewItem * item; 70/* QListViewItem * item; */
71 QComboBox *dirPathCombo; 71 QComboBox *dirPathCombo;
72 MenuButton *typemb; 72 MenuButton *typemb;
73 QWidgetStack *FileStack; 73 QWidgetStack *FileStack;
74 FileSelector *fileSelector; 74 FileSelector *fileSelector;
75 QRegExp tf; 75 QRegExp tf;
76 QStringList getMimeTypes(); 76 QStringList getMimeTypes();
diff --git a/core/apps/textedit/fileSaver.cpp b/core/apps/textedit/fileSaver.cpp
index 07fb5ba..f2a5355 100644
--- a/core/apps/textedit/fileSaver.cpp
+++ b/core/apps/textedit/fileSaver.cpp
@@ -11,12 +11,13 @@
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 "fileSaver.h" 14#include "fileSaver.h"
15#include <qpe/config.h> 15#include <qpe/config.h>
16#include <qpe/resource.h> 16#include <qpe/resource.h>
17#include <qpe/mimetype.h>
17 18
18#include <qpe/qpeapplication.h> 19#include <qpe/qpeapplication.h>
19#include <qlistview.h> 20#include <qlistview.h>
20#include <qpushbutton.h> 21#include <qpushbutton.h>
21#include <qfile.h> 22#include <qfile.h>
22#include <qmessagebox.h> 23#include <qmessagebox.h>
@@ -44,26 +45,29 @@ fileSaver::fileSaver( QWidget* parent, const char* name, bool modal, WFlags fl
44 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) ); 45 connect(homeButton,SIGNAL(released()),this,SLOT(homeButtonPushed()) );
45 homeButton->setFlat(TRUE); 46 homeButton->setFlat(TRUE);
46 47
47 docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton"); 48 docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton");
48 docButton->setGeometry(170,4,25,25); 49 docButton->setGeometry(170,4,25,25);
49 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) ); 50 connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
51
50 docButton->setFlat(TRUE); 52 docButton->setFlat(TRUE);
51 53
52 hideButton = new QPushButton( Resource::loadIconSet("textedit/s_hidden"),"",this,"hideButton"); 54 hideButton = new QPushButton( Resource::loadIconSet("textedit/s_hidden"),"",this,"hideButton");
53 hideButton->setGeometry(140,4,25,25); 55 hideButton->setGeometry(140,4,25,25);
54 connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) ); 56 connect( hideButton,SIGNAL(toggled(bool)),this,SLOT( hideButtonPushed(bool)) );
55 hideButton->setToggleButton(TRUE); 57 hideButton->setToggleButton(TRUE);
56 hideButton->setFlat(TRUE); 58 hideButton->setFlat(TRUE);
57 59
58 ListView = new QListView( this, "ListView" ); 60 ListView = new QListView( this, "ListView" );
59 ListView->addColumn( tr( "Name" ) ); 61 ListView->addColumn( tr( "Name" ) );
60 ListView->setColumnWidth(0,140); 62 ListView->setColumnWidth(0,120);
61 ListView->setSorting( 2, FALSE); 63 ListView->setSorting( 2, FALSE);
62 ListView->addColumn( tr( "Size" ) ); 64 ListView->addColumn( tr( "Size" ) );
63 ListView->setColumnWidth(1,59); 65 ListView->setColumnWidth(1,-1);
66 ListView->addColumn( "Date",-1);
67
64 ListView->setColumnWidthMode(0,QListView::Manual); 68 ListView->setColumnWidthMode(0,QListView::Manual);
65 ListView->setColumnAlignment(1,QListView::AlignRight); 69 ListView->setColumnAlignment(1,QListView::AlignRight);
66// ListView->setMultiSelection(true); 70// ListView->setMultiSelection(true);
67// ListView->setSelectionMode(QListView::Extended); 71// ListView->setSelectionMode(QListView::Extended);
68 72
69 ListView->setAllColumnsShowFocus( TRUE ); 73 ListView->setAllColumnsShowFocus( TRUE );
@@ -94,17 +98,18 @@ fileSaver::~fileSaver()
94{ 98{
95} 99}
96 100
97void fileSaver::populateList() 101void fileSaver::populateList()
98{ 102{
99 ListView->clear(); 103 ListView->clear();
104 bool isDir=FALSE;
100 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst); 105 currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
101 currentDir.setMatchAllDirs(TRUE); 106 currentDir.setMatchAllDirs(TRUE);
102 107
103 currentDir.setNameFilter("*"); 108 currentDir.setNameFilter("*");
104 QString fileL, fileS; 109 QString fileL, fileS, fileDate;
105 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/); 110 const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
106 QFileInfoListIterator it(*list); 111 QFileInfoListIterator it(*list);
107 QFileInfo *fi; 112 QFileInfo *fi;
108 while ( (fi=it.current()) ) { 113 while ( (fi=it.current()) ) {
109 114
110 if (fi->isSymLink() ){ 115 if (fi->isSymLink() ){
@@ -117,16 +122,48 @@ void fileSaver::populateList()
117 } else { 122 } else {
118// // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL); 123// // qDebug("Not a dir: "+currentDir.canonicalPath()+fileL);
119 fileS.sprintf( "%10li", fi->size() ); 124 fileS.sprintf( "%10li", fi->size() );
120 fileL.sprintf( "%s",fi->fileName().data() ); 125 fileL.sprintf( "%s",fi->fileName().data() );
121 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) { 126 if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
122 fileL+="/"; 127 fileL+="/";
128 isDir=TRUE;
123// qDebug(currentDir.canonicalPath()+fileL); 129// qDebug(currentDir.canonicalPath()+fileL);
124 } 130 }
125 } 131 }
126 item= new QListViewItem( ListView,fileL,fileS ); 132 if(fileL !="./") {
133 item= new QListViewItem( ListView,fileL,fileS , fileDate);
134 QPixmap pm;
135
136 if(isDir || fileL.find("/",0,TRUE) != -1) {
137 if( !QDir( fi->filePath() ).isReadable())
138 pm = Resource::loadPixmap( "lockedfolder" );
139 else
140 pm= Resource::loadPixmap( "folder" );
141 item->setPixmap( 0,pm );
142 } else {
143 if( !fi->isReadable() )
144 pm = Resource::loadPixmap( "locked" );
145 else {
146 MimeType mt(fi->filePath());
147 pm=mt.pixmap();
148 if(pm.isNull())
149 pm = Resource::loadPixmap( "UnknownDocument-14" );
150 item->setPixmap( 0,pm);
151 }
152 }
153 if( fileL.find("->",0,TRUE) != -1) {
154 // overlay link image
155 pm= Resource::loadPixmap( "folder" );
156 QPixmap lnk = Resource::loadPixmap( "symlink" );
157 QPainter painter( &pm );
158 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
159 pm.setMask( pm.createHeuristicMask( FALSE ) );
160 item->setPixmap( 0, pm);
161 }
162 }
163 isDir=FALSE;
127 ++it; 164 ++it;
128 } 165 }
129 ListView->setSorting( 2, FALSE); 166 ListView->setSorting( 2, FALSE);
130 dirLabel->setText(currentDir.canonicalPath()); 167 dirLabel->setText(currentDir.canonicalPath());
131 168
132 169