6#include <QtCore/qfileinfo.h>
7#include <QtCore/private/qcore_mac_p.h>
9#include <CoreFoundation/CoreFoundation.h>
10#include <CoreFoundation/CFURLEnumerator.h>
14#define QT_STATFSBUF struct statfs
15#define QT_STATFS ::statfs
19void QStorageInfoPrivate::initRootPath()
23 if (rootPath.isEmpty())
26 retrieveUrlProperties(
true);
29void QStorageInfoPrivate::doStat()
33 if (rootPath.isEmpty())
38 retrieveUrlProperties();
41void QStorageInfoPrivate::retrievePosixInfo()
47 readOnly = (statfs_buf.f_flags & MNT_RDONLY) != 0;
48 fileSystemType =
QByteArray(statfs_buf.f_fstypename);
55 CFNumberRef cfNumber = (CFNumberRef)CFDictionaryGetValue(
dictionary,
key);
59 bool ok = CFNumberGetValue(cfNumber, kCFNumberSInt64Type, &
result);
65void QStorageInfoPrivate::retrieveUrlProperties(
bool initRootPath)
67 static const void *rootPathKeys[] = { kCFURLVolumeURLKey };
68 static const void *propertyKeys[] = {
71 kCFURLVolumeTotalCapacityKey,
72 kCFURLVolumeAvailableCapacityKey,
75 size_t size = (initRootPath ?
sizeof(rootPathKeys) : sizeof(propertyKeys)) / sizeof(
void*);
77 initRootPath ? rootPathKeys : propertyKeys,
102 const CFURLRef rootUrl = (CFURLRef)CFDictionaryGetValue(
map, kCFURLVolumeURLKey);
106 rootPath =
QCFString(CFURLCopyFileSystemPath(rootUrl, kCFURLPOSIXPathStyle));
115 bytesFree = bytesAvailable;
118void QStorageInfoPrivate::retrieveLabel()
120 QCFString path = CFStringCreateWithFileSystemRepresentation(0,
130 if (!CFURLCopyResourcePropertyForKey(
url, kCFURLVolumeURLKey, &volumeUrl, NULL))
134 if (!CFURLCopyResourcePropertyForKey(
url, kCFURLNameKey, &volumeName, NULL))
145 enumerator = CFURLEnumeratorCreateForMountedVolumes(
nullptr,
146 kCFURLEnumeratorSkipInvisibles,
149 CFURLEnumeratorResult
result = kCFURLEnumeratorSuccess;
154 if (
result == kCFURLEnumeratorSuccess) {
155 const QCFString urlString = CFURLCopyFileSystemPath(
url, kCFURLPOSIXPathStyle);
158 }
while (
result != kCFURLEnumeratorEnd);
IOBluetoothDevice * device
\inmodule QtCore \reentrant
QString canonicalFilePath() const
Returns the canonical path including the file name, i.e.
static QByteArray encodeName(const QString &fileName)
Converts fileName to an 8-bit encoding that you can use in native APIs.
void append(parameter_type t)
QMap< QString, QString > map
[6]
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
DBusConnection const char DBusError * error
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLsizei const GLchar *const * path
static QString retrieveLabel(const QByteArray &device)
static qint64 CFDictionaryGetInt64(CFDictionaryRef dictionary, const void *key)
QFuture< QSet< QString > > dictionary
QUrl url("example.com")
[constructor-url-reference]