PDA

View Full Version : QDirModel is not showing all volumes on Mac?



nareshqt
14th May 2008, 08:59
Hi friends,
I have two volumes on my machine Mac Os and other is Data

The finder View is :

file://localhost/Users/administrator/Desktop/Picture%201.png


My program to show directory tree view is:


int main(int argc, char* argv[])
{
QApplication app(argc,argv);
QTreeView *tree= new QTreeView;
QDirModel *dirModel = new QDirModel;
tree->setModel(dirModel);
tree->show();
return app.exec();
}

OutPut:

file://localhost/Users/administrator/Desktop/Picture%202.png



Here it's not showing the Volume DATA only Showing Mac OS Volume.


Can one tell how can i achieve it...


Thanks,
knrce

patrik08
14th May 2008, 11:29
Start the dir model from dir /Volumes and enable hidden file ... not displayed on Finder
after you can see all Volumes...

nareshqt
14th May 2008, 14:08
Hi,
I created QDirModel as,


QStringList list = QStringList() << "/Volumes";
QDirModel *dirModel = new QDirModel(list, QDir::AllDirs | QDir::Hidden| QDir::NoDotAndDotDot,QDir::Name);
tree->setModel(dirModel);
tree->show();


now it is showing Volumes under /, but it is also showing all the Hidden files also like usr,etc,.vol ..........

How to avoid them ....?

Thanks,
knrcse

yartov
23rd May 2008, 20:27
Did you ever solved this problem. I have the same problem now. QDirModel does not show any external drives on Mac. Please, share your solution!

patrik08
24th May 2008, 02:08
This is a piece ( QT4.2 ) of code to Open and read remode disk from apple + K

if QDir can read ... model must read...
otherwise submit a bug on trolltech




void Setting_Gui::WebdavSetup()
{
label_webdav->setText(tr("Your OS Not Support Webdav"));
QStringList diskremote;
QString disksetting = Global_Config(APPLICATION_SETTING,"webdav_root");
#if defined Q_WS_WIN
/* netdrive webdrive mount */
label_webdav->setText(tr("Window XP/2000 OS: Webdav Root (Radice)"));
QString alfa ="A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y, Z";
diskremote = alfa.split(",");
webdav_root->clear();
int loop= 0 - 1;
int activeselected;
QStringListIterator o(diskremote);
while (o.hasNext()) {
loop++;
QString disker = o.next();
QString diskeree = disker.append(":/");
webdav_root->addItem(diskeree);
if (disksetting == diskeree) {
activeselected = loop;
}
}
webdav_root->setEditable(false);
webdav_root->setCurrentIndex(activeselected);
#endif
#if defined Q_WS_MAC
/* apple + K */
label_webdav->setText(tr("Mac OS: Mount Disk Webdav Root"));
QString listdiron ="/Volumes/";
webdav_root->addItem(disksetting);
/* webdav_root->addItem(listdiron);*/
QDir dir(listdiron);
if (dir.exists()) {
const QFileInfoList list = dir.entryInfoList();
QFileInfo fi;
for (int i = 0; i < list.size(); i++)
{
fi = list.at(i);
if (fi.isDir() && fi.fileName() != "." && fi.fileName() != "..") {
QString disker = fi.absoluteFilePath();
QString diskeree = disker.append("/");
webdav_root->addItem(diskeree);
}
}
}
webdav_root->setEditable(false);
#endif

#if defined Q_WS_X11
/* http://www.webdav.org/cadaver/ */
label_webdav->setText(tr("Linux OS: Mount Disk Webdav Root"));
QString listdiron ="/mnt/";
webdav_root->setEditable(true);
webdav_root->addItem(disksetting);
webdav_root->addItem(listdiron);
#endif

}