Hide udev hidden devices via the hidden file mechanism

This resolves Bug 2211
pull/2/head
Timothy Pearson 10 years ago
parent a7c3b93497
commit 2c1d4ad359

@ -42,6 +42,7 @@ Medium::Medium(const TQString id, TQString uuid, const TQString name)
m_properties+= "false"; /* ENCRYPTED */
m_properties+= TQString::null; /* CLEAR_DEVICE_UDI */
m_properties+= "false"; /* HIDDEN */
m_properties+= "false"; /* SOFT_HIDDEN */
loadUserLabel();
@ -67,6 +68,7 @@ Medium::Medium()
m_properties+= TQString::null; /* ENCRYPTED */
m_properties+= TQString::null; /* CLEAR_DEVICE_UDI */
m_properties+= "false"; /* HIDDEN */
m_properties+= "false"; /* SOFT_HIDDEN */
m_halmounted = false;
}
@ -94,6 +96,7 @@ const Medium Medium::create(const TQStringList &properties)
m.m_properties[ENCRYPTED] = properties[ENCRYPTED];
m.m_properties[CLEAR_DEVICE_UDI] = properties[CLEAR_DEVICE_UDI];
m.m_properties[HIDDEN] = properties[HIDDEN];
m.m_properties[SOFT_HIDDEN] = properties[SOFT_HIDDEN];
}
return m;
@ -145,6 +148,11 @@ void Medium::setHidden(bool state)
m_properties[HIDDEN] = ( state ? "true" : "false" );
}
void Medium::setSoftHidden(bool state)
{
m_properties[SOFT_HIDDEN] = ( state ? "true" : "false" );
}
void Medium::setUserLabel(const TQString &label)
{
TDEConfig cfg("mediamanagerrc");

@ -45,7 +45,8 @@ public:
static const uint ENCRYPTED = 13;
static const uint CLEAR_DEVICE_UDI = 14;
static const uint HIDDEN = 15;
static const uint PROPERTIES_COUNT = 16;
static const uint SOFT_HIDDEN = 16;
static const uint PROPERTIES_COUNT = 17;
static const TQString SEPARATOR;
Medium(const TQString id, TQString uuid, const TQString name);
@ -67,29 +68,31 @@ public:
TQString baseURL() const { return m_properties[BASE_URL]; }
TQString mimeType() const { return m_properties[MIME_TYPE]; }
TQString iconName() const { return m_properties[ICON_NAME]; }
bool isEncrypted() const { return m_properties[ENCRYPTED]=="true"; };
TQString clearDeviceUdi() const { return m_properties[CLEAR_DEVICE_UDI]; };
bool hidden() const { return m_properties[HIDDEN]=="true"; };
bool isEncrypted() const { return m_properties[ENCRYPTED]=="true"; };
TQString clearDeviceUdi() const { return m_properties[CLEAR_DEVICE_UDI]; };
bool hidden() const { return m_properties[HIDDEN]=="true"; };
bool softHidden() const { return m_properties[SOFT_HIDDEN]=="true"; };
bool needMounting() const;
bool needDecryption() const;
bool needDecryption() const;
KURL prettyBaseURL() const;
TQString prettyLabel() const;
void setName(const TQString &name);
void setLabel(const TQString &label);
void setUserLabel(const TQString &label);
void setEncrypted(bool state);
void setHidden(bool state);
void setEncrypted(bool state);
void setHidden(bool state);
void setSoftHidden(bool state);
bool mountableState(bool mounted);
void mountableState(const TQString &deviceNode,
const TQString &mountPoint,
const TQString &fsType, bool mounted);
void mountableState(const TQString &deviceNode,
const TQString &clearDeviceUdi,
const TQString &mountPoint,
const TQString &fsType, bool mounted);
void mountableState(const TQString &deviceNode,
const TQString &clearDeviceUdi,
const TQString &mountPoint,
const TQString &fsType, bool mounted);
void unmountableState(const TQString &baseURL = TQString::null);
void setMimeType(const TQString &mimeType);

@ -424,6 +424,10 @@ void MediaImpl::createMediumEntry(TDEIO::UDSEntry& entry,
addAtom(entry, TDEIO::UDS_MIME_TYPE, 0, medium.mimeType());
addAtom(entry, TDEIO::UDS_GUESSED_MIME_TYPE, 0, "inode/directory");
if (medium.softHidden()) {
addAtom(entry, TDEIO::UDS_HIDDEN , true);
}
if (!medium.iconName().isEmpty())
{
addAtom(entry, TDEIO::UDS_ICON_NAME, 0, medium.iconName());

@ -161,7 +161,7 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification)
//
}
/* We also don't display devices that underlie other devices;
/* e.g. the raw partition of a device mapper volume
* e.g. the raw partition of a device mapper volume
*/
else if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice)) {
//
@ -181,6 +181,14 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification)
}
}
// Hide udev hidden devices by default but allow the user to override if desired via Show Hidden Files
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden)) {
medium->setSoftHidden(true);
}
else {
medium->setSoftHidden(false);
}
// Insert medium into list
m_mediaList.addMedium(medium, allowNotification);

Loading…
Cancel
Save