summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (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
@@ -171,6 +171,7 @@ void fileBrowser::setFileView( int selection )
void fileBrowser::populateList()
{
ListView->clear();
+ QListViewItem * item;
bool isDir=FALSE;
//qDebug(currentDir.canonicalPath());
currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
@@ -182,7 +183,6 @@ void fileBrowser::populateList()
QFileInfoListIterator it(*list);
QFileInfo *fi;
while ( (fi=it.current()) ) {
-
if (fi->isSymLink() ){
QString symLink=fi->readLink();
// qDebug("Symlink detected "+symLink);
@@ -201,7 +201,7 @@ void fileBrowser::populateList()
// qDebug( fileL);
}
}
- if(fileL !="./") {
+ if(fileL !="./" && fi->exists()) {
item= new QListViewItem( ListView,fileL,fileS , fileDate);
QPixmap pm;
@@ -234,6 +234,7 @@ void fileBrowser::populateList()
}
isDir=FALSE;
++it;
+// }
}
ListView->setSorting( 3, FALSE);
QString currentPath = currentDir.canonicalPath();
@@ -263,6 +264,7 @@ void fileBrowser::upDir()
// you may want to switch these 2 functions. I like single clicks
void fileBrowser::listClicked(QListViewItem *selectedItem)
{
+ if(selectedItem) {
QString strItem=selectedItem->text(0);
QString strSize=selectedItem->text(1);
// qDebug("strItem is "+strItem);
@@ -303,6 +305,7 @@ void fileBrowser::listClicked(QListViewItem *selectedItem)
chdir(strItem.latin1());
}
}
+}
void fileBrowser::OnOK()
{
@@ -378,17 +381,21 @@ void fileBrowser::ListPressed( int mouse, QListViewItem *item, const QPoint &poi
void fileBrowser::showListMenu(QListViewItem *item) {
QPopupMenu m;// = new QPopupMenu( Local_View );
+ if(item) {
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( "Rescan" ), this, SLOT( populateList() ));
m.insertItem( tr( "Rename" ), this, SLOT( localRename() ));
m.insertSeparator();
m.insertItem( tr( "Delete" ), this, SLOT( localDelete() ));
- m.exec( QCursor::pos() );
+ } else {
+ m.insertItem( tr( "Make Directory" ), this, SLOT( makDir() ));
+ m.insertItem( tr( "Rescan" ), this, SLOT( populateList() ));
}
+ m.exec( QCursor::pos() );
+}
void fileBrowser::doCd() {
listClicked( ListView->currentItem());
@@ -400,6 +407,7 @@ void fileBrowser::makDir() {
fileDlg->exec();
if( fileDlg->result() == 1 ) {
QString filename = fileDlg->LineEdit1->text();
+ qDebug("Make dir");
currentDir.mkdir( currentDir.canonicalPath()+"/"+filename);
}
populateList();
@@ -436,7 +444,6 @@ void fileBrowser::localDelete() {
// exit
break;
};
-
} else {
switch ( QMessageBox::warning(this,"Delete","Do you really want to delete\n"+f
+" ?","Yes","No",0,0,1) ) {
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
@@ -67,7 +67,7 @@ private:
QString filterStr, mimeType;
QDir currentDir;
QStringList dirPathStringList, mimetypes;
- QListViewItem * item;
+/* QListViewItem * item; */
QComboBox *dirPathCombo;
MenuButton *typemb;
QWidgetStack *FileStack;
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
@@ -14,6 +14,7 @@
#include "fileSaver.h"
#include <qpe/config.h>
#include <qpe/resource.h>
+#include <qpe/mimetype.h>
#include <qpe/qpeapplication.h>
#include <qlistview.h>
@@ -47,6 +48,7 @@ fileSaver::fileSaver( QWidget* parent, const char* name, bool modal, WFlags fl
docButton = new QPushButton(Resource::loadIconSet("DocsIcon"),"",this,"docsButton");
docButton->setGeometry(170,4,25,25);
connect( docButton,SIGNAL(released()),this,SLOT( docButtonPushed()) );
+
docButton->setFlat(TRUE);
hideButton = new QPushButton( Resource::loadIconSet("textedit/s_hidden"),"",this,"hideButton");
@@ -57,10 +59,12 @@ fileSaver::fileSaver( QWidget* parent, const char* name, bool modal, WFlags fl
ListView = new QListView( this, "ListView" );
ListView->addColumn( tr( "Name" ) );
- ListView->setColumnWidth(0,140);
+ ListView->setColumnWidth(0,120);
ListView->setSorting( 2, FALSE);
ListView->addColumn( tr( "Size" ) );
- ListView->setColumnWidth(1,59);
+ ListView->setColumnWidth(1,-1);
+ ListView->addColumn( "Date",-1);
+
ListView->setColumnWidthMode(0,QListView::Manual);
ListView->setColumnAlignment(1,QListView::AlignRight);
// ListView->setMultiSelection(true);
@@ -97,11 +101,12 @@ fileSaver::~fileSaver()
void fileSaver::populateList()
{
ListView->clear();
+ bool isDir=FALSE;
currentDir.setSorting(/* QDir::Size*/ /*| QDir::Reversed | */QDir::DirsFirst);
currentDir.setMatchAllDirs(TRUE);
currentDir.setNameFilter("*");
- QString fileL, fileS;
+ QString fileL, fileS, fileDate;
const QFileInfoList *list = currentDir.entryInfoList( /*QDir::All*/ /*, QDir::SortByMask*/);
QFileInfoListIterator it(*list);
QFileInfo *fi;
@@ -120,10 +125,42 @@ void fileSaver::populateList()
fileL.sprintf( "%s",fi->fileName().data() );
if( QDir(QDir::cleanDirPath(currentDir.canonicalPath()+"/"+fileL)).exists() ) {
fileL+="/";
+ isDir=TRUE;
// qDebug(currentDir.canonicalPath()+fileL);
}
}
- item= new QListViewItem( ListView,fileL,fileS );
+ if(fileL !="./") {
+ item= new QListViewItem( ListView,fileL,fileS , fileDate);
+ QPixmap pm;
+
+ if(isDir || fileL.find("/",0,TRUE) != -1) {
+ if( !QDir( fi->filePath() ).isReadable())
+ pm = Resource::loadPixmap( "lockedfolder" );
+ else
+ pm= Resource::loadPixmap( "folder" );
+ item->setPixmap( 0,pm );
+ } else {
+ if( !fi->isReadable() )
+ pm = Resource::loadPixmap( "locked" );
+ else {
+ MimeType mt(fi->filePath());
+ pm=mt.pixmap();
+ if(pm.isNull())
+ pm = Resource::loadPixmap( "UnknownDocument-14" );
+ item->setPixmap( 0,pm);
+ }
+ }
+ if( fileL.find("->",0,TRUE) != -1) {
+ // overlay link image
+ pm= Resource::loadPixmap( "folder" );
+ QPixmap lnk = Resource::loadPixmap( "symlink" );
+ QPainter painter( &pm );
+ painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
+ pm.setMask( pm.createHeuristicMask( FALSE ) );
+ item->setPixmap( 0, pm);
+ }
+ }
+ isDir=FALSE;
++it;
}
ListView->setSorting( 2, FALSE);