tdeioslave media: clean up code related to medium mountable state in preparation for further work.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/35/head
Michele Calgaro 5 years ago
parent ebc4784c4f
commit d34f23f403
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -23,68 +23,57 @@
const TQString Medium::SEPARATOR = "---";
void Medium::initMedium()
{
m_properties.clear();
m_properties += TQString::null; // ID
m_properties += TQString::null; // UUID
m_properties += TQString::null; // NAME
m_properties += TQString::null; // LABEL
m_properties += TQString::null; // USER_LABEL
m_properties += "false"; // MOUNTABLE
m_properties += TQString::null; // DEVICE_NODE
m_properties += TQString::null; // MOUNT_POINT
m_properties += TQString::null; // FS_TYPE
m_properties += "false"; // MOUNTED
m_properties += TQString::null; // BASE_URL
m_properties += TQString::null; // MIME_TYPE
m_properties += TQString::null; // ICON_NAME
m_properties += "false"; // ENCRYPTED
m_properties += TQString::null; // CLEAR_DEVICE_UDI
m_properties += "false"; // HIDDEN
m_properties += "false"; // SOFT_HIDDEN
}
Medium::Medium(const TQString id, TQString uuid, const TQString name)
{
m_properties+= id; /* ID */
m_properties+= uuid; /* UUID */
m_properties+= name; /* NAME */
m_properties+= name; /* LABEL */
m_properties+= TQString::null; /* USER_LABEL */
m_properties+= "false"; /* MOUNTABLE */
m_properties+= TQString::null; /* DEVICE_NODE */
m_properties+= TQString::null; /* MOUNT_POINT */
m_properties+= TQString::null; /* FS_TYPE */
m_properties+= "false"; /* MOUNTED */
m_properties+= TQString::null; /* BASE_URL */
m_properties+= TQString::null; /* MIME_TYPE */
m_properties+= TQString::null; /* ICON_NAME */
m_properties+= "false"; /* ENCRYPTED */
m_properties+= TQString::null; /* CLEAR_DEVICE_UDI */
m_properties+= "false"; /* HIDDEN */
m_properties+= "false"; /* SOFT_HIDDEN */
loadUserLabel();
m_halmounted = false;
initMedium();
if (!id.isEmpty() && !uuid.isEmpty())
{
m_properties[ID] = id;
m_properties[UUID] = uuid;
m_properties[NAME] = name;
m_properties[LABEL] = name;
loadUserLabel();
}
}
Medium::Medium()
{
m_properties+= TQString::null; /* ID */
m_properties+= TQString::null; /* UUID */
m_properties+= TQString::null; /* NAME */
m_properties+= TQString::null; /* LABEL */
m_properties+= TQString::null; /* USER_LABEL */
m_properties+= TQString::null; /* MOUNTABLE */
m_properties+= TQString::null; /* DEVICE_NODE */
m_properties+= TQString::null; /* MOUNT_POINT */
m_properties+= TQString::null; /* FS_TYPE */
m_properties+= TQString::null; /* MOUNTED */
m_properties+= TQString::null; /* BASE_URL */
m_properties+= TQString::null; /* MIME_TYPE */
m_properties+= TQString::null; /* ICON_NAME */
m_properties+= TQString::null; /* ENCRYPTED */
m_properties+= TQString::null; /* CLEAR_DEVICE_UDI */
m_properties+= "false"; /* HIDDEN */
m_properties+= "false"; /* SOFT_HIDDEN */
m_halmounted = false;
initMedium();
}
const Medium Medium::create(const TQStringList &properties)
{
Medium m;
if ( properties.size() >= PROPERTIES_COUNT )
if (properties.size() >= PROPERTIES_COUNT)
{
m.m_properties[ID] = properties[ID];
m.m_properties[UUID] = properties[UUID];
m.m_properties[NAME] = properties[NAME];
m.m_properties[LABEL] = properties[LABEL];
m.m_properties[USER_LABEL] = properties[USER_LABEL];
m.m_properties[MOUNTABLE] = properties[MOUNTABLE];
m.m_properties[DEVICE_NODE] = properties[DEVICE_NODE];
m.m_properties[MOUNT_POINT] = properties[MOUNT_POINT];
@ -106,13 +95,12 @@ Medium::MList Medium::createList(const TQStringList &properties)
{
MList l;
if ( properties.size() % (PROPERTIES_COUNT+1) == 0)
if (properties.size() % (PROPERTIES_COUNT+1) == 0)
{
int media_count = properties.size()/(PROPERTIES_COUNT+1);
int media_count = properties.size() / (PROPERTIES_COUNT + 1);
TQStringList props = properties;
for(int i=0; i<media_count; i++)
for (int i=0; i < media_count; i++)
{
const Medium m = create(props);
l.append(m);
@ -127,7 +115,6 @@ Medium::MList Medium::createList(const TQStringList &properties)
return l;
}
void Medium::setName(const TQString &name)
{
m_properties[NAME] = name;
@ -138,35 +125,22 @@ void Medium::setLabel(const TQString &label)
m_properties[LABEL] = label;
}
void Medium::setEncrypted(bool state)
{
m_properties[ENCRYPTED] = ( state ? "true" : "false" );
}
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");
cfg.setGroup("UserLabels");
TQString entry_name = m_properties[UUID];
if ( label.isNull() )
{
cfg.deleteEntry(entry_name);
}
else
if (!entry_name.isEmpty())
{
cfg.writeEntry(entry_name, label);
if (label.isEmpty())
{
cfg.deleteEntry(entry_name);
}
else
{
cfg.writeEntry(entry_name, label);
}
}
m_properties[USER_LABEL] = label;
@ -178,10 +152,9 @@ void Medium::loadUserLabel()
cfg.setGroup("UserLabels");
TQString entry_name = m_properties[UUID];
if ( cfg.hasKey(entry_name) )
if (!entry_name.isEmpty())
{
m_properties[USER_LABEL] = cfg.readEntry(entry_name);
m_properties[USER_LABEL] = cfg.readEntry(entry_name, TQString::null);
}
else
{
@ -189,48 +162,38 @@ void Medium::loadUserLabel()
}
}
bool Medium::mountableState(bool mounted)
void Medium::setMountable(bool mountable)
{
if ( m_properties[DEVICE_NODE].isEmpty()
|| ( mounted && m_properties[MOUNT_POINT].isEmpty() ) )
m_properties[MOUNTABLE] = mountable ? "true" : "false";
if (!mountable)
{
return false;
setMountPoint(TQString::null);
setMounted(false);
}
m_properties[MOUNTABLE] = "true";
m_properties[MOUNTED] = ( mounted ? "true" : "false" );
return true;
}
void Medium::mountableState(const TQString &deviceNode,
const TQString &mountPoint,
const TQString &fsType, bool mounted)
void Medium::setDeviceNode(const TQString &deviceNode)
{
m_properties[MOUNTABLE] = "true";
m_properties[DEVICE_NODE] = deviceNode;
m_properties[MOUNT_POINT] = mountPoint;
m_properties[FS_TYPE] = fsType;
m_properties[MOUNTED] = ( mounted ? "true" : "false" );
}
void Medium::mountableState(const TQString &deviceNode,
const TQString &clearDeviceUdi,
const TQString &mountPoint,
const TQString &fsType, bool mounted)
void Medium::setMountPoint(const TQString &mountPoint)
{
m_properties[MOUNTABLE] = "true";
m_properties[DEVICE_NODE] = deviceNode;
m_properties[CLEAR_DEVICE_UDI] = clearDeviceUdi;
m_properties[MOUNT_POINT] = mountPoint;
}
void Medium::setFsType(const TQString &fsType)
{
m_properties[FS_TYPE] = fsType;
m_properties[MOUNTED] = ( mounted ? "true" : "false" );
}
void Medium::unmountableState(const TQString &baseURL)
void Medium::setMounted(bool mounted)
{
m_properties[MOUNTED] = mounted ? "true" : "false";
}
void Medium::setBaseURL(const TQString &baseURL)
{
m_properties[MOUNTABLE] = "false";
m_properties[BASE_URL] = baseURL;
}
@ -244,6 +207,26 @@ void Medium::setIconName(const TQString &iconName)
m_properties[ICON_NAME] = iconName;
}
void Medium::setEncrypted(bool state)
{
m_properties[ENCRYPTED] = ( state ? "true" : "false" );
}
void Medium::setClearDeviceUdi(const TQString &clearDeviceUdi)
{
m_properties[CLEAR_DEVICE_UDI] = clearDeviceUdi;
}
void Medium::setHidden(bool state)
{
m_properties[HIDDEN] = ( state ? "true" : "false" );
}
void Medium::setSoftHidden(bool state)
{
m_properties[SOFT_HIDDEN] = ( state ? "true" : "false" );
}
bool Medium::needMounting() const
{
return isMountable() && !isMounted();
@ -256,21 +239,20 @@ bool Medium::needDecryption() const
KURL Medium::prettyBaseURL() const
{
if ( !baseURL().isEmpty() )
return baseURL();
if (!baseURL().isEmpty())
{
return baseURL();
}
return KURL( mountPoint() );
return KURL(mountPoint());
}
TQString Medium::prettyLabel() const
{
if ( !userLabel().isEmpty() )
if (!userLabel().isEmpty())
{
return userLabel();
}
else
{
return label();
}
}
return label();
}

@ -29,24 +29,24 @@ class Medium
public:
typedef TQValueList<Medium> MList;
static const uint ID = 0;
static const uint UUID = 1;
static const uint NAME = 2;
static const uint LABEL = 3;
static const uint USER_LABEL = 4;
static const uint MOUNTABLE = 5;
static const uint DEVICE_NODE = 6;
static const uint MOUNT_POINT = 7;
static const uint FS_TYPE = 8;
static const uint MOUNTED = 9;
static const uint BASE_URL = 10;
static const uint MIME_TYPE = 11;
static const uint ICON_NAME = 12;
static const uint ENCRYPTED = 13;
static const uint CLEAR_DEVICE_UDI = 14;
static const uint HIDDEN = 15;
static const uint SOFT_HIDDEN = 16;
static const uint PROPERTIES_COUNT = 17;
static const uint ID = 0;
static const uint UUID = 1;
static const uint NAME = 2;
static const uint LABEL = 3;
static const uint USER_LABEL = 4;
static const uint MOUNTABLE = 5;
static const uint DEVICE_NODE = 6;
static const uint MOUNT_POINT = 7;
static const uint FS_TYPE = 8;
static const uint MOUNTED = 9;
static const uint BASE_URL = 10;
static const uint MIME_TYPE = 11;
static const uint ICON_NAME = 12;
static const uint ENCRYPTED = 13;
static const uint CLEAR_DEVICE_UDI = 14;
static const uint HIDDEN = 15;
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);
@ -60,18 +60,18 @@ public:
TQString name() const { return m_properties[NAME]; }
TQString label() const { return m_properties[LABEL]; }
TQString userLabel() const { return m_properties[USER_LABEL]; }
bool isMountable() const { return m_properties[MOUNTABLE]=="true"; }
bool isMountable() const { return m_properties[MOUNTABLE]=="true"; }
TQString deviceNode() const { return m_properties[DEVICE_NODE]; }
TQString mountPoint() const { return m_properties[MOUNT_POINT]; }
TQString fsType() const { return m_properties[FS_TYPE]; }
bool isMounted() const { return m_properties[MOUNTED]=="true"; }
bool isMounted() const { return m_properties[MOUNTED]=="true"; }
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"; };
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 hidden() const { return m_properties[HIDDEN]=="true"; };
bool softHidden() const { return m_properties[SOFT_HIDDEN]=="true"; };
bool needMounting() const;
bool needDecryption() const;
@ -81,50 +81,44 @@ public:
void setName(const TQString &name);
void setLabel(const TQString &label);
void setUserLabel(const TQString &label);
void setMountable(bool mountable);
void setDeviceNode(const TQString &deviceNode);
void setMountPoint(const TQString &mountPoint);
void setFsType(const TQString &fsType);
void setMounted(bool mounted);
void setBaseURL(const TQString &baseURL);
void setMimeType(const TQString &mimeType);
void setIconName(const TQString &iconName);
void setEncrypted(bool state);
void setClearDeviceUdi(const TQString &clearDeviceUdi);
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 unmountableState(const TQString &baseURL = TQString::null);
void setMimeType(const TQString &mimeType);
void setIconName(const TQString &iconName);
void setHalMounted(bool flag) const { m_halmounted = flag; }
bool halMounted() const { return m_halmounted; }
//private:
Medium();
private:
void initMedium();
void loadUserLabel();
TQStringList m_properties;
mutable bool m_halmounted;
friend class TQValueListNode<const Medium>;
friend class TQValueListNode<const Medium>;
};
namespace MediaManagerUtils {
static inline TQMap<TQString,TQString> splitOptions(const TQStringList & options)
{
TQMap<TQString,TQString> valids;
for (TQStringList::ConstIterator it = options.begin(); it != options.end(); ++it)
static inline TQMap<TQString,TQString> splitOptions(const TQStringList &options)
{
TQString key = (*it).left((*it).find('='));
TQString value = (*it).mid((*it).find('=') + 1);
valids[key] = value;
TQMap<TQString,TQString> valids;
for (TQStringList::ConstIterator it = options.begin(); it != options.end(); ++it)
{
int pos = (*it).find('=');
TQString key = (*it).left(pos);
TQString value = (*it).mid(pos + 1);
valids[key] = value;
}
return valids;
}
return valids;
}
}
#endif

