/* This file is part of the KDE Project Copyright (c) 2004 Kévin Ottens This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License version 2 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "medium.h" #include #include 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 m_properties += "false"; // LOCKED } Medium::Medium(const TQString id, TQString uuid, const TQString name) { 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() { initMedium(); } const Medium Medium::create(const TQStringList &properties) { Medium m; 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]; m.m_properties[FS_TYPE] = properties[FS_TYPE]; m.m_properties[MOUNTED] = properties[MOUNTED]; m.m_properties[BASE_URL] = properties[BASE_URL]; m.m_properties[MIME_TYPE] = properties[MIME_TYPE]; m.m_properties[ICON_NAME] = properties[ICON_NAME]; 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]; m.m_properties[LOCKED] = properties[LOCKED]; } return m; } Medium::MList Medium::createList(const TQStringList &properties) { MList l; if (properties.size() % (PROPERTIES_COUNT+1) == 0) { int media_count = properties.size() / (PROPERTIES_COUNT + 1); TQStringList props = properties; for (int i=0; i < media_count; i++) { const Medium m = create(props); l.append(m); TQStringList::iterator first = props.begin(); TQStringList::iterator last = props.find(SEPARATOR); ++last; props.erase(first, last); } } return l; } void Medium::setName(const TQString &name) { m_properties[NAME] = name; } void Medium::setLabel(const TQString &label) { m_properties[LABEL] = label; } void Medium::setUserLabel(const TQString &label) { TDEConfig cfg("mediamanagerrc"); cfg.setGroup("UserLabels"); TQString entry_name = m_properties[UUID]; if (!entry_name.isEmpty()) { if (label.isEmpty()) { cfg.deleteEntry(entry_name); } else { cfg.writeEntry(entry_name, label); } } m_properties[USER_LABEL] = label; } void Medium::loadUserLabel() { TDEConfig cfg("mediamanagerrc"); cfg.setGroup("UserLabels"); TQString entry_name = m_properties[UUID]; if (!entry_name.isEmpty()) { m_properties[USER_LABEL] = cfg.readEntry(entry_name, TQString::null); } else { m_properties[USER_LABEL] = TQString::null; } } void Medium::setMountable(bool mountable) { m_properties[MOUNTABLE] = mountable ? "true" : "false"; if (!mountable) { setMountPoint(TQString::null); setMounted(false); } } void Medium::setDeviceNode(const TQString &deviceNode) { m_properties[DEVICE_NODE] = deviceNode; } void Medium::setMountPoint(const TQString &mountPoint) { if (isMountable()) { m_properties[MOUNT_POINT] = mountPoint; } else { m_properties[MOUNT_POINT] = TQString::null; } } void Medium::setFsType(const TQString &fsType) { m_properties[FS_TYPE] = fsType; } void Medium::setMounted(bool mounted) { if (isMountable()) { m_properties[MOUNTED] = mounted ? "true" : "false"; } else { m_properties[MOUNTED] = "false"; } } void Medium::setBaseURL(const TQString &baseURL) { m_properties[BASE_URL] = baseURL; } void Medium::setMimeType(const TQString &mimeType) { m_properties[MIME_TYPE] = mimeType; } void Medium::setIconName(const TQString &iconName) { m_properties[ICON_NAME] = iconName; } void Medium::setEncrypted(bool encrypted) { m_properties[ENCRYPTED] = encrypted ? "true" : "false"; if (!encrypted) { setLocked(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"; } void Medium::setLocked(bool locked) { m_properties[LOCKED] = locked ? "true" : "false"; } KURL Medium::prettyBaseURL() const { if (!baseURL().isEmpty()) { return baseURL(); } return KURL(mountPoint()); } TQString Medium::prettyLabel() const { if (!userLabel().isEmpty()) { return userLabel(); } return label(); }