diff options
Diffstat (limited to 'tdeioslave/media')
4 files changed, 86 insertions, 45 deletions
diff --git a/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg b/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg index 2994680cd..32725c1bb 100644 --- a/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg +++ b/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg @@ -24,5 +24,10 @@ <whatsthis>Allows TDE to autostart application after a medium mount if it contains an Autostart or an Autoopen file.</whatsthis> <default>true</default> </entry> + <entry name="NotificationPopupsEnabled" type="Bool"> + <label>Enable notification popups</label> + <whatsthis>Deselect this if you do not want action request popups to be generated when devices are plugged in.</whatsthis> + <default>true</default> + </entry> </group> </kcfg> diff --git a/tdeioslave/media/mediamanager/halbackend.cpp b/tdeioslave/media/mediamanager/halbackend.cpp index 05cdae425..80d443392 100644 --- a/tdeioslave/media/mediamanager/halbackend.cpp +++ b/tdeioslave/media/mediamanager/halbackend.cpp @@ -48,6 +48,10 @@ (medium->isMounted() ? TQString("_mount") : TQString("_unmount")) + \ (medium->isEncrypted() ? (halClearVolume ? "_decrypt" : "_encrypt") : "" ) \ ) +#define MOUNTED_ICON_SUFFIX ( \ + (medium->isMounted() ? TQString("-mounted") : TQString("")) + \ + (medium->isEncrypted() ? (halClearVolume ? "-decrypted" : "-encrypted") : "" ) \ + ) /* Static instance of this class, for static HAL callbacks */ static HALBackend* s_HALBackend; @@ -616,16 +620,16 @@ void HALBackend::setVolumeProperties(Medium* medium) medium->needMounting(); switch (libhal_drive_get_type(halDrive)) { case LIBHAL_DRIVE_TYPE_COMPACT_FLASH: - medium->setIconName("compact_flash" + MOUNT_ICON_SUFFIX); + medium->setIconName("media-flash-compact_flash" + MOUNTED_ICON_SUFFIX); break; case LIBHAL_DRIVE_TYPE_MEMORY_STICK: - medium->setIconName("memory_stick" + MOUNT_ICON_SUFFIX); + medium->setIconName("media-flash-memory_stick" + MOUNTED_ICON_SUFFIX); break; case LIBHAL_DRIVE_TYPE_SMART_MEDIA: - medium->setIconName("smart_media" + MOUNT_ICON_SUFFIX); + medium->setIconName("media-flash-smart_media" + MOUNTED_ICON_SUFFIX); break; case LIBHAL_DRIVE_TYPE_SD_MMC: - medium->setIconName("sd_mmc" + MOUNT_ICON_SUFFIX); + medium->setIconName("media-flash-sd_mmc" + MOUNTED_ICON_SUFFIX); break; case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER: { @@ -654,7 +658,7 @@ void HALBackend::setVolumeProperties(Medium* medium) break; } case LIBHAL_DRIVE_TYPE_TAPE: - medium->setIconName(TQString::null); //FIXME need icon + medium->setIconName("media-tape" + MOUNTED_ICON_SUFFIX); break; default: medium->setIconName(TQString::null); @@ -1035,9 +1039,9 @@ TQStringList HALBackend::mountoptions(const TQString &name) if (valids.contains("shortname")) { TQString svalue = config.readEntry("shortname", "lower").lower(); - if (svalue == "winnt") + if (svalue == "windows nt") result << "shortname=winnt"; - else if (svalue == "win95") + else if (svalue == "windows 95") result << "shortname=win95"; else if (svalue == "mixed") result << "shortname=mixed"; diff --git a/tdeioslave/media/mediamanager/tdehardwarebackend.cpp b/tdeioslave/media/mediamanager/tdehardwarebackend.cpp index a7cbb2260..4746f48cc 100644 --- a/tdeioslave/media/mediamanager/tdehardwarebackend.cpp +++ b/tdeioslave/media/mediamanager/tdehardwarebackend.cpp @@ -45,6 +45,10 @@ (medium->isMounted() ? TQString("_mount") : TQString("_unmount")) + \ (medium->isEncrypted() ? (sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt) ? "_decrypt" : "_encrypt") : "" ) \ ) +#define MOUNTED_ICON_SUFFIX ( \ + (medium->isMounted() ? TQString("-mounted") : TQString("")) + \ + (medium->isEncrypted() ? (sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt) ? "-decrypted" : "-encrypted") : "" ) \ + ) #define CHECK_FOR_AND_EXECUTE_AUTOMOUNT(udi, medium, allowNotification) { \ TQMap<TQString,TQString> options = MediaManagerUtils::splitOptions(mountoptions(udi)); \ @@ -146,6 +150,14 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) allowNotification = false; } + // Check if user wants the full popup to be suppressed + bool allowDialogNotification = allowNotification; + TDEConfig config("mediamanagerrc"); + config.setGroup("Global"); + if (!config.readBoolEntry("NotificationPopupsEnabled", false)) { + allowDialogNotification = false; + } + // Add volume block devices if (sdevice->isDiskOfType(TDEDiskDeviceType::HDD)) { /* We only list volumes that... @@ -163,7 +175,8 @@ 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 */ - else if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice)) { + else if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice) + || (sdevice->fileSystemUsage().upper() == "RAID")) { // } else { @@ -190,7 +203,7 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) } // Insert medium into list - m_mediaList.addMedium(medium, allowNotification); + m_mediaList.addMedium(medium, allowDialogNotification); kdDebug(1219) << "TDEBackend::AddDevice inserted hard medium for " << sdevice->uniqueID() << endl; @@ -233,7 +246,7 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) setVolumeProperties(medium); // Insert medium into list - m_mediaList.addMedium(medium, allowNotification); + m_mediaList.addMedium(medium, allowDialogNotification); kdDebug(1219) << "TDEBackend::AddDevice inserted optical medium for " << sdevice->uniqueID() << endl; @@ -248,6 +261,7 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) ) { if ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable)) && (!(sdevice->checkDiskStatus(TDEDiskDeviceStatus::Inserted)))) { allowNotification = false; + allowDialogNotification = false; } /* We only list volumes that... @@ -278,7 +292,7 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) } } - m_mediaList.addMedium(medium, allowNotification); + m_mediaList.addMedium(medium, allowDialogNotification); kdDebug(1219) << "TDEBackend::AddDevice inserted floppy medium for " << sdevice->uniqueID() << endl; @@ -294,7 +308,7 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) // Create medium Medium* medium = new Medium(sdevice->uniqueID(), driveUDIFromDeviceUID(sdevice->uniqueID()), ""); setCameraProperties(medium); - m_mediaList.addMedium(medium, allowNotification); + m_mediaList.addMedium(medium, allowDialogNotification); kdDebug(1219) << "TDEBackend::AddDevice inserted camera medium for " << sdevice->uniqueID() << endl; @@ -728,43 +742,40 @@ void TDEBackend::setVolumeProperties(Medium* medium) diskLabel = i18n("%1 Fixed Disk (%2)").arg(sdevice->deviceFriendlySize(), sdevice->deviceNode()); } - if (sdevice->isDiskOfType(TDEDiskDeviceType::USB)) { + if (sdevice->isDiskOfType(TDEDiskDeviceType::USB) + || sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable) + || sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hotpluggable)) { mimeType = "media/removable" + MOUNT_SUFFIX; if (useDefaultLabel) { diskLabel = i18n("%1 Removable Device").arg(sdevice->deviceFriendlySize()); } + } - medium->needMounting(); - - if (sdevice->isDiskOfType(TDEDiskDeviceType::CompactFlash)) { - medium->setIconName("compact_flash" + MOUNT_ICON_SUFFIX); - } - if (sdevice->isDiskOfType(TDEDiskDeviceType::MemoryStick)) { - medium->setIconName("memory_stick" + MOUNT_ICON_SUFFIX); - } - if (sdevice->isDiskOfType(TDEDiskDeviceType::SmartMedia)) { - medium->setIconName("smart_media" + MOUNT_ICON_SUFFIX); - } - if (sdevice->isDiskOfType(TDEDiskDeviceType::SDMMC)) { - medium->setIconName("sd_mmc" + MOUNT_ICON_SUFFIX); - } - if (sdevice->isDiskOfType(TDEDiskDeviceType::MediaDevice)) { - medium->setIconName("ipod" + MOUNT_ICON_SUFFIX); - - if (sdevice->vendorModel().upper().contains("IPOD") && KProtocolInfo::isKnownProtocol( TQString("ipod") ) ) - { - medium->unmountableState( "ipod:/" ); - medium->mountableState(!sdevice->mountPath().isNull()); - } - } - if (sdevice->isDiskOfType(TDEDiskDeviceType::Tape)) { - medium->setIconName("magnetic_tape" + MOUNT_ICON_SUFFIX); - } - if (medium->isMounted() && TQFile::exists(medium->mountPoint() + "/dcim")) - { - mimeType = "media/camera" + MOUNT_SUFFIX; + if (sdevice->isDiskOfType(TDEDiskDeviceType::CompactFlash)) { + medium->setIconName("media-flash-compact_flash" + MOUNTED_ICON_SUFFIX); + } + if (sdevice->isDiskOfType(TDEDiskDeviceType::MemoryStick)) { + medium->setIconName("media-flash-memory_stick" + MOUNTED_ICON_SUFFIX); + } + if (sdevice->isDiskOfType(TDEDiskDeviceType::SmartMedia)) { + medium->setIconName("media-flash-smart_media" + MOUNTED_ICON_SUFFIX); + } + if (sdevice->isDiskOfType(TDEDiskDeviceType::SDMMC)) { + medium->setIconName("media-flash-sd_mmc" + MOUNTED_ICON_SUFFIX); + } + if (sdevice->isDiskOfType(TDEDiskDeviceType::MediaDevice)) { + medium->setIconName("ipod" + MOUNT_ICON_SUFFIX); + if (sdevice->vendorModel().upper().contains("IPOD") && KProtocolInfo::isKnownProtocol( TQString("ipod") ) ) { + medium->unmountableState( "ipod:/" ); + medium->mountableState(!sdevice->mountPath().isNull()); } } + if (sdevice->isDiskOfType(TDEDiskDeviceType::Tape)) { + medium->setIconName("media-tape" + MOUNTED_ICON_SUFFIX); + } + if (medium->isMounted() && TQFile::exists(medium->mountPoint() + "/dcim")) { + mimeType = "media/camera" + MOUNT_SUFFIX; + } } if (!medium->needMounting()) { @@ -1040,16 +1051,17 @@ TQStringList TDEBackend::mountoptions(const TQString &name) if (valids.contains("shortname")) { TQString svalue = config.readEntry("shortname", "lower").lower(); - if (svalue == "winnt") { + // If the user choose 'default', no shortname is added to the mount option list + if (svalue == "windows nt") { result << "shortname=winnt"; } - else if (svalue == "win95") { + else if (svalue == "windows 95") { result << "shortname=win95"; } else if (svalue == "mixed") { result << "shortname=mixed"; } - else { + else if (svalue == "lower"){ result << "shortname=lower"; } } diff --git a/tdeioslave/media/tdecmodule/managermoduleview.ui b/tdeioslave/media/tdecmodule/managermoduleview.ui index 982da7d80..febef70f7 100644 --- a/tdeioslave/media/tdecmodule/managermoduleview.ui +++ b/tdeioslave/media/tdecmodule/managermoduleview.ui @@ -52,6 +52,17 @@ <string>Select this if you want to enable application autostart after mounting a device.</string> </property> </widget> + <widget class="TQCheckBox"> + <property name="name"> + <cstring>kcfg_NotificationPopupsEnabled</cstring> + </property> + <property name="text"> + <string>Enable notification popups</string> + </property> + <property name="whatsThis" stdset="0"> + <string>Deselect this if you do not want action request popups to be generated when devices are plugged in.</string> + </property> + </widget> <widget class="TQGroupBox"> <property name="name"> <cstring>groupbox_mount</cstring> @@ -184,6 +195,9 @@ Some of the options are tristate. Leave them "undefined" to let TDE choose the b <property name="whatsThis" stdset="0"> <string><h2>Defines the behaviour for creation and display of filenames which fit into 8.3 characters. If a long name for a file exists, it will always be preferred display.</h2> +<h3><b>Default</b></h3> +Do not force a short name option at all. + <h3><b>Lower</b></h3> Force the short name to lower case upon display; store a long name when the short name is not all upper case. @@ -246,6 +260,11 @@ Display the short name as is; store a long name when the short name is not all u <widget class="TQComboBox" row="1" column="1"> <item> <property name="text"> + <string>Default</string> + </property> + </item> + <item> + <property name="text"> <string>Lower</string> </property> </item> @@ -330,6 +349,7 @@ Display the short name as is; store a long name when the short name is not all u <tabstop>kcfg_HalBackendEnabled</tabstop> <tabstop>kcfg_CdPollingEnabled</tabstop> <tabstop>kcfg_AutostartEnabled</tabstop> + <tabstop>kcfg_NotificationPopupsEnabled</tabstop> <tabstop>option_automount</tabstop> <tabstop>option_ro</tabstop> <tabstop>option_quiet</tabstop> |