@ -127,7 +127,6 @@ bool MediaImpl::statMediumByLabel(const TQString &label, TDEIO::UDSEntry &entry)
return statMedium(name, entry);
}
bool MediaImpl::listMedia(TQValueList<TDEIO::UDSEntry> &list)
{
kdDebug(1219) << "MediaImpl::listMedia" << endl;

@ -220,7 +220,11 @@ void FstabBackend::handleMtabChange(bool allowNotification)
Medium *m = new Medium(id, name);
m->mountableState(dev, mp, fs, true);
m->setMountable(true);
m->setDeviceNode(dev);
m->setMountPoint(mp);
m->setFsType(fs);
m->setMounted(true);
TQString mime, icon, label;
guess(dev, mp, fs, true, mime, icon, label);
@ -293,7 +297,11 @@ void FstabBackend::handleFstabChange(bool allowNotification)
Medium *m = new Medium(id, id, name);
m->mountableState(dev, mp, fs, false);
m->setMountable(true);
m->setDeviceNode(dev);
m->setMountPoint(mp);
m->setFsType(fs);
m->setMounted(false);
TQString mime, icon, label;
guess(dev, mp, fs, false, mime, icon, label);

@ -516,28 +516,32 @@ void HALBackend::setVolumeProperties(Medium* medium)
}
if (halClearVolume)
medium->mountableState(
libhal_volume_get_device_file(halVolume), /* Device node */
clearUdiString,
libhal_volume_get_mount_point(halClearVolume), /* Mount point */
libhal_volume_get_fstype(halClearVolume), /* Filesystem type */
libhal_volume_is_mounted(halClearVolume) ); /* Mounted ? */
{
medium->setMountable(true);
medium->setDeviceNode(libhal_volume_get_device_file(halVolume));
medium->setClearDeviceUdi(clearUdiString);
medium->setMountPoint(libhal_volume_get_mount_point(halClearVolume));
medium->setFsType(libhal_volume_get_fstype(halClearVolume));
medium->setMounted(libhal_volume_is_mounted(halClearVolume));
}
else
medium->mountableState(
libhal_volume_get_device_file(halVolume), /* Device node */
TQString::null,
TQString::null, /* Mount point */
TQString::null, /* Filesystem type */
false ); /* Mounted ? */
{
medium->setMountable(true);
medium->setDeviceNode(libhal_volume_get_device_file(halVolume));
medium->setClearDeviceUdi(TQString::null);
medium->setMountPoint(TQString::null);
medium->setFsType(TQString::null);
medium->setMounted(false);
}
}
else
{
kdDebug(1219) << "HALBackend::setVolumeProperties : normal volume" << endl;
medium->mountableState(
libhal_volume_get_device_file(halVolume), /* Device node */
TQString::fromUtf8(libhal_volume_get_mount_point(halVolume)), /* Mount point */
libhal_volume_get_fstype(halVolume), /* Filesystem type */
libhal_volume_is_mounted(halVolume) ); /* Mounted ? */
medium->setMountable(true);
medium->setDeviceNode(libhal_volume_get_device_file(halVolume));
medium->setMountPoint(TQString::fromUtf8(libhal_volume_get_mount_point(halVolume)));
medium->setFsType(libhal_volume_get_fstype(halVolume));
medium->setMounted(libhal_volume_is_mounted(halVolume));
}
@ -570,7 +574,8 @@ void HALBackend::setVolumeProperties(Medium* medium)
if (libhal_volume_disc_is_blank(halVolume))
{
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
}
else
{
@ -584,7 +589,8 @@ void HALBackend::setVolumeProperties(Medium* medium)
if (libhal_volume_disc_is_blank(halVolume))
{
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
}
else
{
@ -609,7 +615,8 @@ void HALBackend::setVolumeProperties(Medium* medium)
if (libhal_volume_disc_has_audio(halVolume) && !libhal_volume_disc_has_data(halVolume))
{
mimeType = "media/audiocd";
medium->unmountableState( "audiocd:/?device=" + TQString(libhal_volume_get_device_file(halVolume)) );
medium->setMountable(false);
medium->setBaseURL("audiocd:/?device=" + TQString(libhal_volume_get_device_file(halVolume)));
}
medium->setIconName(TQString::null);
@ -653,12 +660,14 @@ void HALBackend::setVolumeProperties(Medium* medium)
case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER:
{
medium->setIconName("ipod" + MOUNTED_ICON_SUFFIX);
medium->setMountable(false);
if (libhal_device_get_property_QString(m_halContext, driveUdi.latin1(), "info.product") == "iPod" &&
KProtocolInfo::isKnownProtocol( TQString("ipod") ) )
KProtocolInfo::isKnownProtocol( TQString("ipod") ) )
{
medium->unmountableState( "ipod:/" );
medium->mountableState( libhal_volume_is_mounted(halVolume) );
medium->setBaseURL("ipod:/");
medium->setMountable(true);
medium->setMounted(libhal_volume_is_mounted(halVolume));
}
break;
}
@ -723,11 +732,11 @@ bool HALBackend::setFstabProperties( Medium *medium )
if ( fstype.isNull() )
fstype = "auto";
medium->mountableState(
medium->deviceNode(),
mp, /* Mount point */
fstype, /* Filesystem type */
mounted ); /* Mounted ? */
medium->setMountable(true);
medium->setDeviceNode(medium->deviceNode());
medium->setMountPoint(mp);
medium->setFsType(fstype);
medium->setMounted(mounted);
return true;
}
@ -768,7 +777,11 @@ bool HALBackend::setFloppyProperties(Medium* medium)
medium->setLabel(i18n("Unknown Drive"));
// HAL hates floppies - so we have to do it twice ;(
medium->mountableState(libhal_drive_get_device_file(halDrive), TQString::null, TQString::null, false);
medium->setMountable(true);
medium->setDeviceNode(libhal_drive_get_device_file(halDrive));
medium->setMountPoint(TQString::null);
medium->setFsType(TQString::null);
medium->setMounted(false);
setFloppyMountState(medium);
if (drive_type == "floppy")
@ -813,7 +826,11 @@ void HALBackend::setFloppyMountState( Medium *medium )
{
fstype = (*it)->mountType().isNull() ? (*it)->mountType() : "auto";
mountpoint = (*it)->mountPoint();
medium->mountableState( medium->deviceNode(), mountpoint, fstype, true );
medium->setMountable(true);
medium->setDeviceNode(medium->deviceNode());
medium->setMountPoint(mountpoint);
medium->setFsType(fstype);
medium->setMounted(true);
return;
}
}
@ -847,7 +864,8 @@ void HALBackend::setCameraProperties(Medium* medium)
libhal_free_string(cam);
/** @todo find the rest of this URL */
medium->unmountableState(device);
medium->setMountable(false);
medium->setBaseURL(device);
medium->setMimeType("media/gphoto2camera");
medium->setIconName(TQString::null);
if (libhal_device_property_exists(m_halContext, udi, "usb_device.product", NULL))
@ -1605,7 +1623,6 @@ TQStringVariantMap HALBackend::mount(const Medium *medium)
return result;
}
medium->setHalMounted(true);
ResetProperties(medium->id().latin1());
result["result"] = true;
@ -1812,7 +1829,6 @@ TQStringVariantMap HALBackend::unmount(const TQString &id)
dbus_message_unref (reply);
}
medium->setHalMounted(false);
ResetProperties(medium->id().latin1());
while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ;

