Show volume labels on Windows.

In mountpoint selection and system info dialog show the volume name to make it
easier to identify a specific device.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30141 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2011-07-15 20:03:05 +00:00
parent 241f28eefc
commit c9f70fe304
4 changed files with 25 additions and 5 deletions

View file

@ -110,6 +110,23 @@ QString Utils::resolvePathCase(QString path)
}
QString Utils::filesystemName(QString path)
{
QString name;
#if defined(Q_OS_WIN32)
wchar_t volname[MAX_PATH+1];
bool res = GetVolumeInformationW((LPTSTR)path.utf16(), volname, MAX_PATH+1,
NULL, NULL, NULL, NULL, NULL);
if(res) {
name = QString::fromWCharArray(volname);
}
#endif
qDebug() << "[Utils] Volume name of" << path << "is" << name;
return name;
}
//! @brief figure the free disk space on a filesystem
//! @param path path on the filesystem to check
//! @return size in bytes
@ -160,7 +177,7 @@ qulonglong Utils::filesystemSize(QString path, enum Utils::Size type)
}
}
#endif
qDebug() << "[Utils] Filesystem free:" << path << size;
qDebug() << "[Utils] Filesystem:" << path << size;
return size;
}

View file

@ -44,6 +44,7 @@ public:
static QString findExecutable(QString name);
static QString checkEnvironment(bool permission);
static int compareVersionStrings(QString s1, QString s2);
static QString filesystemName(QString path);
};
#endif

View file

@ -586,10 +586,11 @@ void Config::refreshMountpoint()
// later (to include volume label or similar)
// Skip unwritable mountpoints, they are not useable for us.
if(QFileInfo(mps.at(i)).isWritable()) {
QString title = QString("%1 (%2 GiB of %3 GiB free)")
QString title = QString("%1 %4 (%2 GiB of %3 GiB free)")
.arg(QDir::toNativeSeparators(mps.at(i)))
.arg((double)Utils::filesystemFree(mps.at(i))/(1<<30), 0, 'f', 2)
.arg((double)Utils::filesystemTotal(mps.at(i))/(1<<30), 0, 'f', 2);
.arg((double)Utils::filesystemTotal(mps.at(i))/(1<<30), 0, 'f', 2)
.arg(Utils::filesystemName(mps.at(i)));
ui.mountPoint->addItem(title, mps.at(i));
}
}

View file

@ -63,10 +63,11 @@ QString Sysinfo::getInfo()
info += "<b>" + tr("Filesystem") + "</b><br/>";
QStringList drives = Autodetection::mountpoints();
for(int i = 0; i < drives.size(); i++) {
info += tr("%1, %2 GiB of %3 GiB available")
info += tr("%1, %4 %2 GiB of %3 GiB available")
.arg(QDir::toNativeSeparators(drives.at(i)))
.arg((double)Utils::filesystemFree(drives.at(i)) / (1<<30), 0, 'f', 2)
.arg((double)Utils::filesystemTotal(drives.at(i)) / (1<<30), 0, 'f', 2);
.arg((double)Utils::filesystemTotal(drives.at(i)) / (1<<30), 0, 'f', 2)
.arg(Utils::filesystemName(drives.at(i)));
if(i + 1 < drives.size())
info += "<br/>";
}