diff options
Diffstat (limited to 'tdeioslave/media/mediamanager/medialist.cpp')
-rw-r--r-- | tdeioslave/media/mediamanager/medialist.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tdeioslave/media/mediamanager/medialist.cpp b/tdeioslave/media/mediamanager/medialist.cpp index d9c4f0eb3..fa7aef5f5 100644 --- a/tdeioslave/media/mediamanager/medialist.cpp +++ b/tdeioslave/media/mediamanager/medialist.cpp @@ -52,6 +52,15 @@ const Medium *MediaList::findByName(const TQString &name) const return m_nameMap[name]; } +const Medium *MediaList::findByNode(const TQString &node) const +{ + kdDebug(1219) << "MediaList::findByNode(" << node << ")" << endl; + + if ( !m_nodeMap.contains(node) ) return 0L; + + return m_nodeMap[node]; +} + const Medium *MediaList::findByClearUdi(const TQString &name) { kdDebug(1219) << "MediaList::findByClearUdi(" << name << ")" << endl; @@ -64,7 +73,6 @@ const Medium *MediaList::findByClearUdi(const TQString &name) return 0L; } - TQString MediaList::addMedium(Medium *medium, bool allowNotification) { kdDebug(1219) << "MediaList::addMedium(@" << medium->id() << ")" << endl; @@ -75,6 +83,12 @@ TQString MediaList::addMedium(Medium *medium, bool allowNotification) m_nameMap[name] = medium; } + TQString node = medium->deviceNode(); + if (!m_nodeMap.contains(node)) + { + m_nodeMap[node] = medium; + } + TQString id = medium->id(); if (m_idMap.contains(id)) { @@ -101,6 +115,7 @@ bool MediaList::removeMedium(const TQString &id, bool allowNotification) Medium *medium = m_idMap[id]; m_idMap.remove(id); m_nameMap.remove(medium->name()); + m_nodeMap.remove(medium->deviceNode()); TQString name = medium->name(); m_media.remove(medium); |