|
@@ -17,51 +17,27 @@
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
-typedef enum
|
|
|
-{
|
|
|
- SDR_DiskName = Qt::UserRole,
|
|
|
- SDR_DiskDevNode,
|
|
|
- SDR_DiskBusType,
|
|
|
- SDR_DiskVendorName,
|
|
|
- SDR_DiskVendorID,
|
|
|
- SDR_DiskProductID,
|
|
|
- SDR_PartFsLabel,
|
|
|
- SDR_PartFsType,
|
|
|
- SDR_PartFsVersion,
|
|
|
- SDR_PartDevNode,
|
|
|
- SDR_PartMountPoint,
|
|
|
- SDR_PartSize,
|
|
|
- SDR_PartFsSize,
|
|
|
- SDR_PartFsFree,
|
|
|
- SDR_PartFsUsed
|
|
|
-}StgDevRoles;
|
|
|
-
|
|
|
-typedef struct _STG_DEV_ROLES
|
|
|
-{
|
|
|
- int nRole;
|
|
|
- const char *pszRoleName;
|
|
|
-}STG_DEV_ROLES, *LPSTG_DEV_ROLES;
|
|
|
-typedef const STG_DEV_ROLES *LPCSTG_DEV_ROLES;
|
|
|
-
|
|
|
-/////////////////////////////////////////////////////////////////////////////
|
|
|
-
|
|
|
-static const STG_DEV_ROLES g_roles[] =
|
|
|
-{
|
|
|
- {SDR_DiskName, "DiskName"},
|
|
|
- {SDR_DiskDevNode, "DiskDevNode"},
|
|
|
- {SDR_DiskBusType, "DiskDevType"},
|
|
|
- {SDR_DiskVendorName, "DiskVendorName"},
|
|
|
- {SDR_DiskVendorID, "DiskVendorID"},
|
|
|
- {SDR_DiskProductID, "DiskProductID"},
|
|
|
- {SDR_PartFsLabel, "PartFsLabel"},
|
|
|
- {SDR_PartFsType, "PartFsType"},
|
|
|
- {SDR_PartFsVersion, "PartFsVersion"},
|
|
|
- {SDR_PartDevNode, "PartDevNode"},
|
|
|
- {SDR_PartMountPoint, "PartMountPoint"},
|
|
|
- {SDR_PartSize, "PartSize"},
|
|
|
- {SDR_PartFsSize, "PartFsSize"},
|
|
|
- {SDR_PartFsFree, "PartFsFree"},
|
|
|
- {SDR_PartFsUsed, "PartFsUsed"}
|
|
|
+const STG_DEV_ROLES QGfaStgDevList::m_roles[] =
|
|
|
+{
|
|
|
+ {SDR_DISKNAME, "DiskName"},
|
|
|
+ {SDR_DISKDEVNODE, "DiskDevNode"},
|
|
|
+ {SDR_DISKBUSTYPE, "DiskDevType"},
|
|
|
+ {SDR_DISKVENDORNAME, "DiskVendorName"},
|
|
|
+ {SDR_DISKVENDORID, "DiskVendorID"},
|
|
|
+ {SDR_DISKPRODUCTID, "DiskProductID"},
|
|
|
+ {SDR_PARTFSLABEL, "PartFsLabel"},
|
|
|
+ {SDR_PARTFSTYPE, "PartFsType"},
|
|
|
+ {SDR_PARTFSVERSION, "PartFsVersion"},
|
|
|
+ {SDR_PARTDEVNODE, "PartDevNode"},
|
|
|
+ {SDR_PARTMOUNTPOINT, "PartMountPoint"},
|
|
|
+ {SDR_PARTSIZE, "PartSize"},
|
|
|
+ {SDR_PARTFSSIZE, "PartFsSize"},
|
|
|
+ {SDR_PARTFSFREE, "PartFsFree"},
|
|
|
+ {SDR_PARTFSUSED, "PartFsUsed"},
|
|
|
+ {SDR_PARTSIZE_FMT, "PartSizeFmt"},
|
|
|
+ {SDR_PARTFSSIZE_FMT, "PartFsSizeFmt"},
|
|
|
+ {SDR_PARTFSFREE_FMT, "PartFsFreeFmt"},
|
|
|
+ {SDR_PARTFSUSED_FMT, "PartFsUsedFmt"}
|
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -76,6 +52,7 @@ QGfaStgDevList::QGfaStgDevList(QObject *pParent) : QAbstractTableModel(pParent)
|
|
|
{
|
|
|
memset(&m_stgDevShadowCpy, 0, sizeof(m_stgDevShadowCpy));
|
|
|
setObjectName("QGfaStgDevList");
|
|
|
+ static_assert(_countof(m_roles) == (SDR_PARTFSUSED_FMT - SDR_DISKNAME + 1), "enum StgDevRoles does not match array STG_DEV_ROLES!");
|
|
|
}
|
|
|
|
|
|
QGfaStgDevList::~QGfaStgDevList(void)
|
|
@@ -91,7 +68,7 @@ int QGfaStgDevList::rowCount(const QModelIndex &parent) const
|
|
|
int QGfaStgDevList::columnCount(const QModelIndex &parent) const
|
|
|
{
|
|
|
Q_UNUSED(parent);
|
|
|
- return (int)_countof(g_roles);
|
|
|
+ return (int)_countof(m_roles);
|
|
|
}
|
|
|
|
|
|
QVariant QGfaStgDevList::data(const QModelIndex &index, int role) const
|
|
@@ -110,49 +87,61 @@ QVariant QGfaStgDevList::data(const QModelIndex &index, int role) const
|
|
|
{
|
|
|
switch(role)
|
|
|
{
|
|
|
- case SDR_DiskName:
|
|
|
+ case SDR_DISKNAME:
|
|
|
val = _NA_STRING(disk.szName);
|
|
|
break;
|
|
|
- case SDR_DiskDevNode:
|
|
|
+ case SDR_DISKDEVNODE:
|
|
|
val = _NA_STRING(disk.szDevNode);
|
|
|
break;
|
|
|
- case SDR_DiskBusType:
|
|
|
+ case SDR_DISKBUSTYPE:
|
|
|
val = disk.internal ? "int" : _OPT_STRING(disk.szBus, "mmc");
|
|
|
break;
|
|
|
- case SDR_DiskVendorName:
|
|
|
+ case SDR_DISKVENDORNAME:
|
|
|
val = _NA_STRING(disk.szVendor);
|
|
|
break;
|
|
|
- case SDR_DiskVendorID:
|
|
|
+ case SDR_DISKVENDORID:
|
|
|
val = (int)disk.nVendorID;
|
|
|
break;
|
|
|
- case SDR_DiskProductID:
|
|
|
+ case SDR_DISKPRODUCTID:
|
|
|
val = (int)disk.nProductID;
|
|
|
break;
|
|
|
- case SDR_PartFsLabel:
|
|
|
+ case SDR_PARTFSLABEL:
|
|
|
val = _NA_STRING(part.szFsLabel);
|
|
|
break;
|
|
|
- case SDR_PartFsType:
|
|
|
+ case SDR_PARTFSTYPE:
|
|
|
val = _NA_STRING(part.szFsType);
|
|
|
break;
|
|
|
- case SDR_PartFsVersion:
|
|
|
+ case SDR_PARTFSVERSION:
|
|
|
val = _NA_STRING(part.szFsVersion);
|
|
|
break;
|
|
|
- case SDR_PartDevNode:
|
|
|
+ case SDR_PARTDEVNODE:
|
|
|
val = _NA_STRING(part.szDevNode);
|
|
|
break;
|
|
|
- case SDR_PartMountPoint:
|
|
|
+ case SDR_PARTMOUNTPOINT:
|
|
|
val = _NA_STRING(part.szMntPoint);
|
|
|
break;
|
|
|
- case SDR_PartSize:
|
|
|
+ case SDR_PARTSIZE:
|
|
|
+ val = (quint64)part.nKiBPartSize;
|
|
|
+ break;
|
|
|
+ case SDR_PARTFSSIZE:
|
|
|
+ val = (quint64)part.nKiBSize;
|
|
|
+ break;
|
|
|
+ case SDR_PARTFSFREE:
|
|
|
+ val = (quint64)part.nKiBFree;
|
|
|
+ break;
|
|
|
+ case SDR_PARTFSUSED:
|
|
|
+ val = (quint64)part.nKiBUsed;
|
|
|
+ break;
|
|
|
+ case SDR_PARTSIZE_FMT:
|
|
|
val = FormatByteSize(part.nKiBPartSize * _BYTE_SIZE_KIB, szBuf, _countof(szBuf));
|
|
|
break;
|
|
|
- case SDR_PartFsSize:
|
|
|
+ case SDR_PARTFSSIZE_FMT:
|
|
|
val = FormatByteSize(part.nKiBSize * _BYTE_SIZE_KIB, szBuf, _countof(szBuf));
|
|
|
break;
|
|
|
- case SDR_PartFsFree:
|
|
|
+ case SDR_PARTFSFREE_FMT:
|
|
|
val = FormatByteSize(part.nKiBFree * _BYTE_SIZE_KIB, szBuf, _countof(szBuf));
|
|
|
break;
|
|
|
- case SDR_PartFsUsed:
|
|
|
+ case SDR_PARTFSUSED_FMT:
|
|
|
val = FormatByteSize(part.nKiBUsed * _BYTE_SIZE_KIB, szBuf, _countof(szBuf));
|
|
|
break;
|
|
|
default:
|
|
@@ -167,9 +156,9 @@ QHash<int, QByteArray> QGfaStgDevList::roleNames(void) const
|
|
|
{
|
|
|
QHash<int, QByteArray> roles;
|
|
|
|
|
|
- for(size_t i = 0; i < _countof(g_roles); ++i)
|
|
|
+ for(size_t i = 0; i < _countof(m_roles); ++i)
|
|
|
{
|
|
|
- roles[g_roles[i].nRole] = g_roles[i].pszRoleName;
|
|
|
+ roles[m_roles[i].nRole] = m_roles[i].pszRoleName;
|
|
|
}
|
|
|
|
|
|
return roles;
|
|
@@ -258,7 +247,7 @@ void QGfaStgDevList::mountAdded(int nIndex, const GFA_SYSINFO_PARTITION &part)
|
|
|
p.nKiBFree = part.nKiBFree;
|
|
|
p.nKiBUsed = part.nKiBUsed;
|
|
|
QModelIndex i = createIndex(nIndex, 0);
|
|
|
- emit dataChanged(i, i, {SDR_PartMountPoint, SDR_PartFsSize, SDR_PartFsFree, SDR_PartFsUsed});
|
|
|
+ emit dataChanged(i, i, {SDR_PARTMOUNTPOINT, SDR_PARTFSSIZE, SDR_PARTFSFREE, SDR_PARTFSUSED});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -276,7 +265,7 @@ void QGfaStgDevList::mountRemoved(int nIndex, const GFA_SYSINFO_PARTITION &part)
|
|
|
p.nKiBFree = 0;
|
|
|
p.nKiBUsed = 0;
|
|
|
QModelIndex i = createIndex(nIndex, 0);
|
|
|
- emit dataChanged(i, i, {SDR_PartMountPoint, SDR_PartFsSize, SDR_PartFsFree, SDR_PartFsUsed});
|
|
|
+ emit dataChanged(i, i, {SDR_PARTMOUNTPOINT, SDR_PARTFSSIZE, SDR_PARTFSFREE, SDR_PARTFSUSED});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -294,12 +283,42 @@ void QGfaStgDevList::clearAll(void)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void QGfaStgDevList::updateModel(void)
|
|
|
+void QGfaStgDevList::updatePartitionInfo(const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm)
|
|
|
{
|
|
|
-// beginResetModel();
|
|
|
-// endResetModel();
|
|
|
+ int nIndex = 0;
|
|
|
+ TRACE("Storage Device Map updated\n");
|
|
|
+
|
|
|
+ beginResetModel();
|
|
|
+ m_partVec.clear();
|
|
|
+ memcpy(&m_stgDevShadowCpy, &sdm, sizeof(sdm));
|
|
|
+
|
|
|
+ for(int d = 0; d < GFA_APPCTRL_MAX_DISKS; ++d)
|
|
|
+ {
|
|
|
+ const GFA_SYSINFO_DISK &disk = m_stgDevShadowCpy.disks[d];
|
|
|
+
|
|
|
+ if(disk.valid)
|
|
|
+ {
|
|
|
+ for(int p = 0; p < (int)disk.nPartCount; ++p)
|
|
|
+ {
|
|
|
+ int nPartIdx = disk.aPartIdx[p];
|
|
|
+ const GFA_SYSINFO_PARTITION &part = m_stgDevShadowCpy.parts[nPartIdx];
|
|
|
+
|
|
|
+ if(part.valid)
|
|
|
+ {
|
|
|
+ m_partVec.emplace_back(part.nDiskIdx, nPartIdx);
|
|
|
+ QModelIndex i = createIndex(nIndex++, 0);
|
|
|
+ emit dataChanged(i, i, {SDR_DISKNAME, SDR_DISKDEVNODE, SDR_DISKBUSTYPE, SDR_DISKVENDORNAME, SDR_DISKVENDORID, SDR_DISKPRODUCTID, SDR_PARTFSLABEL, SDR_PARTFSTYPE, SDR_PARTFSVERSION, SDR_PARTDEVNODE, SDR_PARTMOUNTPOINT, SDR_PARTSIZE, SDR_PARTFSSIZE, SDR_PARTFSFREE, SDR_PARTFSUSED});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ endResetModel();
|
|
|
}
|
|
|
|
|
|
+/*void QGfaStgDevList::updateModel(const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm)
|
|
|
+{
|
|
|
+}*/
|
|
|
+
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -512,7 +531,7 @@ QGfaSysInfo::~QGfaSysInfo(void)
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
-void QGfaSysInfo::setSysInfoRunning(bool bRunning)
|
|
|
+void QGfaSysInfo::setSysInfoRunning(bool bRunning, const GFA_SYSINFO_STORAGE_DEVICE_MAP &sdm)
|
|
|
{
|
|
|
if(m_bSysInfoRunning != bRunning)
|
|
|
{
|
|
@@ -523,7 +542,7 @@ void QGfaSysInfo::setSysInfoRunning(bool bRunning)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- m_stgDevList.updateModel();
|
|
|
+ m_stgDevList.updatePartitionInfo(sdm);
|
|
|
}
|
|
|
}
|
|
|
}
|