Trolltech Home | Qt-interest Home | Recent Threads | All Threads | Author | Date
All threads index page 1

Qt-interest Archive, May 2007
how to sort dir and files?


Message 1 in thread

hi,all
i have trouble with sort dirs and files in listview

        QDir cwd(path);
        cwd.cd(path))
        if (!cwd.exists()) return;
        cwd.setSorting( QDir::DirsFirst | QDir::Name | QDir::Reversed );
        QListViewItem *tmp;

        QFileInfo *fi;
        char filesize[100];
        QString filedate;
        cwd.setFilter(  QDir::Files | QDir::Dirs | QDir::NoSymLinks |
QDir::Hidden );
        const QFileInfoList *list = cwd.entryInfoList();
        QFileInfoListIterator it(*list);
        it.atFirst();
        while( (fi=it.current())!=0)
        {
                sprintf(filesize,"%d",fi->size());
                filedate=fi->lastModified().toString("MMM dd yyyy");
                if(fi->fileName()==".") {
                        ++it;
                        continue;
                }
                if(fi->fileName()==".."){
                        QListViewItem* dirup = new
QListViewItem(leftListView, "..",QString(filesize),
                                        filedate);
                        dirup->setPixmap(0,
KGlobal::iconLoader()->loadIcon("folder",KIcon::Small));
                        dirup->setSelectable(false);
                        ++it;
                        continue;
                }
                else if(fi->isDir()){
                (new
QListViewItem(leftListView,fi->fileName().latin1(),QString(filesize),filedate))->
                        setPixmap(0,
KGlobal::iconLoader()->loadIcon("folder",KIcon::Small));
                ++it;
                }
                else if(fi->isFile()){
                        (new QListViewItem(leftListView,fi->fileName().latin1(),
                                           QString(filesize),filedate ))->
                        setPixmap(0,
KGlobal::iconLoader()->loadIcon("files",KIcon::Small));
                ++it;
                }
        }
        tmp=leftListView->firstChild();
        leftListView->takeItem(tmp);
        leftListView->sort();
        leftListView->insertItem(tmp);

i have setSorting( QDir::DirsFirst | QDir::Name
but it doesnt look dirs first then files,
what did i wrong?
regards.

--
 [ signature omitted ]