@ -128,42 +128,42 @@ bool MediaList::changeMediumState(const Medium &medium, bool allowNotification)
{
kdDebug(1219) << "MediaList::changeMediumState(const Medium &) for id " << medium.id() << endl;
if ( !m_idMap.contains(medium.id()) ) return false;
if (!m_idMap.contains(medium.id())) return false;
Medium *m = m_idMap[medium.id()];
if ( medium.isMountable() )
m->setMountable(medium.isMountable());
if (medium.isMountable())
{
TQString device_node = medium.deviceNode();
TQString clear_device_udi = medium.clearDeviceUdi();
TQString mount_point = medium.mountPoint();
TQString fs_type = medium.fsType();
bool mounted = medium.isMounted();
m->mountableState( device_node, clear_device_udi, mount_point, fs_type, mounted );
m->setMountable(true);
m->setDeviceNode(medium.deviceNode());
m->setClearDeviceUdi(medium.clearDeviceUdi());
m->setMountPoint(medium.mountPoint());
m->setFsType(medium.fsType());
m->setMounted(medium.isMounted());
}
else
{
m->unmountableState( medium.baseURL() );
m->setBaseURL(medium.baseURL());
}
if (!medium.mimeType().isEmpty())
{
m->setMimeType( medium.mimeType() );
m->setMimeType(medium.mimeType());
}
if (!medium.iconName().isEmpty())
{
m->setIconName( medium.iconName() );
m->setIconName(medium.iconName());
}
if (!medium.label().isEmpty())
{
m->setLabel( medium.label() );
m->setLabel(medium.label());
}
m->setHidden(medium.hidden());
m->setSoftHidden(medium.softHidden());
emit mediumStateChanged(m->id(), m->name(), !m->needMounting(), allowNotification);
return true;
@ -184,7 +184,8 @@ bool MediaList::changeMediumState(const TQString &id,
Medium *medium = m_idMap[id];
medium->unmountableState( baseURL );
medium->setMountable(false);
medium->setBaseURL(baseURL);
if (!mimeType.isEmpty())
{
@ -225,7 +226,11 @@ bool MediaList::changeMediumState(const TQString &id,
Medium *medium = m_idMap[id];
medium->mountableState( deviceNode, mountPoint, fsType, mounted );
medium->setMountable(true);
medium->setDeviceNode(deviceNode);
medium->setMountPoint(mountPoint);
medium->setFsType(fsType);
medium->setMounted(mounted);
if (!mimeType.isEmpty())
{
@ -262,7 +267,12 @@ bool MediaList::changeMediumState(const TQString &id, bool mounted,
Medium *medium = m_idMap[id];
if ( !medium->mountableState( mounted ) ) return false;
medium->setMountable(true);
medium->setMounted(mounted);
if (medium->deviceNode().isEmpty() || !medium->isMountable())
{
return false;
}
if (!mimeType.isEmpty())
{

@ -63,8 +63,11 @@ bool RemovableBackend::plug(const TQString &devNode, const TQString &label)
if (!m_removableIds.contains(id))
{
Medium *medium = new Medium(id, id, name);
medium->mountableState(devNode, TQString::null,
TQString::null, false);
medium->setMountable(true);
medium->setDeviceNode(devNode);
medium->setMountPoint(TQString::null);
medium->setFsType(TQString::null);
medium->setMounted(false);
TQStringList words = TQStringList::split(" ", label);

@ -465,8 +465,11 @@ void TDEBackend::setVolumeProperties(Medium* medium)
medium->setEncrypted(false);
}
// USAGE: mountableState(Device node, Mount point, Filesystem type, Mounted ?)
medium->mountableState(sdevice->deviceNode(), sdevice->mountPath(), sdevice->fileSystemName(), !sdevice->mountPath().isNull());
medium->setMountable(true);
medium->setDeviceNode(sdevice->deviceNode());
medium->setMountPoint(sdevice->mountPath());
medium->setFsType(sdevice->fileSystemName());
medium->setMounted(!sdevice->mountPath().isEmpty());
TQString diskLabel = sdevice->diskLabel();
bool useDefaultLabel = diskLabel.isNull();
@ -515,7 +518,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/cdrom" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank CD-ROM");
}
}
@ -524,7 +528,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/cd-r" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank CD-R");
}
}
@ -533,7 +538,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/cd-rw" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank CD-RW");
}
}
@ -542,7 +548,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/cd-rw" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Magneto-Optical CD");
}
}
@ -551,7 +558,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/cd-rw" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Mount Ranier CD-RW");
}
}
@ -560,7 +568,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/cd-rw" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankcd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Mount Ranier CD-RW-W");
}
}
@ -569,7 +578,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank DVD-ROM");
}
}
@ -578,7 +588,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank DVD-RAM");
}
}
@ -587,7 +598,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank DVD-R");
}
}
@ -596,7 +608,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank DVD-RW");
}
}
@ -605,7 +618,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Dual Layer DVD-R");
}
}
@ -614,7 +628,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Dual Layer DVD-RW");
}
}
@ -623,7 +638,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank DVD+R");
}
}
@ -632,7 +648,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank DVD+RW");
}
}
@ -641,7 +658,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Dual Layer DVD+R");
}
}
@ -650,7 +668,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankdvd";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank Dual Layer DVD+RW");
}
}
@ -659,7 +678,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankbluray";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank BLURAY-ROM");
}
}
@ -668,7 +688,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankbluray";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank BLURAY-R");
}
}
@ -677,7 +698,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankbluray";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank BLURAY-RW");
}
}
@ -686,7 +708,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankbluray";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank HDDVD-ROM");
}
}
@ -695,7 +718,8 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankbluray";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank HDDVD-R");
}
}
@ -704,14 +728,16 @@ void TDEBackend::setVolumeProperties(Medium* medium)
mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX;
if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) {
mimeType = "media/blankbluray";
medium->unmountableState("");
medium->setMountable(false);
medium->setBaseURL(TQString::null);
diskLabel = i18n("Blank HDDVD-RW");
}
}
if (sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio)) {
mimeType = "media/audiocd";
medium->unmountableState("audiocd:/?device=" + sdevice->deviceNode());
medium->setMountable(false);
medium->setBaseURL("audiocd:/?device=" + sdevice->deviceNode());
diskLabel = i18n("Audio CD");
}
@ -759,9 +785,11 @@ void TDEBackend::setVolumeProperties(Medium* medium)
}
if (sdevice->isDiskOfType(TDEDiskDeviceType::MediaDevice)) {
medium->setIconName("ipod" + MOUNTED_ICON_SUFFIX);
if (sdevice->vendorModel().upper().contains("IPOD") && KProtocolInfo::isKnownProtocol( TQString("ipod") ) ) {
medium->unmountableState( "ipod:/" );
medium->mountableState(!sdevice->mountPath().isNull());
medium->setMountable(false);
if (sdevice->vendorModel().upper().contains("IPOD") && KProtocolInfo::isKnownProtocol(TQString("ipod"))) {
medium->setBaseURL("ipod:/");
medium->setMountable(true);
medium->setMounted(!sdevice->mountPath().isEmpty());
}
}
if (sdevice->isDiskOfType(TDEDiskDeviceType::Tape)) {
@ -801,15 +829,22 @@ bool TDEBackend::setFloppyProperties(Medium* medium)
medium->setEncrypted(false);
}
// USAGE: mountableState(Device node, Mount point, Filesystem type, Mounted ?)
medium->mountableState(sdevice->deviceNode(), sdevice->mountPath(), sdevice->fileSystemName(), !sdevice->mountPath().isNull());
medium->setMountable(true);
medium->setDeviceNode(sdevice->deviceNode());
medium->setMountPoint(sdevice->mountPath());
medium->setFsType(sdevice->fileSystemName());
medium->setMounted(!sdevice->mountPath().isEmpty());
}
if (sdevice->isDiskOfType(TDEDiskDeviceType::Floppy)) {
setFloppyMountState(medium);
// We don't use the routine above as floppy disks are extremely slow (we don't want them accessed at all during media listing)
medium->mountableState(sdevice->deviceNode(), sdevice->mountPath(), sdevice->fileSystemName(), !sdevice->mountPath().isNull());
medium->setMountable(true);
medium->setDeviceNode(sdevice->deviceNode());
medium->setMountPoint(sdevice->mountPath());
medium->setFsType(sdevice->fileSystemName());
medium->setMounted(!sdevice->mountPath().isEmpty());
if (sdevice->mountPath().isNull()) {
medium->setMimeType("media/floppy_unmounted");
@ -866,7 +901,8 @@ void TDEBackend::setCameraProperties(Medium* medium)
device.sprintf("camera://@[usb:%s,%s]/", devNode0.ascii(), devNode1.ascii());
}
medium->unmountableState(device);
medium->setMountable(false);
medium->setBaseURL(device);
medium->setMimeType("media/gphoto2camera");
medium->setIconName(TQString::null);
@ -890,7 +926,11 @@ void TDEBackend::setFloppyMountState( Medium *medium )
if ((*it)->mountedFrom() == medium->deviceNode() ) {
fstype = (*it)->mountType().isNull() ? (*it)->mountType() : "auto";
mountpoint = (*it)->mountPoint();
medium->mountableState( medium->deviceNode(), mountpoint, fstype, true );
medium->setMountable(true);
medium->setDeviceNode(medium->deviceNode());
medium->setMountPoint(mountpoint);
medium->setFsType(fstype);
medium->setMounted(true);
return;
}
}

Loading…
Cancel
Save