summaryrefslogtreecommitdiffabout
path: root/microkde
Side-by-side diff
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/ofileselector_p.cpp34
1 files changed, 27 insertions, 7 deletions
diff --git a/microkde/ofileselector_p.cpp b/microkde/ofileselector_p.cpp
index f85f8f4..e2af32b 100644
--- a/microkde/ofileselector_p.cpp
+++ b/microkde/ofileselector_p.cpp
@@ -147,28 +147,41 @@ QWidget* ODocumentFileView::widget( QWidget* parent ) {
/*
* This is the file system view used
* we use a QListView + QListViewItems for it
*/
OFileSelectorItem::OFileSelectorItem( QListView* view, const QPixmap& pixmap,
const QString& path, const QString& date,
const QString& size, const QString& dir,
bool isLocked, bool isDir )
: QListViewItem( view )
{
+
+ QString kind;
+ QString _path = path;
+ if ( isDir )
+ kind = "dir";
+ else
+ kind = "file";
setPixmap(0, pixmap );
- setText(1, path );
+ int arrow = path.find( "->" );
+ if (arrow > 0 ) {
+ kind += path.mid( arrow );
+ _path = path.left(arrow);
+ }
+ setText(1, _path );
setText(2, size );
setText(3, date );
+ setText(4, kind );
m_isDir = isDir;
m_dir = dir;
m_locked = isLocked;
}
OFileSelectorItem::~OFileSelectorItem() {
}
bool OFileSelectorItem::isLocked()const {
return m_locked;
}
QString OFileSelectorItem::directory()const {
return m_dir;
@@ -181,25 +194,30 @@ QString OFileSelectorItem::path()const {
}
QString OFileSelectorItem::key( int id, bool )const {
QString ke;
if( id == 0 || id == 1 ){ // name
if( m_isDir ){
ke.append("0" );
ke.append( text(1) );
}else{
ke.append("1" );
ke.append( text(1) );
}
return ke;
- }else
+ } else if ( id == 2 ) {
+ QString sort = "00000000";
+ sort = sort.left( 9-text( 2 ).length()) + text( 2 );
+ return sort;
+
+ } else
return text( id );
}
OFileViewFileListView::OFileViewFileListView( QWidget* parent, const QString& startDir,
OFileSelector* sel)
: QWidget( parent ), m_sel( sel ) {
m_all = false;
QVBoxLayout* lay = new QVBoxLayout( this );
m_currentDir = startDir;
/*
@@ -336,38 +354,40 @@ void OFileViewFileListView::reread( bool all ) {
QFileInfo *fi;
while( (fi=it.current() ) ){
if( fi->fileName() == QString::fromLatin1("..") || fi->fileName() == QString::fromLatin1(".") ){
++it;
continue;
}
/*
* It is a symlink we try to resolve it now but don't let us attack by DOS
*
*/
if( fi->isSymLink() ){
- QString file = fi->dirPath( true ) + "/" + fi->readLink();
- for( int i = 0; i<=4; i++) { // 5 tries to prevent dos
+ qDebug("SYMLINK ");
+ QString file = fi->readLink();
+ for( int i = 0; i<=5; i++) { // 5 tries to prevent dos
QFileInfo info( file );
+ qDebug("FILE %s ", file.latin1());
if( !info.exists() ){
addSymlink( fi, TRUE );
break;
}else if( info.isDir() ){
addDir( fi, TRUE );
break;
}else if( info.isFile() ){
addFile( fi, TRUE );
break;
}else if( info.isSymLink() ){
- file = info.dirPath(true ) + "/" + info.readLink() ;
+ file = info.readLink() ;
break;
}else if( i == 4){ // couldn't resolve symlink add it as symlink
addSymlink( fi );
}
} // off for loop for symlink resolving
}else if( fi->isDir() )
addDir( fi );
else if( fi->isFile() )
addFile( fi );
++it;
} // of while loop
@@ -477,25 +497,25 @@ void OFileViewFileListView::addFile( QFileInfo* info, bool symlink ) {
QPixmap pix = type.pixmap();
QString dir, name; bool locked;
if ( pix.isNull() ) {
QWMatrix matrix;
QPixmap pixer(Resource::loadPixmap("UnknownDocument") );
matrix.scale( .4, .4 );
pix = pixer.xForm( matrix );
}
dir = info->dirPath( true );
locked = false;
if ( symlink )
- name = info->fileName() + " -> " + info->dirPath() + "/" + info->readLink();
+ name = info->fileName() + " -> " + info->readLink();
else{
name = info->fileName();
if ( ( (selector()->mode() == OFileSelector::Open)&& !info->isReadable() ) ||
( (selector()->mode() == OFileSelector::Save)&& !info->isWritable() ) ) {
locked = true; pix = Resource::loadPixmap("locked");
}
}
(void)new OFileSelectorItem( m_view, pix, name,
KGlobal::locale()->formatDateTime(info->lastModified(),true, true, KLocale::ISODate),
QString::number( info->size() ),
dir, locked );
}
@@ -503,25 +523,25 @@ void OFileViewFileListView::addDir( QFileInfo* info, bool symlink ) {
bool locked = false; QString name; QPixmap pix;
if ( ( ( selector()->mode() == OFileSelector::Open ) && !info->isReadable() ) ||
( ( selector()->mode() == OFileSelector::Save ) && !info->isWritable() ) ) {
locked = true;
if ( symlink )
pix = Resource::loadPixmap( "symlink" );
else
pix = Resource::loadPixmap( "lockedfolder" );
}else
pix = symlink ? Resource::loadPixmap( "symlink") : Resource::loadPixmap("folder");
- name = symlink ? info->fileName() + " -> " + info->dirPath(true) + "/" + info->readLink() :
+ name = symlink ? info->fileName() + " -> " + info->readLink() :
info->fileName();
(void)new OFileSelectorItem( m_view, pix, name,
KGlobal::locale()->formatDateTime(info->lastModified(),true, true, KLocale::ISODate),
QString::number( info->size() ),
info->dirPath( true ), locked, true );
}
void OFileViewFileListView::addSymlink( QFileInfo* , bool ) {
}