summaryrefslogtreecommitdiffstats
path: root/tdeioslave/media
diff options
context:
space:
mode:
Diffstat (limited to 'tdeioslave/media')
-rw-r--r--tdeioslave/media/libmediacommon/mediamanagersettings.kcfg5
-rw-r--r--tdeioslave/media/mediamanager/halbackend.cpp18
-rw-r--r--tdeioslave/media/mediamanager/tdehardwarebackend.cpp88
-rw-r--r--tdeioslave/media/tdecmodule/managermoduleview.ui20
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>&lt;h2&gt;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.&lt;/h2&gt;
+&lt;h3&gt;&lt;b&gt;Default&lt;/b&gt;&lt;/h3&gt;
+Do not force a short name option at all.
+
&lt;h3&gt;&lt;b&gt;Lower&lt;/b&gt;&lt;/h3&gt;
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>