[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdenonbeta/karchiver
From: Eric Coquelle <eric.coquelle () gmail ! com>
Date: 2006-09-22 8:33:52
Message-ID: 1158914032.320083.9564.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 587308 by coquelle:
Improved the AddFilesToArchive dialog: now mime-icons are displayed for files
M +56 -36 dirview.cpp
M +4 -1 dirview.h
--- trunk/kdenonbeta/karchiver/dirview.cpp #587307:587308
@@ -15,6 +15,8 @@
#include <qfile.h>
#include <qfileinfo.h>
#include <kiconloader.h>
+#include <kmimetype.h>
+#include <kfileitem.h>
Directory::Directory( Directory * parent, QString filename, QString image, bool voirfich )
: QListViewItem( parent ), f(filename ), im(image)
@@ -23,10 +25,10 @@
m_selected=false;
p = parent;
fichiers=voirfich;
- if(strcmp(image,"folder")==0)
- setPixmap(0,icon.loadIcon("folder",KIcon::Small, 16));
- else
- setPixmap(0,icon.loadIcon("folder_open",KIcon::Small, 16));
+ if(strcmp(image,"folder")==0)
+ setPixmap(0,icon.loadIcon("folder",KIcon::Small, 16));
+ else
+ setPixmap(0,icon.loadIcon("folder_open",KIcon::Small, 16));
}
@@ -43,43 +45,61 @@
fichiers=fich;
}
+void Directory::setIcon(QString name, QListViewItem* element)
+{
+ mode_t permissions=0;
+ KMimeType::Ptr mimeType = KMimeType::findByPath( name, permissions, true );
+ if(mimeType != KMimeType::findByPath( "/", 0, true ) )
+ element->setPixmap( 0, mimeType->pixmap( KIcon::Small ) );
+ else
+ {
+ KFileItem item(KFileItem::Unknown, KFileItem::Unknown, KURL("file:/"+name));
+ element->setPixmap(0,item.pixmap(KIcon::DefaultState));
+ }
+}
+
void Directory::setOpen( bool o )
{
- if ( o && !childCount() ) {
- QString s( fullName() );
- QDir thisDir( s );
- if ( !thisDir.isReadable() ) {
- readable = FALSE;
- return;
- }
+ if ( o && !childCount() )
+ {
+ QString s( fullName() );
+ QDir thisDir( s );
+ if ( !thisDir.isReadable() )
+ {
+ readable = FALSE;
+ return;
+ }
- const QFileInfoList * files = thisDir.entryInfoList();
- if ( files ) {
- QFileInfoListIterator it( *files );
- QFileInfo * f;
- KIconLoader icon;
+ const QFileInfoList * files = thisDir.entryInfoList();
+ if ( files )
+ {
+ QFileInfoListIterator it( *files );
+ QFileInfo * f;
+ KIconLoader icon;
- QString dossier="folder";
- QString dossierOuvert="folder_open";
- while( (f=it.current()) != 0 ) {
- ++it;
- if ( f->fileName() == "." || f->fileName() == ".." )
- ; // nothing
- /*else if ( f->isSymLink() )
- new QListViewItem( this, (const char *)f->fileName(),
- "Symbolic Link", 0 );*/
- else if (( f->isDir() )&& f->isReadable())
- {
- new Directory( this, f->fileName(), dossier, fichiers);
- setPixmap(0,icon.loadIcon("folder_open",KIcon::Small, 16));
- }
- else if(fichiers)
- new QListViewItem( this, f->fileName(),
- f->isFile() ? "File" : "Special", 0 );
- }
- }
+ while( (f=it.current()) != 0 )
+ {
+ ++it;
+ if ( f->fileName() == "." || f->fileName() == ".." )
+ ; // nothing
+ /*else if ( f->isSymLink() )
+ new QListViewItem( this, (const char *)f->fileName(),
+ "Symbolic Link", 0 );*/
+ else if (( f->isDir() )&& f->isReadable())
+ {
+ new Directory( this, f->fileName(), "folder", fichiers);
+ setPixmap(0,icon.loadIcon("folder_open",KIcon::Small, 16));
+ }
+ else if(fichiers)
+ {
+ QListViewItem* element=new QListViewItem( this, f->fileName(),
+ f->isFile() ? "File" : "Special", 0 );
+ setIcon(f->fileName(), element);
+ }
+ }
}
- QListViewItem::setOpen( o );
+ }
+ QListViewItem::setOpen( o );
}
--- trunk/kdenonbeta/karchiver/dirview.h #587307:587308
@@ -32,8 +32,11 @@
void setOpen( bool );
void setup();
void setDisplayFiles(bool);
-
+
private:
+ void setIcon(QString name, QListViewItem* elementListe);
+
+private:
QFile f;
QPixmap im;
QListViewItem *lv;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic