diff options
Diffstat (limited to 'tdeioslave/media')
134 files changed, 1620 insertions, 6697 deletions
diff --git a/tdeioslave/media/CMakeLists.txt b/tdeioslave/media/CMakeLists.txt index 0746d259c..cfb1c7eb8 100644 --- a/tdeioslave/media/CMakeLists.txt +++ b/tdeioslave/media/CMakeLists.txt @@ -35,7 +35,11 @@ link_directories( ##### other data ################################ -install( FILES media.protocol DESTINATION ${SERVICES_INSTALL_DIR} ) +tde_create_translated_desktop( + SOURCE media.protocol + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR tdeioslave-desktops +) ##### tdeiomedia (static) ######################### diff --git a/tdeioslave/media/Makefile.am b/tdeioslave/media/Makefile.am index a5551fb2e..2ce7900b4 100644 --- a/tdeioslave/media/Makefile.am +++ b/tdeioslave/media/Makefile.am @@ -1,7 +1,3 @@ -if include_media_halbackend -PROPSDLGPLUGINDIR = propsdlgplugin -endif - SUBDIRS = libmediacommon . mediamanager medianotifier mounthelper \ tdefile-plugin tdecmodule mimetypes services $(PROPSDLGPLUGINDIR) diff --git a/tdeioslave/media/configure.in.in b/tdeioslave/media/configure.in.in index 413848b64..a6718eb16 100644 --- a/tdeioslave/media/configure.in.in +++ b/tdeioslave/media/configure.in.in @@ -6,179 +6,3 @@ AC_CHECK_HEADER(linux/cdrom.h, LINUXCDPOLLING=yes AC_SUBST(LINUXCDPOLLING) ]) - - -AC_ARG_WITH(hal,AC_HELP_STRING([--with-hal],[Enable HAL support [default=check]]),[hal_test="$withval"],[hal_test="yes"]) - -if test "x$hal_test" = "xyes" ; then - -########### Check for the HAL - AC_MSG_CHECKING(for the HAL) - - hal_inc=NOTFOUND - hal_lib=NOTFOUND - hal=NOTFOUND - - search_incs="$kde_includes $kde_extra_includes /usr/include /usr/include/hal /usr/local/include /usr/local/include/hal" - AC_FIND_FILE(libhal.h libhal-storage.h, $search_incs, hal_incdir) - - if test -r $hal_incdir/libhal.h && test -r $hal_incdir/libhal-storage.h && grep LibHalVolume $hal_incdir/libhal-storage.h > /dev/null 2>&1; then - HAL_INCS="-I$hal_incdir" - hal_inc=FOUND - fi - - search_libs="$kde_libraries $kde_extra_libs /usr/lib$tdelibsuff /usr/local/lib$tdelibsuff" - AC_FIND_FILE(libhal.so libhal-storage.so, $search_libs, hal_libdir) - - if test -r $hal_libdir/libhal.so && test -r $hal_libdir/libhal-storage.so ; then - HAL_LIBS="-L$hal_libdir -lhal -lhal-storage" - hal_lib=FOUND - fi - - if test "$hal_inc" != FOUND || test "$hal_lib" != FOUND; then - KDE_PKG_CHECK_MODULES( HAL, hal > 0.5, [ HAL_INCS=$HAL_CFLAGS; hal_inc=FOUND; hal_lib=FOUND; ] , AC_MSG_RESULT(Nothing found on PKG_CONFIG_PATH) ) - fi - - if test "$hal_inc" = FOUND && test "$hal_lib" = FOUND ; then - AC_MSG_RESULT(headers $HAL_INCS libraries $HAL_LIBS) - hal=FOUND - else - AC_MSG_RESULT(searched but not found) - fi - - - AC_SUBST(HAL_INCS) - AC_SUBST(HAL_LIBS) - - -########### Check for DBus - - AC_MSG_CHECKING(for DBus) - - dbus_inc=NOTFOUND - dbus_lib=NOTFOUND - dbus=NOTFOUND - - search_incs="$kde_includes $kde_extra_includes /usr/include /usr/include/dbus-1.0 /usr/local/include /usr/local/include/dbus-1.0" - AC_FIND_FILE(dbus/dbus.h, $search_incs, dbus_incdir) - - search_incs_arch_deps="$kde_includes $kde_extra_includes /usr/lib$tdelibsuff/dbus-1.0/include /usr/local/lib$tdelibsuff/dbus-1.0/include" - AC_FIND_FILE(dbus/dbus-arch-deps.h, $search_incs_arch_deps, dbus_incdir_arch_deps) - - if test -r $dbus_incdir/dbus/dbus.h && test -r $dbus_incdir_arch_deps/dbus/dbus-arch-deps.h ; then - DBUS_INCS="-I$dbus_incdir -I$dbus_incdir_arch_deps" - dbus_inc=FOUND - fi - - search_libs="$kde_libraries $kde_extra_libs /usr/lib$tdelibsuff /usr/local/lib$tdelibsuff" - AC_FIND_FILE(libdbus-1.so, $search_libs, dbus_libdir) - - if test -r $dbus_libdir/libdbus-1.so ; then - DBUS_LIBS="-L$dbus_libdir -ldbus-1" - dbus_lib=FOUND - fi - - if test $dbus_inc != FOUND || test $dbus_lib != FOUND ; then - KDE_PKG_CHECK_MODULES( DBUS, "dbus-1", [ DBUS_INCS=$DBUS_CFLAGS; dbus_inc=FOUND; dbus_lib=FOUND; ] , AC_MSG_RESULT( Nothing found on PKG_CONFIG_PATH ) ) - fi - - dbus_bus_var=`pkg-config --variable=system_bus_default_address dbus-1 2>/dev/null` - if test -z "$dbus_bus_var"; then - dbus_bus_var="unix:path=/var/run/dbus/system_bus_socket" - fi - AC_DEFINE_UNQUOTED(DBUS_SYSTEM_BUS, "$dbus_bus_var", [Define the unix domain path for dbus system bus]) - - if test $dbus_inc = FOUND && test $dbus_lib = FOUND ; then - AC_MSG_RESULT(headers $DBUS_INCS libraries $DBUS_LIBS) - dbus=FOUND - else - AC_MSG_RESULT(searched but not found) - fi - - AC_SUBST(DBUS_INCS) - AC_SUBST(DBUS_LIBS) - -########### Check for DBus-Qt3 bindings - - AC_MSG_CHECKING(for DBus-Qt3 bindings) - - dbusqt_inc=NOTFOUND - dbusqt_lib=NOTFOUND - dbusqt=NOTFOUND - - search_incs="$kde_includes $kde_extra_includes /usr/include /usr/include/dbus-1.0 /usr/local/include /usr/local/include/dbus-1.0" - AC_FIND_FILE(dbus/connection.h, $search_incs, dbusqt_incdir) - - if test -r $dbusqt_incdir/dbus/connection.h ; then - have_qt_patch=0 - grep dbus_connection_setup_with_qt_main $dbusqt_incdir/dbus/connection.h \ - > /dev/null 2>&1 && have_qt_patch=1 - if test $have_qt_patch = 1 ; then - DBUSTQT_INCS="-I$dbusqt_incdir" - dbusqt_inc=FOUND - fi - fi - - search_libs="$kde_libraries $kde_extra_libs /usr/lib$tdelibsuff /usr/local/lib$tdelibsuff" - AC_FIND_FILE(libdbus-qt-1.so, $search_libs, dbusqt_libdir) - - if test -r $dbusqt_libdir/libdbus-qt-1.so ; then - DBUSTQT_LIBS="-L$dbusqt_libdir -ldbus-qt-1" - dbusqt_lib=FOUND - fi - - if test $dbusqt_inc != FOUND || test $dbusqt_lib != FOUND ; then - - search_incs="`pkg-config --cflags dbus-1 |sed 's/-I//g'`" - AC_FIND_FILE(dbus/connection.h, $search_incs, dbusqt_incdir) - if test -r $dbusqt_incdir/dbus/connection.h ; then - have_qt_patch=0 - grep dbus_connection_setup_with_qt_main $dbusqt_incdir/dbus/connection.h \ - > /dev/null 2>&1 && have_qt_patch=1 - if test $have_qt_patch = 1 ; then - DBUSTQT_INCS="-I$dbusqt_incdir" - dbusqt_inc=FOUND - fi - fi - - search_libs="`pkg-config --libs dbus-1 --libs-only-L | sed 's/-L//g'`" - AC_FIND_FILE(libdbus-qt-1.so, $search_libs, dbusqt_libdir) - - if test -r $dbusqt_libdir/libdbus-qt-1.so ; then - DBUSTQT_LIBS="-L$dbusqt_libdir -ldbus-qt-1" - dbusqt_lib=FOUND - fi - - fi - - - if test $dbusqt_inc = FOUND && test $dbusqt_lib = FOUND ; then - AC_MSG_RESULT(headers $dbusqt_incdir libraries $dbusqt_libdir) - dbusqt=FOUND - else - AC_MSG_RESULT(searched but not found) - fi - - AC_SUBST(DBUSTQT_INCS) - AC_SUBST(DBUSTQT_LIBS) -fi - -########### Check if media HAL backend sould be compiled - -AC_MSG_CHECKING(if the HAL backend for media:/ should be compiled) - -HALBACKEND=no -if test "x$hal" = "xFOUND" && test "x$dbus" = "xFOUND" && test "x$dbusqt" = "xFOUND" ; then - AC_DEFINE_UNQUOTED([COMPILE_HALBACKEND],1, [media HAL backend compilation]) - HALBACKEND=yes - AC_SUBST(HALBACKEND) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AM_CONDITIONAL(include_media_linuxcdpolling, test "$LINUXCDPOLLING" = "yes") -AM_CONDITIONAL(include_media_halbackend, test "$HALBACKEND" = yes) - -AC_CHECK_FUNCS(statvfs) - diff --git a/tdeioslave/media/contrib/README b/tdeioslave/media/contrib/README index 8f6041578..4e330e073 100644 --- a/tdeioslave/media/contrib/README +++ b/tdeioslave/media/contrib/README @@ -1,11 +1,5 @@ Those scripts are an example on how to allow media:/ to use -hotplugging events if you don't use HAL. They're targeting -"Linux 2.6 + hotplug + udev" platforms, but we can surely make -something equivalent for Linux 2.4, FreeBSD... - -They are just examples, the packagers will surely develop their -own version (I'm currently using them on Debian Sid, Linux 2.6.9 -though). +hotplugging events. 1) mediamanager_usbstorage.dev This file only needs to be copied to /etc/dev.d/default diff --git a/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg b/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg index 32725c1bb..8136ecd79 100644 --- a/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg +++ b/tdeioslave/media/libmediacommon/mediamanagersettings.kcfg @@ -4,11 +4,6 @@ <kcfg> <kcfgfile name="mediamanagerrc"/> <group name="Global"> - <entry name="HalBackendEnabled" type="Bool"> - <label>Enable HAL backend</label> - <whatsthis>When HAL (Hardware Abstraction Layer) support is enabled, TDE will use it to gather information on the storage media available in your system.</whatsthis> - <default>true</default> - </entry> <entry name="TdeHardwareBackendEnabled" type="Bool"> <label>Enable TDE hardware library backend</label> <whatsthis>When TDE hardware library support is enabled, TDE will use it to gather information on the storage media available in your system.</whatsthis> @@ -25,8 +20,13 @@ <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> + <label>Enable notification dialogs popups</label> + <whatsthis>Deselect this if you do not want action request dialog popups to be generated when devices are plugged in.</whatsthis> + <default>true</default> + </entry> + <entry name="DeviceMonitorPopupsEnabled" type="Bool"> + <label>Enable device monitor notification popups</label> + <whatsthis>Deselect this if you do not want device monitoring popups to be generated when devices are added, modified or removed.</whatsthis> <default>true</default> </entry> </group> diff --git a/tdeioslave/media/libmediacommon/medium.cpp b/tdeioslave/media/libmediacommon/medium.cpp index 77e32ba0f..797c409b4 100644 --- a/tdeioslave/media/libmediacommon/medium.cpp +++ b/tdeioslave/media/libmediacommon/medium.cpp @@ -23,68 +23,58 @@ 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) { - 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]; @@ -97,6 +87,7 @@ const Medium Medium::create(const TQStringList &properties) 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; @@ -106,13 +97,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 +117,6 @@ Medium::MList Medium::createList(const TQStringList &properties) return l; } - void Medium::setName(const TQString &name) { m_properties[NAME] = name; @@ -138,35 +127,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 +154,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 +164,52 @@ 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" ); +void Medium::setDeviceNode(const TQString &deviceNode) +{ + m_properties[DEVICE_NODE] = deviceNode; +} - return true; +void Medium::setMountPoint(const TQString &mountPoint) +{ + if (isMountable()) + { + m_properties[MOUNT_POINT] = mountPoint; + } + else + { + m_properties[MOUNT_POINT] = TQString::null; + } } -void Medium::mountableState(const TQString &deviceNode, - const TQString &mountPoint, - const TQString &fsType, bool mounted) +void Medium::setFsType(const TQString &fsType) { - 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::setMounted(bool mounted) { - m_properties[MOUNTABLE] = "true"; - m_properties[DEVICE_NODE] = deviceNode; - m_properties[CLEAR_DEVICE_UDI] = clearDeviceUdi; - m_properties[MOUNT_POINT] = mountPoint; - m_properties[FS_TYPE] = fsType; - m_properties[MOUNTED] = ( mounted ? "true" : "false" ); + if (isMountable()) + { + m_properties[MOUNTED] = mounted ? "true" : "false"; + } + else + { + m_properties[MOUNTED] = "false"; + } } -void Medium::unmountableState(const TQString &baseURL) +void Medium::setBaseURL(const TQString &baseURL) { - m_properties[MOUNTABLE] = "false"; m_properties[BASE_URL] = baseURL; } @@ -244,33 +223,51 @@ void Medium::setIconName(const TQString &iconName) m_properties[ICON_NAME] = iconName; } -bool Medium::needMounting() const +void Medium::setEncrypted(bool encrypted) +{ + m_properties[ENCRYPTED] = encrypted ? "true" : "false"; + if (!encrypted) + { + setLocked(false); + } +} + +void Medium::setClearDeviceUdi(const TQString &clearDeviceUdi) { - return isMountable() && !isMounted(); + m_properties[CLEAR_DEVICE_UDI] = clearDeviceUdi; } -bool Medium::needDecryption() const +void Medium::setHidden(bool state) { - return isEncrypted() && clearDeviceUdi().isEmpty(); + 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(); + 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(); +} diff --git a/tdeioslave/media/libmediacommon/medium.h b/tdeioslave/media/libmediacommon/medium.h index bf465fd09..3c9677c21 100644 --- a/tdeioslave/media/libmediacommon/medium.h +++ b/tdeioslave/media/libmediacommon/medium.h @@ -29,24 +29,25 @@ 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 LOCKED = 17; + static const uint PROPERTIES_COUNT = 18; static const TQString SEPARATOR; Medium(const TQString id, TQString uuid, const TQString name); @@ -60,71 +61,67 @@ 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 isLocked() const { return m_properties[LOCKED] == "true"; }; - bool needMounting() const; - bool needDecryption() const; + bool needMounting() const { return isMountable() && !isMounted(); }; + bool needUnlocking() const { return isEncrypted() && isLocked(); } KURL prettyBaseURL() const; TQString prettyLabel() const; void setName(const TQString &name); void setLabel(const TQString &label); void setUserLabel(const TQString &label); - void setEncrypted(bool state); - 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 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 setHalMounted(bool flag) const { m_halmounted = flag; } - bool halMounted() const { return m_halmounted; } + void setEncrypted(bool encrypted); + void setClearDeviceUdi(const TQString &clearDeviceUdi); + void setHidden(bool state); + void setSoftHidden(bool state); + void setLocked(bool locked); -//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 diff --git a/tdeioslave/media/libmediacommon/notifieraction.cpp b/tdeioslave/media/libmediacommon/notifieraction.cpp index 5222b9e65..8eaafcd81 100644 --- a/tdeioslave/media/libmediacommon/notifieraction.cpp +++ b/tdeioslave/media/libmediacommon/notifieraction.cpp @@ -57,8 +57,7 @@ TQPixmap NotifierAction::pixmap() const } else { - TQString path = TDEGlobal::iconLoader()->iconPath( m_iconName, -32 ); - return TQPixmap( path ); + return TDEGlobal::iconLoader()->loadIcon(m_iconName, TDEIcon::NoGroup, TDEIcon::SizeSmall); } } diff --git a/tdeioslave/media/libmediacommon/notifiersettings.cpp b/tdeioslave/media/libmediacommon/notifiersettings.cpp index 087e323bb..aaa90fefc 100644 --- a/tdeioslave/media/libmediacommon/notifiersettings.cpp +++ b/tdeioslave/media/libmediacommon/notifiersettings.cpp @@ -38,14 +38,14 @@ NotifierSettings::NotifierSettings() m_supportedMimetypes.append( "media/camera_unmounted" ); m_supportedMimetypes.append( "media/camera_mounted" ); m_supportedMimetypes.append( "media/gphoto2camera" ); + m_supportedMimetypes.append( "media/bluray_unmounted" ); + m_supportedMimetypes.append( "media/bluray_encrypted_locked" ); + m_supportedMimetypes.append( "media/bluray_encrypted_unlocked" ); + m_supportedMimetypes.append( "media/bluray_mounted" ); m_supportedMimetypes.append( "media/cdrom_unmounted" ); m_supportedMimetypes.append( "media/cdrom_encrypted_locked" ); m_supportedMimetypes.append( "media/cdrom_encrypted_unlocked" ); m_supportedMimetypes.append( "media/cdrom_mounted" ); - m_supportedMimetypes.append( "media/dvd_unmounted" ); - m_supportedMimetypes.append( "media/dvd_encrypted_locked" ); - m_supportedMimetypes.append( "media/dvd_encrypted_unlocked" ); - m_supportedMimetypes.append( "media/dvd_mounted" ); m_supportedMimetypes.append( "media/cd-r_unmounted" ); m_supportedMimetypes.append( "media/cd-r_encrypted_locked" ); m_supportedMimetypes.append( "media/cd-r_encrypted_unlocked" ); @@ -54,12 +54,18 @@ NotifierSettings::NotifierSettings() m_supportedMimetypes.append( "media/cd-rw_encrypted_locked" ); m_supportedMimetypes.append( "media/cd-rw_encrypted_unlocked" ); m_supportedMimetypes.append( "media/cd-rw_mounted" ); + m_supportedMimetypes.append( "media/dvd_unmounted" ); + m_supportedMimetypes.append( "media/dvd_encrypted_locked" ); + m_supportedMimetypes.append( "media/dvd_encrypted_unlocked" ); + m_supportedMimetypes.append( "media/dvd_mounted" ); + m_supportedMimetypes.append( "media/blankbluray" ); m_supportedMimetypes.append( "media/blankcd" ); m_supportedMimetypes.append( "media/blankdvd" ); m_supportedMimetypes.append( "media/audiocd" ); + m_supportedMimetypes.append( "media/blurayvideo" ); m_supportedMimetypes.append( "media/dvdvideo" ); - m_supportedMimetypes.append( "media/vcd" ); m_supportedMimetypes.append( "media/svcd" ); + m_supportedMimetypes.append( "media/vcd" ); reload(); } diff --git a/tdeioslave/media/mediaimpl.cpp b/tdeioslave/media/mediaimpl.cpp index b92757f90..510437072 100644 --- a/tdeioslave/media/mediaimpl.cpp +++ b/tdeioslave/media/mediaimpl.cpp @@ -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; @@ -149,7 +148,7 @@ bool MediaImpl::listMedia(TQValueList<TDEIO::UDSEntry> &list) Medium::MList::const_iterator it = media.begin(); Medium::MList::const_iterator end = media.end(); - for(; it!=end; ++it) + for(; it != end; ++it) { if (!(*it).hidden()) { entry.clear(); @@ -231,15 +230,6 @@ bool MediaImpl::ensureMediumMounted(Medium &medium) return false; } -#ifdef COMPILE_HALBACKEND - if ( medium.isEncrypted() && medium.clearDeviceUdi().isEmpty() ) - { - m_lastErrorCode = TDEIO::ERR_COULD_NOT_MOUNT; - m_lastErrorMessage = i18n("The drive is encrypted."); - return false; - } -#endif // COMPILE_HALBACKEND - if ( medium.needMounting() ) { m_lastErrorCode = 0; @@ -252,10 +242,10 @@ bool MediaImpl::ensureMediumMounted(Medium &medium) medium.deviceNode(), medium.mountPoint()); job->setAutoWarningHandlingEnabled(false); - connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ), - this, TQT_SLOT( slotMountResult( TDEIO::Job * ) ) ); - connect( job, TQT_SIGNAL( warning( TDEIO::Job *, const TQString & ) ), - this, TQT_SLOT( slotWarning( TDEIO::Job *, const TQString & ) ) ); + connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ), + this, TQ_SLOT( slotMountResult( TDEIO::Job * ) ) ); + connect( job, TQ_SIGNAL( warning( TDEIO::Job *, const TQString & ) ), + this, TQ_SLOT( slotWarning( TDEIO::Job *, const TQString & ) ) ); */ kapp->dcopClient() ->connectDCOPSignal("kded", "mediamanager", @@ -366,14 +356,19 @@ void MediaImpl::slotStatResult(TDEIO::Job *job) TDEIO::UDSEntry MediaImpl::extractUrlInfos(const KURL &url) { + if (url.isEmpty()) + { + return TDEIO::UDSEntry(); + } + m_entryBuffer.clear(); TDEIO::StatJob *job = TDEIO::stat(url, false); job->setAutoWarningHandlingEnabled( false ); - connect( job, TQT_SIGNAL( result(TDEIO::Job *) ), - this, TQT_SLOT( slotStatResult(TDEIO::Job *) ) ); - connect( job, TQT_SIGNAL( warning( TDEIO::Job *, const TQString & ) ), - this, TQT_SLOT( slotWarning( TDEIO::Job *, const TQString & ) ) ); + connect( job, TQ_SIGNAL( result(TDEIO::Job *) ), + this, TQ_SLOT( slotStatResult(TDEIO::Job *) ) ); + connect( job, TQ_SIGNAL( warning( TDEIO::Job *, const TQString & ) ), + this, TQ_SLOT( slotWarning( TDEIO::Job *, const TQString & ) ) ); tqApp->eventLoop()->enterLoop(); TDEIO::UDSEntry::iterator it = m_entryBuffer.begin(); @@ -449,7 +444,7 @@ void MediaImpl::createMediumEntry(TDEIO::UDSEntry& entry, else { KURL url = medium.prettyBaseURL(); - entry+= extractUrlInfos(url); + entry += extractUrlInfos(url); } } diff --git a/tdeioslave/media/mediaimpl.h b/tdeioslave/media/mediaimpl.h index 1080d6783..a7416f0e5 100644 --- a/tdeioslave/media/mediaimpl.h +++ b/tdeioslave/media/mediaimpl.h @@ -32,7 +32,7 @@ class MediaImpl : public TQObject, public DCOPObject { -Q_OBJECT +TQ_OBJECT K_DCOP public: MediaImpl(); diff --git a/tdeioslave/media/mediamanager/CMakeLists.txt b/tdeioslave/media/mediamanager/CMakeLists.txt index 3216bb34f..b052bff87 100644 --- a/tdeioslave/media/mediamanager/CMakeLists.txt +++ b/tdeioslave/media/mediamanager/CMakeLists.txt @@ -16,31 +16,32 @@ include_directories( ${CMAKE_BINARY_DIR} ${TDE_INCLUDE_DIR} ${TQT_INCLUDE_DIRS} - ${HAL_INCLUDE_DIRS} - ${DBUS_TQT_INCLUDE_DIRS} ) link_directories( ${TQT_LIBRARY_DIRS} - ${DBUS_TQT_LIBRARY_DIRS} ) ##### other data ################################ -install( FILES mediamanager.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded ) -install( FILES mediabackend.desktop DESTINATION ${AUTOSTART_INSTALL_DIR} ) +tde_create_translated_desktop( + SOURCE mediamanager.desktop + DESTINATION ${SERVICES_INSTALL_DIR}/kded + PO_DIR tdeioslave-desktops +) + +tde_create_translated_desktop( + SOURCE mediabackend.desktop + DESTINATION ${AUTOSTART_INSTALL_DIR} + PO_DIR tdeioslave-desktops +) ##### kded_mediamanager (module) ################ set( target kded_mediamanager ) -if( WITH_HAL ) - set( HAL_MEDIA_BACKEND halbackend.cpp linuxcdpolling.cpp ) - set( HAL_MEDIA_LIBRARIES ${HAL_LIBRARIES} -lhal-storage ${DBUS_TQT_LIBRARIES} ) -endif( ) - if( WITH_TDEHWLIB ) set( TDEHWBACKEND tdehardwarebackend.cpp ) endif( WITH_TDEHWLIB ) @@ -51,7 +52,7 @@ tde_add_kpart( ${target} AUTOMOC backendbase.cpp fstabbackend.cpp removablebackend.cpp unlockdialog.ui dialog.cpp mediadirnotify.cpp mediadirnotify.skel - ${HAL_MEDIA_BACKEND} ${TDEHWBACKEND} - LINK mediacommon-static tdeinit_kded-shared ${HAL_MEDIA_LIBRARIES} + ${TDEHWBACKEND} + LINK mediacommon-static tdeinit_kded-shared ${TDEHW_LIBRARIES} DESTINATION ${PLUGIN_INSTALL_DIR} ) diff --git a/tdeioslave/media/mediamanager/Makefile.am b/tdeioslave/media/mediamanager/Makefile.am index 489226e8e..87a20cb89 100644 --- a/tdeioslave/media/mediamanager/Makefile.am +++ b/tdeioslave/media/mediamanager/Makefile.am @@ -1,18 +1,7 @@ kde_module_LTLIBRARIES = kded_mediamanager.la -if include_media_halbackend -HALBACKEND_INCS = $(HAL_INCS) $(DBUS_INCS) $(DBUSTQT_INCS) -endif - METASOURCES = AUTO -INCLUDES = -I$(srcdir)/../libmediacommon -I../libmediacommon $(HALBACKEND_INCS) $(all_includes) - -if include_media_halbackend -HALBACKEND_LIB = libhalbackend.la -libhalbackend_la_SOURCES = halbackend.cpp -libhalbackend_la_LDFLAGS = -avoid-version $(all_libraries) -no-undefined -libhalbackend_la_LIBADD = $(HAL_LIBS) $(DBUS_LIBS) $(DBUSTQT_LIBS) -endif +INCLUDES = -I$(srcdir)/../libmediacommon -I../libmediacommon $(all_includes) if include_media_linuxcdpolling LINUXCDPOLLING_LIB = liblinuxcdpolling.la @@ -20,11 +9,11 @@ liblinuxcdpolling_la_SOURCES = linuxcdpolling.cpp liblinuxcdpolling_la_LDFLAGS = -avoid-version $(all_libraries) -no-undefined endif -noinst_LTLIBRARIES = $(LINUXCDPOLLING_LIB) $(HALBACKEND_LIB) +noinst_LTLIBRARIES = $(LINUXCDPOLLING_LIB) kded_mediamanager_la_SOURCES = mediamanager.cpp mediamanager.skel medialist.cpp backendbase.cpp fstabbackend.cpp removablebackend.cpp mediadirnotify.cpp mediadirnotify.skel kded_mediamanager_la_LDFLAGS = $(all_libraries) -module -avoid-version -kded_mediamanager_la_LIBADD = $(LIB_TDESYCOCA) ../libmediacommon/libmediacommon.la $(HALBACKEND_LIB) $(LINUXCDPOLLING_LIB) +kded_mediamanager_la_LIBADD = $(LIB_TDESYCOCA) ../libmediacommon/libmediacommon.la $(LINUXCDPOLLING_LIB) servicesdir = $(kde_servicesdir)/kded diff --git a/tdeioslave/media/mediamanager/dialog.cpp b/tdeioslave/media/mediamanager/dialog.cpp index 5f655ccce..ddfd041a0 100644 --- a/tdeioslave/media/mediamanager/dialog.cpp +++ b/tdeioslave/media/mediamanager/dialog.cpp @@ -23,7 +23,7 @@ #include "dialog.h" Dialog::Dialog(TQString url, TQString iconName) : - KDialogBase(NULL, "Unlock", true, "Unlock Storage Device", (Cancel|User1), User1, false, KGuiItem(i18n("Unlock"), "unlocked" )) + KDialogBase(NULL, "Unlock", true, i18n("Unlock Storage Device"), (Cancel|User1), User1, false, KGuiItem(i18n("Unlock"), "unlocked" )) { unlockDialog = new UnlockDialog(this); @@ -37,7 +37,7 @@ Dialog::Dialog(TQString url, TQString iconName) : TQPixmap pixmap = TDEGlobal::iconLoader()->loadIcon(iconName, TDEIcon::NoGroup, TDEIcon::SizeLarge); unlockDialog->encryptedIcon->setPixmap( pixmap ); - connect(unlockDialog->passwordEdit, TQT_SIGNAL (textChanged(const TQString &)), this, TQT_SLOT (slotPasswordChanged(const TQString &))); + connect(unlockDialog->passwordEdit, TQ_SIGNAL (textChanged(const TQString &)), this, TQ_SLOT (slotPasswordChanged(const TQString &))); setMainWidget(unlockDialog); } diff --git a/tdeioslave/media/mediamanager/dialog.h b/tdeioslave/media/mediamanager/dialog.h index 8444ec7dd..1e3dd145c 100644 --- a/tdeioslave/media/mediamanager/dialog.h +++ b/tdeioslave/media/mediamanager/dialog.h @@ -41,7 +41,7 @@ class KryptoMedia; class Dialog : public KDialogBase { -Q_OBJECT +TQ_OBJECT public: Dialog(TQString url, TQString iconName); diff --git a/tdeioslave/media/mediamanager/fstabbackend.cpp b/tdeioslave/media/mediamanager/fstabbackend.cpp index 8eca21771..2bd528c19 100644 --- a/tdeioslave/media/mediamanager/fstabbackend.cpp +++ b/tdeioslave/media/mediamanager/fstabbackend.cpp @@ -61,8 +61,8 @@ FstabBackend::FstabBackend(MediaList &list, bool networkSharesOnly) KDirWatch::self()->addFile(MTAB); KDirWatch::self()->addFile(FSTAB); - connect( KDirWatch::self(), TQT_SIGNAL( dirty(const TQString&) ), - this, TQT_SLOT( slotDirty(const TQString&) ) ); + connect( KDirWatch::self(), TQ_SIGNAL( dirty(const TQString&) ), + this, TQ_SLOT( slotDirty(const TQString&) ) ); handleFstabChange(false); handleMtabChange(false); @@ -70,8 +70,8 @@ FstabBackend::FstabBackend(MediaList &list, bool networkSharesOnly) KDirWatch::self()->startScan(); #if defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD) - connect( &m_mtabTimer, TQT_SIGNAL( timeout() ), - this, TQT_SLOT( handleMtabChange() ) ); + connect( &m_mtabTimer, TQ_SIGNAL( timeout() ), + this, TQ_SLOT( handleMtabChange() ) ); m_mtabTimer.start(250); #endif } @@ -160,7 +160,6 @@ bool inExclusionPattern(KMountPoint *mount, bool networkSharesOnly) || mount->mountPoint().find("/sys") == 0 // We might want to display only network shares - // since HAL doesn't handle them || ( networkSharesOnly && mount->mountType().find( "smb" ) == -1 && mount->mountType().find( "cifs" ) == -1 @@ -220,7 +219,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 +296,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); diff --git a/tdeioslave/media/mediamanager/fstabbackend.h b/tdeioslave/media/mediamanager/fstabbackend.h index 0aed11333..0f4b3b85e 100644 --- a/tdeioslave/media/mediamanager/fstabbackend.h +++ b/tdeioslave/media/mediamanager/fstabbackend.h @@ -31,7 +31,7 @@ class FstabBackend : public TQObject, public BackendBase { -Q_OBJECT +TQ_OBJECT public: FstabBackend(MediaList &list, bool networkSharesOnly = false); diff --git a/tdeioslave/media/mediamanager/halbackend.cpp b/tdeioslave/media/mediamanager/halbackend.cpp deleted file mode 100644 index b0cf54b6e..000000000 --- a/tdeioslave/media/mediamanager/halbackend.cpp +++ /dev/null @@ -1,1937 +0,0 @@ -/* This file is part of the KDE Project - Copyright (c) 2004-2005 Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org> - Copyright (c) 2006 Valentine Sinitsyn <e_val@inbox.ru> - - 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 "halbackend.h" -#include "linuxcdpolling.h" - -#include <stdlib.h> -#include <locale.h> - -#include <tdeapplication.h> -#include <tdemessagebox.h> -#include <tqeventloop.h> -#include <tqfile.h> -#include <tdelocale.h> -#include <kurl.h> -#include <kdebug.h> -#include <kprocess.h> -#include <tdeconfig.h> -#include <tqstylesheet.h> -#include <kmountpoint.h> -#include <tdemessagebox.h> -#include <tdeio/job.h> -#include <kprotocolinfo.h> -#include <kstandarddirs.h> -#include <kprocess.h> - -#define MOUNT_MEDIA_SUFFIX (medium->isEncrypted() ? \ - (TQString("_encrypted") + (sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt) ? "_unlocked" : "_locked")) : \ - (medium->isMounted() ? TQString("_mounted") : TQString("_unmounted"))) - -#define MOUNTED_ICON_SUFFIX (medium->isEncrypted() ? \ - (sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt) ? "-unlocked" : "-locked") : \ - (medium->isMounted() ? TQString("-mounted") : TQString("-unmounted"))) - -/* Static instance of this class, for static HAL callbacks */ -static HALBackend* s_HALBackend; - -/* A macro function to convert HAL string properties to TQString */ -TQString libhal_device_get_property_QString(LibHalContext *ctx, const char* udi, const char *key) -{ - char* _ppt_string; - TQString _ppt_QString; - _ppt_string = libhal_device_get_property_string(ctx, udi, key, NULL); - if ( _ppt_string ) - _ppt_QString = _ppt_string; - libhal_free_string(_ppt_string); - return _ppt_QString; -} - -/* Constructor */ -HALBackend::HALBackend(MediaList &list, TQObject* parent) - : TQObject() - , BackendBase(list) - , m_halContext(NULL) - , m_halStoragePolicy(NULL) - , m_parent(parent) -{ - s_HALBackend = this; -} - -/* Destructor */ -HALBackend::~HALBackend() -{ - /* Close HAL connection */ - if (m_halContext) - { - const TQPtrList<Medium> medlist = m_mediaList.list(); - TQPtrListIterator<Medium> it (medlist); - for ( const Medium *current_medium = it.current(); current_medium; current_medium = ++it) - { - if( !current_medium->id().startsWith( "/org/kde" )) - unmount(current_medium->id()); - } - - - /* Remove all the registered media first */ - int numDevices; - char** halDeviceList = libhal_get_all_devices( m_halContext, &numDevices, NULL ); - - if ( halDeviceList ) - { - for ( int i = 0; i < numDevices; i++ ) - { - m_mediaList.removeMedium( halDeviceList[i], false ); - } - } - - libhal_free_string_array( halDeviceList ); - - DBusError error; - dbus_error_init(&error); - libhal_ctx_shutdown(m_halContext, &error); - libhal_ctx_free(m_halContext); - } - - if (m_halStoragePolicy) - libhal_storage_policy_free(m_halStoragePolicy); -} - -/* Connect to the HAL */ -bool HALBackend::InitHal() -{ - kdDebug(1219) << "Context new" << endl; - m_halContext = libhal_ctx_new(); - if (!m_halContext) - { - kdDebug(1219) << "Failed to initialize HAL!" << endl; - return false; - } - - // Main loop integration - kdDebug(1219) << "Main loop integration" << endl; - DBusError error; - dbus_error_init(&error); - dbus_connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &error); - - if (!dbus_connection || dbus_error_is_set(&error)) { - dbus_error_free(&error); - libhal_ctx_free(m_halContext); - m_halContext = NULL; - return false; - } - - dbus_connection_set_exit_on_disconnect (dbus_connection, FALSE); - - MainLoopIntegration(dbus_connection); - libhal_ctx_set_dbus_connection(m_halContext, dbus_connection); - - // HAL callback functions - kdDebug(1219) << "Callback functions" << endl; - libhal_ctx_set_device_added(m_halContext, HALBackend::hal_device_added); - libhal_ctx_set_device_removed(m_halContext, HALBackend::hal_device_removed); - libhal_ctx_set_device_new_capability (m_halContext, NULL); - libhal_ctx_set_device_lost_capability (m_halContext, NULL); - libhal_ctx_set_device_property_modified (m_halContext, HALBackend::hal_device_property_modified); - libhal_ctx_set_device_condition(m_halContext, HALBackend::hal_device_condition); - - kdDebug(1219) << "Context Init" << endl; - if (!libhal_ctx_init(m_halContext, &error)) - { - if (dbus_error_is_set(&error)) - dbus_error_free(&error); - libhal_ctx_free(m_halContext); - m_halContext = NULL; - kdDebug(1219) << "Failed to init HAL context!" << endl; - return false; - } - - /** @todo customize watch policy */ - kdDebug(1219) << "Watch properties" << endl; - if (!libhal_device_property_watch_all(m_halContext, &error)) - { - kdDebug(1219) << "Failed to watch HAL properties!" << endl; - return false; - } - - /* libhal-storage initialization */ - kdDebug(1219) << "Storage Policy" << endl; - m_halStoragePolicy = libhal_storage_policy_new(); - /** @todo define libhal-storage icon policy */ - - /* List devices at startup */ - return ListDevices(); -} - -/* List devices (at startup)*/ -bool HALBackend::ListDevices() -{ - kdDebug(1219) << "ListDevices" << endl; - - int numDevices; - char** halDeviceList = libhal_get_all_devices(m_halContext, &numDevices, NULL); - - if (!halDeviceList) - return false; - - kdDebug(1219) << "HALBackend::ListDevices : " << numDevices << " devices found" << endl; - for (int i = 0; i < numDevices; i++) - AddDevice(halDeviceList[i], false); - - libhal_free_string_array( halDeviceList ); - - return true; -} - -/* Create a media instance for the HAL device "udi". - This functions checks whether the device is worth listing */ -void HALBackend::AddDevice(const char *udi, bool allowNotification) -{ - /* We don't deal with devices that do not expose their capabilities. - If we don't check this, we will get a lot of warning messages from libhal */ - if (!libhal_device_property_exists(m_halContext, udi, "info.capabilities", NULL)) - return; - - /* If the device is already listed, do not process. - This should not happen, but who knows... */ - /** @todo : refresh properties instead ? */ - if (m_mediaList.findById(udi)) - return; - - if (libhal_device_get_property_bool(m_halContext, "/org/freedesktop/Hal/devices/computer", "storage.disable_volume_handling", NULL)) - allowNotification=false; - - /* Add volume block devices */ - if (libhal_device_query_capability(m_halContext, udi, "volume", NULL)) - { - /* We only list volumes that... - * - are encrypted with LUKS or - * - have a filesystem or - * - have an audio track - */ - if ( ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "crypto" || - libhal_device_get_property_QString(m_halContext, udi, "volume.fstype") != "crypto_LUKS" - ) && - libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "filesystem" && - !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.has_audio", NULL) && - !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_blank", NULL) ) - return; - - /* Query drive udi */ - TQString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device"); - if ( driveUdi.isNull() ) // no storage - no fun - return; - - // if the device is locked do not act upon it - if (libhal_device_get_property_bool(m_halContext, driveUdi.ascii(), "info.locked", NULL)) - allowNotification=false; - - // if the device is locked do not act upon it - if (libhal_device_get_property_bool(m_halContext, driveUdi.ascii(), "storage.partition_table_changed", NULL)) - allowNotification=false; - - /** @todo check exclusion list **/ - - /* Special handling for clear crypto volumes */ - LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi); - if (!halVolume) - return; - const char* backingVolumeUdi = libhal_volume_crypto_get_backing_volume_udi(halVolume); - if ( backingVolumeUdi != NULL ) - { - /* The crypto drive was unlocked and may now be mounted... */ - kdDebug(1219) << "HALBackend::AddDevice : ClearVolume appeared for " << backingVolumeUdi << endl; - ResetProperties(backingVolumeUdi, allowNotification); - libhal_volume_free(halVolume); - return; - } - libhal_volume_free(halVolume); - - /* Create medium */ - Medium* medium = new Medium(udi, udi, ""); - setVolumeProperties(medium); - - if ( isInFstab( medium ).isNull() ) - { - // if it's not mountable by user and not by HAL, don't show it at all - if ( ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") == "filesystem" && - !libhal_device_get_property_bool(m_halContext, udi, "volume.is_mounted", NULL ) ) && - ( libhal_device_get_property_bool(m_halContext, udi, "volume.ignore", NULL ) ) ) - { - delete medium; - return; - } - } - - // instert medium into list - m_mediaList.addMedium(medium, allowNotification); - - // finally check for automount - TQMap<TQString,TQString> options = MediaManagerUtils::splitOptions(mountoptions(udi)); - kdDebug() << "automount " << options["automount"] << endl; - if (options["automount"] == "true" && allowNotification ) { - TQString error = mount(medium); - if (!error.isEmpty()) - kdDebug() << "error " << error << endl; - } - - return; - } - - /* Floppy & zip drives */ - if (libhal_device_query_capability(m_halContext, udi, "storage", NULL)) - if ((libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "floppy") || - (libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "zip") || - (libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type") == "jaz")) - { - if (! libhal_device_get_property_bool(m_halContext, udi, "storage.removable.media_available", NULL) ) - allowNotification = false; - /* Create medium */ - Medium* medium = new Medium(udi, udi, ""); - // if the storage has a volume, we ignore it - if ( setFloppyProperties(medium) ) - m_mediaList.addMedium(medium, allowNotification); - else - delete medium; - return; - } - - /* Camera handled by gphoto2*/ - if (libhal_device_query_capability(m_halContext, udi, "camera", NULL) && - ((libhal_device_get_property_QString(m_halContext, udi, "camera.access_method")=="ptp") || - - (libhal_device_property_exists(m_halContext, udi, "camera.libgphoto2.support", NULL) && - libhal_device_get_property_bool(m_halContext, udi, "camera.libgphoto2.support", NULL))) - ) - { - /* Create medium */ - Medium* medium = new Medium(udi, udi, ""); - setCameraProperties(medium); - m_mediaList.addMedium(medium, allowNotification); - return; - } -} - -void HALBackend::RemoveDevice(const char *udi) -{ - const Medium *medium = m_mediaList.findByClearUdi(udi); - if (medium) { - ResetProperties(medium->id().ascii()); - } else { - m_mediaList.removeMedium(udi, true); - } -} - -void HALBackend::ModifyDevice(const char *udi, const char* key) -{ - kdDebug(1219) << "HALBackend::ModifyDevice for '" << udi << "' on '" << key << "'\n"; - - const char* mediumUdi = findMediumUdiFromUdi(udi); - if (!mediumUdi) - return; - bool allowNotification = false; - if (strcmp(key, "storage.removable.media_available") == 0) - allowNotification = libhal_device_get_property_bool(m_halContext, udi, key, NULL); - ResetProperties(mediumUdi, allowNotification); -} - -void HALBackend::DeviceCondition(const char* udi, const char* condition) -{ - TQString conditionName = TQString(condition); - kdDebug(1219) << "Processing device condition " << conditionName << " for " << udi << endl; - - if (conditionName == "EjectPressed") { - const Medium* medium = m_mediaList.findById(udi); - if (!medium) { - /* the ejectpressed appears on the drive and we need to find the volume */ - const TQPtrList<Medium> medlist = m_mediaList.list(); - TQPtrListIterator<Medium> it (medlist); - for ( const Medium *current_medium = it.current(); current_medium; current_medium = ++it) - { - if( current_medium->id().startsWith( "/org/kde" )) - continue; - TQString driveUdi = libhal_device_get_property_QString(m_halContext, current_medium->id().latin1(), "block.storage_device"); - if (driveUdi == udi) - { - medium = current_medium; - break; - } - } - } - if (medium) { - TDEProcess p; - p << "tdeio_media_mounthelper" << "-e" << medium->name(); - p.start(TDEProcess::DontCare); - } - } - - const char* mediumUdi = findMediumUdiFromUdi(udi); - kdDebug() << "findMedumUdiFromUdi " << udi << " returned " << mediumUdi << endl; - if (!mediumUdi) - return; - - /* TODO: Warn the user that (s)he should unmount devices before unplugging */ - if (conditionName == "VolumeUnmountForced") - ResetProperties(mediumUdi); - - /* Reset properties after mounting */ - if (conditionName == "VolumeMount") - ResetProperties(mediumUdi); - - /* Reset properties after unmounting */ - if (conditionName == "VolumeUnmount") - ResetProperties(mediumUdi); - -} - -void HALBackend::MainLoopIntegration(DBusConnection *dbusConnection) -{ - m_dBusQtConnection = new DBusQt::Connection(m_parent); - m_dBusQtConnection->dbus_connection_setup_with_qt_main(dbusConnection); -} - -/****************************************** - ** Properties attribution ** - ******************************************/ - -/* Return the medium udi that should be updated when recieving a call for - device udi */ -const char* HALBackend::findMediumUdiFromUdi(const char* udi) -{ - /* Easy part : this Udi is already registered as a device */ - const Medium* medium = m_mediaList.findById(udi); - if (medium) - return medium->id().ascii(); - - /* Hard part : this is a volume whose drive is registered */ - if (libhal_device_property_exists(m_halContext, udi, "info.capabilities", NULL)) - if (libhal_device_query_capability(m_halContext, udi, "volume", NULL)) - { - /* check if this belongs to an encrypted volume */ - LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi); - if (!halVolume) return NULL; - const char* backingUdi = libhal_volume_crypto_get_backing_volume_udi(halVolume); - if (backingUdi != NULL) { - const char* result = findMediumUdiFromUdi(backingUdi); - libhal_volume_free(halVolume); - return result; - } - libhal_volume_free(halVolume); - - /* this is a volume whose drive is registered */ - TQString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device"); - return findMediumUdiFromUdi(driveUdi.ascii()); - } - - return NULL; -} - -void HALBackend::ResetProperties(const char* mediumUdi, bool allowNotification) -{ - kdDebug(1219) << "HALBackend::setProperties" << endl; - if ( TQString::fromLatin1( mediumUdi ).startsWith( "/org/kde/" ) ) - { - const Medium *cmedium = m_mediaList.findById(mediumUdi); - if ( cmedium ) - { - Medium m( *cmedium ); - if ( setFstabProperties( &m ) ) { - kdDebug() << "setFstabProperties worked" << endl; - m_mediaList.changeMediumState(m, allowNotification); - } - return; - } - } - - Medium* m = new Medium(mediumUdi, mediumUdi, ""); - - if (libhal_device_query_capability(m_halContext, mediumUdi, "volume", NULL)) - setVolumeProperties(m); - if (libhal_device_query_capability(m_halContext, mediumUdi, "storage", NULL)) - setFloppyProperties(m); - if (libhal_device_query_capability(m_halContext, mediumUdi, "camera", NULL)) - setCameraProperties(m); - - m_mediaList.changeMediumState(*m, allowNotification); - - delete m; -} - -void HALBackend::setVolumeProperties(Medium* medium) -{ - kdDebug(1219) << "HALBackend::setVolumeProperties for " << medium->id() << endl; - - const char* udi = medium->id().ascii(); - /* Check if the device still exists */ - if (!libhal_device_exists(m_halContext, udi, NULL)) - return; - - /* Get device information from libhal-storage */ - LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, udi); - if (!halVolume) - return; - TQString driveUdi = libhal_volume_get_storage_device_udi(halVolume); - LibHalDrive* halDrive = 0; - if ( !driveUdi.isNull() ) - halDrive = libhal_drive_from_udi(m_halContext, driveUdi.ascii()); - if (!halDrive) { - // at times HAL sends an UnmountForced event before the device is removed - libhal_volume_free(halVolume); - return; - } - - medium->setName( - generateName(libhal_volume_get_device_file(halVolume)) ); - - LibHalVolume* halClearVolume = NULL; - if ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") == "crypto" ) - { - kdDebug(1219) << "HALBackend::setVolumeProperties : crypto volume" << endl; - - medium->setEncrypted(true); - char* clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume); - TQString clearUdiString; - if (clearUdi != NULL) { - kdDebug(1219) << "HALBackend::setVolumeProperties : crypto clear volume avail - " << clearUdi << endl; - halClearVolume = libhal_volume_from_udi(m_halContext, clearUdi); - // ignore if halClearVolume is NULL -> just not unlocked in this case - clearUdiString = clearUdi; - libhal_free_string(clearUdi); - } - - 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 ? */ - else - medium->mountableState( - libhal_volume_get_device_file(halVolume), /* Device node */ - TQString::null, - TQString::null, /* Mount point */ - TQString::null, /* Filesystem type */ - false ); /* Mounted ? */ - } - 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 ? */ - } - - - char* name = libhal_volume_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy); - TQString volume_name = TQString::fromUtf8(name); - TQString media_name = volume_name; - /* media_name contains something like "501M Removable Media" or "Blank CD-R" - The former needs special handling for correct translation - */ - if (media_name.find(TQRegExp("^[0-9]+\\.?[0-9]*[KMGT] (Removable )?Media$")) > -1) { - TQString pattern = media_name.section(" ", 1); - media_name.replace(pattern, i18n(pattern.utf8())); - medium->setLabel(media_name); - } else { - medium->setLabel(i18n(media_name.utf8())); - } - - free(name); - - TQString mimeType; - if (libhal_volume_is_disc(halVolume)) - { - mimeType = "media/cdrom" + MOUNT_MEDIA_SUFFIX; - - LibHalVolumeDiscType discType = libhal_volume_get_disc_type(halVolume); - if ((discType == LIBHAL_VOLUME_DISC_TYPE_CDROM) || - (discType == LIBHAL_VOLUME_DISC_TYPE_CDR) || - (discType == LIBHAL_VOLUME_DISC_TYPE_CDRW)) - if (libhal_volume_disc_is_blank(halVolume)) - { - mimeType = "media/blankcd"; - medium->unmountableState(""); - } - else - mimeType = "media/cdwriter" + MOUNT_MEDIA_SUFFIX; - - if ((discType == LIBHAL_VOLUME_DISC_TYPE_DVDROM) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDRAM) || - (discType == LIBHAL_VOLUME_DISC_TYPE_DVDR) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDRW) || - (discType == LIBHAL_VOLUME_DISC_TYPE_DVDPLUSR) || (discType == LIBHAL_VOLUME_DISC_TYPE_DVDPLUSRW) ) - if (libhal_volume_disc_is_blank(halVolume)) - { - mimeType = "media/blankdvd"; - medium->unmountableState(""); - } - else - mimeType = "media/dvd" + MOUNT_MEDIA_SUFFIX; - - 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->setIconName(TQString::null); - - /* check if the disc id a vcd or a video dvd */ - if (libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_vcd", NULL)) { - mimeType = "media/vcd"; - } - else if (libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_svcd", NULL)) { - mimeType = "media/svcd"; - } - else if (libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_videodvd", NULL)) { - mimeType = "media/dvdvideo"; - } - - } - else - { - mimeType = "media/hdd" + MOUNT_MEDIA_SUFFIX; - medium->setIconName(TQString::null); // reset icon - if (libhal_drive_is_hotpluggable(halDrive)) - { - mimeType = "media/removable" + MOUNT_MEDIA_SUFFIX; - medium->needMounting(); - switch (libhal_drive_get_type(halDrive)) { - case LIBHAL_DRIVE_TYPE_COMPACT_FLASH: - medium->setIconName("media-flash-compact_flash" + MOUNTED_ICON_SUFFIX); - break; - case LIBHAL_DRIVE_TYPE_MEMORY_STICK: - medium->setIconName("media-flash-memory_stick" + MOUNTED_ICON_SUFFIX); - break; - case LIBHAL_DRIVE_TYPE_SMART_MEDIA: - medium->setIconName("media-flash-smart_media" + MOUNTED_ICON_SUFFIX); - break; - case LIBHAL_DRIVE_TYPE_SD_MMC: - medium->setIconName("media-flash-sd_mmc" + MOUNTED_ICON_SUFFIX); - break; - case LIBHAL_DRIVE_TYPE_PORTABLE_AUDIO_PLAYER: - { - medium->setIconName("ipod" + MOUNTED_ICON_SUFFIX); - - if (libhal_device_get_property_QString(m_halContext, driveUdi.latin1(), "info.product") == "iPod" && - KProtocolInfo::isKnownProtocol( TQString("ipod") ) ) - { - medium->unmountableState( "ipod:/" ); - medium->mountableState( libhal_volume_is_mounted(halVolume) ); - } - break; - } - case LIBHAL_DRIVE_TYPE_CAMERA: - { - mimeType = "media/camera" + MOUNT_MEDIA_SUFFIX; - const char *physdev = libhal_drive_get_physical_device_udi(halDrive); - // get model from camera - if (physdev && libhal_device_query_capability(m_halContext, physdev, "camera", NULL)) - { - if (libhal_device_property_exists(m_halContext, physdev, "usb_device.product", NULL)) - medium->setLabel(libhal_device_get_property_QString(m_halContext, physdev, "usb_device.product")); - else if (libhal_device_property_exists(m_halContext, physdev, "usb.product", NULL)) - medium->setLabel(libhal_device_get_property_QString(m_halContext, physdev, "usb.product")); - } - break; - } - case LIBHAL_DRIVE_TYPE_TAPE: - medium->setIconName("media-tape" + MOUNTED_ICON_SUFFIX); - break; - default: - medium->setIconName(TQString::null); - } - - if (medium->isMounted() && TQFile::exists(medium->mountPoint() + "/dcim")) - { - mimeType = "media/camera" + MOUNT_MEDIA_SUFFIX; - } - } - } - medium->setMimeType(mimeType); - - libhal_drive_free(halDrive); - libhal_volume_free(halVolume); -} - -bool HALBackend::setFstabProperties( Medium *medium ) -{ - TQString mp = isInFstab(medium); - - if (!mp.isNull() && !medium->id().startsWith( "/org/kde" ) ) - { - // now that we know it's in fstab, we have to find out if it's mounted - KMountPoint::List mtab = KMountPoint::currentMountPoints(); - - KMountPoint::List::iterator it = mtab.begin(); - KMountPoint::List::iterator end = mtab.end(); - - bool mounted = false; - - for (; it!=end; ++it) - { - if ((*it)->mountedFrom() == medium->deviceNode() && (*it)->mountPoint() == mp ) - { - mounted = true; - break; - } - } - - kdDebug() << mp << " " << mounted << " " << medium->deviceNode() << " " << endl; - TQString fstype = medium->fsType(); - if ( fstype.isNull() ) - fstype = "auto"; - - medium->mountableState( - medium->deviceNode(), - mp, /* Mount point */ - fstype, /* Filesystem type */ - mounted ); /* Mounted ? */ - - return true; - } - - return false; - -} - -// Handle floppies and zip drives -bool HALBackend::setFloppyProperties(Medium* medium) -{ - kdDebug(1219) << "HALBackend::setFloppyProperties for " << medium->id() << endl; - - const char* udi = medium->id().ascii(); - /* Check if the device still exists */ - if (!libhal_device_exists(m_halContext, udi, NULL)) - return false; - - LibHalDrive* halDrive = libhal_drive_from_udi(m_halContext, udi); - if (!halDrive) - return false; - - TQString drive_type = libhal_device_get_property_QString(m_halContext, udi, "storage.drive_type"); - - if (drive_type == "zip") { - int numVolumes; - char** volumes = libhal_drive_find_all_volumes(m_halContext, halDrive, &numVolumes); - libhal_free_string_array(volumes); - kdDebug(1219) << " found " << numVolumes << " volumes" << endl; - if (numVolumes) - { - libhal_drive_free(halDrive); - return false; - } - } - - medium->setName( generateName(libhal_drive_get_device_file(halDrive)) ); - 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); - setFloppyMountState(medium); - - if (drive_type == "floppy") - { - if (medium->isMounted()) // don't use _SUFFIX here as it accesses the volume - medium->setMimeType("media/floppy_mounted" ); - else - medium->setMimeType("media/floppy_unmounted"); - medium->setLabel(i18n("Floppy Drive")); - } - else if (drive_type == "zip") - { - if (medium->isMounted()) - medium->setMimeType("media/zip_mounted" ); - else - medium->setMimeType("media/zip_unmounted"); - medium->setLabel(i18n("Zip Drive")); - } - - /** @todo And mimtype for JAZ drives ? */ - - medium->setIconName(TQString::null); - - libhal_drive_free(halDrive); - - return true; -} - -void HALBackend::setFloppyMountState( Medium *medium ) -{ - if ( !medium->id().startsWith( "/org/kde" ) ) - { - KMountPoint::List mtab = KMountPoint::currentMountPoints(); - KMountPoint::List::iterator it = mtab.begin(); - KMountPoint::List::iterator end = mtab.end(); - - TQString fstype; - TQString mountpoint; - for (; it!=end; ++it) - { - if ((*it)->mountedFrom() == medium->deviceNode() ) - { - fstype = (*it)->mountType().isNull() ? (*it)->mountType() : "auto"; - mountpoint = (*it)->mountPoint(); - medium->mountableState( medium->deviceNode(), mountpoint, fstype, true ); - return; - } - } - } -} - -void HALBackend::setCameraProperties(Medium* medium) -{ - kdDebug(1219) << "HALBackend::setCameraProperties for " << medium->id() << endl; - - const char* udi = medium->id().ascii(); - /* Check if the device still exists */ - if (!libhal_device_exists(m_halContext, udi, NULL)) - return; - - /** @todo find name */ - medium->setName("camera"); - - TQString device = "camera:/"; - - char *cam = libhal_device_get_property_string(m_halContext, udi, "camera.libgphoto2.name", NULL); - DBusError error; - dbus_error_init(&error); - if (cam && - libhal_device_property_exists(m_halContext, udi, "usb.linux.device_number", NULL) && - libhal_device_property_exists(m_halContext, udi, "usb.bus_number", NULL)) - device.sprintf("camera://%s@[usb:%03d,%03d]/", cam, - libhal_device_get_property_int(m_halContext, udi, "usb.bus_number", &error), - libhal_device_get_property_int(m_halContext, udi, "usb.linux.device_number", &error)); - - libhal_free_string(cam); - - /** @todo find the rest of this URL */ - medium->unmountableState(device); - medium->setMimeType("media/gphoto2camera"); - medium->setIconName(TQString::null); - if (libhal_device_property_exists(m_halContext, udi, "usb_device.product", NULL)) - medium->setLabel(libhal_device_get_property_QString(m_halContext, udi, "usb_device.product")); - else if (libhal_device_property_exists(m_halContext, udi, "usb.product", NULL)) - medium->setLabel(libhal_device_get_property_QString(m_halContext, udi, "usb.product")); - else - medium->setLabel(i18n("Camera")); -} - -TQString HALBackend::generateName(const TQString &devNode) -{ - return KURL(devNode).fileName(); -} - -/****************************************** - ** HAL CALL-BACKS ** - ******************************************/ - -void HALBackend::hal_device_added(LibHalContext *ctx, const char *udi) -{ - kdDebug(1219) << "HALBackend::hal_device_added " << udi << endl; - Q_UNUSED(ctx); - s_HALBackend->AddDevice(udi); -} - -void HALBackend::hal_device_removed(LibHalContext *ctx, const char *udi) -{ - kdDebug(1219) << "HALBackend::hal_device_removed " << udi << endl; - Q_UNUSED(ctx); - s_HALBackend->RemoveDevice(udi); -} - -void HALBackend::hal_device_property_modified(LibHalContext *ctx, const char *udi, - const char *key, dbus_bool_t is_removed, dbus_bool_t is_added) -{ - kdDebug(1219) << "HALBackend::hal_property_modified " << udi << " -- " << key << endl; - Q_UNUSED(ctx); - Q_UNUSED(is_removed); - Q_UNUSED(is_added); - s_HALBackend->ModifyDevice(udi, key); -} - -void HALBackend::hal_device_condition(LibHalContext *ctx, const char *udi, - const char *condition_name, - const char* message - ) -{ - kdDebug(1219) << "HALBackend::hal_device_condition " << udi << " -- " << condition_name << endl; - Q_UNUSED(ctx); - Q_UNUSED(message); - s_HALBackend->DeviceCondition(udi, condition_name); -} - -TQStringList HALBackend::getHALmountoptions(TQString udi) -{ - const char* _ppt_string; - LibHalVolume* volume; - LibHalDrive* drive; - - TQString _ppt_TQString; - - volume = libhal_volume_from_udi( m_halContext, udi.latin1() ); - if( volume ) - drive = libhal_drive_from_udi( m_halContext, libhal_volume_get_storage_device_udi( volume ) ); - else - drive = libhal_drive_from_udi( m_halContext, udi.latin1() ); - - if( !drive ) - return TQString::null; - - if( volume ) - _ppt_string = libhal_volume_policy_get_mount_options ( drive, volume, NULL ); - else - _ppt_string = libhal_drive_policy_get_mount_options ( drive, NULL ); - - _ppt_TQString = TQString(_ppt_string ? _ppt_string : ""); - - return TQStringList::split(",",_ppt_TQString); -} - -TQStringList HALBackend::mountoptions(const TQString &name) -{ - const Medium* medium = m_mediaList.findById(name); - if (!medium) - return TQStringList(); // we don't know about that one - if (!isInFstab(medium).isNull()) - return TQStringList(); // not handled by HAL - fstab entry - - TQString volume_udi = name; - if (medium->isEncrypted()) { - // see if we have a clear volume - LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, medium->id().latin1()); - if (halVolume) { - char* clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume); - if (clearUdi != NULL) { - volume_udi = clearUdi; - libhal_free_string(clearUdi); - } else { - // if not unlocked yet then no mountoptions - return TQStringList(); - } - libhal_volume_free(halVolume); - } else { - // strange... - return TQStringList(); - } - } - - TDEConfig config("mediamanagerrc"); - - bool use_defaults = true; - if (config.hasGroup(name)) - { - config.setGroup(name); - use_defaults = config.readBoolEntry("use_defaults", false); - } - - if (use_defaults) - config.setGroup("DefaultOptions"); - - char ** array = libhal_device_get_property_strlist(m_halContext, volume_udi.latin1(), "volume.mount.valid_options", NULL); - TQMap<TQString,bool> valids; - - for (int index = 0; array && array[index]; ++index) { - TQString t = array[index]; - if (t.endsWith("=")) - t = t.left(t.length() - 1); - valids[t] = true; - kdDebug() << "valid " << t << endl; - } - libhal_free_string_array(array); - TQStringList result; - TQString tmp; - - result << TQString("use_defaults=%1").arg(use_defaults ? "true" : "false"); - - TQString fstype = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.fstype"); - if (fstype.isNull()) - fstype = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.policy.mount_filesystem"); - - TQString drive_udi = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "block.storage_device"); - - bool removable = false; - if ( !drive_udi.isNull() ) - removable = libhal_device_get_property_bool(m_halContext, drive_udi.latin1(), "storage.removable", NULL) - || libhal_device_get_property_bool(m_halContext, drive_udi.latin1(), "storage.hotpluggable", NULL); - - bool value; - if (use_defaults) - { - value = config.readBoolEntry("automount", false); - } - else - { - QString current_group = config.group(); - config.setGroup(drive_udi); - value = config.readBoolEntry("automount", false); - config.setGroup(current_group); - } - - if (libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_blank", NULL) - || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_vcd", NULL) - || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_svcd", NULL) - || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.is_videodvd", NULL) - || libhal_device_get_property_bool(m_halContext, volume_udi.latin1(), "volume.disc.has_audio", NULL)) - value = false; - - result << TQString("automount=%1").arg(value ? "true" : "false"); - - if (valids.contains("ro")) - { - value = config.readBoolEntry("ro", false); - tmp = TQString("ro=%1").arg(value ? "true" : "false"); - if (fstype != "iso9660") // makes no sense - result << tmp; - } - - if (valids.contains("quiet")) - { - value = config.readBoolEntry("quiet", false); - tmp = TQString("quiet=%1").arg(value ? "true" : "false"); - if (fstype != "iso9660") // makes no sense - result << tmp; - } - - if (valids.contains("flush")) - { - value = config.readBoolEntry("flush", fstype.endsWith("fat")); - tmp = TQString("flush=%1").arg(value ? "true" : "false"); - result << tmp; - } - - if (valids.contains("uid")) - { - value = config.readBoolEntry("uid", true); - tmp = TQString("uid=%1").arg(value ? "true" : "false"); - result << tmp; - } - - if (valids.contains("utf8")) - { - value = config.readBoolEntry("utf8", true); - tmp = TQString("utf8=%1").arg(value ? "true" : "false"); - result << tmp; - } - - if (valids.contains("shortname")) - { - TQString svalue = config.readEntry("shortname", "lower").lower(); - if (svalue == "windows nt") - result << "shortname=winnt"; - else if (svalue == "windows 95") - result << "shortname=win95"; - else if (svalue == "mixed") - result << "shortname=mixed"; - else - result << "shortname=lower"; - } - - // pass our locale to the ntfs-3g driver so it can translate local characters - if (valids.contains("locale") && fstype == "ntfs-3g") - { - // have to obtain LC_CTYPE as returned by the `locale` command - // check in the same order as `locale` does - char *cType; - if ( (cType = getenv("LC_ALL")) || (cType = getenv("LC_CTYPE")) || (cType = getenv("LANG")) ) { - result << TQString("locale=%1").arg(cType); - } - } - - if (valids.contains("sync")) - { - value = config.readBoolEntry("sync", ( valids.contains("flush") && !fstype.endsWith("fat") ) && removable); - tmp = TQString("sync=%1").arg(value ? "true" : "false"); - if (fstype != "iso9660") // makes no sense - result << tmp; - } - - if (valids.contains("noatime")) - { - value = config.readBoolEntry("atime", !fstype.endsWith("fat")); - tmp = TQString("atime=%1").arg(value ? "true" : "false"); - if (fstype != "iso9660") // makes no sense - result << tmp; - } - - TQString mount_point = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.mount_point"); - if (mount_point.isEmpty()) - mount_point = libhal_device_get_property_QString(m_halContext, volume_udi.latin1(), "volume.policy.desired_mount_point"); - - mount_point = config.readEntry("mountpoint", mount_point); - - if (!mount_point.startsWith("/")) - mount_point = "/media/" + mount_point; - - result << TQString("mountpoint=%1").arg(mount_point); - result << TQString("filesystem=%1").arg(fstype); - - if (valids.contains("data")) - { - TQString svalue = config.readEntry("journaling").lower(); - if (svalue == "ordered") - result << "journaling=ordered"; - else if (svalue == "writeback") - result << "journaling=writeback"; - else if (svalue == "data") - result << "journaling=data"; - else - result << "journaling=ordered"; - } - - return result; -} - -bool HALBackend::setMountoptions(const TQString &name, const TQStringList &options ) -{ - kdDebug() << "setMountoptions " << name << " " << options << endl; - - TDEConfig config("mediamanagerrc"); - config.setGroup(name); - - TQMap<TQString,TQString> valids = MediaManagerUtils::splitOptions(options); - - const char *names[] = { "use_defaults", "ro", "quiet", "atime", "uid", "utf8", "flush", "sync", 0 }; - for (int index = 0; names[index]; ++index) - if (valids.contains(names[index])) - config.writeEntry(names[index], valids[names[index]] == "true"); - - if (valids.contains("shortname")) - config.writeEntry("shortname", valids["shortname"]); - - if (valids.contains("journaling")) - config.writeEntry("journaling", valids["journaling"]); - - if (!mountoptions(name).contains(TQString("mountpoint=%1").arg(valids["mountpoint"]))) - config.writeEntry("mountpoint", valids["mountpoint"]); - - if (valids.contains("automount")) { - TQString drive_udi = libhal_device_get_property_QString(m_halContext, name.latin1(), "block.storage_device"); - config.setGroup(drive_udi); - config.writeEntry("automount", valids["automount"]); - } - - return true; -} - -TQString startKdeSudoProcess(const TQString& tdesudoPath, const TQString& command, - const TQString& dialogCaption, const TQString& dialogComment) -{ - TDEProcess tdesudoProcess; - - tdesudoProcess << tdesudoPath - << "-d" - << "--noignorebutton" - << "--caption" << dialogCaption - << "--comment" << dialogComment - << "-c" << command; - - // @todo handle tdesudo output - tdesudoProcess.start(TDEProcess::Block); - - return TQString(); -} - -TQString startKdeSuProcess(const TQString& tdesuPath, const TQString& command, - const TQString& dialogCaption) -{ - TDEProcess tdesuProcess; - - tdesuProcess << tdesuPath - << "-d" - << "--noignorebutton" - << "--caption" << dialogCaption - << "-c" << command; - - // @todo handle tdesu output - tdesuProcess.start(TDEProcess::Block); - - return TQString(); -} - -TQString startPrivilegedProcess(const TQString& command, const TQString& dialogCaption, const TQString& dialogComment) -{ - TQString error; - - TQString tdesudoPath = TDEStandardDirs::findExe("tdesudo"); - - if (!tdesudoPath.isEmpty()) - error = startKdeSudoProcess(tdesudoPath, command, dialogCaption, dialogComment); - else { - TQString tdesuPath = TDEStandardDirs::findExe("tdesu"); - - if (!tdesuPath.isEmpty()) - error = startKdeSuProcess(tdesuPath, command, dialogCaption); - } - - return error; -} - -TQString privilegedMount(const char* udi, const char* mountPoint, const char** options, int numberOfOptions) -{ - TQString error; - - kdDebug() << "run privileged mount for " << udi << endl; - - TQString dbusSendPath = TDEStandardDirs::findExe("dbus-send"); - - // @todo return error message - if (dbusSendPath.isEmpty()) - return TQString(); - - TQString mountOptions; - TQTextOStream optionsStream(&mountOptions); - for (int optionIndex = 0; optionIndex < numberOfOptions; optionIndex++) { - optionsStream << options[optionIndex]; - if (optionIndex < numberOfOptions - 1) - optionsStream << ","; - } - - TQString command; - TQTextOStream(&command) << dbusSendPath - << " --system --print-reply --dest=org.freedesktop.Hal " << udi - << " org.freedesktop.Hal.Device.Volume.Mount string:" << mountPoint - << " string: array:string:" << mountOptions; - - kdDebug() << "command: " << command << endl; - - error = startPrivilegedProcess(command, - i18n("Authenticate"), - i18n("<big><b>System policy prevents mounting internal media</b></big><br/>Authentication is required to perform this action. Please enter your password to verify.")); - - return error; -} - -TQString privilegedUnmount(const char* udi) -{ - TQString error; - - kdDebug() << "run privileged unmount for " << udi << endl; - - TQString dbusSendPath = TDEStandardDirs::findExe("dbus-send"); - - // @todo return error message - if (dbusSendPath.isEmpty()) - return TQString(); - - TQString command; - TQTextOStream(&command) << dbusSendPath - << " --system --print-reply --dest=org.freedesktop.Hal " << udi - << " org.freedesktop.Hal.Device.Volume.Unmount array:string:force"; - - kdDebug() << "command: " << command << endl; - - error = startPrivilegedProcess(command, - i18n("Authenticate"), - i18n("<big><b>System policy prevents unmounting media mounted by other users</b></big><br/>Authentication is required to perform this action. Please enter your password to verify.")); - - return error; -} - -static TQString mount_priv(const char *udi, const char *mount_point, const char **poptions, int noptions, - DBusConnection *dbus_connection) -{ - DBusMessage *dmesg, *reply; - DBusError error; - - const char *fstype = ""; - if (!(dmesg = dbus_message_new_method_call ("org.freedesktop.Hal", udi, - "org.freedesktop.Hal.Device.Volume", - "Mount"))) { - kdDebug() << "mount failed for " << udi << ": could not create dbus message\n"; - return i18n("Internal Error"); - } - - if (!dbus_message_append_args (dmesg, DBUS_TYPE_STRING, &mount_point, DBUS_TYPE_STRING, &fstype, - DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &poptions, noptions, - DBUS_TYPE_INVALID)) - { - kdDebug() << "mount failed for " << udi << ": could not append args to dbus message\n"; - dbus_message_unref (dmesg); - return i18n("Internal Error"); - } - - TQString qerror; - - dbus_error_init (&error); - if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, dmesg, -1, &error))) - { - TQString qerror = error.message; - kdError() << "mount failed for " << udi << ": " << error.name << " - " << qerror << endl; - if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.UnknownFilesystemType")) - qerror = i18n("Invalid filesystem type"); - else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.PermissionDenied")) - qerror = i18n("Permission denied<p>Please ensure that:<br>1. You have permission to access this device.<br>2. This device node is not listed in /etc/fstab.</p>"); - else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy")) - qerror = privilegedMount(udi, mount_point, poptions, noptions); - else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.AlreadyMounted")) - qerror = i18n("Device is already mounted."); - else if ( !strcmp(error.name, "org.freedesktop.Hal.Device.Volume.InvalidMountpoint") && strlen(mount_point)) { - dbus_message_unref (dmesg); - dbus_error_free (&error); - return mount_priv(udi, "", poptions, noptions, dbus_connection); - } - dbus_message_unref (dmesg); - dbus_error_free (&error); - return qerror; - } - - kdDebug() << "mount queued for " << udi << endl; - - dbus_message_unref (dmesg); - dbus_message_unref (reply); - - return qerror; - -} - -TQString HALBackend::listUsingProcesses(const Medium* medium) -{ - TQString proclist, fullmsg; - TQString fuserpath = TDEStandardDirs::findExe("fuser", TQString("/sbin:/usr/sbin:") + getenv( "PATH" )); - FILE *fuser = NULL; - - uint counter = 0; - if (!fuserpath.isEmpty()) { - TQString cmdline = TQString("/usr/bin/env %1 -vm %2 2>&1").arg(fuserpath, TDEProcess::quote(medium->mountPoint())); - fuser = popen(cmdline.latin1(), "r"); - } - if (fuser) { - proclist += "<pre>"; - TQTextIStream is(fuser); - TQString tmp; - while (!is.atEnd()) { - tmp = is.readLine(); - tmp = TQStyleSheet::escape(tmp) + "\n"; - - proclist += tmp; - if (counter++ > 10) - { - proclist += "..."; - break; - } - } - proclist += "</pre>"; - (void)pclose( fuser ); - } - if (counter) { - fullmsg = i18n("Moreover, programs still using the device " - "have been detected. They are listed below. You have to " - "close them or change their working directory before " - "attempting to unmount the device again."); - fullmsg += "<br>" + proclist; - return fullmsg; - } else { - return TQString::null; - } -} - -TQString HALBackend::killUsingProcesses(const Medium* medium) -{ - TQString proclist, fullmsg; - TQString fuserpath = TDEStandardDirs::findExe("fuser", TQString("/sbin:/usr/sbin:") + getenv( "PATH" )); - FILE *fuser = NULL; - - uint counter = 0; - if (!fuserpath.isEmpty()) { - TQString cmdline = TQString("/usr/bin/env %1 -vmk %2 2>&1").arg(fuserpath, TDEProcess::quote(medium->mountPoint())); - fuser = popen(cmdline.latin1(), "r"); - } - if (fuser) { - proclist += "<pre>"; - TQTextIStream is(fuser); - TQString tmp; - while (!is.atEnd()) { - tmp = is.readLine(); - tmp = TQStyleSheet::escape(tmp) + "\n"; - - proclist += tmp; - if (counter++ > 10) - { - proclist += "..."; - break; - } - } - proclist += "</pre>"; - (void)pclose( fuser ); - } - if (counter) { - fullmsg = i18n("Programs that were still using the device " - "have been forcibly terminated. They are listed below."); - fullmsg += "<br>" + proclist; - return fullmsg; - } else { - return TQString::null; - } -} - -void HALBackend::slotResult(TDEIO::Job *job) -{ - kdDebug() << "slotResult " << mount_jobs[job] << endl; - - struct mount_job_data *data = mount_jobs[job]; - TQString& qerror = data->errorMessage; - const Medium* medium = data->medium; - - if (job->error() == TDEIO::ERR_COULD_NOT_UNMOUNT) { - TQString proclist(listUsingProcesses(medium)); - - qerror = "<qt>"; - qerror += "<p>" + i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and " - "currently mounted at <b>%4</b> could not be unmounted. ").arg( - "system:/media/" + medium->name(), - medium->deviceNode(), - medium->prettyLabel(), - medium->prettyBaseURL().pathOrURL()) + "</p>"; - qerror += "<p>" + i18n("The following error was returned by umount command:"); - qerror += "</p><pre>" + job->errorText() + "</pre>"; - - if (!proclist.isEmpty()) { - qerror += proclist; - } - qerror += "</qt>"; - } else if (job->error()) { - qerror = job->errorText(); - } - - ResetProperties( medium->id().latin1() ); - mount_jobs.remove(job); - - /* Job completed. Notify the caller */ - data->error = job->error(); - data->completed = true; - kapp->eventLoop()->exitLoop(); -} - -TQString HALBackend::isInFstab(const Medium *medium) -{ - KMountPoint::List fstab = KMountPoint::possibleMountPoints(KMountPoint::NeedMountOptions|KMountPoint::NeedRealDeviceName); - - KMountPoint::List::iterator it = fstab.begin(); - KMountPoint::List::iterator end = fstab.end(); - - for (; it!=end; ++it) - { - TQString reald = (*it)->realDeviceName(); - if ( reald.endsWith( "/" ) ) - reald = reald.left( reald.length() - 1 ); - kdDebug() << "isInFstab -" << medium->deviceNode() << "- -" << reald << "- -" << (*it)->mountedFrom() << "-" << endl; - if ((*it)->mountedFrom() == medium->deviceNode() || ( !medium->deviceNode().isEmpty() && reald == medium->deviceNode() ) ) - { - TQStringList opts = (*it)->mountOptions(); - if (opts.contains("user") || opts.contains("users")) - return (*it)->mountPoint(); - } - } - - return TQString::null; -} - -TQStringVariantMap HALBackend::mount(const Medium *medium) -{ - TQStringVariantMap result; - if (medium->isMounted()) { - result["result"] = true; - return result; - } - - TQString mountPoint = isInFstab(medium); - if (!mountPoint.isNull()) - { - struct mount_job_data data; - data.completed = false; - data.medium = medium; - - kdDebug() << "triggering user mount " << medium->deviceNode() << " " << mountPoint << " " << medium->id() << endl; - TDEIO::Job *job = TDEIO::mount( false, 0, medium->deviceNode(), mountPoint ); - connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*))); - mount_jobs[job] = &data; - // The caller expects the device to be mounted when the function - // completes. Thus block until the job completes. - while (!data.completed) { - kapp->eventLoop()->enterLoop(); - } - if (!data.error) { - result["result"] = true; - return result; - } - else { - result["errStr"] = data.errorMessage; // Return the error message (if any) to the caller - result["result"] = false; - return result; - } - } - - kdDebug() << "mounting " << medium->id() << "..." << endl; - - TQStringList soptions; - TQMap<TQString,TQString> valids = MediaManagerUtils::splitOptions(mountoptions(medium->id())); - if (valids["flush"] == "true") - soptions << "flush"; - - if ((valids["uid"] == "true") && (medium->fsType() != "ntfs")) - { - soptions << TQString("uid=%1").arg(getuid()); - } - - if (valids["ro"] == "true") - soptions << "ro"; - - if (valids["atime"] != "true") - soptions << "noatime"; - - if (valids["quiet"] == "true") - soptions << "quiet"; - - if (valids["utf8"] == "true") - soptions << "utf8"; - - if (valids["sync"] == "true") - soptions << "sync"; - - if (medium->fsType() == "ntfs") { - TQString fsLocale("locale="); - fsLocale += setlocale(LC_ALL, ""); - soptions << fsLocale; - } - - TQString mount_point = valids["mountpoint"]; - if (mount_point.startsWith("/media/")) - mount_point = mount_point.mid(7); - - if (valids.contains("shortname")) - { - soptions << TQString("shortname=%1").arg(valids["shortname"]); - } - - if (valids.contains("locale")) - { - soptions << TQString("locale=%1").arg(valids["locale"]); - } - - if (valids.contains("journaling")) - { - TQString option = valids["journaling"]; - if (option == "data") - soptions << TQString("data=journal"); - else if (option == "writeback") - soptions << TQString("data=writeback"); - else - soptions << TQString("data=ordered"); - } - - TQStringList hal_mount_options = getHALmountoptions(medium->id()); - for (TQValueListIterator<TQString> it=hal_mount_options.begin();it!=hal_mount_options.end();it++) - { - soptions << *it; - kdDebug()<<"HALOption: "<<*it<<endl; - if ((*it).startsWith("iocharset=")) - { - soptions.remove("utf8"); - kdDebug()<<"\"iocharset=\" found. Removing \"utf8\" from options."<<endl; - } - } - - const char **options = new const char*[soptions.size() + 1]; - uint noptions = 0; - for (TQStringList::ConstIterator it = soptions.begin(); it != soptions.end(); ++it, ++noptions) - { - options[noptions] = (*it).latin1(); - kdDebug()<<"Option: "<<*it<<endl; - } - options[noptions] = NULL; - - TQString qerror; - if (!medium->isEncrypted()) { - // normal volume - qerror = mount_priv(medium->id().latin1(), mount_point.utf8(), options, noptions, dbus_connection); - } else { - // see if we have a clear volume - error = i18n("Cannot mount encrypted locked drives!"); - LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, medium->id().latin1()); - if (halVolume) { - char* clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume); - if (clearUdi != NULL) { - qerror = mount_priv(clearUdi, mount_point.utf8(), options, noptions, dbus_connection); - libhal_free_string(clearUdi); - } - libhal_volume_free(halVolume); - } - } - - if (!qerror.isEmpty()) { - kdError() << "mounting " << medium->id() << " returned " << qerror << endl; - result["errStr"] = qerror; - result["result"] = false; - return result; - } - - medium->setHalMounted(true); - ResetProperties(medium->id().latin1()); - - result["result"] = true; - return result; -} - -TQStringVariantMap HALBackend::mount(const TQString &id) -{ - const Medium *medium = m_mediaList.findById(id); - if (!medium) { - TQStringVariantMap result; - result["errStr"] = i18n("No such medium: %1").arg(id); - result["result"] = false; - return result; - } - return mount(medium); -} - -TQStringVariantMap HALBackend::unmount(const TQString &id) -{ - TQStringVariantMap result; - - const Medium* medium = m_mediaList.findById(id); - if (!medium) - { - // now we get fancy: if the udi is no volume, it _might_ be a device with only one - // volume on it (think CDs) - so we're so nice to the caller to unmount that volume - LibHalDrive* halDrive = libhal_drive_from_udi(m_halContext, id.latin1()); - if (halDrive) - { - int numVolumes; - char** volumes = libhal_drive_find_all_volumes(m_halContext, halDrive, &numVolumes); - if (numVolumes == 1) - medium = m_mediaList.findById(volumes[0]); - } - } - - if (!medium) { - result["errStr"] = i18n("No such medium: %1").arg(id); - result["result"] = false; - return result; - } - - if (!medium->isMounted()) - result["result"] = true; - return result; - } - - TQString mountPoint = isInFstab(medium); - if (!mountPoint.isNull()) - { - struct mount_job_data data; - data.completed = false; - data.medium = medium; - - kdDebug() << "triggering user unmount " << medium->deviceNode() << " " << mountPoint << endl; - TDEIO::Job *job = TDEIO::unmount( medium->mountPoint(), false ); - connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*))); - mount_jobs[job] = &data; - // The caller expects the device to be unmounted when the function - // completes. Thus block until the job completes. - while (!data.completed) { - kapp->eventLoop()->enterLoop(); - } - if (!data.error) { - result["result"] = true; - return result; - } - else { - result["errStr"] = data.errorMessage; // Return the error message (if any) to the caller - result["result"] = false; - return result; - } - } - - DBusMessage *dmesg, *reply; - DBusError error; - const char *options[2]; - TQString udi = TQString::null; - - if (!medium->isEncrypted()) { - // normal volume - udi = medium->id(); - } else { - // see if we have a clear volume - LibHalVolume* halVolume = libhal_volume_from_udi(m_halContext, medium->id().latin1()); - if (halVolume) { - char *clearUdi = libhal_volume_crypto_get_clear_volume_udi(m_halContext, halVolume); - udi = clearUdi; - libhal_free_string(clearUdi); - libhal_volume_free(halVolume); - } - } - if (udi.isNull()) { - kdDebug() << "unmount failed: no udi" << endl; - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - kdDebug() << "unmounting " << udi << "..." << endl; - - dbus_error_init(&error); - DBusConnection *dbus_connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); - if (dbus_error_is_set(&error)) - { - dbus_error_free(&error); - result["errStr"] = i18n("Unknown error"); - result["result"] = false; - return result; - } - - if (!(dmesg = dbus_message_new_method_call ("org.freedesktop.Hal", udi.latin1(), - "org.freedesktop.Hal.Device.Volume", - "Unmount"))) { - kdDebug() << "unmount failed for " << udi << ": could not create dbus message\n"; - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - options[0] = "force"; - options[1] = 0; - - if (!dbus_message_append_args (dmesg, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &options, 0, - DBUS_TYPE_INVALID)) - { - kdDebug() << "unmount failed for " << udi << ": could not append args to dbus message\n"; - dbus_message_unref (dmesg); - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - char thisunmounthasfailed = 0; - dbus_error_init (&error); - if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, dmesg, -1, &error))) - { - thisunmounthasfailed = 1; - TQString qerror, reason, origqerror; - - if (!strcmp(error.name, "org.freedesktop.Hal.Device.PermissionDeniedByPolicy")) { - qerror = privilegedUnmount(udi.latin1()); - - if (qerror.isEmpty()) { - dbus_message_unref(dmesg); - dbus_error_free(&error); - result["result"] = true; - return result; - } - - // @todo handle unmount error message - } - - kdDebug() << "unmount failed for " << udi << ": " << error.name << " " << error.message << endl; - qerror += "<p>" + i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and " - "currently mounted at <b>%4</b> could not be unmounted. ").arg( - "system:/media/" + medium->name(), - medium->deviceNode(), - medium->prettyLabel(), - medium->prettyBaseURL().pathOrURL()) + "</p>"; - qerror += "<p>" + i18n("Unmounting failed due to the following error:") + "</p>"; - if (!strcmp(error.name, "org.freedesktop.Hal.Device.Volume.Busy")) { - reason = i18n("Device is Busy:"); - thisunmounthasfailed = 2; - } else if (!strcmp(error.name, "org.freedesktop.Hal.Device.Volume.NotMounted")) { - // this is faking. The error is that the device wasn't mounted by hal (but by the system) - reason = i18n("Permission denied<p>Please ensure that:<br>1. You have permission to access this device.<br>2. This device was originally mounted using TDE.</p>"); - } else { - reason = error.message; - } - qerror += "<p><b>" + reason + "</b></p>"; - origqerror = qerror; - - // Include list of processes (if any) using the device in the error message - reason = listUsingProcesses(medium); - if (!reason.isEmpty()) { - qerror += reason; - if (thisunmounthasfailed == 2) { // Failed as BUSY - if (KMessageBox::warningYesNo(0, i18n("%1<p><b>Would you like to forcibly terminate these processes?</b><br><i>All unsaved data would be lost</i>").arg(qerror)) == KMessageBox::Yes) { - qerror = origqerror; - reason = killUsingProcesses(medium); - qerror = HALBackend::unmount(udi); - if (qerror.isNull()) { - thisunmounthasfailed = 0; - } - } - } - } - - if (thisunmounthasfailed != 0) { - dbus_message_unref (dmesg); - dbus_error_free (&error); - result["errStr"] = qerror; - result["result"] = false; - return result; - } - } - - kdDebug() << "unmount queued for " << udi << endl; - - dbus_message_unref (dmesg); - if (reply) { - dbus_message_unref (reply); - } - - medium->setHalMounted(false); - ResetProperties(medium->id().latin1()); - - while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ; - - result["result"] = true; - return result; -} - -TQStringVariantMap HALBackend::unlock(const TQString &id, const TQString &password) -{ - TQStringVariantMap result; - - const Medium *medium = m_mediaList.findById(id); - if (!medium) { - result["errStr"] = i18n("No such medium: %1").arg(id); - result["result"] = false; - return result; - } - - if (!medium->isEncrypted() || !medium->clearDeviceUdi().isNull()) - result["result"] = true; - return result; - } - - const char *udi = medium->id().latin1(); - DBusMessage *msg = NULL; - DBusMessage *reply = NULL; - DBusError error; - - kdDebug() << "Setting up " << udi << " for crypto\n" <<endl; - - msg = dbus_message_new_method_call ("org.freedesktop.Hal", udi, - "org.freedesktop.Hal.Device.Volume.Crypto", - "Setup"); - if (msg == NULL) { - kdDebug() << "unlock failed for " << udi << ": could not create dbus message\n"; - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - TQCString pwdUtf8 = password.utf8(); - const char *pwd_utf8 = pwdUtf8; - if (!dbus_message_append_args (msg, DBUS_TYPE_STRING, &pwd_utf8, DBUS_TYPE_INVALID)) { - kdDebug() << "unlock failed for " << udi << ": could not append args to dbus message\n"; - dbus_message_unref (msg); - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - dbus_error_init (&error); - if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, msg, -1, &error)) || - dbus_error_is_set (&error)) - { - TQString qerror = i18n("Internal Error"); - kdDebug() << "unlock failed for " << udi << ": " << error.name << " " << error.message << endl; - if (strcmp (error.name, "org.freedesktop.Hal.Device.Volume.Crypto.SetupPasswordError") == 0) { - qerror = i18n("Wrong password"); - } - dbus_error_free (&error); - dbus_message_unref (msg); - while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ; - result["errStr"] = qerror; - result["result"] = false; - return result; - } - - dbus_message_unref (msg); - dbus_message_unref (reply); - - while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ; - - result["result"] = true; - return result; -} - -TQStringVariantMap HALBackend::lock(const TQString &id) -{ - TQStringVariantMap result; - - const Medium *medium = m_mediaList.findById(id); - if (!medium) { - result["errStr"] = i18n("No such medium: %1").arg(id); - result["result"] = false; - return result; - } - - if (!medium->isEncrypted() || !medium->clearDeviceUdi().isNull()) - result["result"] = true; - return result; - } - - const char *udi = medium->id().latin1(); - DBusMessage *msg = NULL; - DBusMessage *reply = NULL; - DBusError error; - - kdDebug() << "Tear down " << udi << "\n" <<endl; - - msg = dbus_message_new_method_call ("org.freedesktop.Hal", udi, - "org.freedesktop.Hal.Device.Volume.Crypto", - "Teardown"); - if (msg == NULL) { - kdDebug() << "lock failed for " << udi << ": could not create dbus message\n"; - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - if (!dbus_message_append_args (msg, DBUS_TYPE_INVALID)) { - kdDebug() << "lock failed for " << udi << ": could not append args to dbus message\n"; - dbus_message_unref (msg); - result["errStr"] = i18n("Internal error"); - result["result"] = false; - return result; - } - - dbus_error_init (&error); - if (!(reply = dbus_connection_send_with_reply_and_block (dbus_connection, msg, -1, &error)) || - dbus_error_is_set (&error)) - { - TQString qerror = i18n("Internal Error"); - kdDebug() << "lock failed for " << udi << ": " << error.name << " " << error.message << endl; - dbus_error_free (&error); - dbus_message_unref (msg); - while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ; - result["errStr"] = qerror; - result["result"] = false; - return result; - } - - dbus_message_unref (msg); - dbus_message_unref (reply); - - ResetProperties(udi); - - while (dbus_connection_dispatch(dbus_connection) == DBUS_DISPATCH_DATA_REMAINS) ; - - result["result"] = true; - return result; -} - -#include "halbackend.moc" diff --git a/tdeioslave/media/mediamanager/halbackend.h b/tdeioslave/media/mediamanager/halbackend.h deleted file mode 100644 index ed512fa7b..000000000 --- a/tdeioslave/media/mediamanager/halbackend.h +++ /dev/null @@ -1,233 +0,0 @@ -/* This file is part of the KDE Project - Copyright (c) 2004-2005 Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org> - - 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. -*/ - -/** -* This is a media:/ backend for the freedesktop Hardware Abstraction Layer -* Usage : create an instance of HALBackend, then call InitHal(). A false -* result from the later function means that something went wrong and that -* the backend shall not be used. -* -* @author Jérôme Lodewyck <jerome dot lodewyck at normalesup dot org> -* @short media:/ backend for the HAL -*/ - -#ifndef _HALBACKEND_H_ -#define _HALBACKEND_H_ - -#include "backendbase.h" - -#include <tqobject.h> -#include <tqstringlist.h> -#include <tqstring.h> -#include <tqregexp.h> - -#include <config.h> - -/* We acknowledge the the dbus API is unstable */ -#define DBUS_API_SUBJECT_TO_CHANGE -/* DBus-Qt bindings */ -#include <dbus/connection.h> -/* HAL libraries */ -#include <libhal.h> -#include <libhal-storage.h> - -namespace TDEIO { - class Job; -} - -class HALBackend : public TQObject, public BackendBase -{ -Q_OBJECT - -public: - /** - * Constructor - */ - HALBackend(MediaList &list, TQObject* parent); - - /** - * Destructor - */ - ~HALBackend(); - - /** - * Perform HAL initialization. - * - * @return true if succeded. If not, rely on some other backend - */ - bool InitHal(); - - /** - * List all devices and append them to the media device list (called only once, at startup). - * - * @return true if succeded, false otherwise - */ - bool ListDevices(); - - TQStringList mountoptions(const TQString &id); - - bool setMountoptions(const TQString &id, const TQStringList &options); - - TQStringVariantMap mount(const TQString &id); - TQStringVariantMap mount(const Medium *medium); - TQStringVariantMap unmount(const TQString &id); - TQStringVariantMap unlock(const TQString &id, const TQString &password); - TQStringVariantMap lock(const TQString &id); - -private: - /** - * Append a device in the media list. This function will check if the device - * is worth listing. - * - * @param udi Universal Device Id - * @param allowNotification Indicates if this event will be notified to the user - */ - void AddDevice(const char* udi, bool allowNotification=true); - - /** - * Remove a device from the device list - * - * @param udi Universal Device Id - */ - void RemoveDevice(const char* udi); - - /** - * A device has changed, update it - * - * @param udi Universal Device Id - */ - void ModifyDevice(const char *udi, const char* key); - - /** - * HAL informed that a special action has occured - * (e.g. device unplugged without unmounting) - * - * @param udi Universal Device Id - */ - void DeviceCondition(const char *udi, const char *condition); - - /** - * Integrate the DBus connection within qt main loop - */ - void MainLoopIntegration(DBusConnection *dbusConnection); - -/* Set media properties */ -private: - /** - * Reset properties for the given medium - */ - void ResetProperties(const char* MediumUdi, bool allowNotification=false); - - /** - * Find the medium that is concerned with device udi - */ - const char* findMediumUdiFromUdi(const char* udi); - - void setVolumeProperties(Medium* medium); - bool setFloppyProperties(Medium* medium); - void setFloppyMountState( Medium* medium ); - bool setFstabProperties(Medium* medium); - void setCameraProperties(Medium* medium); - TQString generateName(const TQString &devNode); - static TQString isInFstab(const Medium *medium); - static TQString listUsingProcesses(const Medium *medium); - static TQString killUsingProcesses(const Medium *medium); - -private slots: - void slotResult(TDEIO::Job *job); - -/* Hal call-backs -- from gvm*/ -public: - /** Invoked when a device is added to the Global Device List. - * - * @param ctx LibHal context - * @param udi Universal Device Id - */ - static void hal_device_added(LibHalContext *ctx, const char *udi); - - /** Invoked when a device is removed from the Global Device List. - * - * @param ctx LibHal context - * @param udi Universal Device Id - */ - static void hal_device_removed(LibHalContext *ctx, const char *udi); - - /** Invoked when a property of a device in the Global Device List is - * changed, and we have we have subscribed to changes for that device. - * - * @param ctx LibHal context - * @param udi Univerisal Device Id - * @param key Key of property - */ - static void hal_device_property_modified(LibHalContext *ctx, const char *udi, const char *key, - dbus_bool_t is_removed, dbus_bool_t is_added); - - /** Type for callback when a non-continuos condition occurs on a device - * - * @param udi Univerisal Device Id - * @param condition_name Name of the condition - * @param message D-BUS message with variable parameters depending on condition - */ - static void hal_device_condition(LibHalContext *ctx, const char *udi, - const char *condition_name, - const char* message - ); - - TQStringList getHALmountoptions(TQString udi); -/* HAL and DBus structures */ -private: - /** - * The HAL context connecting the whole application to the HAL - */ - LibHalContext* m_halContext; - - /** - * libhal-storage HAL policy, e.g. for icon names - */ - LibHalStoragePolicy* m_halStoragePolicy; - - /** - * The DBus-Qt bindings connection for mainloop integration - */ - DBusQt::Connection* m_dBusQtConnection; - - /** - * Object for the kded module - */ - TQObject* m_parent; - - DBusConnection *dbus_connection; - - /** - * Data structure for fstab mount/unmount jobs - */ - struct mount_job_data { - // [in] Medium, which is being mounted/unmounted by the job - const Medium* medium; - // [in,out] Should be set to true when the job completes - bool completed; - // [out] TDEIO::Error if an error occured during operation. Otherwise, 0 - int error; - // [out] Error message to be displayed to the user - TQString errorMessage; - }; - - TQMap<TDEIO::Job *, struct mount_job_data*> mount_jobs; -}; - -#endif /* _HALBACKEND_H_ */ diff --git a/tdeioslave/media/mediamanager/linuxcdpolling.cpp b/tdeioslave/media/mediamanager/linuxcdpolling.cpp index 0fcda8d0f..66074f40e 100644 --- a/tdeioslave/media/mediamanager/linuxcdpolling.cpp +++ b/tdeioslave/media/mediamanager/linuxcdpolling.cpp @@ -176,19 +176,19 @@ private: LinuxCDPolling::LinuxCDPolling(MediaList &list) : TQObject(), BackendBase(list) { - connect(&m_mediaList, TQT_SIGNAL(mediumAdded(const TQString &, + connect(&m_mediaList, TQ_SIGNAL(mediumAdded(const TQString &, const TQString &, bool)), - this, TQT_SLOT(slotMediumAdded(const TQString &)) ); + this, TQ_SLOT(slotMediumAdded(const TQString &)) ); - connect(&m_mediaList, TQT_SIGNAL(mediumRemoved(const TQString &, + connect(&m_mediaList, TQ_SIGNAL(mediumRemoved(const TQString &, const TQString &, bool)), - this, TQT_SLOT(slotMediumRemoved(const TQString &)) ); + this, TQ_SLOT(slotMediumRemoved(const TQString &)) ); - connect(&m_mediaList, TQT_SIGNAL(mediumStateChanged(const TQString &, + connect(&m_mediaList, TQ_SIGNAL(mediumStateChanged(const TQString &, const TQString &, bool, bool)), - this, TQT_SLOT(slotMediumStateChanged(const TQString &)) ); + this, TQ_SLOT(slotMediumStateChanged(const TQString &)) ); - connect(&m_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotTimeout())); + connect(&m_timer, TQ_SIGNAL(timeout()), this, TQ_SLOT(slotTimeout())); } LinuxCDPolling::~LinuxCDPolling() @@ -216,7 +216,7 @@ void LinuxCDPolling::slotMediumAdded(const TQString &id) TQString mime = medium->mimeType(); kdDebug(1219) << "mime == " << mime << endl; - if (mime.find("dvd")==-1 && mime.find("cd")==-1) return; + if (mime.find("dvd")==-1 && mime.find("cd")==-1 && mime.find("bluray")==-1) return; if (!medium->isMounted()) { @@ -255,7 +255,7 @@ void LinuxCDPolling::slotMediumStateChanged(const TQString &id) TQString mime = medium->mimeType(); kdDebug(1219) << "mime == " << mime << endl; - if (mime.find("dvd")==-1 && mime.find("cd")==-1) return; + if (mime.find("dvd")==-1 && mime.find("cd")==-1 && mime.find("bluray")==-1) return; if (!m_threads.contains(id) && !medium->isMounted()) { @@ -319,7 +319,12 @@ static TQString baseType(const Medium *medium) FstabBackend::guess(devNode, mountPoint, fsType, mounted, mimeType, iconName, label); - if (devNode.find("dvd")!=-1) + if (devNode.find("bluray")!=-1) + { + kdDebug(1219) << "=> bluray" << endl; + return "bluray"; + } + else if (devNode.find("dvd")!=-1) { kdDebug(1219) << "=> dvd" << endl; return "dvd"; @@ -373,25 +378,30 @@ void LinuxCDPolling::applyType(DiscType type, const Medium *medium) m_mediaList.changeMediumState(id, "audiocd:/?device="+dev, notify, "media/audiocd"); break; - case DiscType::VCD: - m_mediaList.changeMediumState(id, false, notify, "media/vcd"); + case DiscType::BLURAY: + m_mediaList.changeMediumState(id, false, notify, "media/blurayvideo"); + break; + case DiscType::DVD: + m_mediaList.changeMediumState(id, false, notify, "media/dvdvideo"); break; case DiscType::SVCD: m_mediaList.changeMediumState(id, false, notify, "media/svcd"); break; - case DiscType::DVD: - m_mediaList.changeMediumState(id, false, notify, "media/dvdvideo"); + case DiscType::VCD: + m_mediaList.changeMediumState(id, false, notify, "media/vcd"); break; case DiscType::Blank: - if (baseType(medium)=="dvd") + if (baseType(medium)=="bluray") { - m_mediaList.changeMediumState(id, false, - notify, "media/blankdvd"); + m_mediaList.changeMediumState(id, false, notify, "media/blankbluray"); + } + else if (baseType(medium)=="dvd") + { + m_mediaList.changeMediumState(id, false, notify, "media/blankdvd"); } else { - m_mediaList.changeMediumState(id, false, - notify, "media/blankcd"); + m_mediaList.changeMediumState(id, false, notify, "media/blankcd"); } break; case DiscType::None: @@ -444,18 +454,22 @@ DiscType LinuxCDPolling::identifyDiscType(const TQCString &devNode, return DiscType::Audio; case CDS_DATA_1: case CDS_DATA_2: - if (hasDirectory(devNode, "video_ts")) + if (hasDirectory(devNode, "BDMV")) { - return DiscType::DVD; + return DiscType::BLURAY; } - else if (hasDirectory(devNode, "vcd")) + else if (hasDirectory(devNode, "video_ts")) { - return DiscType::VCD; + return DiscType::DVD; } else if (hasDirectory(devNode, "svcd")) { return DiscType::SVCD; } + else if (hasDirectory(devNode, "vcd")) + { + return DiscType::VCD; + } else { return DiscType::Data; @@ -500,7 +514,7 @@ bool LinuxCDPolling::hasDirectory(const TQCString &devNode, const TQCString &dir close(fd); return false; } - if (Q_BYTE_ORDER != Q_LITTLE_ENDIAN) + if (TQ_BYTE_ORDER != TQ_LITTLE_ENDIAN) bs = ((bs << 8) & 0xFF00) | ((bs >> 8) & 0xFF); // read in size of path table @@ -510,7 +524,7 @@ bool LinuxCDPolling::hasDirectory(const TQCString &devNode, const TQCString &dir close(fd); return false; } - if (Q_BYTE_ORDER != Q_LITTLE_ENDIAN) + if (TQ_BYTE_ORDER != TQ_LITTLE_ENDIAN) ts = ((ts << 8) & 0xFF00) | ((ts >> 8) & 0xFF); // read in which block path table is in @@ -520,7 +534,7 @@ bool LinuxCDPolling::hasDirectory(const TQCString &devNode, const TQCString &dir close(fd); return false; } - if (Q_BYTE_ORDER != Q_LITTLE_ENDIAN) + if (TQ_BYTE_ORDER != TQ_LITTLE_ENDIAN) tl = ((tl << 24) & 0xFF000000) | ((tl << 8) & 0xFF0000) | ((tl >> 8) & 0xFF00) | ((tl >> 24) & 0xFF); @@ -545,7 +559,7 @@ bool LinuxCDPolling::hasDirectory(const TQCString &devNode, const TQCString &dir ret = false; break; } - if (Q_BYTE_ORDER != Q_LITTLE_ENDIAN) + if (TQ_BYTE_ORDER != TQ_LITTLE_ENDIAN) parent = ((parent << 8) & 0xFF00) | ((parent >> 8) & 0xFF); // read the name diff --git a/tdeioslave/media/mediamanager/linuxcdpolling.h b/tdeioslave/media/mediamanager/linuxcdpolling.h index 3dec7e3ee..070ad5eea 100644 --- a/tdeioslave/media/mediamanager/linuxcdpolling.h +++ b/tdeioslave/media/mediamanager/linuxcdpolling.h @@ -1,5 +1,5 @@ /* This file is part of the KDE Project - Copyright (c) 2004 Kvin Ottens <ervin ipsquad net> + Copyright (c) 2004 Kévin Ottens <ervin ipsquad net> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -30,7 +30,7 @@ class DiscType { public: enum Type { None, Unknown, Audio, Data, DVD, Mixed, - Blank, VCD, SVCD, UnknownType, Broken }; + Blank, VCD, SVCD, BLURAY, UnknownType, Broken }; DiscType(Type type = Unknown); @@ -49,7 +49,7 @@ class PollingThread; class LinuxCDPolling : public TQObject, public BackendBase { -Q_OBJECT +TQ_OBJECT public: diff --git a/tdeioslave/media/mediamanager/mediabackend.desktop b/tdeioslave/media/mediamanager/mediabackend.desktop index d9ef21939..54e372e85 100644 --- a/tdeioslave/media/mediamanager/mediabackend.desktop +++ b/tdeioslave/media/mediamanager/mediabackend.desktop @@ -4,4 +4,4 @@ X-DCOP-ServiceType=wait Type=Service X-TDE-StartupNotify=false OnlyShowIn=TDE; -X-TDE-autostart-phase=1 +X-TDE-autostart-phase=0 diff --git a/tdeioslave/media/mediamanager/medialist.cpp b/tdeioslave/media/mediamanager/medialist.cpp index b06824d0c..8ea9aec50 100644 --- a/tdeioslave/media/mediamanager/medialist.cpp +++ b/tdeioslave/media/mediamanager/medialist.cpp @@ -128,42 +128,43 @@ 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->setEncrypted(medium.isEncrypted()); + m->setLocked(medium.isLocked()); + 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->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 +185,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 +227,16 @@ bool MediaList::changeMediumState(const TQString &id, Medium *medium = m_idMap[id]; - medium->mountableState( deviceNode, mountPoint, fsType, mounted ); + if (medium->deviceNode().isEmpty() || !medium->isMountable()) + { + return false; + } + + medium->setMountable(true); + medium->setDeviceNode(deviceNode); + medium->setMountPoint(mountPoint); + medium->setFsType(fsType); + medium->setMounted(mounted); if (!mimeType.isEmpty()) { @@ -262,7 +273,12 @@ bool MediaList::changeMediumState(const TQString &id, bool mounted, Medium *medium = m_idMap[id]; - if ( !medium->mountableState( mounted ) ) return false; + if (medium->deviceNode().isEmpty() || !medium->isMountable()) + { + return false; + } + + medium->setMounted(mounted); if (!mimeType.isEmpty()) { diff --git a/tdeioslave/media/mediamanager/medialist.h b/tdeioslave/media/mediamanager/medialist.h index f4b088526..a92d1b6c0 100644 --- a/tdeioslave/media/mediamanager/medialist.h +++ b/tdeioslave/media/mediamanager/medialist.h @@ -23,9 +23,9 @@ #include "medium.h" -class MediaList : public QObject +class MediaList : public TQObject { -Q_OBJECT +TQ_OBJECT public: MediaList(); diff --git a/tdeioslave/media/mediamanager/mediamanager.cpp b/tdeioslave/media/mediamanager/mediamanager.cpp index 7a8262eec..d61e6946c 100644 --- a/tdeioslave/media/mediamanager/mediamanager.cpp +++ b/tdeioslave/media/mediamanager/mediamanager.cpp @@ -36,10 +36,6 @@ #include "tdehardwarebackend.h" #endif // COMPILE_TDEHARDWAREBACKEND -#ifdef COMPILE_HALBACKEND -#include "halbackend.h" -#endif //COMPILE_HALBACKEND - #ifdef COMPILE_LINUXCDPOLLING #include "linuxcdpolling.h" #endif //COMPILE_LINUXCDPOLLING @@ -47,15 +43,15 @@ MediaManager::MediaManager(const TQCString &obj) : KDEDModule(obj), m_dirNotify(m_mediaList) { - connect( &m_mediaList, TQT_SIGNAL(mediumAdded(const TQString&, const TQString&, bool)), - TQT_SLOT(slotMediumAdded(const TQString&, const TQString&, bool)) ); - connect( &m_mediaList, TQT_SIGNAL(mediumRemoved(const TQString&, const TQString&, bool)), - TQT_SLOT(slotMediumRemoved(const TQString&, const TQString&, bool)) ); + connect( &m_mediaList, TQ_SIGNAL(mediumAdded(const TQString&, const TQString&, bool)), + TQ_SLOT(slotMediumAdded(const TQString&, const TQString&, bool)) ); + connect( &m_mediaList, TQ_SIGNAL(mediumRemoved(const TQString&, const TQString&, bool)), + TQ_SLOT(slotMediumRemoved(const TQString&, const TQString&, bool)) ); connect( &m_mediaList, - TQT_SIGNAL(mediumStateChanged(const TQString&, const TQString&, bool, bool)), - TQT_SLOT(slotMediumChanged(const TQString&, const TQString&, bool, bool)) ); + TQ_SIGNAL(mediumStateChanged(const TQString&, const TQString&, bool, bool)), + TQ_SLOT(slotMediumChanged(const TQString&, const TQString&, bool, bool)) ); - TQTimer::singleShot( 10, this, TQT_SLOT( loadBackends() ) ); + TQTimer::singleShot( 10, this, TQ_SLOT( loadBackends() ) ); } MediaManager::~MediaManager() @@ -80,33 +76,9 @@ void MediaManager::loadBackends() } mp_removableBackend = 0L; - m_halbackend = 0L; m_tdebackend = 0L; m_fstabbackend = 0L; -#ifdef COMPILE_HALBACKEND - if ( MediaManagerSettings::self()->halBackendEnabled() ) - { - m_mediaList.blockSignals(false); - m_halbackend = new HALBackend(m_mediaList, this); - if (m_halbackend->InitHal()) - { - m_backends.append( m_halbackend ); - m_fstabbackend = new FstabBackend(m_mediaList, true); - m_backends.append( m_fstabbackend ); - // No need to load something else... - m_mediaList.blockSignals(false); - return; - } - else - { - delete m_halbackend; - m_halbackend = 0; - m_mediaList.blockSignals(true); - } - } -#endif // COMPILE_HALBACKEND - #ifdef COMPILE_TDEHARDWAREBACKEND if ( MediaManagerSettings::self()->tdeHardwareBackendEnabled() ) { @@ -136,39 +108,22 @@ void MediaManager::loadBackends() m_mediaList.blockSignals(false); } - -TQStringList MediaManager::fullList() -{ - TQPtrList<Medium> list = m_mediaList.list(); - - TQStringList result; - - TQPtrList<Medium>::const_iterator it = list.begin(); - TQPtrList<Medium>::const_iterator end = list.end(); - for (; it!=end; ++it) - { - result+= (*it)->properties(); - result+= Medium::SEPARATOR; - } - - return result; -} - -TQStringList MediaManager::properties(const TQString &name) +const Medium* MediaManager::getMediumByName(const TQString &name) { const Medium *m = m_mediaList.findByName(name); - if (!m) { KURL u(name); - kdDebug() << "Media::prop " << name << " " << u.isValid() << endl; + kdDebug() << "Media::getMediumByName " << name << " " << u.isValid() << endl; if (u.isValid()) { if (u.protocol() == "system") { TQString path = u.path(); if (path.startsWith("/media/")) + { path = path.mid(strlen("/media/")); + } m = m_mediaList.findByName(path); kdDebug() << "findByName " << path << m << endl; } @@ -189,170 +144,162 @@ TQStringList MediaManager::properties(const TQString &name) { path = TDEStandardDirs::realFilePath(u.path()); kdDebug() << "comparing " << (*it)->mountPoint() << " " << path << " " << (*it)->deviceNode() << endl; - if ((*it)->mountPoint() == path || (*it)->deviceNode() == path) { - m = *it; - break; + if ((*it)->mountPoint() == path || (*it)->deviceNode() == path) + { + m = *it; + break; } } } } } + return m; +} + +TQStringList MediaManager::fullList() +{ + TQPtrList<Medium> list = m_mediaList.list(); + + TQStringList result; + + TQPtrList<Medium>::const_iterator it = list.begin(); + TQPtrList<Medium>::const_iterator end = list.end(); + for (; it!=end; ++it) + { + result+= (*it)->properties(); + result+= Medium::SEPARATOR; + } + + return result; +} - if (m) { +TQStringList MediaManager::properties(const TQString &name) +{ + const Medium *m = getMediumByName(name); + if (m) + { return m->properties(); } - else { + else + { return TQStringList(); } } TQStringList MediaManager::mountoptions(const TQString &name) { -#ifdef COMPILE_HALBACKEND - if (!m_halbackend) - return TQStringList(); - return m_halbackend->mountoptions(name); -#else // COMPILE_HALBACKEND - #ifdef COMPILE_TDEHARDWAREBACKEND - if (!m_tdebackend) - return TQStringList(); +#ifdef COMPILE_TDEHARDWAREBACKEND + if (m_tdebackend) + { return m_tdebackend->mountoptions(name); - #else // COMPILE_TDEHARDWAREBACKEND - return TQStringList(); - #endif // COMPILE_TDEHARDWAREBACKEND -#endif // COMPILE_HALBACKEND + } +#endif + return TQStringList(); } bool MediaManager::setMountoptions(const TQString &name, const TQStringList &options) { -#ifdef COMPILE_HALBACKEND - if (!m_halbackend) - return false; - return m_halbackend->setMountoptions(name, options); -#else // COMPILE_HALBACKEND - #ifdef COMPILE_TDEHARDWAREBACKEND - if (!m_tdebackend) - return false; +#ifdef COMPILE_TDEHARDWAREBACKEND + if (m_tdebackend) + { return m_tdebackend->setMountoptions(name, options); - #else // COMPILE_TDEHARDWAREBACKEND - return false; - #endif // COMPILE_TDEHARDWAREBACKEND -#endif // COMPILE_HALBACKEND + } +#endif + return false; } TQStringVariantMap MediaManager::mount(const TQString &uid) { - TQStringVariantMap result; #ifdef COMPILE_TDEHARDWAREBACKEND - if (!m_tdebackend) { - result["errStr"] = i18n("Feature only available with the TDE hardware backend"); - result["result"] = false; - return result; + if (m_tdebackend) + { + return m_tdebackend->mount(uid); } - return m_tdebackend->mount(uid); -#elif defined COMPILE_HALBACKEND - if (!m_halbackend) { - result["errStr"] = i18n("Feature only available with HAL"); - result["result"] = false; - return result; - } - return m_halbackend->mount(uid); #else - if (!m_fstabbackend) { - result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend"); - result["result"] = false; - return result; + if (m_fstabbackend) + { + return m_fstabbackend->mount(uid); } - return m_fstabbackend->mount(uid); #endif + TQStringVariantMap result; + result["errStr"] = i18n("Feature only available with the TDE hardware or fstab backend"); + result["result"] = false; + return result; } TQStringVariantMap MediaManager::unmount(const TQString &uid) { - TQStringVariantMap result; #ifdef COMPILE_TDEHARDWAREBACKEND - if (!m_tdebackend) { - result["errStr"] = i18n("Feature only available with the TDE hardware backend"); - result["result"] = false; - return result; + if (m_tdebackend) + { + return m_tdebackend->unmount(uid); } - return m_tdebackend->unmount(uid); -#elif defined COMPILE_HALBACKEND - if (!m_halbackend) { - result["errStr"] = i18n("Feature only available with HAL"); - result["result"] = false; - return result; - } - return m_halbackend->unmount(uid); #else - if (!m_fstabbackend) { - result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend"); - result["result"] = false; - return result; + if (m_fstabbackend) + { + return m_fstabbackend->unmount(uid); } - return m_fstabbackend->unmount(uid); #endif + TQStringVariantMap result; + result["errStr"] = i18n("Feature only available with the TDE hardware or fstab backend"); + result["result"] = false; + return result; } TQStringVariantMap MediaManager::unlock(const TQString &uid, const TQString &password) { - TQStringVariantMap result; -/* #ifdef COMPILE_TDEHARDWAREBACKEND - if (!m_tdebackend) { - result["errStr"] = i18n("Feature only available with the TDE hardware backend"); - result["result"] = false; - return result; - } - return m_tdebackend->unlock(uid, password); -#elif defined COMPILE_HALBACKEND -*/ -#if defined COMPILE_HALBACKEND - if (!m_halbackend) { - result["errStr"] = i18n("Feature only available with HAL"); - result["result"] = false; - return result; + if (m_tdebackend) + { + return m_tdebackend->unlock(uid, password); } - return m_halbackend->unlock(uid, password); - -#else -// if (!m_fstabbackend) { - result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend"); - result["result"] = false; - return result; -// } -// return m_fstabbackend->unlock(uid, password); #endif + TQStringVariantMap result; + result["errStr"] = i18n("Feature only available with the TDE hardware backend"); + result["result"] = false; + return result; } -TQStringVariantMap MediaManager::lock(const TQString &uid) +TQStringVariantMap MediaManager::lock(const TQString &uid, bool releaseHolders) { +#ifdef COMPILE_TDEHARDWAREBACKEND + if (m_tdebackend) + { + return m_tdebackend->lock(uid, releaseHolders); + } +#endif TQStringVariantMap result; -/* + result["errStr"] = i18n("Feature only available with the TDE hardware backend"); + result["result"] = false; + return result; +} + +TQStringVariantMap MediaManager::eject(const TQString &uid) +{ #ifdef COMPILE_TDEHARDWAREBACKEND - if (!m_tdebackend) { - result["errStr"] = i18n("Feature only available with the TDE hardware backend"); - result["result"] = false; - return result; + if (m_tdebackend) + { + return m_tdebackend->eject(uid); } - return m_tdebackend->lock(uid); -#elif defined COMPILE_HALBACKEND -*/ -#if defined COMPILE_HALBACKEND - if (!m_halbackend) { - result["errStr"] = i18n("Feature only available with HAL"); - result["result"] = false; - return result; +#endif + TQStringVariantMap result; + result["errStr"] = i18n("Feature only available with the TDE hardware backend"); + result["result"] = false; + return result; +} + +TQStringVariantMap MediaManager::safeRemove(const TQString &uid) +{ +#ifdef COMPILE_TDEHARDWAREBACKEND + if (m_tdebackend) + { + return m_tdebackend->safeRemove(uid); } - return m_halbackend->lock(uid); -#else -// if (!m_fstabbackend) { - result["errStr"] = i18n("Feature only available with HAL or TDE hardware backend"); - result["result"] = false; - return result; -// } -// return m_fstabbackend->lock(uid); #endif + TQStringVariantMap result; + result["errStr"] = i18n("Feature only available with the TDE hardware backend"); + result["result"] = false; + return result; } TQStringVariantMap MediaManager::mountByNode(const TQString &deviceNode) @@ -391,7 +338,7 @@ TQStringVariantMap MediaManager::unlockByNode(const TQString &deviceNode, const return unlock(medium->id(), password); } -TQStringVariantMap MediaManager::lockByNode(const TQString &deviceNode) +TQStringVariantMap MediaManager::lockByNode(const TQString &deviceNode, bool releaseHolders) { const Medium *medium = m_mediaList.findByNode(deviceNode); if (!medium) { @@ -400,7 +347,44 @@ TQStringVariantMap MediaManager::lockByNode(const TQString &deviceNode) result["result"] = false; return result; } - return lock(medium->id()); + return lock(medium->id(), releaseHolders); +} + +TQStringVariantMap MediaManager::ejectByNode(const TQString &deviceNode) +{ + const Medium *medium = m_mediaList.findByNode(deviceNode); + if (!medium) { + TQStringVariantMap result; + result["errStr"] = i18n("No such medium: %1").arg(deviceNode); + result["result"] = false; + return result; + } + return eject(medium->id()); +} + +TQStringVariantMap MediaManager::safeRemoveByNode(const TQString &deviceNode) +{ + const Medium *medium = m_mediaList.findByNode(deviceNode); + if (!medium) { + TQStringVariantMap result; + result["errStr"] = i18n("No such medium: %1").arg(deviceNode); + result["result"] = false; + return result; + } + return safeRemove(medium->id()); +} + +TQString MediaManager::mimeType(const TQString &name) +{ + const Medium *m = getMediumByName(name); + if (m) + { + return m->mimeType(); + } + else + { + return TQString::null; + } } TQString MediaManager::nameForLabel(const TQString &label) @@ -499,7 +483,7 @@ void MediaManager::slotMediumChanged(const TQString &/*id*/, const TQString &nam extern "C" { - KDE_EXPORT KDEDModule *create_mediamanager(const TQCString &obj) + TDE_EXPORT KDEDModule *create_mediamanager(const TQCString &obj) { TDEGlobal::locale()->insertCatalogue("tdeio_media"); return new MediaManager(obj); diff --git a/tdeioslave/media/mediamanager/mediamanager.desktop b/tdeioslave/media/mediamanager/mediamanager.desktop index e189bd9de..950b2576e 100644 --- a/tdeioslave/media/mediamanager/mediamanager.desktop +++ b/tdeioslave/media/mediamanager/mediamanager.desktop @@ -1,141 +1,14 @@ [Desktop Entry] Type=Service + Name=KDED Media Manager -Name[af]=KDED Media Bestuurder -Name[ar]=مسيير الوسائط KDED -Name[az]=KDED Mediya İdarəcisi -Name[be]=Кіраўнік носьбітаў KDED -Name[bg]=Управление на устройствата KDED -Name[bn]=কে.ডি.ই.ডি. মিডিয়া ম্যানেজার -Name[bs]=KDED upravitelj medijima -Name[ca]=Gestor de suports KDED -Name[cs]=KDED správce médií -Name[csb]=Menedżer zôpisownëch mediów dlô KDED -Name[da]=KDED Mediehåndtering -Name[de]=Medienverwaltung -Name[el]=Διαχειριστής μέσων KDED -Name[eo]=KDatumportila administrilo -Name[es]=Gestor de dispositivos KDED -Name[et]=KDED andmekandjate haldur -Name[eu]=KDED media kudeatzailea -Name[fa]=مدیر رسانه KDED -Name[fi]=KDED-tallennusmedianhallinta -Name[fr]=Gestionnaire de média KDED -Name[fy]=KDEDED-mediabehearder -Name[ga]=Bainisteoir Meán KDED -Name[gl]=Xestor de Meios de KDED -Name[he]=מנהל המדיה של KDED -Name[hi]=केडीईडी मीडिया प्रबंधक -Name[hr]=KDED upravitelj medija -Name[hu]=KDED médiakezelő -Name[is]=KDED miðilstjóri -Name[it]=Gestore dei supporti KDED -Name[ja]=KDED メディアマネージャ -Name[ka]=მატარებლების მმართველი KDED -Name[kk]=KDED ауыстырмалы тасушыларды басқару -Name[km]=កម្មវិធីគ្រប់គ្រងព័ត៌មាន KDED -Name[ko]=KDE 창 관리자 -Name[lv]=KDED Datu nesēju menedžeris -Name[mk]=Менаџер на носачи KDED -Name[ms]=Pengurus Media KDED -Name[nb]=KDED mediebehandler -Name[nds]=KDED-Medienpleeg -Name[ne]=KDED मिडिया प्रबन्धक -Name[nl]=KDED-Mediabeheerder -Name[nn]=KDED Mediehandsamar -Name[pa]=KDED ਮਾਧਿਅਮ ਮੈਨੇਜਰ -Name[pl]=Menedżer nośników danych dla KDED -Name[pt]=Gestor de Dispositivos KDED -Name[pt_BR]=Gerenciador de Mídia -Name[ro]=Manager multimedia KDED -Name[ru]=Управление подключаемыми устройствами -Name[rw]=Mugenga Igihuza KDED -Name[se]=KDED-mediagieđahalli -Name[sk]=KDED správca médií -Name[sl]=Upravitelj medijev KDED -Name[sr]=Менаџер медијума, KDED -Name[sr@Latn]=Menadžer medijuma, KDED -Name[sv]=KDED-mediahanterare -Name[ta]=KDED மீடியா மேலாளர் -Name[te]=కెడిఈడి మాధ్యమ అభికర్త -Name[th]=เครื่องมือจัดการสื่อบันทึก KDED -Name[tr]=KDED Ortam Yöneticisi -Name[tt]=KDED Media İdäräçe -Name[uk]=Менеджер носіїв інформації для KDED -Name[uz]=KDED saqlash uskunalarni boshqaruvchi -Name[uz@cyrillic]=KDED сақлаш ускуналарни бошқарувчи -Name[vi]=Trình quản lí Ổ lưu trữ KDED -Name[wa]=Manaedjeu di fitchîs KDED -Name[zh_CN]=KDED 介质管理器 -Name[zh_TW]=KDED 媒體管理程式 + Comment=Keep track of media activities and allow to (un)mount (media:/) -Comment[af]=Hou tred van media aktiwiteite en laat die (ont)koppel van 'media:/' toe -Comment[ar]=يتتبع نشاطات الوسائط و يسمح بتكيبها/إزالة تركيبها (media:/) -Comment[be]=Вядзе інфармацыю аб медыяносьбітах і дазваляе прымацоўваць/адмацоўваць іх (media:/) -Comment[bg]=Наблюдение на устройствата и разрешаване на монтиране/демонтиране на (media:/) -Comment[bn]=কোথায় কী মিডিয়া ব্যবহার করা হচ্ছে খেয়াল রাখুন এবং (আন)মাউন্ট করুন (media:/) -Comment[bs]=Prati aktivnosti montiranja uređaja za smještaj podataka (media:/) -Comment[ca]=Fa el seguiment de les activitats dels suports i permet muntar i desmuntar (media:/) -Comment[cs]=Udržuje přehled o připojených zařízeních -Comment[csb]=Dozérô zdarzeniów sparłączonëch z mediama pòdôwków ë zezwôlô je (òd)mòntowac (media:/) -Comment[da]=Hold styr på medieaktiviteter og tillad at (af)montere (media:/) -Comment[de]=Überwacht Medien-Aktivität und ermöglicht das Einbinden/Lösen von Einbindungen (media:/) -Comment[el]=Έλεγχος ενεργειών των μέσων και δυνατότητα (από)προσάρτησης (media:/) -Comment[eo]=Sekvu spurojn de datumportilaj aktivoj kaj permesu (de/sur)meti (media:/) -Comment[es]=Monitoriza las actividades de los recursos y permite (des)montarlos (media:/) -Comment[et]=Hoiab silma peal andmekandjate aktiivsusel ja võimaldab neid ühendada/lahutada (media:/) -Comment[eu]=Montatzeak begiztatzen ditu (media:/) eta desmontatzen uzten du -Comment[fa]=حفظ رد فعالیتهای رسانه و اجازۀ سوار(پیاده) کردن (media:/) -Comment[fi]=Pidä kirjaa tallennustapahtumista ja salli tallennusvälineen liittäminen/irrotus (devices:/) -Comment[fr]=Gardez une trace des montages et permettre le (dé)montage (media:/) -Comment[fy]=Hâld de media-aktiviteiten by en stien ta om media oan- en ôf te keppelje (media:/) -Comment[gl]=Seguemento das actividades dos meios e permite-lle (des)montar (media:/) -Comment[he]=מנטר אחר פעילויות מדיה, ומאפשר לחבר או לנתק התקנים (media:/) -Comment[hi]=मीडिया क्रियाओं की जानकारी रखे तथा (अन)माउन्ट करने दे (मीडिया:/) -Comment[hr]=Praćenje aktivnosti medija i omogućavanje pristupanja i napuštanja -Comment[hu]=Az adathordozók követése, csatlakoztatása és leválasztása (media:/) -Comment[is]=Fylgjast með breytingum á tækjum og bjóða upp á (af)tengingu (media:/) -Comment[it]=Tiene traccia delle attività dei supporti e permette di montarli o smontarli (device:/) -Comment[ja]=メディアの活動を追跡し、(media:/) をマウントしたりアンマウントします -Comment[ka]=თვალყურს ადევნებს მედიის აქტიურობას და საშუალებას აძლევს (დე)მონტირების გაკეთებას (media:/) -Comment[kk]=Тасушылардың белсендігін байқап тіркеуге не тіркеуден шығаруға мүмкіндік береді: (un)mount (media:/) -Comment[km]=តាមដានសកម្មភាពព័ត៌មាន និងអនុញ្ញាតឲ្យរៀបចំ (មិនរៀបចំ) (media:/) -Comment[lt]=Stebi laikmenose vykdomus veiksmus ir leidžia (iš)montuoti (media:/) -Comment[lv]=Seko datu nesēju aktivitātēm un ļauj montēt/nomontēt tos (media:/) -Comment[mk]=Води сметка за активностите на носачите и дозволува (од)монтирање (media:/) -Comment[ms]=Ikuti perkembangan aktiviti media dan benarkan untuk (nyah)lekap (media:/) -Comment[mt]=Żomm kont ta' attivitajiet ta' mmuntar u ippermetti (un)mount (media:/) -Comment[nb]=Holder styr på monteringsaktiviteter og lar deg (av)montere (media:/) -Comment[nds]=Blifft bi all Medienaktiviteten op'n Stand un verlöövt dat In- un Afhangen (media:/) -Comment[ne]=मिडिया क्रियाकलापको मार्ग राख्नुहोस् र (अन)माउन्ट (media:/) गर्न अनुमति दिनुहोस् -Comment[nl]=Houdt de media-activiteiten bij en staat u toe om media aan- en af te koppelen (media:/) -Comment[nn]=Held styr på medieaktivitetar og lèt deg montera og avmontera (media:/) -Comment[pa]=ਮਾਊਟ ਕਾਰਵਾਈਆਂ ਦੀ ਜਾਣਕਾਰੀ ਰੱਖੋ ਅਤੇ ਅਨ-ਮਾਊਟ ਕਰਨ ਦਿਓ (ਜੰਤਰ:/) -Comment[pl]=Śledzi zdarzenia związane z nośnikami danych i pozwala je (od)montować (media:/) -Comment[pt]=Manter o registo das actividades de dispositivos e permitir a (des)montagem (media:/) -Comment[pt_BR]=Monitora as atividades de mídias e permite a (des)montagem (media:/) -Comment[ro]=Urmărește activitățile multimedia și permite (de)montarea media:/ -Comment[ru]=Автоматическое подключение устройств (media:/) -Comment[rw]=Kugumana inzira y'ibikorwa by'ibitangazamakuru no kwemerera gushyiramo(gukuramo) (ibitangazamakuru:/) -Comment[se]=Gozit mii dáhpáhuvvá median ja diktá du gálgat ja čadnat daid (media:/) -Comment[sk]=Sledovanie pripojenia/odpojenia medií (media:/) -Comment[sl]=Nadzoruj dejanja medija in dovilo priklop/odklop (media:/) -Comment[sr]=Прати активност медијума и омогућава (де)монтирање (media:/) -Comment[sr@Latn]=Prati aktivnost medijuma i omogućava (de)montiranje (media:/) -Comment[sv]=Håll reda på mediaaktiviteter och tillåt (av)montering (media:/) -Comment[ta]=இடைக்காலத்திற்குரிய நடவடிக்கைகளின் வைத்திரு. (சாதனம்:/)த்தை ஏற்ற(இறக்க)கவும் அனுமதி -Comment[th]=จะคอยติดตามกิจกรรมของสื่อบันทึก และอนุญาตให้เมานท์หรือยกเลิกการเมานท์ (media:/) -Comment[tr]=Ortam işlemlerini takip et ve bağlanma işlemlerine izin ver(media:/) -Comment[tt]=Cıhazlarnıñ totaşuın/ayırıluın sizüçe närsä (media:/) -Comment[uk]=Спостерігає за змінами серед носіїв інформації та дозволяє (роз)монтування (media:/) -Comment[vi]=Theo dõi các hoạt động của ổ lưu trữ và cho phép lắp đặt hay gỡ bỏ chúng ở thư mục "media:/" -Comment[wa]=Wåde li trace des activités media eyet permete di (dis)monter (media:/) -Comment[zh_CN]=跟踪介质活动并允许挂载或卸载(media:/) -Comment[zh_TW]=持續追蹤媒體活動並允許(解除)掛載 (media:/) + X-TDE-ServiceTypes=KDEDModule X-TDE-ModuleType=Library X-TDE-Library=mediamanager X-TDE-FactoryName=mediamanager -X-TDE-Kded-autoload=true -X-TDE-Kded-load-on-demand=true +X-TDE-Kded-autoload=false +X-TDE-Kded-load-on-demand=false X-TDE-Kded-phase=1 diff --git a/tdeioslave/media/mediamanager/mediamanager.h b/tdeioslave/media/mediamanager/mediamanager.h index d8a31d8e1..1fe873f98 100644 --- a/tdeioslave/media/mediamanager/mediamanager.h +++ b/tdeioslave/media/mediamanager/mediamanager.h @@ -29,18 +29,19 @@ #include "removablebackend.h" #include "mediadirnotify.h" -class HALBackend; class TDEBackend; class FstabBackend; class MediaManager : public KDEDModule { -Q_OBJECT +TQ_OBJECT K_DCOP public: MediaManager(const TQCString &obj); ~MediaManager(); + const Medium* getMediumByName(const TQString &name); + k_dcop: TQStringList fullList(); TQStringList properties(const TQString &name); @@ -50,19 +51,23 @@ k_dcop: TQStringVariantMap mount(const TQString &uid); TQStringVariantMap unmount(const TQString &uid); TQStringVariantMap unlock(const TQString &uid, const TQString &password); - TQStringVariantMap lock(const TQString &uid); + TQStringVariantMap lock(const TQString &uid, bool releaseHolders); + TQStringVariantMap eject(const TQString &uid); + TQStringVariantMap safeRemove(const TQString &uid); TQStringVariantMap mountByNode(const TQString &deviceNode); TQStringVariantMap unmountByNode(const TQString &deviceNode); TQStringVariantMap unlockByNode(const TQString &deviceNode, const TQString &password); - TQStringVariantMap lockByNode(const TQString &deviceNode); + TQStringVariantMap lockByNode(const TQString &deviceNode, bool releaseHolders); + TQStringVariantMap ejectByNode(const TQString &deviceNode); + TQStringVariantMap safeRemoveByNode(const TQString &deviceNode); + TQString mimeType(const TQString &name); TQString nameForLabel(const TQString &label); ASYNC setUserLabel(const TQString &name, const TQString &label); ASYNC reloadBackends(); - // Removable media handling (for people not having HAL) bool removablePlug(const TQString &devNode, const TQString &label); bool removableUnplug(const TQString &devNode); bool removableCamera(const TQString &devNode); @@ -91,7 +96,6 @@ private: MediaList m_mediaList; TQValueList<BackendBase*> m_backends; RemovableBackend *mp_removableBackend; - HALBackend *m_halbackend; TDEBackend *m_tdebackend; MediaDirNotify m_dirNotify; FstabBackend *m_fstabbackend; diff --git a/tdeioslave/media/mediamanager/removablebackend.cpp b/tdeioslave/media/mediamanager/removablebackend.cpp index 54df3d6f1..a9207cd92 100644 --- a/tdeioslave/media/mediamanager/removablebackend.cpp +++ b/tdeioslave/media/mediamanager/removablebackend.cpp @@ -37,8 +37,8 @@ RemovableBackend::RemovableBackend(MediaList &list) { KDirWatch::self()->addFile(MTAB); - connect( KDirWatch::self(), TQT_SIGNAL( dirty(const TQString&) ), - this, TQT_SLOT( slotDirty(const TQString&) ) ); + connect( KDirWatch::self(), TQ_SIGNAL( dirty(const TQString&) ), + this, TQ_SLOT( slotDirty(const TQString&) ) ); KDirWatch::self()->startScan(); } @@ -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); diff --git a/tdeioslave/media/mediamanager/removablebackend.h b/tdeioslave/media/mediamanager/removablebackend.h index fa16a391b..256497d9a 100644 --- a/tdeioslave/media/mediamanager/removablebackend.h +++ b/tdeioslave/media/mediamanager/removablebackend.h @@ -26,7 +26,7 @@ class RemovableBackend : public TQObject, public BackendBase { -Q_OBJECT +TQ_OBJECT public: RemovableBackend(MediaList &list); diff --git a/tdeioslave/media/mediamanager/tdehardwarebackend.cpp b/tdeioslave/media/mediamanager/tdehardwarebackend.cpp index 754012d9a..a5900c883 100644 --- a/tdeioslave/media/mediamanager/tdehardwarebackend.cpp +++ b/tdeioslave/media/mediamanager/tdehardwarebackend.cpp @@ -49,16 +49,15 @@ TDEBackend::TDEBackend(MediaList &list, TQObject* parent) : TQObject() , BackendBase(list) - , m_unlockDialog(0) , m_parent(parent) { // Initialize the TDE device manager TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); // Connect device monitoring signals/slots - connect(hwdevices, TQT_SIGNAL(hardwareAdded(TDEGenericDevice*)), this, TQT_SLOT(AddDeviceHandler(TDEGenericDevice*))); - connect(hwdevices, TQT_SIGNAL(hardwareRemoved(TDEGenericDevice*)), this, TQT_SLOT(RemoveDeviceHandler(TDEGenericDevice*))); - connect(hwdevices, TQT_SIGNAL(hardwareUpdated(TDEGenericDevice*)), this, TQT_SLOT(ModifyDeviceHandler(TDEGenericDevice*))); + connect(hwdevices, TQ_SIGNAL(hardwareAdded(TDEGenericDevice*)), this, TQ_SLOT(AddDeviceHandler(TDEGenericDevice*))); + connect(hwdevices, TQ_SIGNAL(hardwareRemoved(TDEGenericDevice*)), this, TQ_SLOT(RemoveDeviceHandler(TDEGenericDevice*))); + connect(hwdevices, TQ_SIGNAL(hardwareUpdated(TDEGenericDevice*)), this, TQ_SLOT(ModifyDeviceHandler(TDEGenericDevice*))); // List devices at startup ListDevices(); @@ -139,29 +138,30 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) bool allowDialogNotification = allowNotification; TDEConfig config("mediamanagerrc"); config.setGroup("Global"); - if (!config.readBoolEntry("NotificationPopupsEnabled", false)) { + if (!config.readBoolEntry("NotificationPopupsEnabled", true)) { allowDialogNotification = false; } // Add volume block devices if (sdevice->isDiskOfType(TDEDiskDeviceType::HDD)) { /* We only list volumes that... - * - are encrypted with LUKS or + * - are encrypted or * - have a filesystem or * - have an audio track */ - if (!(sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem)) - && !(sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) + if (!sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) && + !sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank) ) { // } - /* 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) - || (sdevice->fileSystemUsage().upper() == "RAID")) { + // We also don't display devices that underlie other devices, unless they are encrypted devices + else if ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice) && + !sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted)) || + sdevice->fileSystemUsage().upper() == "RAID") { // } else { @@ -169,16 +169,6 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) Medium* medium = new Medium(sdevice->uniqueID(), driveUDIFromDeviceUID(sdevice->uniqueID()), ""); setVolumeProperties(medium); - // Do not list the LUKS backend device if it has been unlocked elsewhere - if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) { - if (sdevice->holdingDevices().count() > 0) { - medium->setHidden(true); - } - else { - medium->setHidden(false); - } - } - // Hide udev hidden devices by default but allow the user to override if desired via Show Hidden Files if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hidden)) { medium->setSoftHidden(true); @@ -266,33 +256,29 @@ void TDEBackend::AddDevice(TDEStorageDevice * sdevice, bool allowNotification) } /* We only list volumes that... - * - are encrypted with LUKS or + * - are encrypted or * - have a filesystem or - * - are a floppy disk + * - have an audio track */ - if (!(sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem)) - && !(sdevice->isDiskOfType(TDEDiskDeviceType::Floppy)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) + if (!sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) && + !sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank) ) { // } + // We also don't display devices that underlie other devices, unless they are encrypted devices + else if ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice) && + !sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted)) || + sdevice->fileSystemUsage().upper() == "RAID") { + // + } else { // Create medium Medium* medium = new Medium(sdevice->uniqueID(), driveUDIFromDeviceUID(sdevice->uniqueID()), ""); - setFloppyProperties(medium); - - // Do not list the LUKS backend device if it has been unlocked elsewhere - if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) { - if (sdevice->holdingDevices().count() > 0) { - medium->setHidden(true); - } - else { - medium->setHidden(false); - } - } - m_mediaList.addMedium(medium, allowDialogNotification); kdDebug(1219) << "TDEBackend::AddDevice inserted floppy medium for " << sdevice->uniqueID() << endl; @@ -334,8 +320,7 @@ void TDEBackend::ModifyDevice(TDEStorageDevice * sdevice) { kdDebug(1219) << "TDEBackend::ModifyDevice for " << sdevice->uniqueID() << endl; - bool allowNotification = false; - ResetProperties(sdevice, allowNotification); + ResetProperties(sdevice, false); } void TDEBackend::ResetProperties(TDEStorageDevice * sdevice, bool allowNotification, bool overrideIgnoreList) @@ -359,24 +344,28 @@ void TDEBackend::ResetProperties(TDEStorageDevice * sdevice, bool allowNotificat Medium* m = new Medium(sdevice->uniqueID(), driveUDIFromDeviceUID(sdevice->uniqueID()), ""); // Keep these conditions in sync with ::AddDevice above, OR ELSE!!! - // BEGIN if (sdevice->isDiskOfType(TDEDiskDeviceType::HDD)) { - if (!(sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem)) - && !(sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) + /* We only list volumes that... + * - are encrypted or + * - have a filesystem or + * - have an audio track + */ + if (!sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) && + !sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank) ) { + // + } + // We also don't display devices that underlie other devices, unless they are encrypted devices + else if ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice) && + !sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted)) || + sdevice->fileSystemUsage().upper() == "RAID") { + // } else { - // Do not list the LUKS backend device if it has been unlocked elsewhere - if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) { - if (sdevice->holdingDevices().count() > 0) { - m->setHidden(true); - } - else { - m->setHidden(false); - } - } setVolumeProperties(m); } } @@ -416,25 +405,27 @@ void TDEBackend::ResetProperties(TDEStorageDevice * sdevice, bool allowNotificat (sdevice->isDiskOfType(TDEDiskDeviceType::Zip)) || (sdevice->isDiskOfType(TDEDiskDeviceType::Jaz)) ) { - - if (!(sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem)) - && !(sdevice->isDiskOfType(TDEDiskDeviceType::Floppy)) - && !(sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) + /* We only list volumes that... + * - are encrypted or + * - have a filesystem or + * - have an audio track + */ + if (!sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::ContainsFilesystem) && + !sdevice->isDiskOfType(TDEDiskDeviceType::CDAudio) && + !sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank) ) { // } + // We also don't display devices that underlie other devices, unless they are encrypted devices + else if ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice) && + !sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) && + !sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted)) || + sdevice->fileSystemUsage().upper() == "RAID") { + // + } else { - // Do not list the LUKS backend device if it has been unlocked elsewhere - if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) { - if (sdevice->holdingDevices().count() > 0) { - m->setHidden(true); - } - else { - m->setHidden(false); - } - } - setFloppyProperties(m); } } @@ -443,8 +434,6 @@ void TDEBackend::ResetProperties(TDEStorageDevice * sdevice, bool allowNotificat setCameraProperties(m); } - // END - if ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable)) && (!(sdevice->checkDiskStatus(TDEDiskDeviceStatus::Inserted)))) { kdDebug(1219) << "TDEBackend::ResetProperties for " << sdevice->uniqueID() << " device was removed from system" << endl; RemoveDevice(sdevice); @@ -462,27 +451,40 @@ void TDEBackend::setVolumeProperties(Medium* medium) TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); - TDEStorageDevice * sdevice = hwdevices->findDiskByUID(medium->id()); + TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); if (!sdevice) { return; } medium->setName(generateName(sdevice->deviceNode())); - if ((sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) || (sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt))) { + if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) || sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted)) { medium->setEncrypted(true); + medium->setLocked(!sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt)); } else { medium->setEncrypted(false); } - // USAGE: mountableState(Device node, Mount point, Filesystem type, Mounted ?) - medium->mountableState(sdevice->deviceNode(), sdevice->mountPath(), sdevice->fileSystemName(), !sdevice->mountPath().isNull()); + if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) || sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted) || + sdevice->fileSystemUsage().upper() == "RAID") { + // Encrypted disks or device underlying other devices are not mountable + medium->setMountable(false); + } + else { + 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(); if (useDefaultLabel) { diskLabel = i18n("%1 Removable Device").arg(sdevice->deviceFriendlySize()); } + diskLabel += " (" + sdevice->deviceNode() + ")"; TQString mimeType; @@ -518,14 +520,15 @@ void TDEBackend::setVolumeProperties(Medium* medium) // Default mimeType = "media/cdrom" + MOUNT_MEDIA_SUFFIX; if (useDefaultLabel) { - diskLabel = i18n("%1 Removable Device").arg(sdevice->deviceFriendlySize()); + diskLabel = i18n("%1 Removable Disk (%2)").arg(sdevice->deviceFriendlySize(), sdevice->deviceNode()); } if (sdevice->isDiskOfType(TDEDiskDeviceType::CDROM)) { 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"); } } @@ -534,7 +537,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"); } } @@ -543,7 +547,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"); } } @@ -552,7 +557,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"); } } @@ -561,7 +567,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"); } } @@ -570,7 +577,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"); } } @@ -579,7 +587,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"); } } @@ -588,7 +597,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"); } } @@ -597,7 +607,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"); } } @@ -606,7 +617,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"); } } @@ -615,7 +627,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"); } } @@ -624,7 +637,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"); } } @@ -633,7 +647,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"); } } @@ -642,7 +657,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"); } } @@ -651,7 +667,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"); } } @@ -660,7 +677,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"); } } @@ -668,35 +686,39 @@ void TDEBackend::setVolumeProperties(Medium* medium) if (sdevice->isDiskOfType(TDEDiskDeviceType::BDROM)) { mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX; if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) { - mimeType = "media/blankbd"; - medium->unmountableState(""); - diskLabel = i18n("Blank BD-ROM"); + mimeType = "media/blankbluray"; + medium->setMountable(false); + medium->setBaseURL(TQString::null); + diskLabel = i18n("Blank BLURAY-ROM"); } } if (sdevice->isDiskOfType(TDEDiskDeviceType::BDR)) { mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX; if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) { - mimeType = "media/blankbd"; - medium->unmountableState(""); - diskLabel = i18n("Blank BD-R"); + mimeType = "media/blankbluray"; + medium->setMountable(false); + medium->setBaseURL(TQString::null); + diskLabel = i18n("Blank BLURAY-R"); } } if (sdevice->isDiskOfType(TDEDiskDeviceType::BDRW)) { mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX; if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) { - mimeType = "media/blankbd"; - medium->unmountableState(""); - diskLabel = i18n("Blank BD-RW"); + mimeType = "media/blankbluray"; + medium->setMountable(false); + medium->setBaseURL(TQString::null); + diskLabel = i18n("Blank BLURAY-RW"); } } if (sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDROM)) { mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX; if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) { - mimeType = "media/blankhddvd"; - medium->unmountableState(""); + mimeType = "media/blankbluray"; + medium->setMountable(false); + medium->setBaseURL(TQString::null); diskLabel = i18n("Blank HDDVD-ROM"); } } @@ -704,8 +726,9 @@ void TDEBackend::setVolumeProperties(Medium* medium) if (sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDR)) { mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX; if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) { - mimeType = "media/blankhddvd"; - medium->unmountableState(""); + mimeType = "media/blankbluray"; + medium->setMountable(false); + medium->setBaseURL(TQString::null); diskLabel = i18n("Blank HDDVD-R"); } } @@ -713,15 +736,17 @@ void TDEBackend::setVolumeProperties(Medium* medium) if (sdevice->isDiskOfType(TDEDiskDeviceType::HDDVDRW)) { mimeType = "media/bluray" + MOUNT_MEDIA_SUFFIX; if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Blank)) { - mimeType = "media/blankhddvd"; - medium->unmountableState(""); + mimeType = "media/blankbluray"; + 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"); } @@ -732,7 +757,7 @@ void TDEBackend::setVolumeProperties(Medium* medium) mimeType = "media/dvdvideo"; } if (sdevice->isDiskOfType(TDEDiskDeviceType::BDVideo)) { - mimeType = "media/bdvideo"; + mimeType = "media/blurayvideo"; } medium->setIconName(TQString::null); @@ -746,12 +771,11 @@ void TDEBackend::setVolumeProperties(Medium* medium) diskLabel = i18n("%1 Fixed Disk (%2)").arg(sdevice->deviceFriendlySize(), sdevice->deviceNode()); } - if (sdevice->isDiskOfType(TDEDiskDeviceType::USB) - || sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable) - || sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hotpluggable)) { + if (sdevice->isDiskOfType(TDEDiskDeviceType::USB) || + sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable)) { mimeType = "media/removable" + MOUNT_MEDIA_SUFFIX; if (useDefaultLabel) { - diskLabel = i18n("%1 Removable Device").arg(sdevice->deviceFriendlySize()); + diskLabel = i18n("%1 Removable Disk (%2)").arg(sdevice->deviceFriendlySize(), sdevice->deviceNode()); } } @@ -769,9 +793,10 @@ 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()); + 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)) { @@ -782,15 +807,6 @@ void TDEBackend::setVolumeProperties(Medium* medium) } } - if (!medium->needMounting()) { - if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) { - if (sdevice->checkDiskStatus(TDEDiskDeviceStatus::UsedByDevice)) { - // Encrypted base devices must be set to this mimetype or they won't open when the base device node is passed to the tdeioslave - mimeType = "media/removable_mounted"; - } - } - } - medium->setLabel(diskLabel); medium->setMimeType(mimeType); } @@ -813,22 +829,38 @@ bool TDEBackend::setFloppyProperties(Medium* medium) // Any more? if ((sdevice->isDiskOfType(TDEDiskDeviceType::Zip)) || (sdevice->isDiskOfType(TDEDiskDeviceType::Jaz))) { medium->setName(generateName(sdevice->deviceNode())); - if ((sdevice->isDiskOfType(TDEDiskDeviceType::LUKS)) || (sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt))) { + if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) || sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted)) { medium->setEncrypted(true); + medium->setLocked(!sdevice->isDiskOfType(TDEDiskDeviceType::UnlockedCrypt)); } else { medium->setEncrypted(false); } - // USAGE: mountableState(Device node, Mount point, Filesystem type, Mounted ?) - medium->mountableState(sdevice->deviceNode(), sdevice->mountPath(), sdevice->fileSystemName(), !sdevice->mountPath().isNull()); + if (sdevice->isDiskOfType(TDEDiskDeviceType::LUKS) || sdevice->isDiskOfType(TDEDiskDeviceType::OtherCrypted) || + sdevice->fileSystemUsage().upper() == "RAID") { + // Encrypted disks or device underlying other devices are not mountable + medium->setMountable(false); + } + else { + 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"); @@ -850,7 +882,7 @@ bool TDEBackend::setFloppyProperties(Medium* medium) // Set label TQString diskLabel = sdevice->diskLabel(); if (diskLabel.isNull()) { - diskLabel = i18n("%1 Zip Disk").arg(sdevice->deviceFriendlySize()); + diskLabel = i18n("%1 Zip Disk (%2)").arg(sdevice->deviceFriendlySize(), sdevice->deviceNode()); } medium->setLabel(diskLabel); } @@ -885,7 +917,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); @@ -909,7 +942,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; } } @@ -997,7 +1034,7 @@ TQStringList TDEBackend::mountoptions(const TQString &name) bool removable = false; if (!drive_udi.isNull()) { - removable = ((sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable)) || (sdevice->checkDiskStatus(TDEDiskDeviceStatus::Hotpluggable))); + removable = sdevice->checkDiskStatus(TDEDiskDeviceStatus::Removable); } TQString tmp; @@ -1173,23 +1210,19 @@ bool TDEBackend::setMountoptions(const TQString &name, const TQStringList &optio return true; } -void TDEBackend::slotPasswordReady() { - m_decryptionPassword = m_unlockDialog->getPassword(); - m_decryptPasswordValid = true; -} - -void TDEBackend::slotPasswordCancel() { - m_decryptionPassword = TQString::null; - m_decryptPasswordValid = true; -} - TQStringVariantMap TDEBackend::mount(const Medium *medium) { kdDebug(1219) << "TDEBackend::mount for medium " << medium->name() << endl; TQStringVariantMap result; - if (medium->isMounted()) { - result["result"] = true; + if (!medium->isMountable()) { + result["errStr"] = i18n("%1 is not a mountable media.").arg(medium->deviceNode()); + result["result"] = false; + return result; + } + else if (medium->isMounted()) { + result["errStr"] = i18n("%1 is already mounted to %2.").arg(medium->deviceNode()).arg(medium->mountPoint()); + result["result"] = false; return result; } @@ -1201,7 +1234,7 @@ TQStringVariantMap TDEBackend::mount(const Medium *medium) data.medium = medium; TDEIO::Job *job = TDEIO::mount(false, 0, medium->deviceNode(), mountPoint); - connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*))); + connect(job, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotResult(TDEIO::Job*))); mount_jobs[job] = &data; // The caller expects the device to be mounted when the function // completes. Thus block until the job completes. @@ -1222,7 +1255,7 @@ TQStringVariantMap TDEBackend::mount(const Medium *medium) TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); if (!sdevice) { - result["errStr"] = i18n("Internal error. Couldn't find medium."); + result["errStr"] = i18n("Internal error. Couldn't find medium id %1.").arg(medium->id()); result["result"] = false; return result; } @@ -1242,99 +1275,13 @@ TQStringVariantMap TDEBackend::mount(const Medium *medium) } TQString qerror; - if (!medium->isEncrypted()) { - // normal volume - TQStringVariantMap mountResult = sdevice->mountDevice(diskLabel, valids); - TQString mountedPath = mountResult.contains("mountPath") ? mountResult["mountPath"].toString() : TQString::null; - if (mountedPath.isEmpty()) { - qerror = i18n("Unable to mount this device."); - TQString errStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : TQString::null; - if (!errStr.isEmpty()) { - qerror.append(i18n("<p>Technical details:<br>").append(errStr)); - } - } - } - else { - TQString iconName = medium->iconName(); - if (iconName.isEmpty()) - { - TQString mime = medium->mimeType(); - iconName = KMimeType::mimeType(mime)->icon(mime, false); - } - - bool continue_trying_to_decrypt = true; - while (continue_trying_to_decrypt == true) { - m_decryptPasswordValid = false; - - m_unlockDialog = new Dialog(sdevice->deviceNode(), iconName); - m_unlockDialog->show(); - - connect(m_unlockDialog, TQT_SIGNAL (user1Clicked()), this, TQT_SLOT (slotPasswordReady())); - connect(m_unlockDialog, TQT_SIGNAL (cancelClicked()), this, TQT_SLOT (slotPasswordCancel())); - connect(this, TQT_SIGNAL (signalDecryptionPasswordError(TQString)), m_unlockDialog, TQT_SLOT (slotDialogError(TQString))); - - while (m_decryptPasswordValid == false) { - tqApp->processEvents(); - } - - m_unlockDialog->setEnabled(false); - tqApp->processEvents(); - - if (m_decryptionPassword.isNull()) { - delete m_unlockDialog; - result["errStr"] = i18n("Decryption aborted"); - result["result"] = false; - return result; - } - else { - // Just for some added fun, if udev emits a medium change event, which I then forward, with mounted==0, it stops the MediaProtocol::listDir method dead in its tracks, - // and therefore the media:/ tdeioslave won't refresh after the encrypted device mount - // Therefore, I need to ignore all change events on this device during the mount process and hope nothing bad happens as a result! - if (!m_ignoreDeviceChangeEvents.contains(sdevice->uniqueID())) { - m_ignoreDeviceChangeEvents.append(sdevice->uniqueID()); - } - - // mount encrypted volume with password - TQStringVariantMap mountResult = sdevice->mountEncryptedDevice(m_decryptionPassword, diskLabel, valids); - TQString mountedPath = mountResult.contains("mountPath") ? mountResult["mountPath"].toString() : TQString::null; - if (mountedPath.isEmpty()) { - if (mountResult.contains("retCode") && mountResult["retCode"].toInt() == 0) { - // Mounting was successful - // Because the TDE hardware backend is event driven it might take a little while for the new enlock mapped device to show up - // Wait up to 30 seconds for it to appear... - for (int i=0;i<300;i++) { - mountedPath = sdevice->mountPath(); - if (!mountedPath.isEmpty()) { - break; - } - tqApp->processEvents(50); - usleep(50000); - } - } - } - if (mountedPath.isEmpty()) { - if (mountResult.contains("retCode") && mountResult["retCode"].toInt() == 25600) { - // Probable LUKS failure - // Retry - m_unlockDialog->setEnabled(true); - continue_trying_to_decrypt = true; - } - else { - qerror = i18n("Cannot mount encrypted locked drives!"); - qerror = i18n("Unable to mount this device."); - TQString errStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : TQString::null; - if (!errStr.isEmpty()) { - qerror.append(i18n("<p>Technical details:<br>").append(errStr)); - } - continue_trying_to_decrypt = false; - } - } - else { - continue_trying_to_decrypt = false; - } - - delete m_unlockDialog; - } + TQStringVariantMap mountResult = sdevice->mountDevice(diskLabel, valids); + TQString mountedPath = mountResult.contains("mountPath") ? mountResult["mountPath"].toString() : TQString::null; + if (mountedPath.isEmpty()) { + qerror = i18n("<b>Unable to mount this device.</b>"); + TQString errStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : TQString::null; + if (!errStr.isEmpty()) { + qerror.append(i18n("<p>Technical details:<br>").append(errStr)); } } @@ -1373,16 +1320,20 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) kdDebug(1219) << "TDEBackend::unmount for id " << id << endl; TQStringVariantMap result; - - const Medium* medium = m_mediaList.findById(id); + const Medium *medium = m_mediaList.findById(id); if (!medium) { result["errStr"] = i18n("No such medium: %1").arg(id); result["result"] = false; return result; } - - if (!medium->isMounted()) { - result["result"] = true; + else if (!medium->isMountable()) { + result["errStr"] = i18n("%1 is not a mountable media.").arg(medium->deviceNode()); + result["result"] = false; + return result; + } + else if (!medium->isMounted()) { + result["errStr"] = i18n("%1 is already unmounted.").arg(medium->deviceNode()); + result["result"] = false; return result; } @@ -1394,7 +1345,7 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) data.medium = medium; TDEIO::Job *job = TDEIO::unmount( medium->mountPoint(), false ); - connect(job, TQT_SIGNAL(result(TDEIO::Job*)), TQT_SLOT(slotResult(TDEIO::Job*))); + connect(job, TQ_SIGNAL(result(TDEIO::Job*)), TQ_SLOT(slotResult(TDEIO::Job*))); mount_jobs[job] = &data; // The caller expects the device to be unmounted when the function // completes. Thus block until the job completes. @@ -1415,7 +1366,7 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); if (!sdevice) { - result["errStr"] = i18n("Internal error. Couldn't find medium."); + result["errStr"] = i18n("Internal error. Couldn't find medium id %1.").arg(medium->id()); result["result"] = false; return result; } @@ -1428,7 +1379,7 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) TQStringVariantMap unmountResult = sdevice->unmountDevice(); if (unmountResult["result"].toBool() == false) { // Unmount failed! - qerror = i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and currently mounted at " + qerror = i18n("The device <b>%1</b> (%2) named <b>'%3'</b> and currently mounted at " "<b>%4</b> could not be unmounted. ").arg("system:/media/" + medium->name(), medium->deviceNode(), medium->prettyLabel(), medium->prettyBaseURL().pathOrURL()); TQString errStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : TQString::null; @@ -1441,7 +1392,7 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) // Failed as BUSY TQString processesUsingDev = listUsingProcesses(medium); if (!processesUsingDev.isNull()) { - if (KMessageBox::warningYesNo(0, i18n("<qt>The device <b>%1</b> (%2) named <b>'%3'</b> and currently " + if (KMessageBox::warningYesNo(0, i18n("The device <b>%1</b> (%2) named <b>'%3'</b> and currently " "mounted at <b>%4</b> can not be unmounted at this time.<p>%5<p><b>Would you like to forcibly " "terminate these processes?</b><br><i>All unsaved data would be lost</i>").arg("system:/media/" + medium->name()).arg(medium->deviceNode()).arg(medium->prettyLabel()).arg(medium->prettyBaseURL().pathOrURL()) @@ -1450,7 +1401,7 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) unmountResult = sdevice->unmountDevice(); if (unmountResult["result"].toBool() == false) { // Unmount failed! - qerror = i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and currently mounted at " + qerror = i18n("The device <b>%1</b> (%2) named <b>'%3'</b> and currently mounted at " "<b>%4</b> could not be unmounted. ").arg("system:/media/" + medium->name(), medium->deviceNode(), medium->prettyLabel(), medium->prettyBaseURL().pathOrURL()); TQString errStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : TQString::null; @@ -1476,10 +1427,225 @@ TQStringVariantMap TDEBackend::unmount(const TQString &id) m_mediaList.removeMedium(uid, true); } + ResetProperties(sdevice, false, true); + result["result"] = true; + return result; +} + +TQStringVariantMap TDEBackend::unlock(const TQString &id, const TQString &password) +{ + kdDebug(1219) << "TDEBackend::unlock for id " << id << endl; + + TQStringVariantMap result; + const Medium *medium = m_mediaList.findById(id); + if (!medium) { + result["errStr"] = i18n("No such medium: %1").arg(id); + result["result"] = false; + return result; + } + else if (!medium->isEncrypted()) { + result["errStr"] = i18n("%1 is not an encrypted media.").arg(medium->deviceNode()); + result["result"] = false; + return result; + } + else if (!medium->needUnlocking()) { + result["errStr"] = i18n("%1 is already unlocked.").arg(medium->deviceNode()); + result["result"] = false; + return result; + } + + TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); + TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); + if (!sdevice) { + result["errStr"] = i18n("Internal error. Couldn't find medium id %1.").arg(medium->id()); + result["result"] = false; + return result; + } + + TQStringVariantMap unlockResult = sdevice->unlockDevice(password); + if (unlockResult["result"].toBool() == false) { + TQString qerror = i18n("<b>Unable to unlock the device.</b>"); + TQString errStr = unlockResult.contains("errStr") ? unlockResult["errStr"].toString() : TQString::null; + if (!errStr.isEmpty()) { + qerror.append(i18n("<p>Technical details:<br>").append(errStr)); + result["errStr"] = qerror; + result["result"] = false; + return result; + } + } + + ResetProperties(sdevice, false, true); + result["result"] = true; + return result; +} + +TQStringVariantMap TDEBackend::lock(const TQString &id, bool releaseHolders) +{ + kdDebug(1219) << "TDEBackend::lock for id " << id << ", release holders " + << releaseHolders << endl; + + TQStringVariantMap result; + + const Medium *medium = m_mediaList.findById(id); + if (!medium) { + result["errStr"] = i18n("No such medium: %1").arg(id); + result["result"] = false; + return result; + } + else if (!medium->isEncrypted()) { + result["errStr"] = i18n("%1 is not an encrypted media.").arg(medium->deviceNode()); + result["result"] = false; + return result; + } + else if (medium->needUnlocking()) { + result["errStr"] = i18n("%1 is already locked.").arg(medium->deviceNode()); + result["result"] = false; + return result; + } + + TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); + TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); + if (!sdevice) { + result["errStr"] = i18n("Internal error. Couldn't find medium id %1.").arg(medium->id()); + result["result"] = false; + return result; + } + + // Release device holders if requested + if (releaseHolders) + { + releaseHolderDevices(medium->deviceNode(), false); + } + + TQStringVariantMap lockResult = sdevice->lockDevice(); + if (lockResult["result"].toBool() == false) { + TQString qerror = i18n("<b>Unable to lock the device.</b>"); + TQString errStr = lockResult.contains("errStr") ? lockResult["errStr"].toString() : TQString::null; + if (!errStr.isEmpty()) { + qerror.append(i18n("<p>Technical details:<br>").append(errStr)); + result["errStr"] = qerror; + result["result"] = false; + return result; + } + } + + ResetProperties(sdevice, false, true); result["result"] = true; return result; } +TQStringVariantMap TDEBackend::eject(const TQString &id) +{ + kdDebug(1219) << "TDEBackend::eject for id " << id << endl; + + TQStringVariantMap result; + + const Medium *medium = m_mediaList.findById(id); + if (!medium) + { + result["errStr"] = i18n("No such medium: %1").arg(id); + result["result"] = false; + return result; + } + + TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); + TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); + if (!sdevice) + { + result["errStr"] = i18n("Internal error. Couldn't find medium id %1.").arg(medium->id()); + result["result"] = false; + return result; + } + + TQStringVariantMap ejectResult = sdevice->ejectDrive(); + if (ejectResult["result"].toBool() == false) + { + TQString qerror = i18n("<b>Unable to eject the device.</b>"); + TQString errStr = ejectResult.contains("errStr") ? ejectResult["errStr"].toString() : TQString::null; + if (!errStr.isEmpty()) + { + qerror.append(i18n("<p>Technical details:<br>").append(errStr)); + result["errStr"] = qerror; + result["result"] = false; + return result; + } + } + + result["result"] = true; + return result; +} + +TQStringVariantMap TDEBackend::safeRemove(const TQString &id) +{ + kdDebug(1219) << "TDEBackend::safeRemove for id " << id << endl; + + TQStringVariantMap result; + + const Medium *medium = m_mediaList.findById(id); + if (!medium) + { + result["errStr"] = i18n("No such medium: %1").arg(id); + result["result"] = false; + return result; + } + + releaseHolderDevices(medium->deviceNode(), true); + return eject(id); +} + +void TDEBackend::releaseHolderDevices(const TQString &deviceNode, bool handleThis) +{ + kdDebug(1219) << "TDEBackend::releaseHolderDevices for node " << deviceNode + << ", handle this " << (handleThis ? "yes" : "no") << endl; + + const Medium *medium = m_mediaList.findByNode(deviceNode); + if (!medium) + { + return; + } + + // Scan the holding devices and unmount/lock them if possible + TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); + TDEStorageDevice *sdevice = hwdevices->findDiskByUID(medium->id()); + if (sdevice) + { + TQStringList holdingDeviceList = sdevice->holdingDevices(); + for (TQStringList::Iterator holdingDevIt = holdingDeviceList.begin(); holdingDevIt != holdingDeviceList.end(); ++holdingDevIt) + { + TDEGenericDevice *hwHolderDevice = hwdevices->findBySystemPath(*holdingDevIt); + if (hwHolderDevice->type() == TDEGenericDeviceType::Disk) + { + TDEStorageDevice *holderSDevice = static_cast<TDEStorageDevice*>(hwHolderDevice); + const Medium *holderMedium = m_mediaList.findByNode(holderSDevice->deviceNode()); + if (holderMedium && !holderMedium->id().isEmpty()) + { + releaseHolderDevices(holderMedium->deviceNode(), true); + } + } + } + } + + if (handleThis) + { + // Unmount if necessary + if (medium->isMountable() && medium->isMounted()) + { + unmount(medium->id()); + // Must process udev events before continuing, to make sure all + // affected devices are properly updated + tqApp->processEvents(); + } + // Lock if necessary. + if (medium->isEncrypted() && !medium->isLocked()) + { + lock(medium->id(), false); + // Must process udev events before continuing, to make sure all + // affected devices are properly updated + tqApp->processEvents(); + } + } +} + void TDEBackend::slotResult(TDEIO::Job *job) { TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); @@ -1491,8 +1657,7 @@ void TDEBackend::slotResult(TDEIO::Job *job) if (job->error() == TDEIO::ERR_COULD_NOT_UNMOUNT) { TQString proclist(listUsingProcesses(medium)); - qerror = "<qt>"; - qerror += "<p>" + i18n("Unfortunately, the device <b>%1</b> (%2) named <b>'%3'</b> and " + qerror += "<p>" + i18n("The device <b>%1</b> (%2) named <b>'%3'</b> and " "currently mounted at <b>%4</b> could not be unmounted. ").arg( "system:/media/" + medium->name(), medium->deviceNode(), @@ -1504,7 +1669,6 @@ void TDEBackend::slotResult(TDEIO::Job *job) if (!proclist.isEmpty()) { qerror += proclist; } - qerror += "</qt>"; } else if (job->error()) { qerror = job->errorText(); } diff --git a/tdeioslave/media/mediamanager/tdehardwarebackend.h b/tdeioslave/media/mediamanager/tdehardwarebackend.h index 5c6ce1260..0c3f84410 100644 --- a/tdeioslave/media/mediamanager/tdehardwarebackend.h +++ b/tdeioslave/media/mediamanager/tdehardwarebackend.h @@ -44,7 +44,7 @@ class Dialog; class TDEBackend : public TQObject, public BackendBase { -Q_OBJECT +TQ_OBJECT public: /** @@ -68,11 +68,13 @@ public: bool setMountoptions(const TQString &id, const TQStringList &options); - TQStringVariantMap mount(const TQString &id); TQStringVariantMap mount(const Medium *medium); + TQStringVariantMap mount(const TQString &id); TQStringVariantMap unmount(const TQString &id); -// TQStringVariantMap unlock(const TQString &id, const TQString &password); -// TQStringVariantMap lock(const TQString &id); + TQStringVariantMap unlock(const TQString &id, const TQString &password); + TQStringVariantMap lock(const TQString &id, bool releaseHolders); + TQStringVariantMap eject(const TQString &id); + TQStringVariantMap safeRemove(const TQString &uid); private: /** @@ -103,9 +105,6 @@ private slots: void RemoveDeviceHandler(TDEGenericDevice* device); void ModifyDeviceHandler(TDEGenericDevice* device); - void slotPasswordReady(); - void slotPasswordCancel(); - signals: void signalDecryptionPasswordError(TQString); @@ -120,28 +119,19 @@ private: */ void ResetProperties(TDEStorageDevice * sdevice, bool allowNotification=false, bool overrideIgnoreList=false); - /** - * Find the medium that is concerned with device udi - */ -// const char* findMediumUdiFromUdi(const char* udi); - void setVolumeProperties(Medium* medium); bool setFloppyProperties(Medium* medium); - void setFloppyMountState( Medium* medium ); -// bool setFstabProperties(Medium* medium); + void setFloppyMountState(Medium* medium); void setCameraProperties(Medium* medium); + void releaseHolderDevices(const TQString &deviceNode, bool handleThis); TQString generateName(const TQString &devNode); + static TQString isInFstab(const Medium *medium); static TQString listUsingProcesses(const Medium *medium); static TQString killUsingProcesses(const Medium *medium); TQString driveUDIFromDeviceUID(TQString uuid); - // Decryption - Dialog* m_unlockDialog; - TQString m_decryptionPassword; - bool m_decryptPasswordValid; - private slots: void slotResult(TDEIO::Job *job); diff --git a/tdeioslave/media/medianotifier/CMakeLists.txt b/tdeioslave/media/medianotifier/CMakeLists.txt index 35d639d1b..215ee6de3 100644 --- a/tdeioslave/media/medianotifier/CMakeLists.txt +++ b/tdeioslave/media/medianotifier/CMakeLists.txt @@ -14,6 +14,7 @@ include_directories( ${CMAKE_BINARY_DIR}/tdeioslave/media/libmediacommon ${CMAKE_SOURCE_DIR}/tdeioslave/media/libmediacommon ${CMAKE_SOURCE_DIR}/tdmlib + ${CMAKE_BINARY_DIR} ${TDE_INCLUDE_DIR} ${TQT_INCLUDE_DIRS} ) @@ -25,7 +26,11 @@ link_directories( ##### other data ################################ -install( FILES medianotifier.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded ) +tde_create_translated_desktop( + SOURCE medianotifier.desktop + DESTINATION ${SERVICES_INSTALL_DIR}/kded + PO_DIR tdeioslave-desktops +) ##### kded_medianotifier (module) ############### diff --git a/tdeioslave/media/medianotifier/medianotifier.cpp b/tdeioslave/media/medianotifier/medianotifier.cpp index 88f58af2d..46a758a7f 100644 --- a/tdeioslave/media/medianotifier/medianotifier.cpp +++ b/tdeioslave/media/medianotifier/medianotifier.cpp @@ -19,14 +19,18 @@ #include "medianotifier.h" -#if defined (__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) +#if defined (__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)\ + || defined(Q_OS_SOLARIS) +#ifdef Q_OS_SOLARIS +#include <sys/types.h> +#endif /* Q_OS_SOLARIS */ #include <sys/statvfs.h> #include <sys/param.h> #include <sys/mount.h> #else #include <sys/vfs.h> #endif -#if defined(__NetBSD__) +#if defined(__NetBSD__) || defined(Q_OS_SOLARIS) #define statfs statvfs #endif @@ -65,7 +69,7 @@ MediaNotifier::MediaNotifier(const TQCString &name) : KDEDModule(name) m_notificationDialogList.setAutoDelete(FALSE); m_freeTimer = new TQTimer( this ); - connect( m_freeTimer, TQT_SIGNAL( timeout() ), TQT_SLOT( checkFreeDiskSpace() ) ); + connect( m_freeTimer, TQ_SIGNAL( timeout() ), TQ_SLOT( checkFreeDiskSpace() ) ); m_freeTimer->start( 1000*6*2 /* 20 minutes */ ); m_freeDialog = 0; } @@ -119,8 +123,8 @@ void MediaNotifier::onMediumChange( const TQString &name, bool allowNotification m_allowNotificationMap[job] = allowNotification; - connect( job, TQT_SIGNAL( result( TDEIO::Job * ) ), - this, TQT_SLOT( slotStatResult( TDEIO::Job * ) ) ); + connect( job, TQ_SIGNAL( result( TDEIO::Job * ) ), + this, TQ_SLOT( slotStatResult( TDEIO::Job * ) ) ); } void MediaNotifier::slotStatResult( TDEIO::Job *job ) @@ -146,7 +150,7 @@ bool MediaNotifier::autostart( const KFileItem &medium ) { TQString mimetype = medium.mimetype(); - bool is_cdrom = mimetype.startsWith( "media/cd" ) || mimetype.startsWith( "media/dvd" ); + bool is_cdrom = mimetype.startsWith( "media/cd" ) || mimetype.startsWith( "media/dvd" ) || mimetype.startsWith( "media/bluray" ); bool is_mounted = mimetype.contains( "_mounted" ); // We autorun only on CD/DVD or removable disks (USB, Firewire) @@ -343,7 +347,7 @@ void MediaNotifier::notify( KFileItem &medium ) if ( actions.size()>1 ) { NotificationDialog* notifier = new NotificationDialog( medium, settings ); - connect(notifier, TQT_SIGNAL(destroyed(TQObject*)), this, TQT_SLOT(notificationDialogDestroyed(TQObject*))); + connect(notifier, TQ_SIGNAL(destroyed(TQObject*)), this, TQ_SLOT(notificationDialogDestroyed(TQObject*))); m_notificationDialogList.append(notifier); notifier->show(); } @@ -363,7 +367,7 @@ void MediaNotifier::notificationDialogDestroyed(TQObject* object) extern "C" { - KDE_EXPORT KDEDModule *create_medianotifier(const TQCString &name) + TDE_EXPORT KDEDModule *create_medianotifier(const TQCString &name) { TDEGlobal::locale()->insertCatalogue("kay"); return new MediaNotifier(name); @@ -403,8 +407,8 @@ void MediaNotifier::checkFreeDiskSpace() i18n("Do not ask again"), &checkboxResult, KMessageBox::Notify | KMessageBox::NoExec); m_freeDialog->show(); - connect( m_freeDialog, TQT_SIGNAL( yesClicked() ), TQT_SLOT( slotFreeContinue() ) ); - connect( m_freeDialog, TQT_SIGNAL( noClicked() ), TQT_SLOT( slotFreeCancel() ) ); + connect( m_freeDialog, TQ_SIGNAL( yesClicked() ), TQ_SLOT( slotFreeContinue() ) ); + connect( m_freeDialog, TQ_SIGNAL( noClicked() ), TQ_SLOT( slotFreeCancel() ) ); } } } @@ -421,7 +425,7 @@ void MediaNotifier::slotFreeCancel() void MediaNotifier::slotFreeFinished( KMessageBox::ButtonCode res ) { - TQCheckBox *checkbox = ::tqqt_cast<TQCheckBox*>( m_freeDialog->child( 0, TQCHECKBOX_OBJECT_NAME_STRING ) ); + TQCheckBox *checkbox = ::tqt_cast<TQCheckBox*>( m_freeDialog->child( 0, "TQCheckBox" ) ); if ( checkbox && checkbox->isChecked() ) KMessageBox::saveDontShowAgainYesNo("dontagainfreespace", res); m_freeDialog->delayedDestruct(); diff --git a/tdeioslave/media/medianotifier/medianotifier.desktop b/tdeioslave/media/medianotifier/medianotifier.desktop index 09f987749..e706a6625 100644 --- a/tdeioslave/media/medianotifier/medianotifier.desktop +++ b/tdeioslave/media/medianotifier/medianotifier.desktop @@ -1,122 +1,13 @@ [Desktop Entry] Type=Service + +Name=Media Notifier Daemon + +Comment=A media plugged notifier + X-TDE-ServiceTypes=KDEDModule X-TDE-ModuleType=Library X-TDE-Library=medianotifier X-TDE-FactoryName=medianotifier X-TDE-Kded-autoload=true X-TDE-Kded-load-on-demand=false -Name=Media Notifier Daemon -Name[af]=Media Inkennistelling Bediener -Name[ar]=مراقبالتبليغ عن وسائط -Name[be]=Дэман нагадванняў аб носьбітах -Name[bg]=Мултимедиен демон -Name[bn]=মিডিয়া বিজ্ঞপ্তি ডিমন -Name[bs]=Daemon za obavještenja o novim medijima -Name[ca]=Dimoni notificador de suports -Name[cs]=Démon upozorňování na média -Name[csb]=Ùsłëżnota pòwiadomieniô ò zôpisownëch mediach -Name[da]=Mediebekendtgørelsesdæmon -Name[de]=Geräteüberwachung -Name[el]=Δαίμονας ειδοποίησης μέσων -Name[eo]=Media-atentigilo -Name[es]=Demonio de notificaciones de medios -Name[et]=Andmekandjate märguannete deemon -Name[eu]=Euskarrien jakinarazpen daemon-a -Name[fa]=شبح اخطاردهندۀ رسانه -Name[fi]=Mediahuomautin -Name[fr]=Démon de notifications des média -Name[fy]=Medianotifikaasje-daemon -Name[gl]=Demo de Notificacións dos Médios -Name[he]=שירות הודעות מערכת -Name[hr]=Demon obavijesti o medijima -Name[hu]=Lemezfigyelő szolgáltatás -Name[is]=Miðils tilkynningarpúki -Name[it]=Demone notifiche dispositivi -Name[ja]=メディア通知デーモン -Name[ka]=მედიის შემტყობინებელი -Name[kk]=Медиа туралы құлақтандыру қызметі -Name[km]=ដេមិនរបស់ឧបករណ៍ប្រាប់ដំណឹងមេឌៀ -Name[lt]=Media pranešimų tarnyba -Name[nb]=Medievarslingsnisse -Name[nds]=Medien-Narichtendämoon -Name[ne]=मिडिया सूचक डेइमन -Name[nl]=Medianotificatie-daemon -Name[nn]=Mediepåminningsnisse -Name[pa]=ਮੀਡਿਆ ਸੂਚਨਾ ਡੈਮਨ -Name[pl]=Usługa powiadamiania o nośnikach -Name[pt]=Servidor de Notificação de Dispositivos -Name[pt_BR]=Daemon de Notificação de Mídia -Name[ro]=Daemonul de notificare mediu -Name[ru]=Демон уведомлений от подключаемых устройств -Name[sk]=Notifikátor medií -Name[sl]=Demon za obveščanje o nosilcih -Name[sr]=Демон за обавештења о медијумима -Name[sr@Latn]=Demon za obaveštenja o medijumima -Name[sv]=Demon för mediaunderrättelser -Name[th]=เดมอนแจ้งเตือนสำหรับสื่อบันทึก -Name[tr]=CD/USB/Firewire Durum İzleme Sistemi -Name[uk]=Демон сповіщення про носії інформації -Name[uz]=Saqlash uskunalar uchun demon -Name[uz@cyrillic]=Сақлаш ускуналар учун демон -Name[vi]=Trình nền Thông báo Ổ lưu trữ -Name[wa]=Demon di notifiaedje media -Name[zh_CN]=介质通知守护程序 -Name[zh_TW]=媒體通知伺服程式 -Comment=A media plugged notifier -Comment[af]='n Inpropbare media inkennissteller -Comment[ar]=مبلِغ عن إدخال وسائط -Comment[be]=Дэман нагадванняў аб зменах стану носьбітаў -Comment[bg]=Мултимедиен демон за уведомяване при поставяне/включване на ново мултимедийно устройство -Comment[bn]=নতুন মিডিয়া প্রবেশ করলে তা জানায় -Comment[bs]=Obavještenje da je novi uređaj priključen -Comment[ca]=Un notificador de què s'ha introduït un suport -Comment[cs]=Upozorňování na připojená média -Comment[csb]=Wiédzô ò przëłączeniô zôpisownëch mediów -Comment[da]=En opdager af at medier sættes ind -Comment[de]=Benachrichtigt das System über angeschlossene Geräte -Comment[el]=Ένας ειδοποιητής εισαγωγής μέσου -Comment[eo]=Media konekt-atentigilo -Comment[es]=Un notificador de medios empotrable -Comment[et]=Andmekandja ühendamisest märkuandev deemon -Comment[eu]=Euskarri konektatze jakinarazlea -Comment[fa]=یک اخطاردهندۀ وصلشدۀ رسانه -Comment[fi]=Liitetyn median huomautin -Comment[fr]=Notification de connexion de média -Comment[fy]=Meidieling fan oankeppele media -Comment[gl]=Un notificador de meios disponíbeis -Comment[hr]=Priključeno obavještavanje o medijima -Comment[hu]=Lemezérzékelő -Comment[is]=Tilkynnari um tengda miðla -Comment[it]=Notifiche dei dispositivi attaccati -Comment[ja]=メディアの接続を通知します -Comment[ka]=მედიის ჩადგმის შემტყობინებელი -Comment[kk]=Медиа салынған туралы құлақтандыру -Comment[lt]=Perspėjimo apie media prijungimą priedas -Comment[mk]=Известување за приклучен медиум -Comment[nb]=En medievarsler som programtillegg -Comment[nds]=En Deenst för Narichten över tokoppelt Reedschappen -Comment[ne]=मिडिया प्लग गरिएको सूचक -Comment[nl]=Meldingen van aangesloten media -Comment[nn]=Ein medievarslar som programtillegg -Comment[pa]=ਇੱਕ ਮੀਡਿਆ ਪਲੱਗ ਸੂਚਕ -Comment[pl]=Powiadamianie o podłączeniu nośników danych -Comment[pt]=Um notificador ligado aos dispositivos -Comment[pt_BR]=um notificador para mídia que é espetada (plug) -Comment[ro]=Un notificator de adăugare mediu -Comment[ru]=Система обработки уведомлений от подключаемых устройств -Comment[sk]=Notifikátor pripojených médií -Comment[sl]=Obveščanje o vstavljenih/priklopljenih nosilcih -Comment[sr]=Обавештавач о укљученим медијима -Comment[sr@Latn]=Obaveštavač o uključenim medijima -Comment[sv]=Inbäddad mediaunderrättelse -Comment[th]=ตัวแจ้งเตือนการเสียบสื่อบันทึก -Comment[tr]=CD/USB/Firewire durum izleme sistemi -Comment[tt]=Cıhaz totaşılğan buluı turında beldergeç -Comment[uk]=Сповіщення про приєднання носіїв інформації -Comment[uz]=Saqlash uskunalar ulanganida xabar beruvchi -Comment[uz@cyrillic]=Сақлаш ускуналар уланганида хабар берувчи -Comment[vi]=Trình thông báo về các ổ lưu trữ đã kết nối -Comment[wa]=Notifiaedje di medias tchôké dvins -Comment[zh_CN]=介质插入通知器 -Comment[zh_TW]=媒體插入通知程式 diff --git a/tdeioslave/media/medianotifier/medianotifier.h b/tdeioslave/media/medianotifier/medianotifier.h index 84eee525c..c45db66c1 100644 --- a/tdeioslave/media/medianotifier/medianotifier.h +++ b/tdeioslave/media/medianotifier/medianotifier.h @@ -34,7 +34,7 @@ typedef TQPtrList<NotificationDialog> NotificationDialogList; class MediaNotifier: public KDEDModule { - Q_OBJECT + TQ_OBJECT K_DCOP public: diff --git a/tdeioslave/media/medianotifier/notificationdialog.cpp b/tdeioslave/media/medianotifier/notificationdialog.cpp index 7e4004e8c..a8bb81ea5 100644 --- a/tdeioslave/media/medianotifier/notificationdialog.cpp +++ b/tdeioslave/media/medianotifier/notificationdialog.cpp @@ -17,6 +17,10 @@ Boston, MA 02110-1301, USA. */ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + #include "notificationdialog.h" #include <tqlayout.h> @@ -28,7 +32,7 @@ #include <tqlabel.h> #include <tqcheckbox.h> #include <tqpushbutton.h> -#ifdef __TDE_HAVE_TDEHWLIB +#ifdef WITH_TDEHWLIB #include <tdehardwaredevices.h> #endif @@ -40,7 +44,7 @@ NotificationDialog::NotificationDialog( KFileItem medium, NotifierSettings *sett : KDialogBase( parent, name, false, i18n( "Medium Detected" ), Ok|Cancel|User1, Ok, true), m_medium(medium), m_settings( settings ) { - setCaption( TDEIO::decodeFileName(m_medium.name()) ); + setCaption( m_medium.text() ); clearWState( WState_Polished ); TQWidget *page = new TQWidget( this ); @@ -50,13 +54,14 @@ NotificationDialog::NotificationDialog( KFileItem medium, NotifierSettings *sett m_view = new NotificationDialogView( page ); topLayout->addWidget(m_view); - m_view->iconLabel->setPixmap( m_medium.pixmap(64) ); - m_view->mimetypeLabel->setText( i18n( "<b>Medium type:</b>" ) + " " - + m_medium.mimeTypePtr()->comment() ); + m_view->iconLabel->setPixmap(m_medium.pixmap(64)); + m_view->mimetypeLabel->setText(i18n("<b>Name:</b>") + "	" + m_medium.text() + "<br/>" + + i18n("<b>Type:</b>") + "	" + m_medium.mimeTypePtr()->comment() + "<br/>" + + i18n("<b>Url:</b>") + "	" + m_medium.url().prettyURL()); updateActionsListBox(); - resize( TQSize(400,400).expandedTo( minimumSizeHint() ) ); + resize( TQSize(500,500).expandedTo( minimumSizeHint() ) ); m_actionWatcher = new KDirWatch(); @@ -66,17 +71,17 @@ NotificationDialog::NotificationDialog( KFileItem medium, NotifierSettings *sett setButtonText( User1, i18n("Configure...") ); - connect( m_actionWatcher, TQT_SIGNAL( dirty( const TQString & ) ), - this, TQT_SLOT( slotActionsChanged( const TQString & ) ) ); - connect( this , TQT_SIGNAL( okClicked() ), - this, TQT_SLOT( slotOk() ) ); - connect( this, TQT_SIGNAL( user1Clicked() ), - this, TQT_SLOT( slotConfigure() ) ); - connect( m_view->actionsList, TQT_SIGNAL( doubleClicked ( TQListBoxItem*, const TQPoint & ) ), - this, TQT_SLOT( slotOk() ) ); - - connect( this, TQT_SIGNAL( finished() ), - this, TQT_SLOT( delayedDestruct() ) ); + connect( m_actionWatcher, TQ_SIGNAL( dirty( const TQString & ) ), + this, TQ_SLOT( slotActionsChanged( const TQString & ) ) ); + connect( this , TQ_SIGNAL( okClicked() ), + this, TQ_SLOT( slotOk() ) ); + connect( this, TQ_SIGNAL( user1Clicked() ), + this, TQ_SLOT( slotConfigure() ) ); + connect( m_view->actionsList, TQ_SIGNAL( doubleClicked ( TQListBoxItem*, const TQPoint & ) ), + this, TQ_SLOT( slotOk() ) ); + + connect( this, TQ_SIGNAL( finished() ), + this, TQ_SLOT( delayedDestruct() ) ); m_actionWatcher->startScan(); TQPushButton * btn = actionButton( Ok ); diff --git a/tdeioslave/media/medianotifier/notificationdialog.h b/tdeioslave/media/medianotifier/notificationdialog.h index 16bedb842..9f1f8057f 100644 --- a/tdeioslave/media/medianotifier/notificationdialog.h +++ b/tdeioslave/media/medianotifier/notificationdialog.h @@ -31,7 +31,7 @@ class NotificationDialog : public KDialogBase { - Q_OBJECT + TQ_OBJECT public: NotificationDialog( KFileItem medium, NotifierSettings *settings, diff --git a/tdeioslave/media/mimetypes/CMakeLists.txt b/tdeioslave/media/mimetypes/CMakeLists.txt index 96ff7963e..cf35b8f52 100644 --- a/tdeioslave/media/mimetypes/CMakeLists.txt +++ b/tdeioslave/media/mimetypes/CMakeLists.txt @@ -11,7 +11,8 @@ ##### other data ################################ -install( FILES +tde_create_translated_desktop( + SOURCE floppy_mounted.desktop floppy_unmounted.desktop floppy5_unmounted.desktop floppy5_mounted.desktop zip_mounted.desktop zip_unmounted.desktop @@ -20,6 +21,8 @@ install( FILES hdd_encrypted_unlocked.desktop removable_mounted.desktop removable_unmounted.desktop removable_encrypted_locked.desktop removable_encrypted_unlocked.desktop + bluray_mounted.desktop bluray_unmounted.desktop + bluray_encrypted_locked.desktop bluray_encrypted_unlocked.desktop cdrom_mounted.desktop cdrom_unmounted.desktop cdrom_encrypted_locked.desktop cdrom_encrypted_unlocked.desktop dvd_mounted.desktop dvd_unmounted.desktop @@ -27,10 +30,16 @@ install( FILES cd-r_mounted.desktop cd-r_unmounted.desktop cd-r_encrypted_locked.desktop cd-r_encrypted_unlocked.desktop cd-rw_mounted.desktop cd-rw_unmounted.desktop - cd-rw_encrypted_locked.desktop cd-rw_encrypted_unlocked.desktop smb_mounted.desktop - smb_unmounted.desktop nfs_mounted.desktop nfs_unmounted.desktop - audiocd.desktop dvdvideo.desktop blankcd.desktop blankdvd.desktop - svcd.desktop vcd.desktop gphoto2camera.desktop camera_mounted.desktop - camera_unmounted.desktop mydocuments.desktop mycomputer.desktop - mynetworkplaces.desktop printers.desktop trash.desktop webbrowser.desktop - DESTINATION ${MIME_INSTALL_DIR}/media ) + cd-rw_encrypted_locked.desktop cd-rw_encrypted_unlocked.desktop + smb_mounted.desktop smb_unmounted.desktop + nfs_mounted.desktop nfs_unmounted.desktop + audiocd.desktop + blankbluray.desktop blankcd.desktop blankdvd.desktop + blurayvideo.desktop dvdvideo.desktop svcd.desktop vcd.desktop + gphoto2camera.desktop + camera_mounted.desktop camera_unmounted.desktop + mydocuments.desktop mycomputer.desktop mynetworkplaces.desktop + printers.desktop trash.desktop webbrowser.desktop + DESTINATION ${MIME_INSTALL_DIR}/media + PO_DIR tdeioslave-desktops +) diff --git a/tdeioslave/media/mimetypes/Makefile.am b/tdeioslave/media/mimetypes/Makefile.am index 6acfac4c0..e141d8694 100644 --- a/tdeioslave/media/mimetypes/Makefile.am +++ b/tdeioslave/media/mimetypes/Makefile.am @@ -9,6 +9,8 @@ mimetype_DATA = floppy_mounted.desktop floppy_unmounted.desktop \ removable_mounted.desktop removable_unmounted.desktop \ removable_encrypted_locked.desktop \ removable_encrypted_unlocked.desktop \ + bluray_mounted.desktop bluray_unmounted.desktop \ + bluray_encrypted_locked.desktop bluray_encrypted_unlocked.desktop \ cdrom_mounted.desktop cdrom_unmounted.desktop \ cdrom_encrypted_locked.desktop \ cdrom_encrypted_unlocked.desktop \ @@ -21,13 +23,12 @@ mimetype_DATA = floppy_mounted.desktop floppy_unmounted.desktop \ smb_mounted.desktop smb_unmounted.desktop \ nfs_mounted.desktop nfs_unmounted.desktop \ audiocd.desktop \ - dvdvideo.desktop \ - blankcd.desktop \ - blankdvd.desktop \ - svcd.desktop \ - vcd.desktop\ - gphoto2camera.desktop camera_mounted.desktop camera_unmounted.desktop \ - mydocuments.desktop mycomputer.desktop mynetworkplaces.desktop printers.desktop trash.desktop webbrowser.desktop + blankbluray.desktop blankcd.desktop blankdvd.desktop \ + blurayvideo.desktop dvdvideo.desktop svcd.desktop vcd.desktop \ + gphoto2camera.desktop \ + camera_mounted.desktop camera_unmounted.desktop \ + mydocuments.desktop mycomputer.desktop mynetworkplaces.desktop \ + printers.desktop trash.desktop webbrowser.desktop EXTRA_DIST = $(mimetype_DATA) diff --git a/tdeioslave/media/mimetypes/audiocd.desktop b/tdeioslave/media/mimetypes/audiocd.desktop index 609eae809..ec5ab99a6 100644 --- a/tdeioslave/media/mimetypes/audiocd.desktop +++ b/tdeioslave/media/mimetypes/audiocd.desktop @@ -1,67 +1,9 @@ [Desktop Entry] Type=MimeType MimeType=media/audiocd -Comment=Audio CD -Comment[af]=Musiek CD -Comment[ar]=قرص مدمج صوتي -Comment[be]=Гукавы CD -Comment[bg]=Аудио диск -Comment[bn]=অডিও সিডি -Comment[br]=CD klevet -Comment[ca]=CD d'àudio -Comment[cs]=Zvukové CD -Comment[csb]=Aùdio CD -Comment[da]=Lyd-cd -Comment[de]=Audio-CD -Comment[el]=CD ήχου -Comment[eo]=Muzikaj lumdiskoj -Comment[fa]=دیسک فشردۀ صوتی -Comment[fi]=CD-äänilevy -Comment[fr]=CD audio -Comment[fy]=Audio-Kompaktskiif -Comment[ga]=Dlúthdhiosca Fuaime -Comment[gl]=CD de audio -Comment[he]=תקליטורי שמע -Comment[hi]=ऑडियो सीडी -Comment[hr]=Glazbeni CD -Comment[hu]=Hang-CD -Comment[is]=Hljóðdiskur -Comment[it]=CD audio -Comment[ja]=オーディオ CD -Comment[kk]=Аудио CD -Comment[km]=ស៊ីឌីអូឌីយ៉ូ -Comment[mk]=Аудио ЦД -Comment[ms]=CD Audio -Comment[nb]=Lyd-CD -Comment[nds]=Audio-CD -Comment[ne]=अडियो सीडी -Comment[nl]=Audio-cd -Comment[nn]=Lyd-CD -Comment[pa]=ਆਡੀਓ CD -Comment[pl]=Płyta CD Audio -Comment[pt]=CD de áudio -Comment[pt_BR]=CD de Áudio -Comment[ro]=CD Audio -Comment[ru]=Аудио CD -Comment[rw]=CD y'Inyumvo -Comment[se]=Jietna-CD -Comment[sl]=Glasbeni CD -Comment[sr]=Аудио CD -Comment[sv]=Ljud-cd -Comment[te]=ఆడియో సిడి -Comment[tg]=Аудио CD -Comment[th]=ซีดีเพลง -Comment[tr]=Müzik CD'si -Comment[tt]=Tawış CD -Comment[uk]=Аудіо КД -Comment[uz]=Audio kompakt-disk -Comment[uz@cyrillic]=Аудио компакт-диск -Comment[vi]=CD Nhạc -Comment[wa]=Plake lazer CD odio -Comment[zh_CN]=音频 CD -Comment[zh_TW]=音樂 CD Icon=media-optical-cdaudio-unmounted +Comment=Audio CD + X-TDE-AutoEmbed=true X-TDE-IsAlso=inode/directory - diff --git a/tdeioslave/media/mimetypes/blankbluray.desktop b/tdeioslave/media/mimetypes/blankbluray.desktop new file mode 100644 index 000000000..cb9ca2e25 --- /dev/null +++ b/tdeioslave/media/mimetypes/blankbluray.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Type=MimeType +MimeType=media/blankbluray +Icon=media-optical-dvd-unmounted + +Comment=Blank BLURAY diff --git a/tdeioslave/media/mimetypes/blankcd.desktop b/tdeioslave/media/mimetypes/blankcd.desktop index 6083901d9..c034b695d 100644 --- a/tdeioslave/media/mimetypes/blankcd.desktop +++ b/tdeioslave/media/mimetypes/blankcd.desktop @@ -1,73 +1,6 @@ [Desktop Entry] Type=MimeType MimeType=media/blankcd -Comment=Blank CD -Comment[af]=Leë CD -Comment[ar]=قرص مدمج فارغ -Comment[be]=Пусты CD -Comment[bg]=Празен диск -Comment[bn]=ফাঁকা সিডি -Comment[br]=Goullonderiñ ur CD -Comment[bs]=Prazan CD -Comment[ca]=CD en blanc -Comment[cs]=Prázdné CD -Comment[csb]=Czëstô CD -Comment[da]=Blank cd -Comment[de]=Leere CD -Comment[el]=Κενό CD -Comment[eo]=Malplena lumdisko -Comment[es]=CD vacío -Comment[et]=Tühi CD -Comment[eu]=CD hutsik -Comment[fa]=دیسک فشردۀ خام -Comment[fi]=Tyhjä CD -Comment[fr]=CD vierge -Comment[fy]=Blanke Kompaktskiif -Comment[ga]=Dlúthdhiosca Folamh -Comment[gl]=CD valeiro -Comment[he]=תקליטור ריק -Comment[hi]=खाली सीडी -Comment[hr]=Prazan CD -Comment[hu]=Üres CD -Comment[is]=Tómur CD -Comment[it]=CD vergine -Comment[ja]=空の CD -Comment[ka]=სუფთა CD -Comment[kk]=Таза CD -Comment[km]=ស៊ីឌីទទេ -Comment[lt]=Tuščias CD -Comment[lv]=Tukšs CD -Comment[mk]=Празно ЦД -Comment[ms]=CD Kosong -Comment[nb]=Tom CD -Comment[nds]=Leddige CD -Comment[ne]=खाली सीडी -Comment[nl]=Lege cd -Comment[nn]=Tom CD -Comment[pa]=ਖਾਲੀ CD -Comment[pl]=Pusta płyta CD -Comment[pt]=CD vazio -Comment[pt_BR]=CD virgem -Comment[ro]=CD gol -Comment[ru]=Чистый CD -Comment[rw]=CD Itanditseho -Comment[se]=Guorus CD -Comment[sk]=Čisté CD -Comment[sl]=Prazen CD -Comment[sr]=Празан CD -Comment[sr@Latn]=Prazan CD -Comment[sv]=Tom cd -Comment[ta]=காலி குறுந்தகடு -Comment[te]=ఖాళి సిడి -Comment[th]=ซีดีเปล่า -Comment[tr]=Boş CD -Comment[tt]=Buş CD -Comment[uk]=Чистий КД -Comment[uz]=Boʻsh kompakt-disk -Comment[uz@cyrillic]=Бўш компакт-диск -Comment[vi]=CD trống -Comment[wa]=Plake lazer CD sins rén dzo -Comment[zh_CN]=空 CD -Comment[zh_TW]=空白 CD Icon=cd-rw-unmounted +Comment=Blank CD diff --git a/tdeioslave/media/mimetypes/blankdvd.desktop b/tdeioslave/media/mimetypes/blankdvd.desktop index b95ee3bbc..053ac4181 100644 --- a/tdeioslave/media/mimetypes/blankdvd.desktop +++ b/tdeioslave/media/mimetypes/blankdvd.desktop @@ -1,72 +1,6 @@ [Desktop Entry] Type=MimeType MimeType=media/blankdvd -Comment=Blank DVD -Comment[af]=Leë DVD -Comment[ar]=قرص رقمي مرئي فارغ -Comment[be]=Пусты DVD -Comment[bg]=Празен DVD диск -Comment[bn]=ফাঁকা ডিভিডি -Comment[br]=Goullonderiñ un DVD -Comment[bs]=Prazan DVD -Comment[ca]=DVD en blanc -Comment[cs]=Prázdné DVD -Comment[csb]=Czëstô DVD -Comment[da]=Blank dvd -Comment[de]=Leere DVD -Comment[el]=Κενό DVD -Comment[eo]=Malplena DVD -Comment[es]=DVD vacío -Comment[et]=Tühi DVD -Comment[eu]=DVD hutsik -Comment[fa]=DVD خام -Comment[fi]=Tyhjä DVD-levy -Comment[fr]=DVD vierge -Comment[fy]=Blanke Dûbelskiif -Comment[ga]=DVD Folamh -Comment[gl]=DVD valeiro -Comment[he]=תקליטור DVD ריק -Comment[hi]=खाली डीवीडी -Comment[hr]=Prazan DVD -Comment[hu]=Üres DVD -Comment[is]=Tómur DVD -Comment[it]=DVD vergine -Comment[ja]=空の DVD -Comment[ka]=სუფთა DVD -Comment[kk]=Таза DVD -Comment[km]=ឌីវីឌីទទេ -Comment[lt]=Tuščias DVD -Comment[lv]=Tukšs DVD -Comment[mk]=Празно DVD -Comment[ms]=DVD Kosong -Comment[nb]=Tom DVD -Comment[nds]=Leddige DVD -Comment[ne]=खाली डी भी डी -Comment[nl]=Lege dvd -Comment[nn]=Tom DVD -Comment[pa]=ਖਾਲੀ DVD -Comment[pl]=Pusta płyta DVD -Comment[pt]=DVD vazio -Comment[pt_BR]=DVD virgem -Comment[ro]=DVD gol -Comment[ru]=Чистый DVD -Comment[rw]=DVD Itanditseho -Comment[se]=Guorus DVD -Comment[sk]=Čisté DVD -Comment[sl]=Prazen DVD -Comment[sr]=Празан DVD -Comment[sr@Latn]=Prazan DVD -Comment[sv]=Tom dvd -Comment[ta]=காலி டிவிடி -Comment[te]=ఖాళి డివిడి -Comment[th]=ดีวีดีเปล่า -Comment[tr]=Boş DVD -Comment[tt]=Buş DVD -Comment[uk]=Чистий DVD -Comment[uz]=Boʻsh DVD -Comment[uz@cyrillic]=Бўш DVD -Comment[vi]=DVD trống -Comment[wa]=Plake lazer DVD sins rén dzo -Comment[zh_CN]=空 DVD -Comment[zh_TW]=空白 DVD Icon=media-optical-dvd-unmounted + +Comment=Blank DVD diff --git a/tdeioslave/media/mimetypes/bluray_encrypted_locked.desktop b/tdeioslave/media/mimetypes/bluray_encrypted_locked.desktop new file mode 100644 index 000000000..6c68410a8 --- /dev/null +++ b/tdeioslave/media/mimetypes/bluray_encrypted_locked.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=MimeType +MimeType=media/bluray_encrypted_locked +Icon=media-optical-dvd-locked + +Comment=Encrypted Locked BLURAY + +Patterns= + +X-TDE-AutoEmbed=true +X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/bluray_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/bluray_encrypted_unlocked.desktop new file mode 100644 index 000000000..e193c606f --- /dev/null +++ b/tdeioslave/media/mimetypes/bluray_encrypted_unlocked.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=MimeType +MimeType=media/bluray_encrypted_unlocked +Icon=media-optical-dvd-unlocked + +Comment=Encrypted Unlocked BLURAY + +Patterns= + +X-TDE-AutoEmbed=true +X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/bluray_mounted.desktop b/tdeioslave/media/mimetypes/bluray_mounted.desktop new file mode 100644 index 000000000..2e0340665 --- /dev/null +++ b/tdeioslave/media/mimetypes/bluray_mounted.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=MimeType +MimeType=media/bluray_mounted +Icon=media-optical-dvd-mounted + +Comment=Mounted BLURAY + +Patterns= + +X-TDE-AutoEmbed=true +X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/bluray_unmounted.desktop b/tdeioslave/media/mimetypes/bluray_unmounted.desktop new file mode 100644 index 000000000..5c40fcd48 --- /dev/null +++ b/tdeioslave/media/mimetypes/bluray_unmounted.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=MimeType +MimeType=media/bluray_unmounted +Icon=media-optical-dvd-unmounted + +Comment=Unmounted BLURAY + +Patterns= + +X-TDE-AutoEmbed=true +X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/blurayvideo.desktop b/tdeioslave/media/mimetypes/blurayvideo.desktop new file mode 100644 index 000000000..785f717a5 --- /dev/null +++ b/tdeioslave/media/mimetypes/blurayvideo.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=MimeType +MimeType=media/blurayvideo +Icon=media-optical-dvd-unmounted + +Comment=BLURAY Video Disk + +X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/camera_mounted.desktop b/tdeioslave/media/mimetypes/camera_mounted.desktop index 266531f6e..bce6935f8 100644 --- a/tdeioslave/media/mimetypes/camera_mounted.desktop +++ b/tdeioslave/media/mimetypes/camera_mounted.desktop @@ -1,69 +1,9 @@ [Desktop Entry] Type=MimeType MimeType=media/camera_mounted -Comment=Mounted Camera -Comment[af]=Gekoppelde Kamera -Comment[ar]=كاميرا مركبة -Comment[be]=Прымацаваная камера -Comment[bg]=Монтиран фотоапарат -Comment[bn]=মাউন্ট করা ক্যামেরা -Comment[br]=Kamera marc'het -Comment[bs]=Priključena kamera -Comment[ca]=Càmera muntada -Comment[cs]=Připojená kamera -Comment[csb]=Zamòntowónô òdjimkòwô kamera -Comment[da]=Monteret kamera -Comment[de]=Eingebundene Kamera -Comment[el]=Προσαρτημένη κάμερα -Comment[eo]=Surmetita Kamero -Comment[es]=Cámara montada -Comment[et]=Ühendatud kaamera -Comment[eu]=Kamara muntatuta -Comment[fa]=دوربین سوارشده -Comment[fi]=Liitetty kamera -Comment[fr]=Appareil photo monté -Comment[fy]=Oankeppele kamera -Comment[ga]=Ceamara Feistithe -Comment[gl]=Cámara Montada -Comment[he]=מצלמה מחוברת -Comment[hr]=Pristupljena kamera -Comment[hu]=Csatlakoztatott fényképezőgép -Comment[is]=Tengd myndavél -Comment[it]=Macchina fotografica montata -Comment[ja]=マウントされたメディア -Comment[ka]=მონტირებული კამერა -Comment[kk]=Тіркеген фотокамера -Comment[km]=ម៉ាស៊ីនថតដែលបានម៉ោន -Comment[lt]=Sumontuotas fotoaparatas -Comment[mk]=Монтирана камера -Comment[nb]=Montert kamera -Comment[nds]=Inhangt Kamera -Comment[ne]=माउन्ट गरिएको क्यामेरा -Comment[nl]=Aangekoppelde camera -Comment[nn]=Montert kamera -Comment[pa]=ਮਾਊਂਟ ਹੋਇਆ ਕੈਮਰਾ -Comment[pl]=Zamontowany aparat fotograficzny -Comment[pt]=Câmara Montada -Comment[pt_BR]=Câmera montada -Comment[ro]=Aparat foto montat -Comment[ru]=Подключённая камера -Comment[se]=Čatnon govvenapperáhtta -Comment[sk]=Pripojený digitálny fotoaparát -Comment[sl]=Priklopljen fotoaparat -Comment[sr]=Монтирана камера -Comment[sr@Latn]=Montirana kamera -Comment[sv]=Monterad kamera -Comment[th]=กล้องดิจิตอลที่เมานท์แล้ว -Comment[tr]=Bağlı Kamera -Comment[uk]=Приєднана камера -Comment[uz]=Ulangan fotoaparat -Comment[uz@cyrillic]=Уланган фотоапарат -Comment[vi]=Máy chụp ảnh số đã kết nối -Comment[wa]=Montêye camera -Comment[zh_CN]=挂载的相机 -Comment[zh_TW]=掛載的照相機 Icon=camera-mounted +Comment=Mounted Camera + X-TDE-AutoEmbed=true X-TDE-IsAlso=inode/directory - diff --git a/tdeioslave/media/mimetypes/camera_unmounted.desktop b/tdeioslave/media/mimetypes/camera_unmounted.desktop index 0c8e7723e..f33c4a65b 100644 --- a/tdeioslave/media/mimetypes/camera_unmounted.desktop +++ b/tdeioslave/media/mimetypes/camera_unmounted.desktop @@ -1,69 +1,9 @@ [Desktop Entry] Type=MimeType MimeType=media/camera_unmounted -Comment=Unmounted Camera -Comment[af]=Ontkoppelde Kamera -Comment[ar]=كاميرا غير مركبة -Comment[be]=Адмацаваная камера -Comment[bg]=Демонтиран фотоапарат -Comment[bn]=আনমাউন্ট করা ক্যামেরা -Comment[br]=DVD-ROM divarc'het -Comment[bs]=Otkopčana kamera -Comment[ca]=Càmera desmuntada -Comment[cs]=Odpojená kamera -Comment[csb]=Òdmòntowónô òdjimkòwô kamera -Comment[da]=Afmonteret kamera -Comment[de]=Nicht eingebundene Kamera -Comment[el]=Μη προσαρτημένη κάμερα -Comment[eo]=Demetita Kamero -Comment[es]=Cámara desmontada -Comment[et]=Lahutatud kaamera -Comment[eu]=Kamara desmuntatua -Comment[fa]=دوربین پیادهشده -Comment[fi]=Irrotettu kamera -Comment[fr]=Appareil photo non monté -Comment[fy]=Ofkeppele kamera -Comment[ga]=Ceamara Neamhfheistithe -Comment[gl]=Cámara non Montada -Comment[he]=מצלמה מנותקת -Comment[hr]=Nepristupljena kamera -Comment[hu]=Leválasztott fényképezőgép -Comment[is]=Aftengd myndavél -Comment[it]=Macchina fotografica non montata -Comment[ja]=マウントされていないメディア -Comment[ka]=დემონტირებული კამერა -Comment[kk]=Тіркеуден шығарылған фотокамера -Comment[km]=ម៉ាស៊ីនថតដែលបានអាន់ម៉ោន -Comment[lt]=Išmontuotas fotoaparatas -Comment[mk]=Одмонтирана камера -Comment[nb]=Avmontert kamera -Comment[nds]=Afhangt Kamera -Comment[ne]=अनमाउन्ट गरिएको क्यामेरा -Comment[nl]=Afgekoppelde camera -Comment[nn]=Avmontert kamera -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤਾ ਕੈਮਰਾ -Comment[pl]=Odmontowany aparat fotograficzny -Comment[pt]=Câmara Desmontada -Comment[pt_BR]=Câmera desmontada -Comment[ro]=Aparat foto nemontat -Comment[ru]=Неподключённая камера -Comment[se]=Gálgajuvvon govvenapperáhtta -Comment[sk]=Odpojený digitálny fotoaparát -Comment[sl]=Odklopljen fotoaparat -Comment[sr]=Демонтирана камера -Comment[sr@Latn]=Demontirana kamera -Comment[sv]=Avmonterad kamera -Comment[th]=กล้องดิจิตอลที่ไม่ได้เมานท์ -Comment[tr]=Ayrılmış Kamera -Comment[uk]=Роз'єднана камера -Comment[uz]=Ulanmagan fotoaparat -Comment[uz@cyrillic]=Уланмаган фотоапарат -Comment[vi]=Máy chụp ảnh số đã gỡ ra -Comment[wa]=Dismontêye camera -Comment[zh_CN]=未挂载的相机 -Comment[zh_TW]=未掛載的照相機 Icon=camera-unmounted +Comment=Unmounted Camera + X-TDE-AutoEmbed=true X-TDE-IsAlso=inode/directory - diff --git a/tdeioslave/media/mimetypes/cd-r_encrypted_locked.desktop b/tdeioslave/media/mimetypes/cd-r_encrypted_locked.desktop index 89ca0883f..50a23de70 100644 --- a/tdeioslave/media/mimetypes/cd-r_encrypted_locked.desktop +++ b/tdeioslave/media/mimetypes/cd-r_encrypted_locked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=cd-r-locked Type=MimeType MimeType=media/cd-r_encrypted_locked +Icon=cd-r-locked + Comment=Encrypted Locked CD-R -Comment[de]=Verschlüsselte gesperrte CD-R -Comment[it]=CD-R criptato protetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/cd-r_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/cd-r_encrypted_unlocked.desktop index 1957635cf..c410a4e43 100644 --- a/tdeioslave/media/mimetypes/cd-r_encrypted_unlocked.desktop +++ b/tdeioslave/media/mimetypes/cd-r_encrypted_unlocked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=cd-r-unlocked Type=MimeType MimeType=media/cd-r_encrypted_unlocked +Icon=cd-r-unlocked + Comment=Encrypted Unlocked CD-R -Comment[de]=Verschlüsselte entsperrte CD-R -Comment[it]=CD-R criptato sprotetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/cd-r_mounted.desktop b/tdeioslave/media/mimetypes/cd-r_mounted.desktop index 5d96853fa..12f81ab6b 100644 --- a/tdeioslave/media/mimetypes/cd-r_mounted.desktop +++ b/tdeioslave/media/mimetypes/cd-r_mounted.desktop @@ -1,85 +1,10 @@ [Desktop Entry] -Icon=cd-r-mounted Type=MimeType MimeType=media/cd-r_mounted +Icon=cd-r-mounted + Comment=Mounted CD-R -Comment[af]=Gekoppelde Cd Skrywer -Comment[ar]=ناسخ أقراص محمّل -Comment[az]=Bağlanmış CD Yazıcı -Comment[be]=Прымацаваны запісвальнік CD -Comment[bg]=Монтиран компактдиск -Comment[bn]=মাউন্ট করা সিডি-রাইটার -Comment[br]=Engraver CD marc'het -Comment[bs]=Montiran CD pisač -Comment[ca]=CD-R muntat -Comment[cs]=Připojená vypalovačka CD -Comment[csb]=Zamòntowóny wëpôlôrz CD -Comment[cy]=Ysgrifennwr CD wedi'i osod -Comment[da]=Monteret cd-skriver -Comment[de]=Eingebundene CD-R -Comment[el]=Προσαρτημένο CD-R -Comment[eo]=Surmetita skribebla LD -Comment[es]=Escritor de CDs montado -Comment[et]=Ühendatud CD kirjutaja -Comment[eu]=CD erretzaile muntatua -Comment[fa]=CD-R سوارشده -Comment[fi]=Liitetty CD-kirjoitin -Comment[fr]=Graveur de CD monté -Comment[fy]=Oankeppele Kompaktskiif -Comment[ga]=Scríbhneoir Feistithe CDanna -Comment[gl]=Grabadora de CD Montada -Comment[he]=צורב מחובר -Comment[hi]=माउन्टेड सीडी-राइटर -Comment[hr]=Pristupljeni CD snimač -Comment[hsb]=Montowany CD-palak -Comment[hu]=Csatlakoztatott CD-író -Comment[is]=Tengdur geislaskrifari -Comment[it]=Masterizzatore montato -Comment[ja]=マウントされている CD ライター -Comment[ka]=მონტირებული CD-R -Comment[kk]=Тіркеген CD-R -Comment[km]=ឧបករណ៍សរសេរស៊ីឌីបានរៀបចំ -Comment[lo]= ຈໍພາບ -Comment[lt]=Sumontuotas CD rašymo įrenginys -Comment[lv]=Piemontēts CD rakstītājs -Comment[mk]=Монтиран ЦД-снимач -Comment[mn]=Залгагдсан КД-шарагч -Comment[ms]=Penulis CD Terlekap -Comment[mt]=CDWriter immontat -Comment[nb]=Montert CD-brenner -Comment[nds]=Inhangt CD-Brenner -Comment[ne]=माउन्ट गरिएको सीडी राइटर -Comment[nl]=Aangekoppelde cd-r -Comment[nn]=Montert CD-brennar -Comment[nso]=Sengwadi sa CD seo se Nameleditswego -Comment[pa]=ਮਾਊਟ CD ਰਾਇਟਰ -Comment[pl]=Zamontowana nagrywarka CD -Comment[pt]=Gravador de CDs montado -Comment[pt_BR]=Gravador de CD Montado -Comment[ro]=CD-R montat -Comment[ru]=Смонтированный CD (с возможностью записи) -Comment[rw]=Mwandika CD Yashyizwemo -Comment[se]=Čatnon CD-čálli -Comment[sk]=Pripojená napaľovacia mechanika CD -Comment[sl]=Priklopljen zapisovalnik CD-jev -Comment[sr]=Монтиран CD резач -Comment[sr@Latn]=Montiran CD rezač -Comment[sv]=Monterad cd-brännare -Comment[ta]=ஏற்றப்பட்ட குறுந்தகடு எழுதி -Comment[tg]=Монтажшудаи CD-R -Comment[th]=เครื่องเขียนซีดีที่เม้านท์แล้ว -Comment[tr]=Bağlı CD Yazıcı -Comment[tt]=Totaşqan CD Yazdırğıç -Comment[uk]=Змонтований гравер КД -Comment[uz]=Ulangan kompakt-disk yozuvchi -Comment[uz@cyrillic]=Уланган компакт-диск ёзувчи -Comment[ven]=Tshinwali tsha CD tsho gonyiswaho -Comment[vi]=Ổ ghi CD đã kết nối -Comment[wa]=Plake lazer CD sol broûleu montêye -Comment[xh]=CD-R Enyusiweyo -Comment[zh_CN]=挂载的刻录机 -Comment[zh_TW]=已掛載的 CD-R -Comment[zu]=I-CD-R eyenyusiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/cd-r_unmounted.desktop b/tdeioslave/media/mimetypes/cd-r_unmounted.desktop index 02745bdaa..49d41ba89 100644 --- a/tdeioslave/media/mimetypes/cd-r_unmounted.desktop +++ b/tdeioslave/media/mimetypes/cd-r_unmounted.desktop @@ -1,85 +1,10 @@ [Desktop Entry] -Icon=cd-r-unmounted Type=MimeType MimeType=media/cd-r_unmounted +Icon=cd-r-unmounted + Comment=Unmounted CD-R -Comment[af]=Ontkoppelde CD Skrywer -Comment[ar]=ناسخ أقراص غير محمّل -Comment[az]=Ayrılmış CD Yazıcı -Comment[be]=Адмацаваны запісвальнік CD -Comment[bg]=Демонтиран компактдиск -Comment[bn]=আনমাউন্ট করা সিডি-রাইটার -Comment[br]=Engraver CD divarc'het -Comment[bs]=Demontiran CD pisač -Comment[ca]=CD-R desmuntat -Comment[cs]=Odpojená vypalovačka CD -Comment[csb]=Òdmòntowóny wëpôlôrz CD -Comment[cy]=Ysgrifennwr CD wedi'i ddadosod -Comment[da]=Afmonteret cd-skriver -Comment[de]=Nicht eingebundene CD-R -Comment[el]=Αποπροσαρτημένο CD-R -Comment[eo]=Demetita skribebla LD -Comment[es]=Escritor de CDs desmontado -Comment[et]=Lahutatud CD kirjutaja -Comment[eu]=CD erretzaile desmuntatua -Comment[fa]=CD-R پیادهشده -Comment[fi]=Irrotettu CD-kirjoitin -Comment[fr]=Graveur de CD non monté -Comment[fy]=Ofkeppele Kompaktskiif -Comment[ga]=Scríbhneoir Neamhfheistithe CDanna -Comment[gl]=Grabadora de CD Non Montada -Comment[he]=צורב מנותק -Comment[hi]=अनमाउन्टेड सीडी-राइटर -Comment[hr]=Nepristupljeni CD snimač -Comment[hsb]=Njemontowany CD-palak -Comment[hu]=Leválasztott CD-író -Comment[is]=Aftengdur geislaskrifari -Comment[it]=Masterizzatore smontato -Comment[ja]=マウントされていない CD ライター -Comment[ka]=დემონტირებული CD-R -Comment[kk]=Ажыратылған CD-R -Comment[km]=ឧបករណ៍សរសេរស៊ីឌីមិនបានរៀបចំ -Comment[lo]= ຫັງກາລີ -Comment[lt]=Išmontuotas CD rašymo įrenginys -Comment[lv]=Nomontēts CD rakstītājs -Comment[mk]=Одмонтиран ЦД-снимач -Comment[mn]=Салгагдсан КД-шарагч -Comment[ms]=Penulis CD Nyahlekap -Comment[mt]=CDWriter mhux immontat -Comment[nb]=Avmontert CD-brenner -Comment[nds]=Afhangt CD-Brenner -Comment[ne]=अनमाउन्ट गरिएको सीडी राइटर -Comment[nl]=Afgekoppelde cd-r -Comment[nn]=Avmontert CD-brennar -Comment[nso]=Sengwadi sa CD seo se Theositswego -Comment[pa]=ਅਨਮਾਊਟ CD ਰਾਇਟਰ -Comment[pl]=Odmontowana nagrywarka CD -Comment[pt]=Gravador de CDs desmontado -Comment[pt_BR]=Gravador de CD Desmontado -Comment[ro]=CD-R nemontat -Comment[ru]=Отмонтированный CD (с возможностью записи) -Comment[rw]=Mwandika CD Yakuwemo -Comment[se]=Gálgajuvvon CD-čálli -Comment[sk]=Nepripojená napaľovacia mechanika CD -Comment[sl]=Odklopljen zapisovalnik CD-jev -Comment[sr]=Демонтиран CD резач -Comment[sr@Latn]=Demontiran CD rezač -Comment[sv]=Avmonterad cd-brännare -Comment[ta]=வெளியேற்றிய குறுந்தகடு எழுதி -Comment[tg]=Ҷудо шудаи CD-R -Comment[th]=เครื่องเขียนซีดีที่ไม่ได้กเม้านท์ -Comment[tr]=Ayrılmış CD Yazıcı -Comment[tt]=Totaşmağan CD Yazdırğıç -Comment[uk]=Демонтований гравер КД -Comment[uz]=Ulanmagan kompakt-disk yozuvchi -Comment[uz@cyrillic]=Уланмаган компакт-диск ёзувчи -Comment[ven]=Tshinwali tsha CD tshi songo gonyiswaho -Comment[vi]=Ổ ghi CD đã gỡ ra -Comment[wa]=Plake lazer CD sol broûleu dismontêye -Comment[xh]=CD-R Enganyuswanga -Comment[zh_CN]=未挂载的刻录机 -Comment[zh_TW]=未掛載的 CD-R -Comment[zu]=I-CD-R eyehlisiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/cd-rw_encrypted_locked.desktop b/tdeioslave/media/mimetypes/cd-rw_encrypted_locked.desktop index 6199da40c..5edac87e4 100644 --- a/tdeioslave/media/mimetypes/cd-rw_encrypted_locked.desktop +++ b/tdeioslave/media/mimetypes/cd-rw_encrypted_locked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=cd-rw-locked Type=MimeType MimeType=media/cd-rw_encrypted_locked +Icon=cd-rw-locked + Comment=Encrypted Locked CD-RW -Comment[de]=Verschlüsselte gesperrte CD-RW -Comment[it]=CD-RW criptato protetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/cd-rw_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/cd-rw_encrypted_unlocked.desktop index 21e7b3d21..6dd0de842 100644 --- a/tdeioslave/media/mimetypes/cd-rw_encrypted_unlocked.desktop +++ b/tdeioslave/media/mimetypes/cd-rw_encrypted_unlocked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=cd-rw-unlocked Type=MimeType MimeType=media/cd-rw_encrypted_unlocked +Icon=cd-rw-unlocked + Comment=Encrypted Unlocked CD-RW -Comment[de]=Verschlüsselte entsperrte CD-RW -Comment[it]=CD-RW criptato sprotetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/cd-rw_mounted.desktop b/tdeioslave/media/mimetypes/cd-rw_mounted.desktop index 83ad5eef4..4846eb0da 100644 --- a/tdeioslave/media/mimetypes/cd-rw_mounted.desktop +++ b/tdeioslave/media/mimetypes/cd-rw_mounted.desktop @@ -1,85 +1,10 @@ [Desktop Entry] -Icon=cd-rw-mounted Type=MimeType MimeType=media/cd-rw_mounted +Icon=cd-rw-mounted + Comment=Mounted CD-RW -Comment[af]=Gekoppelde Cd Skrywer -Comment[ar]=ناسخ أقراص محمّل -Comment[az]=Bağlanmış CD Yazıcı -Comment[be]=Прымацаваны запісвальнік CD -Comment[bg]=Монтиран компактдиск -Comment[bn]=মাউন্ট করা সিডি-রাইটার -Comment[br]=Engraver CD marc'het -Comment[bs]=Montiran CD pisač -Comment[ca]=CD-RW muntat -Comment[cs]=Připojená vypalovačka CD -Comment[csb]=Zamòntowóny wëpôlôrz CD -Comment[cy]=Ysgrifennwr CD wedi'i osod -Comment[da]=Monteret cd-skriver -Comment[de]=Eingebundene CD-RW -Comment[el]=Προσαρτημένο CD-RW -Comment[eo]=Surmetita skribebla LD -Comment[es]=Escritor de CDs montado -Comment[et]=Ühendatud CD kirjutaja -Comment[eu]=CD erretzaile muntatua -Comment[fa]=CD-RW سوارشده -Comment[fi]=Liitetty CD-kirjoitin -Comment[fr]=Graveur de CD monté -Comment[fy]=Oankeppele Kompaktskiif -Comment[ga]=Scríbhneoir Feistithe CDanna -Comment[gl]=Grabadora de CD Montada -Comment[he]=צורב מחובר -Comment[hi]=माउन्टेड सीडी-राइटर -Comment[hr]=Pristupljeni CD snimač -Comment[hsb]=Montowany CD-palak -Comment[hu]=Csatlakoztatott CD-író -Comment[is]=Tengdur geislaskrifari -Comment[it]=Masterizzatore montato -Comment[ja]=マウントされている CD ライター -Comment[ka]=მონტირებული CD-RW -Comment[kk]=Тіркеген CD-RW -Comment[km]=ឧបករណ៍សរសេរស៊ីឌីបានរៀបចំ -Comment[lo]= ຈໍພາບ -Comment[lt]=Sumontuotas CD rašymo įrenginys -Comment[lv]=Piemontēts CD rakstītājs -Comment[mk]=Монтиран ЦД-снимач -Comment[mn]=Залгагдсан КД-шарагч -Comment[ms]=Penulis CD Terlekap -Comment[mt]=CDWriter immontat -Comment[nb]=Montert CD-brenner -Comment[nds]=Inhangt CD-Brenner -Comment[ne]=माउन्ट गरिएको सीडी राइटर -Comment[nl]=Aangekoppelde cd-r -Comment[nn]=Montert CD-brennar -Comment[nso]=Sengwadi sa CD seo se Nameleditswego -Comment[pa]=ਮਾਊਟ CD ਰਾਇਟਰ -Comment[pl]=Zamontowana nagrywarka CD -Comment[pt]=Gravador de CDs montado -Comment[pt_BR]=Gravador de CD Montado -Comment[ro]=CD-RW montat -Comment[ru]=Смонтированный CD (с возможностью записи) -Comment[rw]=Mwandika CD Yashyizwemo -Comment[se]=Čatnon CD-čálli -Comment[sk]=Pripojená napaľovacia mechanika CD -Comment[sl]=Priklopljen zapisovalnik CD-jev -Comment[sr]=Монтиран CD резач -Comment[sr@Latn]=Montiran CD rezač -Comment[sv]=Monterad cd-brännare -Comment[ta]=ஏற்றப்பட்ட குறுந்தகடு எழுதி -Comment[tg]=Монтажшудаи CD-RW -Comment[th]=เครื่องเขียนซีดีที่เม้านท์แล้ว -Comment[tr]=Bağlı CD Yazıcı -Comment[tt]=Totaşqan CD Yazdırğıç -Comment[uk]=Змонтований гравер КД -Comment[uz]=Ulangan kompakt-disk yozuvchi -Comment[uz@cyrillic]=Уланган компакт-диск ёзувчи -Comment[ven]=Tshinwali tsha CD tsho gonyiswaho -Comment[vi]=Ổ ghi CD đã kết nối -Comment[wa]=Plake lazer CD sol broûleu montêye -Comment[xh]=CD-RW Enyusiweyo -Comment[zh_CN]=挂载的刻录机 -Comment[zh_TW]=已掛載的 CD-RW -Comment[zu]=I-CD-RW eyenyusiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/cd-rw_unmounted.desktop b/tdeioslave/media/mimetypes/cd-rw_unmounted.desktop index f2bec5d53..158aa5f48 100644 --- a/tdeioslave/media/mimetypes/cd-rw_unmounted.desktop +++ b/tdeioslave/media/mimetypes/cd-rw_unmounted.desktop @@ -1,85 +1,10 @@ [Desktop Entry] -Icon=cd-rw-unmounted Type=MimeType MimeType=media/cd-rw_unmounted +Icon=cd-rw-unmounted + Comment=Unmounted CD-RW -Comment[af]=Ontkoppelde CD Skrywer -Comment[ar]=ناسخ أقراص غير محمّل -Comment[az]=Ayrılmış CD Yazıcı -Comment[be]=Адмацаваны запісвальнік CD -Comment[bg]=Демонтиран компактдиск -Comment[bn]=আনমাউন্ট করা সিডি-রাইটার -Comment[br]=Engraver CD divarc'het -Comment[bs]=Demontiran CD pisač -Comment[ca]=CD-RW desmuntat -Comment[cs]=Odpojená vypalovačka CD -Comment[csb]=Òdmòntowóny wëpôlôrz CD -Comment[cy]=Ysgrifennwr CD wedi'i ddadosod -Comment[da]=Afmonteret cd-skriver -Comment[de]=Nicht eingebundene CD-RW -Comment[el]=Αποπροσαρτημένο CD-RW -Comment[eo]=Demetita skribebla LD -Comment[es]=Escritor de CDs desmontado -Comment[et]=Lahutatud CD kirjutaja -Comment[eu]=CD erretzaile desmuntatua -Comment[fa]=CD-RW پیادهشده -Comment[fi]=Irrotettu CD-kirjoitin -Comment[fr]=Graveur de CD non monté -Comment[fy]=Ofkeppele Kompaktskiif -Comment[ga]=Scríbhneoir Neamhfheistithe CDanna -Comment[gl]=Grabadora de CD Non Montada -Comment[he]=צורב מנותק -Comment[hi]=अनमाउन्टेड सीडी-राइटर -Comment[hr]=Nepristupljeni CD snimač -Comment[hsb]=Njemontowany CD-palak -Comment[hu]=Leválasztott CD-író -Comment[is]=Aftengdur geislaskrifari -Comment[it]=Masterizzatore smontato -Comment[ja]=マウントされていない CD ライター -Comment[ka]=დემონტირებული CD-RW -Comment[kk]=Ажыратылған CD-RW -Comment[km]=ឧបករណ៍សរសេរស៊ីឌីមិនបានរៀបចំ -Comment[lo]= ຫັງກາລີ -Comment[lt]=Išmontuotas CD rašymo įrenginys -Comment[lv]=Nomontēts CD rakstītājs -Comment[mk]=Одмонтиран ЦД-снимач -Comment[mn]=Салгагдсан КД-шарагч -Comment[ms]=Penulis CD Nyahlekap -Comment[mt]=CDWriter mhux immontat -Comment[nb]=Avmontert CD-brenner -Comment[nds]=Afhangt CD-Brenner -Comment[ne]=अनमाउन्ट गरिएको सीडी राइटर -Comment[nl]=Afgekoppelde cd-r -Comment[nn]=Avmontert CD-brennar -Comment[nso]=Sengwadi sa CD seo se Theositswego -Comment[pa]=ਅਨਮਾਊਟ CD ਰਾਇਟਰ -Comment[pl]=Odmontowana nagrywarka CD -Comment[pt]=Gravador de CDs desmontado -Comment[pt_BR]=Gravador de CD Desmontado -Comment[ro]=CD-RW nemontat -Comment[ru]=Отмонтированный CD (с возможностью записи) -Comment[rw]=Mwandika CD Yakuwemo -Comment[se]=Gálgajuvvon CD-čálli -Comment[sk]=Nepripojená napaľovacia mechanika CD -Comment[sl]=Odklopljen zapisovalnik CD-jev -Comment[sr]=Демонтиран CD резач -Comment[sr@Latn]=Demontiran CD rezač -Comment[sv]=Avmonterad cd-brännare -Comment[ta]=வெளியேற்றிய குறுந்தகடு எழுதி -Comment[tg]=Ҷудо шудаи CD-RW -Comment[th]=เครื่องเขียนซีดีที่ไม่ได้กเม้านท์ -Comment[tr]=Ayrılmış CD Yazıcı -Comment[tt]=Totaşmağan CD Yazdırğıç -Comment[uk]=Демонтований гравер КД -Comment[uz]=Ulanmagan kompakt-disk yozuvchi -Comment[uz@cyrillic]=Уланмаган компакт-диск ёзувчи -Comment[ven]=Tshinwali tsha CD tshi songo gonyiswaho -Comment[vi]=Ổ ghi CD đã gỡ ra -Comment[wa]=Plake lazer CD sol broûleu dismontêye -Comment[xh]=CD-RW Enganyuswanga -Comment[zh_CN]=未挂载的刻录机 -Comment[zh_TW]=未掛載的 CD-RW -Comment[zu]=I-CD-RW eyehlisiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/cdrom_encrypted_locked.desktop b/tdeioslave/media/mimetypes/cdrom_encrypted_locked.desktop index 317f1aa54..6dc794dff 100644 --- a/tdeioslave/media/mimetypes/cdrom_encrypted_locked.desktop +++ b/tdeioslave/media/mimetypes/cdrom_encrypted_locked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=media-optical-cdrom-locked Type=MimeType MimeType=media/cdrom_encrypted_locked +Icon=media-optical-cdrom-locked + Comment=Encrypted Locked CD-ROM -Comment[de]=Verschlüsselte gesperrte CD-ROM -Comment[it]=CD-ROM criptato protetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/cdrom_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/cdrom_encrypted_unlocked.desktop index 0cca2978a..011228a88 100644 --- a/tdeioslave/media/mimetypes/cdrom_encrypted_unlocked.desktop +++ b/tdeioslave/media/mimetypes/cdrom_encrypted_unlocked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=media-optical-cdrom-unlocked Type=MimeType MimeType=media/cdrom_encrypted_unlocked +Icon=media-optical-cdrom-unlocked + Comment=Encrypted Unlocked CD-ROM -Comment[de]=Verschlüsselte entsperrte CD-ROM -Comment[it]=CD-ROM criptato sprotetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/cdrom_mounted.desktop b/tdeioslave/media/mimetypes/cdrom_mounted.desktop index fca015abf..4fdca5c24 100644 --- a/tdeioslave/media/mimetypes/cdrom_mounted.desktop +++ b/tdeioslave/media/mimetypes/cdrom_mounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-optical-cdrom-mounted Type=MimeType MimeType=media/cdrom_mounted +Icon=media-optical-cdrom-mounted + Comment=Mounted CD-ROM -Comment[af]=Gekoppelde CD-ROM -Comment[ar]=قرص مدمج مركب -Comment[az]=Bağlanmış CD-ROM -Comment[be]=Прымацаваны CD-ROM -Comment[bg]=Монтиран CD-ROM -Comment[bn]=মাউন্ট করা সিডি-রম -Comment[br]=CD-ROM marc'het -Comment[bs]=Montiran CD-ROM -Comment[ca]=CD-ROM muntat -Comment[cs]=Připojená CDROM -Comment[csb]=Zamòntowóny nëk CD -Comment[cy]=CD-ROM wedi ei osod -Comment[da]=Monteret cd-rom -Comment[de]=Eingebundene CD-ROM -Comment[el]=Προσαρτημένο CD-ROM -Comment[eo]=Surmetita nurlegebla LD -Comment[es]=CD-ROM montado -Comment[et]=Ühendatud CD-ROM -Comment[eu]=CD-ROM muntatua -Comment[fa]=CD-ROM سوارشده -Comment[fi]=Liitetty CD-ROM -Comment[fr]=CD-ROM monté -Comment[fy]=Oankeppele Kompaktskiif -Comment[ga]=CD-ROM feistithe -Comment[gl]=CD-ROM Montado -Comment[he]=תקליטור מחובר -Comment[hi]=माउन्टेड सीडी-रोम -Comment[hr]=Pristupljeni CD-ROM -Comment[hu]=Csatlakoztatott CD-ROM -Comment[is]=Tengt geisladrif -Comment[it]=CD-ROM montato -Comment[ja]=マウントされた CD-ROM -Comment[ka]=მონტირებული CD-ROM -Comment[kk]=Тіркеген CD-ROM -Comment[km]=CD-ROM បានរៀបចំ -Comment[lo]=ຈໍພາບ -Comment[lt]=Sumontuotas CD-ROM -Comment[lv]=Piemontēts CD-ROM -Comment[mk]=Монтиран ЦДРОМ -Comment[mn]=Залгагдсан КД-ROM -Comment[ms]=CD-ROM Terlekap -Comment[mt]=CDROM immontat -Comment[nb]=Montert CD-plate -Comment[nds]=Inhangt CD-ROM -Comment[ne]=माउन्ट गरिएको सीडी-रोम -Comment[nl]=Aangekoppelde cd-romschijf -Comment[nn]=Montert CD-ROM -Comment[nso]=CD-ROM yeo e Nameleditswego -Comment[pa]=ਮਾਊਟ ਕੀਤੀ CD-ROM -Comment[pl]=Zamontowany CD-ROM -Comment[pt]=CD-ROM montado -Comment[pt_BR]=CD-ROM Montado -Comment[ro]=CD-ROM montat -Comment[ru]=Смонтированный CD -Comment[rw]=CD-ROM Yashyizwemo -Comment[se]=Čatnon CD-ROM -Comment[sk]=Pripojený CD-ROM -Comment[sl]=Priklopljen CD-ROM -Comment[sr]=Монитран CD-ROM -Comment[sr@Latn]=Monitran CD-ROM -Comment[sv]=Monterad cd-rom -Comment[ta]=ஏற்றப்பட்ட சிடிராம் -Comment[tg]=Монтаж шудаи CD-ROM -Comment[th]=ซีดีรอมที่เม้านท์แล้ว -Comment[tr]=Bağlı CD-ROM -Comment[tt]=Totaşqan CD-ROM -Comment[uk]=Змонтований КД -Comment[uz]=Ulangan kompakt-disk -Comment[uz@cyrillic]=Уланган компакт-диск -Comment[ven]=CD-ROM yo gonyiswaho -Comment[vi]=Ổ CD ROM đã kết nối -Comment[wa]=Plake lazer CD montêye -Comment[xh]=CD-ROM Enyusiweyo -Comment[zh_CN]=挂载的 CD-ROM -Comment[zh_TW]=已掛載的 CD-ROM -Comment[zu]=I-CD-ROM eyenyusiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/cdrom_unmounted.desktop b/tdeioslave/media/mimetypes/cdrom_unmounted.desktop index 4eaafd7ee..31d4a4166 100644 --- a/tdeioslave/media/mimetypes/cdrom_unmounted.desktop +++ b/tdeioslave/media/mimetypes/cdrom_unmounted.desktop @@ -1,85 +1,10 @@ [Desktop Entry] -Icon=media-optical-cdrom-unmounted Type=MimeType MimeType=media/cdrom_unmounted +Icon=media-optical-cdrom-unmounted + Comment=Unmounted CD-ROM -Comment[af]=Ontkoppel CD-ROM -Comment[ar]=قرص مدمج غير محمّل -Comment[az]=Ayrılmış CD-ROM -Comment[be]=Адмацаваны CD-ROM -Comment[bg]=Демонтиран CD-ROM -Comment[bn]=আনমাউন্ট করা সিডি-রম -Comment[br]=CD-ROM divountet -Comment[bs]=Demontiran CD-ROM -Comment[ca]=CD-ROM desmuntat -Comment[cs]=Odpojená CDROM -Comment[csb]=Òdmòntowóny nëk CD -Comment[cy]=CD-ROM wedi'i ddadosod -Comment[da]=Afmonteret cd-rom -Comment[de]=Nicht eingebundene CD-ROM -Comment[el]=Αποπροσαρτημένο CD-ROM -Comment[eo]=Demetita nurlegebla LD -Comment[es]=CD-ROM desmontado -Comment[et]=Lahutatud CD-ROM -Comment[eu]=CD-ROM desmuntatua -Comment[fa]=CD-ROM پیادهشده -Comment[fi]=Irrotettu CD-ROM -Comment[fr]=CD-ROM non monté -Comment[fy]=Ofkeppele Kompaktskiif -Comment[ga]=CD-ROM neamhfheistithe -Comment[gl]=CD-ROM Non Montado -Comment[he]=תקליטור מנותק -Comment[hi]=अनमाउन्टेड सीडी-रोम -Comment[hr]=Nepristupljeni CD-ROM -Comment[hsb]=Njemontowany CDnik -Comment[hu]=Leválasztott CD-ROM -Comment[is]=Aftengt geisladrif -Comment[it]=CD-ROM smontato -Comment[ja]=マウントされていない CD-ROM -Comment[ka]=დემონტირებული CD-ROM -Comment[kk]=Тіркеуден шығарған CD-ROM -Comment[km]=CD-ROM មិនបានរៀបចំ -Comment[lo]=ຫັງກາລີ -Comment[lt]=Išmontuotas CD-ROM -Comment[lv]=Nomontēts CD-ROM -Comment[mk]=Одмонтиран ЦДРОМ -Comment[mn]=Салгаатай КД-ROM -Comment[ms]=CD-ROM Nyahlekap -Comment[mt]=CDROM mhux immontat -Comment[nb]=Avmontert CD-plate -Comment[nds]=Afhangt CD-ROM -Comment[ne]=अनमाउन्ट गरिएको सीडी-रोम -Comment[nl]=Afgekoppelde cd-romschijf -Comment[nn]=Avmontert CD-ROM -Comment[nso]=CD-ROM yeo e Theositswego -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ CD-ROM -Comment[pl]=Odmontowany CD-ROM -Comment[pt]=CD-ROM desmontado -Comment[pt_BR]=CD-ROM Desmontado -Comment[ro]=CD-ROM nemontat -Comment[ru]=Отмонтированный CD -Comment[rw]=CD-ROM Yakuwemo -Comment[se]=Gálgajuvvon CD-ROM -Comment[sk]=Nepripojený CD-ROM -Comment[sl]=Odklopljen CD-ROM -Comment[sr]=Демонтиран CD-ROM -Comment[sr@Latn]=Demontiran CD-ROM -Comment[sv]=Avmonterad cd-rom -Comment[ta]=வெளியேற்றிய குறுந்தகடு -Comment[tg]=Ҷудо шудаи CD-ROM -Comment[th]=ซีดีรอมที่ไม่ได้เม้านท์ -Comment[tr]=Ayrılmış CD-ROM -Comment[tt]=Totaşmağan CD-ROM -Comment[uk]=Демонтований КД -Comment[uz]=Ulanmagan kompakt-disk -Comment[uz@cyrillic]=Уланмаган компакт-диск -Comment[ven]=CD-ROM i songo gonyiswaho -Comment[vi]=Ổ CD-ROM đã gỡ ra -Comment[wa]=Plake lazer CD dismontêye -Comment[xh]=CD-ROM Enganyuswanga -Comment[zh_CN]=未挂载的 CD-ROM -Comment[zh_TW]=未掛載的 CD-ROM -Comment[zu]=I-CD-ROM eyehlisiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/dvd_encrypted_locked.desktop b/tdeioslave/media/mimetypes/dvd_encrypted_locked.desktop index 8beccf83a..d4e3b25bd 100644 --- a/tdeioslave/media/mimetypes/dvd_encrypted_locked.desktop +++ b/tdeioslave/media/mimetypes/dvd_encrypted_locked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=media-optical-dvd-locked Type=MimeType MimeType=media/dvd_encrypted_locked +Icon=media-optical-dvd-locked + Comment=Encrypted Locked DVD -Comment[de]=Verschlüsselte gesperrte DVD -Comment[it]=DVD criptato protetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/dvd_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/dvd_encrypted_unlocked.desktop index 25c70272c..a4a66904a 100644 --- a/tdeioslave/media/mimetypes/dvd_encrypted_unlocked.desktop +++ b/tdeioslave/media/mimetypes/dvd_encrypted_unlocked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=media-optical-dvd-unlocked Type=MimeType MimeType=media/dvd_encrypted_unlocked +Icon=media-optical-dvd-unlocked + Comment=Encrypted Unlocked DVD -Comment[de]=Verschlüsselte entsperrte DVD -Comment[it]=DVD criptato sprotetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/dvd_mounted.desktop b/tdeioslave/media/mimetypes/dvd_mounted.desktop index 297b063dd..0b52d9704 100644 --- a/tdeioslave/media/mimetypes/dvd_mounted.desktop +++ b/tdeioslave/media/mimetypes/dvd_mounted.desktop @@ -1,80 +1,10 @@ [Desktop Entry] -Icon=media-optical-dvd-mounted Type=MimeType MimeType=media/dvd_mounted +Icon=media-optical-dvd-mounted + Comment=Mounted DVD -Comment[af]=Gekoppelde DVD -Comment[ar]=DVD محمّل -Comment[az]=Bağlanmış DVD -Comment[be]=Прымацаваны DVD -Comment[bg]=Монтиран DVD диск -Comment[bn]=মাউন্ট করা ডিভিডি -Comment[br]=DVD marc'het -Comment[bs]=Montiran DVD -Comment[ca]=DVD muntat -Comment[cs]=Připojené DVD -Comment[csb]=Zamòntowóny nëk DVD -Comment[cy]=DVD wedi'i osod -Comment[da]=Monteret dvd -Comment[de]=Eingebundene DVD -Comment[el]=Προσαρτημένο DVD -Comment[eo]=Surmetita DVD -Comment[es]=DVD montado -Comment[et]=Ühendatud DVD -Comment[eu]=DVD muntatua -Comment[fa]=DVD سوارشده -Comment[fi]=Liitetty DVD-levy -Comment[fr]=DVD-ROM monté(s) -Comment[fy]=Oankeppele Dûbelskiif -Comment[ga]=DVD feistithe -Comment[gl]=DVD Montado -Comment[he]=כונן DVD מחובר -Comment[hi]=माउन्टेड डीवीडी -Comment[hr]=Pristupljeni DVD -Comment[hu]=Csatlakoztatott DVD -Comment[is]=Tengt DVD -Comment[it]=DVD montato -Comment[ja]=マウントされた DVD -Comment[ka]=მონტირებული DVD -Comment[kk]=Тіркеген DVD -Comment[km]=ឌីវីឌីដែលបានរៀបចំ -Comment[lo]=ຈໍພາບ -Comment[lt]=Sumontuotas DVD -Comment[lv]=Piemontēts DVD -Comment[mk]=Монтиран DVD -Comment[mn]=Залгагдсан DVD -Comment[ms]=DVD Terlekap -Comment[mt]=DVD immontat -Comment[nb]=Montert DVD -Comment[nds]=Inhangt DVD -Comment[ne]=माउन्ट गरिएको डी भी डी -Comment[nl]=Aangekoppelde dvd-romschijf -Comment[nn]=Montert DVD -Comment[pa]=ਮਾਊਟ ਕੀਤੀ DVD -Comment[pl]=Zamontowany DVD -Comment[pt]=DVD montado -Comment[pt_BR]=DVD Montado -Comment[ro]=DVD montat -Comment[ru]=Смонтированный DVD -Comment[rw]=DVD Yashyizwemo -Comment[se]=Čatnon DVD -Comment[sk]=Pripojené DVD -Comment[sl]=Priklopljen DVD -Comment[sr]=Монтиран DVD -Comment[sr@Latn]=Montiran DVD -Comment[sv]=Monterad dvd -Comment[ta]=ஏற்றப்பட்ட சிடிராம் -Comment[tg]=Монтажшудаи DVD -Comment[th]=ดีวีดีที่เม้านท์แล้ว -Comment[tr]=Bağlı DVD -Comment[tt]=Totaşqan DVD -Comment[uk]=Змонтований DVD -Comment[uz]=Ulangan DVD -Comment[uz@cyrillic]=Уланган DVD -Comment[vi]=DVD đã kết nối -Comment[wa]=Plake lazer DVD montêye -Comment[zh_CN]=挂载的 DVD -Comment[zh_TW]=已掛載的 DVD-ROM + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/dvd_unmounted.desktop b/tdeioslave/media/mimetypes/dvd_unmounted.desktop index 5270d13d7..9edd50df1 100644 --- a/tdeioslave/media/mimetypes/dvd_unmounted.desktop +++ b/tdeioslave/media/mimetypes/dvd_unmounted.desktop @@ -1,80 +1,10 @@ [Desktop Entry] -Icon=media-optical-dvd-unmounted Type=MimeType MimeType=media/dvd_unmounted +Icon=media-optical-dvd-unmounted + Comment=Unmounted DVD -Comment[af]=Ontkoppelde DVD -Comment[ar]=DVD غير محمّل -Comment[az]=Ayrılmış DVD -Comment[be]=Адмацаваны DVD -Comment[bg]=Демонтиран DVD диск -Comment[bn]=আনমাউন্ট করা ডিভিডি -Comment[br]=DVD-ROM divountet -Comment[bs]=Demontiran DVD -Comment[ca]=DVD desmuntat -Comment[cs]=Odpojené DVD -Comment[csb]=Òdmòntowóny nëk DVD -Comment[cy]=DVD wedi'i ddadosod -Comment[da]=Afmonteret dvd -Comment[de]=Nicht eingebundene DVD -Comment[el]=Αποπροσαρτημένο DVD -Comment[eo]=Demetita DVD -Comment[es]=DVD desmontado -Comment[et]=Lahutatud DVD -Comment[eu]=DVD desmuntatua -Comment[fa]=DVD پیادهشده -Comment[fi]=Irrotettu DVD-levy -Comment[fr]=DVD-ROM non monté(s) -Comment[fy]=Ofkeppele Dûbelskiif -Comment[ga]=DVD neamhfheistithe -Comment[gl]=DVD non Montado -Comment[he]=כונן DVD מנותק -Comment[hi]=अनमाउन्टेड डीवीडी -Comment[hr]=Nepristupljeni DVD -Comment[hu]=Leválasztott DVD -Comment[is]=Aftengt DVD -Comment[it]=DVD smontato -Comment[ja]=マウントされていない DVD -Comment[ka]=დემონტირებული DVD -Comment[kk]=Тіркеуден шығарған DVD -Comment[km]=ឌីវីឌីដែលមិនបានរៀបចំ -Comment[lo]=ຫັງກາລີ -Comment[lt]=Išmontuotas DVD -Comment[lv]=Nomontēts DVD -Comment[mk]=Одмонтиран DVD -Comment[mn]=Салгаатай DVD -Comment[ms]=DVD Nyahlekap -Comment[mt]=DVD mhux immontat -Comment[nb]=Avmontert DVD -Comment[nds]=Afhangt DVD -Comment[ne]=अनमाउन्ट गरिएको डी भी डी -Comment[nl]=Afgekoppelde dvd-romschijf -Comment[nn]=Avmontert DVD -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ DVD -Comment[pl]=Odmontowany DVD -Comment[pt]=DVD desmontado -Comment[pt_BR]=DVD Desmontado -Comment[ro]=DVD nemontat -Comment[ru]=Отмонтированный DVD -Comment[rw]=DVD Yakuwemo -Comment[se]=Gálgajuvvon DVD -Comment[sk]=Nepripojené DVD -Comment[sl]=Odklopljen DVD -Comment[sr]=Демонтиран DVD -Comment[sr@Latn]=Demontiran DVD -Comment[sv]=Avmonterad dvd -Comment[ta]=இறக்கப்பட்ட சிடிராம் -Comment[tg]=Ғайри монтажшудаи DVD -Comment[th]=ดีวีดีที่ไม่ได้เม้านท์ -Comment[tr]=Ayrılmış DVD -Comment[tt]=Totaşmağan DVD -Comment[uk]=Демонтований DVD -Comment[uz]=Ulanmagan DVD -Comment[uz@cyrillic]=Уланмаган DVD -Comment[vi]=DVD đã gỡ ra -Comment[wa]=Plake lazer DVD dismontêye -Comment[zh_CN]=未挂载的 DVD -Comment[zh_TW]=未掛載的 DVD-ROM + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/dvdvideo.desktop b/tdeioslave/media/mimetypes/dvdvideo.desktop index e39969fb8..5ce8ff21b 100644 --- a/tdeioslave/media/mimetypes/dvdvideo.desktop +++ b/tdeioslave/media/mimetypes/dvdvideo.desktop @@ -1,73 +1,8 @@ [Desktop Entry] Type=MimeType MimeType=media/dvdvideo -Comment=DVD Video Disk -Comment[af]=DVD Video skyf -Comment[ar]=قرص رقمي مرئي للمرئيات -Comment[be]=Відэадыск DVD -Comment[bg]=Видео DVD диск -Comment[bn]=ডিভিডি ভিডিও ডিস্ক -Comment[br]=Pladenn DVD Video -Comment[bs]=DVD video disk -Comment[ca]=Vídeo disc DVD -Comment[cs]=DVD video -Comment[csb]=Disk DVD Video -Comment[da]=Dvd video-disk -Comment[de]=Video-DVD -Comment[el]=Δίσκος DVD (βίντεο) -Comment[eo]=DVDa videodisko -Comment[es]=Disco de video DVD -Comment[et]=DVD videoplaat -Comment[eu]=DVD bideo diska -Comment[fa]=دیسک ویدیویی DVD -Comment[fi]=DVD-videolevy -Comment[fr]=DVD vidéo -Comment[fy]=Dûbelskiif Fideoskiif -Comment[ga]=Físdiosca DVD -Comment[gl]=DVD de vídeo -Comment[he]=תקליטור וידאו של DVD -Comment[hi]=डीवीडी वीडियो डिस्क -Comment[hr]=DVD video disk -Comment[hu]=DVD-videolemez -Comment[is]=DVD vídeódiskur -Comment[it]=Disco video DVD -Comment[ja]=DVD ビデオディスク -Comment[ka]=ვიდეო DVD დისკი -Comment[kk]=DVD бейне дискі -Comment[km]=ថាសវីដេអូ ឌីវីឌី -Comment[lt]=DVD video diskas -Comment[lv]=DVD Video Disks -Comment[mk]=DVD Видеодиск -Comment[ms]=Cakera Video DVD -Comment[nb]=DVD-videoplate -Comment[nds]=DVD-Videodisk -Comment[ne]=डी भी डी भिडियो डिस्क -Comment[nl]=DVD Videodisk -Comment[nn]=DVD-videoplate -Comment[pa]=DVD ਵੀਡਿਓ ਡਿਸਕ -Comment[pl]=Płyta DVD Video -Comment[pt]=Disco DVD de Vídeo -Comment[pt_BR]=DVD de vídeo -Comment[ro]=Disc video DVD -Comment[ru]=DVD с видео -Comment[rw]=Disiki Videwo DVD -Comment[se]=DVD-videoskearru -Comment[sk]=DVD Video disk -Comment[sl]=DVD Video disk -Comment[sr]=DVD видео диск -Comment[sr@Latn]=DVD video disk -Comment[sv]=Dvd-videoskiva -Comment[ta]=டிவிடி படக்காட்சி வட்டு -Comment[te]=డివిడి విడియొ డిస్క్ -Comment[th]=แผ่นดีวีดีภาพยนตร์ -Comment[tr]=DVD Video -Comment[uk]=Відео диск DVD -Comment[uz]=DVD video-disk -Comment[uz@cyrillic]=DVD видео-диск -Comment[vi]=Đĩa Video DVD -Comment[wa]=Plake videyo DVD -Comment[zh_CN]=DVD 影碟 -Comment[zh_TW]=DVD 視訊光碟 Icon=media-optical-dvd-unmounted +Comment=DVD Video Disk + X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/floppy5_mounted.desktop b/tdeioslave/media/mimetypes/floppy5_mounted.desktop index c91e76b6a..2b91d6e0b 100644 --- a/tdeioslave/media/mimetypes/floppy5_mounted.desktop +++ b/tdeioslave/media/mimetypes/floppy5_mounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-floppy-5_14-mounted Type=MimeType MimeType=media/floppy5_mounted +Icon=media-floppy-5_14-mounted + Comment=Mounted 5¼" Floppy -Comment[af]=Gekoppelde 5¼" Sagteskyf -Comment[ar]=قرص مرن 5.25 محمّل -Comment[az]=Bağlanmış 5¼" Floppi -Comment[be]=Прымацаваная дыскета 5¼" -Comment[bg]=Монтирано 5¼" флопи -Comment[bn]=মাউন্ট করা 5¼" ফ্লপি -Comment[br]=Pladennig 5¼" marc'het -Comment[bs]=Montirana 5?" disketa -Comment[ca]=Disquet 5¼" muntat -Comment[cs]=Připojená disketa 5¼" -Comment[csb]=Zamòntowónô disczétka 5¼" -Comment[cy]=Disg meddal 5.25" wedi'i osod -Comment[da]=Monteret 5¼"-floppy -Comment[de]=Eingebundene 5¼"-Diskette -Comment[el]=Προσαρτημένη δισκέτα 5¼" -Comment[eo]=Surmetita 5¼"-Disketo -Comment[es]=Disquete 5¼" montado -Comment[et]=Ühendatud 5¼" flopi -Comment[eu]=5¼"ko diskete muntatua -Comment[fa]=فلاپی 5¼" سوارشده -Comment[fi]=Liitetty 5¼"-levyke -Comment[fr]=Disquette 5¼" montée -Comment[fy]=Oankeppele 5¼" Skiif -Comment[ga]=Diosca flapach 5¼" feistithe -Comment[gl]=Disquete 5¼" Montado -Comment[he]=תקליטון "¼5 מחובר -Comment[hi]=माउन्टेड 5¼" फ़्लॉपी -Comment[hr]=Pristupljena 5¼" disketa -Comment[hu]=Csatlakoztatott 5¼"-es floppy -Comment[is]=Tengdur 5¼" disklingur -Comment[it]=Dischetto da 5¼" montato -Comment[ja]=マウントされた 5 インチフロッピー -Comment[ka]=მონტირებული დისკწამყვანი 5¼" -Comment[kk]=Тіркеген 5¼" иілгіш диск -Comment[km]=5¼" Floppy បានរៀបចំ -Comment[lo]=ຟໍແມດຟອປີ້ - K -Comment[lt]=Sumontuotas 5¼" lankstus diskelis -Comment[lv]=Piemontēta 5¼" diskete -Comment[mk]=Монтирана 5¼" дискета -Comment[mn]=Залгагдсан 5¼"-Уян диск -Comment[ms]=Liut 5¼" Terlekap -Comment[mt]=Flopi 5¼" immontat -Comment[nb]=Montert 5¼" diskett -Comment[nds]=Inhangt 5¼"-Diskett -Comment[ne]=माउन्ट गरिएको 5¼" फ्लपी -Comment[nl]=Aangekoppelde 5¼" diskette -Comment[nn]=Montert 5¼"-diskett -Comment[nso]=Floppy yeo e Nameleditswego ya 5¼" -Comment[pa]=ਮਾਊਟ 5¼" ਫਲਾਪੀ -Comment[pl]=Zamontowana dyskietka 5¼" -Comment[pt]=Disquete de 5¼" montada -Comment[pt_BR]=Disquete 5¼" Montado -Comment[ro]=Dischetă 5¼" montată -Comment[ru]=Смонтированная дискета 5¼" -Comment[rw]=Disikete 5¼" Yashyizwemo -Comment[se]=Čatnon 5¼-dibmaskearru -Comment[sk]=Pripojená disketa 5¼" -Comment[sl]=Priklopljena disketna enota 5¼" -Comment[sr]=Монтиран 5¼" флопи -Comment[sr@Latn]=Montiran 5¼" flopi -Comment[sv]=Monterad 5¼"-diskett -Comment[ta]=ஏற்றப்பட்ட 5¼" நெகிழ்வட்டு -Comment[tg]=Монтажшудаи 5¼" Флоппи -Comment[th]=ฟล็อปปี 5" ที่เม้านท์แล้ว -Comment[tr]=Bağlı 5¼" Disket -Comment[tt]=Totaşqan 5¼" Floppy -Comment[uk]=Змонтований флопі 5¼" -Comment[uz]=Ulangan 5¼"disket -Comment[uz@cyrillic]=Уланган 5¼"дискет -Comment[ven]=5¼" Floppy yo gonyiswaho -Comment[vi]=Đĩa mềm 5¼" đã kết nối -Comment[wa]=Plakete 5" ¼ montêye -Comment[xh]=Elayishiweyo 5¼" Floppy -Comment[zh_CN]=挂载的 5.25 英寸软驱 -Comment[zh_TW]=已掛載的軟碟機 -Comment[zu]=I-5¼" Floppy eyenyusiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/floppy5_unmounted.desktop b/tdeioslave/media/mimetypes/floppy5_unmounted.desktop index a832c3826..95f798f7a 100644 --- a/tdeioslave/media/mimetypes/floppy5_unmounted.desktop +++ b/tdeioslave/media/mimetypes/floppy5_unmounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-floppy-5_14-unmounted Type=MimeType MimeType=media/floppy5_unmounted +Icon=media-floppy-5_14-unmounted + Comment=Unmounted 5¼" Floppy -Comment[af]=Ontkoppelde 5¼" Sagteskyf -Comment[ar]=قرص مرن 5.25 غير محمّل -Comment[az]=Ayrılmış 5¼" Floppi -Comment[be]=Адмацаваная дыскета 5¼" -Comment[bg]=Демонтирано 5¼" флопи -Comment[bn]=আনমাউন্ট করা 5¼" ফ্লপি -Comment[br]=Pladennig 5¼" divountet -Comment[bs]=Demontirana 5?" disketa -Comment[ca]=Disquet 5¼" desmuntat -Comment[cs]=Odpojená disketa 5¼" -Comment[csb]=Òdmòntowónô disczétka 5¼" -Comment[cy]=Disg meddal 5.25" wedi'i ddadosod -Comment[da]=Afmonteret 5¼"-floppy -Comment[de]=Nicht eingebundene 5¼"-Diskette -Comment[el]=Αποπροσαρτημένη δισκέτα 5¼" -Comment[eo]=Demetita 5¼"-Disketo -Comment[es]=Disquete 5¼" desmontado -Comment[et]=Lahutatud 5¼" flopi -Comment[eu]=5¼"ko diskete desmuntatua -Comment[fa]=فلاپی 5¼" پیادهشده -Comment[fi]=Irrotettu 5¼"-levyke -Comment[fr]=Disquette 5¼" non montée -Comment[fy]=Ofkeppele 5¼" Skiif -Comment[ga]=Diosca flapach 5¼" neamhfheistithe -Comment[gl]=Disquete 5¼" Non Montado -Comment[he]=תקליטון "¼5 מנותק -Comment[hi]=अनमाउन्टेड 5¼" फ़्लॉपी -Comment[hr]=Nepristupljena 5¼" disketa -Comment[hu]=Leválasztott 5¼"-es floppy -Comment[is]=Aftengdur 5¼" disklingur -Comment[it]=Dischetto da 5¼" non montato -Comment[ja]=マウントされていない 5 インチフロッピー -Comment[ka]=დემონტირებული დისკწამყვანი 5¼" -Comment[kk]=Тіркеуден шығарған 5¼" иілгіш дискі -Comment[km]=5¼" Floppy មិនបានរៀបចំ -Comment[lo]=ຫັງກາລີ -Comment[lt]=Išmontuotas 5¼" lankstus diskelis -Comment[lv]=Nomontēta 5¼" diskete -Comment[mk]=Одмонтирана 5¼" дискета -Comment[mn]=Салгагдсан 5¼"-Уян диск -Comment[ms]=Liut 5¼" Terlekap -Comment[mt]=Flopi 5¼" mhux immontat -Comment[nb]=Avmontert 5¼" diskett -Comment[nds]=Afhangt 5¼"-Diskett -Comment[ne]=अनमाउन्ट गरिएको 5¼" फ्लपी -Comment[nl]=Afgekoppelde 5¼" diskette -Comment[nn]=Avmontert 5¼"-diskett -Comment[nso]=Floppy yeo e Theositswego ya 5¼" -Comment[pa]=ਅਨਮਾਊਟ 5¼" ਫਲਾਪੀ -Comment[pl]=Odmontowana dyskietka 5¼" -Comment[pt]=Disquete de 5¼" desmontada -Comment[pt_BR]=Disquete 5¼" Desmontado -Comment[ro]=Dischetă 5¼" nemontată -Comment[ru]=Отмонтированная дискета 5¼" -Comment[rw]=Disikete 5¼" Yakuwemo -Comment[se]=Gálgajuvvon 5¼-dibmaskearru -Comment[sk]=Nepripojená disketa 5¼" -Comment[sl]=Odklopljena disketna enota 5¼" -Comment[sr]=Демонтиран 5¼" флопи -Comment[sr@Latn]=Demontiran 5¼" flopi -Comment[sv]=Avmonterad 5¼"-diskett -Comment[ta]=வெளியேற்றிய 5¼" நெகிழ்வட்டு -Comment[tg]=Ҷудо шудаи 5¼" Флоппи -Comment[th]=ฟล็อปปี 5" ที่ไม่ได้เม้านท์ -Comment[tr]=Bağlı olmayan 5¼" Disket -Comment[tt]=Totaşqan 5¼" Floppy -Comment[uk]=Демонтований флопі 5¼" -Comment[uz]=Ulanmagan 5¼"disket -Comment[uz@cyrillic]=Уланмаган 5¼"дискет -Comment[ven]=5¼" Floppy i songo gonyiswaho -Comment[vi]=Đĩa mềm 5¼" đã gỡ ra -Comment[wa]=Plakete 5" ¼ dismontêye -Comment[xh]=Enganyuswanga 5¼" Floppy -Comment[zh_CN]=未挂载的 5.25 英寸软驱 -Comment[zh_TW]=未掛載的軟碟機 -Comment[zu]=I-5¼" Floppy Yehlisiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/floppy_mounted.desktop b/tdeioslave/media/mimetypes/floppy_mounted.desktop index 1b07eaf28..2ceb513f6 100644 --- a/tdeioslave/media/mimetypes/floppy_mounted.desktop +++ b/tdeioslave/media/mimetypes/floppy_mounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-floppy-3_5-mounted Type=MimeType MimeType=media/floppy_mounted +Icon=media-floppy-3_5-mounted + Comment=Mounted Floppy -Comment[af]=Gekoppelde Sagteskyf -Comment[ar]=قرص مرن محمّل -Comment[az]=Bağlanmış Floppi -Comment[be]=Прымацаваная дыскета -Comment[bg]=Монтирано флопи -Comment[bn]=মাউন্ট করা ফ্লপি -Comment[br]=Pladennig marc'het -Comment[bs]=Montirana disketa -Comment[ca]=Disquet muntat -Comment[cs]=Připojená disketa -Comment[csb]=Zamòntowónô disczétka -Comment[cy]=Disg meddal wedi'i osod -Comment[da]=Monteret floppy -Comment[de]=Eingebundene Diskette -Comment[el]=Προσαρτημένη δισκέτα -Comment[eo]=Surmetita Disketo -Comment[es]=Disquete montado -Comment[et]=Ühendatud flopi -Comment[eu]=Diskete muntatua -Comment[fa]=فلاپی سوارشده -Comment[fi]=Liitetty levyke -Comment[fr]=Disquette montée -Comment[fy]=Oankeppele Skiif -Comment[ga]=Diosca flapach feistithe -Comment[gl]=Disquete Montado -Comment[he]=תקליטון מחובר -Comment[hi]=माउन्टेड फ़्लॉपी -Comment[hr]=Pristupljena disketa -Comment[hu]=Csatlakoztatott floppy -Comment[is]=Tengdur disklingur -Comment[it]=Dischetto montato -Comment[ja]=マウントされたフロッピー -Comment[ka]=მონტირებული დრეკადი დისკი -Comment[kk]=Тііркеген иілгіш диск -Comment[km]=Floppy បានរៀបចំ -Comment[lo]=ຟໍແມດຟອບປິ້້ - K -Comment[lt]=Sumontuotas lankstus diskelis -Comment[lv]=Piemontēta diskete -Comment[mk]=Монтирана дискета -Comment[mn]=Залгаатай уян диск -Comment[ms]=Liut Terlekap -Comment[mt]=Flopi mmontat -Comment[nb]=Montert diskett -Comment[nds]=Inhangt Diskett -Comment[ne]=माउन्ट गरिएको फ्लपी -Comment[nl]=Aangekoppelde diskette -Comment[nn]=Montert diskett -Comment[nso]=Floppy yeo e Nameleditswego -Comment[pa]=ਮਾਊਟ ਕੀਤੀ ਫਲਾਪੀ -Comment[pl]=Zamontowana dyskietka -Comment[pt]=Disquete montada -Comment[pt_BR]=Disquete Montado -Comment[ro]=Dischetă montată -Comment[ru]=Смонтированная дискета -Comment[rw]=Disikete Yashyizwemo -Comment[se]=Čatnon dibmaskearru -Comment[sk]=Pripojená disketa -Comment[sl]=Priklopljena disketna enota -Comment[sr]=Монтиран флопи -Comment[sr@Latn]=Montiran flopi -Comment[sv]=Monterad diskett -Comment[ta]=இறக்கப்பட்ட நெகிழ்வட்டு -Comment[tg]=Монтажшудаи Floppy -Comment[th]=ฟล็อปปีที่เม้านท์แล้ว -Comment[tr]=Bağlı Disket -Comment[tt]=Totaşqan Floppy -Comment[uk]=Змонтований флопі -Comment[uz]=Ulangan disket -Comment[uz@cyrillic]=Уланган дискет -Comment[ven]=Floppy yo gonyiswaho -Comment[vi]=Đĩa mềm đã kết nối -Comment[wa]=Plakete montêye -Comment[xh]=Floppy Enyusiweyo -Comment[zh_CN]=挂载的软驱 -Comment[zh_TW]=已掛載的軟碟機 -Comment[zu]=I-Floppy eyenyusiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/floppy_unmounted.desktop b/tdeioslave/media/mimetypes/floppy_unmounted.desktop index 9ba67ce48..7378a36ae 100644 --- a/tdeioslave/media/mimetypes/floppy_unmounted.desktop +++ b/tdeioslave/media/mimetypes/floppy_unmounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-floppy-3_5-unmounted Type=MimeType MimeType=media/floppy_unmounted +Icon=media-floppy-3_5-unmounted + Comment=Unmounted Floppy -Comment[af]=Ontkoppelde Sagteskyf -Comment[ar]=قرص مرن غير محمّل -Comment[az]=Ayrılmış FLoppi -Comment[be]=Адмацаваная дыскета -Comment[bg]=Демонтирано флопи -Comment[bn]=আনমাউন্ট করা ফ্লপি -Comment[br]=Pladennig divountet -Comment[bs]=Demontirana disketa -Comment[ca]=Disquet desmuntat -Comment[cs]=Odpojená disketa -Comment[csb]=Òdmòntowónô disczétka -Comment[cy]=Disg meddal wedi'i ddadosod -Comment[da]=Afmonteret floppy -Comment[de]=Nicht eingebundene Diskette -Comment[el]=Αποπροσαρτημένη δισκέτα -Comment[eo]=Demetita Disketo -Comment[es]=Disquete desmontado -Comment[et]=Lahutatud flopi -Comment[eu]=Diskete desmuntatua -Comment[fa]=فلاپی پیادهشده -Comment[fi]=Irrotettu levyke -Comment[fr]=Disquette non montée -Comment[fy]=Ofkeppele Skiif -Comment[ga]=Diosca flapach neamhfheistithe -Comment[gl]=Disquete non Montado -Comment[he]=תקליטון מנותק -Comment[hi]=अनमाउन्टेड फ़्लॉपी -Comment[hr]=Nepristupljena disketa -Comment[hu]=Leválasztott floppy -Comment[is]=Aftengdur disklingur -Comment[it]=Dischetto non montato -Comment[ja]=マウントされていないフロッピー -Comment[ka]=დემონტირებული დრეკადი დისკი -Comment[kk]=Тіркеуден шығарған иілгіш диск -Comment[km]=Floppy មិនបានរៀបចំ -Comment[lo]=ຫັງກາລີ -Comment[lt]=Išmontuotas lankstus diskelis -Comment[lv]=Nomontēta diskete -Comment[mk]=Одмонтирана дискета -Comment[mn]=Салгагдсан уян дискүүд -Comment[ms]=Liut Nyahlekap -Comment[mt]=Flopi mhux immontat -Comment[nb]=Avmontert diskett -Comment[nds]=Afhangt Diskett -Comment[ne]=अनमाउन्ट गरिएको फ्लपी -Comment[nl]=Afgekoppelde diskette -Comment[nn]=Avmontert diskett -Comment[nso]=Floppy yeo e Theositswego -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ ਫਲਾਪੀ -Comment[pl]=Odmontowana dyskietka -Comment[pt]=Disquete desmontada -Comment[pt_BR]=Disquete Desmontado -Comment[ro]=Dischetă nemontată -Comment[ru]=Отмонтированная дискета -Comment[rw]=Disikete Yakuwemo -Comment[se]=Gálgajuvvon dibmaskearru -Comment[sk]=Nepripojená disketa -Comment[sl]=Odklopljena disketna enota -Comment[sr]=Демонтиран флопи -Comment[sr@Latn]=Demontiran flopi -Comment[sv]=Avmonterad diskett -Comment[ta]=வெளியேற்றிய நெகிழ்வட்டு -Comment[tg]=Ҷудо шудаи Floppy -Comment[th]=ฟล็อปปีที่ไม่ถูกเม้านท์ -Comment[tr]=Bağlanmamış Disket -Comment[tt]=Totaşmağan Floppy -Comment[uk]=Демонтований флопі -Comment[uz]=Ulanmagan disket -Comment[uz@cyrillic]=Уланмаган дискет -Comment[ven]=Floppy i songo gonyiswaho -Comment[vi]=Đĩa mềm đã gỡ ra -Comment[wa]=Plakete dismontêye -Comment[xh]=Floppy Enganyuswanga -Comment[zh_CN]=未挂载的软驱 -Comment[zh_TW]=未掛載的軟碟機 -Comment[zu]=I-Floppy eyehlisiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/gphoto2camera.desktop b/tdeioslave/media/mimetypes/gphoto2camera.desktop index b0ad7eccc..2e3bcb25e 100644 --- a/tdeioslave/media/mimetypes/gphoto2camera.desktop +++ b/tdeioslave/media/mimetypes/gphoto2camera.desktop @@ -1,76 +1,9 @@ [Desktop Entry] Type=MimeType MimeType=media/gphoto2camera -Comment=Camera -Comment[af]=Kamera -Comment[ar]=كاميرا -Comment[az]=Kamera -Comment[be]=Камера -Comment[bg]=Фотоапарат -Comment[bn]=ক্যামেরা -Comment[br]=Kamera -Comment[bs]=Kamera -Comment[ca]=Càmera -Comment[cs]=Kamera -Comment[csb]=Òdjimkòwô kamera -Comment[da]=Kamera -Comment[de]=Kamera -Comment[el]=Κάμερα -Comment[eo]=Kamero -Comment[es]=Cámara -Comment[et]=Kaamera -Comment[eu]=Kamara -Comment[fa]=دوربین -Comment[fi]=Kamera -Comment[fr]=Nouvel appareil photo -Comment[fy]=Kamera -Comment[ga]=Ceamara -Comment[gl]=Cámara -Comment[he]=מצלמה -Comment[hi]=कैमरा -Comment[hr]=Kamera -Comment[hu]=Fényképezőgép -Comment[is]=Myndavél -Comment[it]=Macchina fotografica -Comment[ja]=カメラ -Comment[ka]=კამერა -Comment[kk]=Фотокамера -Comment[km]=ម៉ាស៊ីនថត -Comment[lt]=Fotoaparatas -Comment[lv]=Kamera -Comment[mk]=Камера -Comment[ms]=Kamera -Comment[nb]=Kamera -Comment[nds]=Kamera -Comment[ne]=क्यामेरा -Comment[nn]=Kamera -Comment[pa]=ਕੈਮਰਾ -Comment[pl]=Aparat fotograficzny -Comment[pt]=Máquina fotográfica -Comment[pt_BR]=Câmera -Comment[ro]=Aparat foto -Comment[ru]=Камера -Comment[rw]=Kamera -Comment[se]=Govvanaperáhtta -Comment[sk]=Digitálny fotoaparát -Comment[sl]=Fotoaparat -Comment[sr]=Камера -Comment[sr@Latn]=Kamera -Comment[sv]=Kamera -Comment[ta]=புகைப்பட கருவி -Comment[te]=కెమెరా -Comment[tg]=Камера -Comment[th]=กล้องดิจิตอล -Comment[tr]=Kamera -Comment[tt]=Kamera -Comment[uk]=Камера -Comment[uz]=Fotoaparat -Comment[uz@cyrillic]=Фотоапарат -Comment[vi]=Máy chụp ảnh số -Comment[zh_CN]=相机 -Comment[zh_TW]=相機 Icon=camera-unmounted +Comment=Camera + X-TDE-AutoEmbed=true X-TDE-IsAlso=inode/directory - diff --git a/tdeioslave/media/mimetypes/hdd_encrypted_locked.desktop b/tdeioslave/media/mimetypes/hdd_encrypted_locked.desktop index 5a22db5f8..d4cc6d261 100644 --- a/tdeioslave/media/mimetypes/hdd_encrypted_locked.desktop +++ b/tdeioslave/media/mimetypes/hdd_encrypted_locked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=drive-harddisk-locked Type=MimeType MimeType=media/hdd_encrypted_locked +Icon=drive-harddisk-locked + Comment=Encrypted Locked Hard Disk Volume -Comment[de]=Verschlüsselte gesperrte Festplattenpartition -Comment[it]=Disco criptato protetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/hdd_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/hdd_encrypted_unlocked.desktop index d0d24b25e..7c91927aa 100644 --- a/tdeioslave/media/mimetypes/hdd_encrypted_unlocked.desktop +++ b/tdeioslave/media/mimetypes/hdd_encrypted_unlocked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=drive-harddisk-unlocked Type=MimeType MimeType=media/hdd_encrypted_unlocked +Icon=drive-harddisk-unlocked + Comment=Encrypted Unlocked Hard Disk Volume -Comment[de]=Verschlüsselte entsperrte Festplattenpartition -Comment[it]=Disco criptato sprotetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/hdd_mounted.desktop b/tdeioslave/media/mimetypes/hdd_mounted.desktop index 61f8af457..084ae62ed 100644 --- a/tdeioslave/media/mimetypes/hdd_mounted.desktop +++ b/tdeioslave/media/mimetypes/hdd_mounted.desktop @@ -1,76 +1,10 @@ [Desktop Entry] -Icon=drive-harddisk-mounted Type=MimeType MimeType=media/hdd_mounted +Icon=drive-harddisk-mounted + Comment=Mounted Hard Disk Volume -Comment[af]=Gekoppelde Hard Skyf Partisie -Comment[ar]=تجزئة قرص صلب محمّلة -Comment[az]=Bağlanmış Sabit Disk Bölməsi -Comment[be]=Прымацаваны раздзел жорсткага дыска -Comment[bg]=Монтиран дял на твърд диск -Comment[bn]=মাউন্ট করা হার্ড ডিস্ক ভলিউম -Comment[br]=Pladenn marc'het -Comment[bs]=Montirana hard disk particija -Comment[ca]=Disc dur muntat -Comment[cs]=Připojený oddíl pevného disku -Comment[csb]=Zamòntowónô particëjô cwiardi platë -Comment[da]=Monteret harddisk-volumen -Comment[de]=Eingebundene Festplattenpartition -Comment[el]=Προσαρτημένη κατάτμηση σκληρού δίσκου -Comment[eo]=Surmetita subdisko -Comment[es]=Volumen de disco duro montado -Comment[et]=Ühendatud kõvaketta partitsioon -Comment[eu]=Diska gogorraren zatiketa muntatua -Comment[fa]=حجم دیسک سخت سوارشده -Comment[fi]=Liitetty kiintoleyosio -Comment[fr]=Partition de disque dur montée -Comment[fy]=Oankeppele Fêsteskiif folume -Comment[ga]=Imleabhar Feistithe Diosca Crua -Comment[gl]=Partición do Disco Duro Montada -Comment[he]=מחיצת כונן קשיח מחוברת -Comment[hi]=माउन्टेड हार्ड डिस्क वॉल्यूम -Comment[hr]=Pristupljeni volumen tvrdog diska -Comment[hu]=Csatlakoztatott merevlemezes partíció -Comment[is]=Tengd disksneið -Comment[it]=Volume disco rigido montato -Comment[ja]=マウントされたハードディスクボリューム -Comment[ka]=მონტირებული ხისტი დისკის ტომი -Comment[kk]=Тіркеген қатқыл диск томы -Comment[km]=ទំហំថាសរឹងដែលបានរៀបចំ -Comment[lt]=Sumontuotas kieto disko skirsnis -Comment[lv]=Piemontēts cietais disks -Comment[mk]=Монтирана партиција на тврд диск -Comment[ms]=Volum Cakera Keras Terlekap -Comment[mt]=Partizzjoni ta' ħard-disk immuntata -Comment[nb]=Montert harddiskpartisjon -Comment[nds]=Inhangt Fastplaat-Partitschoon -Comment[ne]=माउन्ट गरिएको हार्ड डिस्क भोल्युम -Comment[nl]=Aangekoppelde hardeschijfpartitie -Comment[nn]=Montert harddiskvolum -Comment[pa]=ਮਾਊਟ ਕੀਤਾ ਹਾਰਡ ਡਿਸਕ ਭਾਗ -Comment[pl]=Zamontowana partycja dysku twardego -Comment[pt]=Volume de disco rígido montado -Comment[pt_BR]=Volume do HD Montado -Comment[ro]=Volum de hard disc montat -Comment[ru]=Смонтированный раздел жёсткого диска -Comment[rw]=Ububiko Disiki Bwashyizwemo -Comment[se]=Čatnon garraskearrooassi -Comment[sk]=Pripojený oddiel pevného disku -Comment[sl]=Priklopljen pogon trdega diska -Comment[sr]=Монтирана партиција хард диска -Comment[sr@Latn]=Montirana particija hard diska -Comment[sv]=Monterad hårdiskpartition -Comment[ta]=ஏற்றப்பட்ட வன்தகடு வட்டு பிரிவு -Comment[th]=ฮาร์ดดิสก์ที่เม้านท์แล้ว -Comment[tr]=Bağlanmış Sabit Disk Bölümü -Comment[tt]=Totaşqan Qatı Disk Töpläme -Comment[uk]=Змонтований розділ жорсткого диску -Comment[uz]=Qattiq diskning ulangan qismi -Comment[uz@cyrillic]=Қаттиқ дискнинг уланган қисми -Comment[vi]=Các Phân vùng Ổ cứng đã kết nối -Comment[wa]=Volume del deure plake monté -Comment[zh_CN]=挂载的硬盘卷 -Comment[zh_TW]=已掛載的硬碟分割區 + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/hdd_unmounted.desktop b/tdeioslave/media/mimetypes/hdd_unmounted.desktop index 4136e6d4c..18f9b4646 100644 --- a/tdeioslave/media/mimetypes/hdd_unmounted.desktop +++ b/tdeioslave/media/mimetypes/hdd_unmounted.desktop @@ -1,76 +1,10 @@ [Desktop Entry] -Icon=drive-harddisk-unmounted Type=MimeType MimeType=media/hdd_unmounted +Icon=drive-harddisk-unmounted + Comment=Unmounted Hard Disk Volume -Comment[af]=Ontkoppelde Hard Skyf Partisie -Comment[ar]=تجزئة قرص صلب غير محمّلة -Comment[az]=Ayrılmış Sabit Disk Bölməsi -Comment[be]=Адмацаваны раздзел жорсткага дыска -Comment[bg]=Демонтиран дял на твърд диск -Comment[bn]=আনমাউন্ট করা হার্ড ডিস্ক ভলিউম -Comment[br]=Pladenn divarc'het -Comment[bs]=Demontirana hard disk particija -Comment[ca]=Disc dur desmuntat -Comment[cs]=Odpojený oddíl pevného disku -Comment[csb]=Òdmòntowónô particëjô cwiardi platë -Comment[da]=Afmonteret harddisk-volumen -Comment[de]=Nicht eingebundene Festplattenpartition -Comment[el]=Αποπροσαρτημένη κατάτμηση σκληρού δίσκου -Comment[eo]=Demetita subdisko -Comment[es]=Volumen de disco duro desmontado -Comment[et]=Lahutatud kõvaketta partitsioon -Comment[eu]=Diska gogorraren zatiketa desmuntatua -Comment[fa]=حجم دیسک سخت پیادهشده -Comment[fi]=Irrotettu kiintolevyosio -Comment[fr]=Partition de disque dur non montée -Comment[fy]=Ofkeppele Fêsteskiif folume -Comment[ga]=Imleabhar Diosca Crua Gan Fheistiú -Comment[gl]=Partición do Disco Duro Non Montada -Comment[he]=מחיצת כונן קשיח מנותקת -Comment[hi]=अनमाउन्टेड हार्ड डिस्क वॉल्यूम -Comment[hr]=Nepristupljeni volumen tvrdog diska -Comment[hu]=Leválasztott merevlemezes partíció -Comment[is]=Aftengd disksneið -Comment[it]=Volume disco rigido non montato -Comment[ja]=マウントされていないハードディスクボリューム -Comment[ka]=დემონტირებული ხისტი დისკის ტომი -Comment[kk]=Тіркеуден шығарған қатқыл диск томы -Comment[km]=ទំហំថាសរឹងដែលមិនបានរៀបចំ -Comment[lt]=Išmontuotas kieto disko skirsnis -Comment[lv]=Nomontēts cietais disks -Comment[mk]=Одмонтирана партиција на тврд диск -Comment[ms]=Volum Cakera Keras Nyahlekap -Comment[mt]=Partizzjoni ta' ħard-disk mhux immuntata -Comment[nb]=Avmontert harddiskpartisjon -Comment[nds]=Afhangt Fastplaat-Partitschoon -Comment[ne]=अनमाउन्ट गरिएको हार्ड डिस्क भोल्युम -Comment[nl]=Afgekoppelde hardeschijfpartitie -Comment[nn]=Umontert harddiskvolum -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ ਹਾਰਡ ਡਿਸਕ ਭਾਗ -Comment[pl]=Odmontowana partycja dysku twardego -Comment[pt]=Volume de disco rígido desmontado -Comment[pt_BR]=Volume do HD Desmontado -Comment[ro]=Volum de hard disc nemontat -Comment[ru]=Отмонтированный раздел жёсткого диска -Comment[rw]=Ububiko Disiki Bwakuwemo -Comment[se]=Gálgajuvvon garraskearrooassi -Comment[sk]=Odpojený oddiel pevného disku -Comment[sl]=Odklopljen pogon trdega diska -Comment[sr]=Демонтирана партиција хард диска -Comment[sr@Latn]=Demontirana particija hard diska -Comment[sv]=Avmonterad hårdiskpartition -Comment[ta]=வெளியேற்றப்பட்ட வன்வட்டு பகுதி -Comment[th]=ฮาร์ดดิสก์ที่ไม่ได้เม้านท์ -Comment[tr]=Ayrılmış Sabit Disk Bölümü -Comment[tt]=Totaşmağan Qatı Disk Töpläme -Comment[uk]=Демонтований розділ жорсткого диску -Comment[uz]=Qattiq diskning ulanmagan qismi -Comment[uz@cyrillic]=Қаттиқ дискнинг уланмаган қисми -Comment[vi]=Các Phân vùng Ổ cứng đã gỡ ra -Comment[wa]=Volume del deure plake dismonté -Comment[zh_CN]=未挂载的硬盘卷 -Comment[zh_TW]=未掛載的硬碟分割區 + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/mycomputer.desktop b/tdeioslave/media/mimetypes/mycomputer.desktop index 9c33d6a8c..46eeb6d6b 100644 --- a/tdeioslave/media/mimetypes/mycomputer.desktop +++ b/tdeioslave/media/mimetypes/mycomputer.desktop @@ -1,9 +1,10 @@ [Desktop Entry] -Icon=computer Type=MimeType MimeType=media/builtin-mycomputer +Icon=computer + Comment=My Computer -Comment[de]=Computer + Patterns=My_Computer X-TDE-AutoEmbed=false diff --git a/tdeioslave/media/mimetypes/mydocuments.desktop b/tdeioslave/media/mimetypes/mydocuments.desktop index 4804a174b..b2b80746f 100644 --- a/tdeioslave/media/mimetypes/mydocuments.desktop +++ b/tdeioslave/media/mimetypes/mydocuments.desktop @@ -1,9 +1,10 @@ [Desktop Entry] -Icon=folder_wordprocessing Type=MimeType MimeType=media/builtin-mydocuments +Icon=folder_wordprocessing + Comment=My Documents -Comment[de]=Dokumente + Patterns=My_Documents X-TDE-AutoEmbed=false diff --git a/tdeioslave/media/mimetypes/mynetworkplaces.desktop b/tdeioslave/media/mimetypes/mynetworkplaces.desktop index 8ec26a584..5c4a43789 100644 --- a/tdeioslave/media/mimetypes/mynetworkplaces.desktop +++ b/tdeioslave/media/mimetypes/mynetworkplaces.desktop @@ -1,9 +1,10 @@ [Desktop Entry] -Icon=network Type=MimeType MimeType=media/builtin-mynetworkplaces +Icon=network + Comment=My Network Places -Comment[de]=Netzwerk + Patterns=My_Network_Places X-TDE-AutoEmbed=false diff --git a/tdeioslave/media/mimetypes/nfs_mounted.desktop b/tdeioslave/media/mimetypes/nfs_mounted.desktop index 1dfd47abb..42f4223e2 100644 --- a/tdeioslave/media/mimetypes/nfs_mounted.desktop +++ b/tdeioslave/media/mimetypes/nfs_mounted.desktop @@ -1,76 +1,10 @@ [Desktop Entry] -Icon=nfs-mounted Type=MimeType MimeType=media/nfs_mounted +Icon=nfs-mounted + Comment=Mounted NFS Share -Comment[af]=Gekoppelde NFS Hulpbron -Comment[ar]=مشاركة NFS مركبة -Comment[az]=Bağlanmış NFS Sahəsi -Comment[be]=Прымацаваная агульная тэчка NFS -Comment[bg]=Монтиран NFS ресурс -Comment[bn]=মাউন্ট করা এন-এফ-এস শেয়ার -Comment[br]=Rennad NFS marc'het -Comment[bs]=Montiran NFS resurs -Comment[ca]=Recurs NFS muntat -Comment[cs]=Připojený zdroj NFS -Comment[csb]=Zamòntowónô systema lopków NFS -Comment[da]=Monteret NFS-share -Comment[de]=Eingebundene NFS-Freigabe -Comment[el]=Προσαρτημένος πόρος NFS -Comment[eo]=Surmetita NFS-opuzaĵo -Comment[es]=Recurso NFS montado -Comment[et]=Ühendatud NFS ressurss -Comment[eu]=NFS baliabide muntatua -Comment[fa]=مشترک NFS سوارشده -Comment[fi]=Liitetty NFS-jako -Comment[fr]=Ressource NFS montée -Comment[fy]=Oankeppele NFS-boarne -Comment[ga]=Comhroinn Fheistithe NFS -Comment[gl]=Compartición NFS Montada -Comment[he]=משאב NFS מחובר -Comment[hi]=माउन्टेड एनएफ़एस साझा -Comment[hr]=Pristupljeno NFS dijeljenje -Comment[hu]=Csatlakoztatott NFS-megosztás -Comment[is]=Tengd NFS auðlind -Comment[it]=Risorsa NFS montata -Comment[ja]=マウントされた NFS 共有 -Comment[ka]=მონტირებული NFS რესურსი -Comment[kk]=Тіркеген NFS ресурсы -Comment[km]=NFS Share បានរៀបចំ -Comment[lt]=Sumontuotas NFS bendro naudojimo resursas -Comment[lv]=Piemontēta NFS šāre -Comment[mk]=Монтиран NFS-ресурс -Comment[ms]=Perkongsian NFS Terlekap -Comment[mt]=Riżors NFS immuntat -Comment[nb]=Montert NFS-ressurs -Comment[nds]=Inhangt NFS-Freegaav -Comment[ne]=माउन्ट गरिएको NFS साझेदारी -Comment[nl]=Aangekoppelde NFS-gegevensbron -Comment[nn]=Montert delt NFS-ressurs -Comment[pa]=ਮਾਊਟ ਕੀਤੀ NFS ਸਾਂਝ -Comment[pl]=Zamontowany system plików NFS -Comment[pt]=Partilha de NFS montada -Comment[pt_BR]=Volume NFS Montado -Comment[ro]=Partajare NFS montată -Comment[ru]=Смонтированный ресурс NFS -Comment[rw]=Umugabane NFS Washyizwemo -Comment[se]=Čatnon NFS-resursa -Comment[sk]=Pripojený zdroj NFS -Comment[sl]=Priklopljen vir NFS -Comment[sr]=Монтирано NFS дељење -Comment[sr@Latn]=Montirano NFS deljenje -Comment[sv]=Monterad NFS-resurs -Comment[ta]=ஏற்றப்பட்ட NFS பங்கு -Comment[th]=ทรัพยากร NFS ที่ถูกเม้านท์ -Comment[tr]=Bağlı NFS Paylaşımı -Comment[tt]=Totaşqan NFS Urtağı -Comment[uk]=Змонтований ресурс NFS -Comment[uz]=Ulangan NFS manba -Comment[uz@cyrillic]=Уланган NFS манба -Comment[vi]=Chia sẻ NFS đã kết nối -Comment[wa]=Pårtaedje NFS monté -Comment[zh_CN]=挂载的 NFS 共享 -Comment[zh_TW]=已掛載的 NFS 資源 + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/nfs_unmounted.desktop b/tdeioslave/media/mimetypes/nfs_unmounted.desktop index a6529ad7e..b81183096 100644 --- a/tdeioslave/media/mimetypes/nfs_unmounted.desktop +++ b/tdeioslave/media/mimetypes/nfs_unmounted.desktop @@ -1,76 +1,10 @@ [Desktop Entry] -Icon=nfs-unmounted Type=MimeType MimeType=media/nfs_unmounted +Icon=nfs-unmounted + Comment=Unmounted NFS Share -Comment[af]=Ontkoppelde NFS Hulpbron -Comment[ar]=مشاركة NFS غير مركبة -Comment[az]=Ayrılmış NFS Sahəsi -Comment[be]=Адмацаваная агульная тэчка NFS -Comment[bg]=Демонтиран NFS ресурс -Comment[bn]=আনমাউন্ট করা এন-এফ-এস শেয়ার -Comment[br]=Rennad NFS divarc'het -Comment[bs]=Demontiran NFS resurs -Comment[ca]=Recurs NFS desmuntat -Comment[cs]=Odpojený zdroj NFS -Comment[csb]=Òdmòntowónô systema lopków NFS -Comment[da]=Afmonteret NFS-share -Comment[de]=Nicht eingebundene NFS-Freigabe -Comment[el]=Αποπροσαρτημένος πόρος NFS -Comment[eo]=Demetita NFS-opuzaĵo -Comment[es]=Recurso NFS desmontado -Comment[et]=Lahutatud NFS ressurss -Comment[eu]=NFS baliabide desmuntatua -Comment[fa]=مشترک NFS پیادهشده -Comment[fi]=Irrotettu NFS-jako -Comment[fr]=Ressource NFS non montée -Comment[fy]=Oankeppele NFS-boarne -Comment[ga]=Comhroinn NFS Gan Fheistiú -Comment[gl]=Compartición NFS non Montada -Comment[he]=משאב NFS מנותק -Comment[hi]=अनमाउन्टेड एनएफ़एस साझा -Comment[hr]=Nepristupljeno NFS dijeljenje -Comment[hu]=Leválasztott NFS-megosztás -Comment[is]=Aftengd NFS auðlind -Comment[it]=Risorsa NFS non montata -Comment[ja]=マウントされていない NFS 共有 -Comment[ka]=დემონტირებული NFS რესურსი -Comment[kk]=Тіркеуден шығарған NFS ресурсы -Comment[km]=NFS Share មិនបានរៀបចំ -Comment[lt]=Išmontuotas NFS bendro naudojimo resursas -Comment[lv]=Nomontēta NFS šāre -Comment[mk]=Одмонтиран NFS-ресурс -Comment[ms]=Perkongsian NFS Nyahlekap -Comment[mt]=Riżors NFS mhux immuntat -Comment[nb]=Avmontert NFS-ressurs -Comment[nds]=Afhangt NFS-Freegaav -Comment[ne]=अनमाउन्ट गरिएको NFS साझेदारी -Comment[nl]=Afgekoppelde NFS-gegevensbron -Comment[nn]=Umontert delt NFS-ressurs -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ NFS ਸਾਂਝ -Comment[pl]=Odmontowany system plików NFS -Comment[pt]=Partilha de NFS desmontada -Comment[pt_BR]=Volume NFS Desmontado -Comment[ro]=Partajare NFS nemontată -Comment[ru]=Отмонтированный ресурс NFS -Comment[rw]=Umugabane NFS Wakuwemo -Comment[se]=Gálgajuvvon NFS-resursa -Comment[sk]=Odpojený zdroj NFS -Comment[sl]=Odklopljen vir NFS -Comment[sr]=Демонтирано NFS дељење -Comment[sr@Latn]=Demontirano NFS deljenje -Comment[sv]=Avmonterad NFS-resurs -Comment[ta]=இறக்கப்பட்ட NFS பங்கு -Comment[th]=ทรัพยากร NFS ที่ไม่ถูกเม้านท์ -Comment[tr]=Bağlanmamış NFS Paylaşımı -Comment[tt]=Totaşmağan NFS Urtağı -Comment[uk]=Демонтований ресурс NFS -Comment[uz]=Ulanmagan NFS manba -Comment[uz@cyrillic]=Уланмаган NFS манба -Comment[vi]=Chia sẻ NFS đã gỡ ra -Comment[wa]=Pårtaedje NFS dismonté -Comment[zh_CN]=未挂载的 NFS 共享 -Comment[zh_TW]=未掛載的 NFS 資源 + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/printers.desktop b/tdeioslave/media/mimetypes/printers.desktop index cc68e25b7..ec5e39449 100644 --- a/tdeioslave/media/mimetypes/printers.desktop +++ b/tdeioslave/media/mimetypes/printers.desktop @@ -1,9 +1,10 @@ [Desktop Entry] -Icon=kjobviewer Type=MimeType MimeType=media/builtin-printers +Icon=kjobviewer + Comment=Printers -Comment[de]=Drucker + Patterns=Printers X-TDE-AutoEmbed=false diff --git a/tdeioslave/media/mimetypes/removable_encrypted_locked.desktop b/tdeioslave/media/mimetypes/removable_encrypted_locked.desktop index ee97d34a1..d97745e12 100644 --- a/tdeioslave/media/mimetypes/removable_encrypted_locked.desktop +++ b/tdeioslave/media/mimetypes/removable_encrypted_locked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=media-flash-usb-locked Type=MimeType MimeType=media/removable_encrypted_locked +Icon=media-flash-usb-locked + Comment=Encrypted Locked Removable Medium -Comment[de]=Verschlüsseltes gesperrtes Wechsellaufwerk -Comment[it]=Disco rimovibile criptato protetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/removable_encrypted_unlocked.desktop b/tdeioslave/media/mimetypes/removable_encrypted_unlocked.desktop index d104f9f87..fd98df9c0 100644 --- a/tdeioslave/media/mimetypes/removable_encrypted_unlocked.desktop +++ b/tdeioslave/media/mimetypes/removable_encrypted_unlocked.desktop @@ -1,12 +1,11 @@ [Desktop Entry] Encoding=UTF-8 -Icon=media-flash-usb-unlocked Type=MimeType MimeType=media/removable_encrypted_unlocked +Icon=media-flash-usb-unlocked + Comment=Encrypted Unlocked Removable Medium -Comment[de]=Verschlüsseltes entsperrtes Wechsellaufwerk -Comment[it]=Disco rimovibile criptato sprotetto + Patterns= X-TDE-AutoEmbed=true -X-TDE-IsAlso=inode/directory diff --git a/tdeioslave/media/mimetypes/removable_mounted.desktop b/tdeioslave/media/mimetypes/removable_mounted.desktop index 7d91f49ed..20fbced12 100644 --- a/tdeioslave/media/mimetypes/removable_mounted.desktop +++ b/tdeioslave/media/mimetypes/removable_mounted.desktop @@ -1,76 +1,10 @@ [Desktop Entry] -Icon=media-flash-usb-mounted Type=MimeType MimeType=media/removable_mounted +Icon=media-flash-usb-mounted + Comment=Mounted Removable Medium -Comment[af]=Gekoppelde Verwyderbare Medium -Comment[ar]=وسيط قابل للإزالة مركب -Comment[az]=Bağlanmış Çıxarıla Bilən Mediyum -Comment[be]=Прымацаваны зменны носьбіт -Comment[bg]=Монтиран преносим носител -Comment[bn]=মাউন্ট করা অপসারণযোগ্য মিডিয়াম -Comment[br]=Medium lem-laka marc'het -Comment[bs]=Montiran izmjenjivi uređaj -Comment[ca]=Suport extraïble muntat -Comment[cs]=Připojené výměnné médium -Comment[csb]=Zamòntowóné òdłączalné medium -Comment[da]=Monteret medie der kan fjernes -Comment[de]=Eingebundenes Wechsellaufwerk -Comment[el]=Προσαρτημένος αφαιρούμενο μέσο -Comment[eo]=Surmetita forigebla datumportilo -Comment[es]=Recurso extraíble montado -Comment[et]=Ühendatud eemaldatav andmekandja -Comment[eu]=Euskarri aldagarria muntatua -Comment[fa]=رسانۀ برداشتنی سوارشده -Comment[fi]=Liitetty irrotettava resurssi -Comment[fr]=Média amovible monté -Comment[fy]=Oankeppele ferwiderber medium -Comment[ga]=Meán Feistithe Inbhainte -Comment[gl]=Dispositivo Extraíbel Montado -Comment[he]=מדיה חיצונית מחוברת -Comment[hi]=माउन्टेड रीमूवेबल माध्यम -Comment[hr]=Pristupljen izmjenjiv medij -Comment[hu]=Csatlakoztatott adathordozó -Comment[is]=Tengdur útskiptanlegur miðill -Comment[it]=Supporto rimovibile montato -Comment[ja]=マウントされたリムーバブルメディア -Comment[ka]=მონტირებული პორტატიული მოწყობილობა -Comment[kk]=Тіркеген ауыстырмалы тасушы -Comment[km]=ឧបករណ៍ចល័តដែលបានរៀបចំ -Comment[lt]=Sumontuotas pašalinamas diskas -Comment[lv]=Piemontēts noņemamais datu nesējs -Comment[mk]=Монтиран отстранлив носач -Comment[ms]=Medium Boleh Buang Terlekap -Comment[mt]=Riżors NFS immuntat -Comment[nb]=Montert flyttbart medium -Comment[nds]=Inhangt tuuschbor Loopwark -Comment[ne]=माउन्ट गरिएको हटाउन सकिने मेडिअम -Comment[nl]=Aangekoppeld verwijderbaar medium -Comment[nn]=Montert flyttbart medium -Comment[pa]=ਮਾਊਟ ਕੀਤੇ ਹਟਾਉਣਯੋਗ ਮਾਧਿਅਮ -Comment[pl]=Zamontowany nośnik wymienny -Comment[pt]=Dispositivo amovível montado -Comment[pt_BR]=Mídia Removível Montada -Comment[ro]=Mediu amovibil montat -Comment[ru]=Смонтированный внешний диск -Comment[rw]=Igitangazamakuru Kivanwamo Cyashyizwemo -Comment[se]=Čátnon sirdehahtti medium -Comment[sk]=Pripojené vyberateľné médium -Comment[sl]=Priklopljen odstranljiv medij -Comment[sr]=Монтиран уклоњиви медијум -Comment[sr@Latn]=Montiran uklonjivi medijum -Comment[sv]=Monterad flyttbar enhet -Comment[ta]=ஏற்றப்பட்ட நீக்கக்கூடிய மீடியம் -Comment[th]=สื่อบันทึกแบบถอดออกได้ถูกเม้านท์ -Comment[tr]=Bağlı Ayrılabilir Ortam -Comment[tt]=Totaşqan Çığarulı Media -Comment[uk]=Змонтований переносний носій -Comment[uz]=Ulangan saqlash uskunasi -Comment[uz@cyrillic]=Уланган сақлаш ускунаси -Comment[vi]=Ổ lưu trữ Di động đã kết nối -Comment[wa]=Oiståve mediom monté -Comment[zh_CN]=挂载的可移动介质 -Comment[zh_TW]=已掛載的可攜式媒體 + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/removable_unmounted.desktop b/tdeioslave/media/mimetypes/removable_unmounted.desktop index 32c036775..4b7ea5a9d 100644 --- a/tdeioslave/media/mimetypes/removable_unmounted.desktop +++ b/tdeioslave/media/mimetypes/removable_unmounted.desktop @@ -1,76 +1,10 @@ [Desktop Entry] -Icon=media-flash-usb-unmounted Type=MimeType MimeType=media/removable_unmounted +Icon=media-flash-usb-unmounted + Comment=Unmounted Removable Medium -Comment[af]=Ontkoppel Verwyderbare Medium -Comment[ar]=وسيط قابل للإزالة غير مركب -Comment[az]=Ayrılmış Çıxarıla Bilən Mediyum -Comment[be]=Адмацаваны зменны носьбіт -Comment[bg]=Демонтиран преносим носител -Comment[bn]=আনমাউন্ট করা অপসারণযোগ্য মিডিয়াম -Comment[br]=Medium ar skoroù lem/laka divarc'het -Comment[bs]=Demontiran izmjenjivi uređaj -Comment[ca]=Suport extraïble desmuntat -Comment[cs]=Odpojené výměnné médium -Comment[csb]=Òdmòntowóné òdłączalné medium -Comment[da]=Afmonteret medie der kan fjernes -Comment[de]=Nicht eingebundenes Wechsellaufwerk -Comment[el]=Αποπροσαρτημένο αφαιρούμενο μέσο -Comment[eo]=Demetita forigebla datumportilo -Comment[es]=Recurso extraíble desmontado -Comment[et]=Lahutatud eemaldatav andmekandja -Comment[eu]=Euskarri aldagarria desmuntatua -Comment[fa]=رسانۀ برداشتنی پیادهشده -Comment[fi]=Irrotettu irrotettava resurssi -Comment[fr]=Média amovible non monté -Comment[fy]=Ofkeppele ferwiderber medium -Comment[ga]=Meán Inbhainte Gan Fheistiú -Comment[gl]=Dispositivo Extraíbel Non Montado -Comment[he]=מדייה חיצונית מנותקת -Comment[hi]=अनमाउन्टेड रीमूवेबल माध्यम -Comment[hr]=Nepristupljen izmjenjiv medij -Comment[hu]=Leválasztott adathordozó -Comment[is]=Aftengdur útskiptanlegur miðill -Comment[it]=Supporto rimovibile non montato -Comment[ja]=マウントされていないリムーバブルメディア -Comment[ka]=დემონტირებული პორტატიული მოწყობილობა -Comment[kk]=Тіркеуден шығарған ауыстырмалы тасушы -Comment[km]=ឧបករណ៍ចល័តដែលមិនបានរៀបចំ -Comment[lt]=Išmontuotas pašalinamas diskas -Comment[lv]=Nomontēts noņemamais datu nesējs -Comment[mk]=Одмонтиран отстранлив носач -Comment[ms]=Medium Boleh Buang Nyahlekap -Comment[mt]=Riżors għall-ħażna tad-data mhux immuntat -Comment[nb]=Avmontert flyttbart medium -Comment[nds]=Afhangt tuuschbor Loopwark -Comment[ne]=अनमाउन्ट गरिएको हटाउन सकिने मेडिअम -Comment[nl]=Afgekoppeld verwijderbaar medium -Comment[nn]=Umontert flyttbart medium -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ ਹਟਾਉਣਯੋਗ ਮਾਧਿਅਮ -Comment[pl]=Odmontowany nośnik wymienny -Comment[pt]=Dispositivo amovível desmontado -Comment[pt_BR]=Mídia Removível Desmontada -Comment[ro]=Mediu amovibil nemontat -Comment[ru]=Отмонтированный внешний диск -Comment[rw]=Igitangazamakuru Kivanwamo Cyavanwemo -Comment[se]=Gálgaduvvon sirdehahtti medium -Comment[sk]=Odpojené vyberateľné médium -Comment[sl]=Odklopljen odstranljiv medij -Comment[sr]=Демонтиран уклоњиви медијум -Comment[sr@Latn]=Demontiran uklonjivi medijum -Comment[sv]=Avmonterad flyttbar enhet -Comment[ta]=ஏற்றாத நீக்கக்கூடிய சாதனம் -Comment[th]=สื่อบันทึกแบบถอดออกได้ไม่ได้เเม้านท์ -Comment[tr]=Bağlanmamış Ayrılabilir Ortam -Comment[tt]=Totaşmağan Çığarulı Medium -Comment[uk]=Демонтований переносний носій -Comment[uz]=Ulanmagan saqlash uskunasi -Comment[uz@cyrillic]=Уланмаган сақлаш ускунаси -Comment[vi]=Ổ lưu trữ Di động đã gỡ ra -Comment[wa]=Oiståve mediom dismonté -Comment[zh_CN]=未挂载的可移动介质 -Comment[zh_TW]=未掛載的可攜式媒體 + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/smb_mounted.desktop b/tdeioslave/media/mimetypes/smb_mounted.desktop index cb70387a3..65122a797 100644 --- a/tdeioslave/media/mimetypes/smb_mounted.desktop +++ b/tdeioslave/media/mimetypes/smb_mounted.desktop @@ -1,82 +1,10 @@ [Desktop Entry] -Icon=nfs-mounted Type=MimeType MimeType=media/smb_mounted +Icon=nfs-mounted + Comment=Mounted Samba (Microsoft Network) Share -Comment[af]=Gekoppelde Samba (Microsoft Netwerk) Hulpbron -Comment[ar]=مشاركة Samba محمّلة -Comment[az]=Bağlanmış Samba (Microsoft Şəbəkəsi) Sahəsi -Comment[be]=Прымацаваная агульная тэчка Samba (Сетка Microsoft) -Comment[bg]=Монтиран ресурс Samba (Microsoft Network) -Comment[bn]=মাউন্ট করা সাম্বা (মাইক্রোসফট নেটওয়ার্ক) শেয়ার -Comment[br]=Rennad Samba (rouedad Microsoft) marc'het -Comment[bs]=Montiran Samba (Microsoft Network) Share -Comment[ca]=Recurs de Samba (xarxa Microsoft) muntat -Comment[cs]=Připojený Samba (Microsoft Network) prostředek -Comment[csb]=Zamòntowóné ùdzélenié Sambë (Microsoft Network) -Comment[cy]=Cydranniad Samba (Rhwydwaith Microsoft) wedi'i osod -Comment[da]=Monteret Samba-share (Microsoft-netværk) -Comment[de]=Eingebundene Samba-Freigabe (Microsoft-Netzwerk) -Comment[el]=Προσαρτημένος κοινόχρηστος πόρος Samba (Δίκτυο Microsoft) -Comment[eo]=Surmetita Sambo-opuzaĵo -Comment[es]=Recurso de Samba montado (Red de Microsoft) -Comment[et]=Ühendatud Samba (Microsoft Network) ressurss -Comment[eu]=Samba (Microsoft sarea) partekaketa muntatua -Comment[fa]=مشترک Samba (Microsoft Network) سوارشده -Comment[fi]=Liitetty Samba-jako (Microsoft-verkko) -Comment[fr]=Partage Samba (réseau Microsoft) monté -Comment[fy]=Oankeppele Samba-netwurkboarne (Microsoft-netwurken) -Comment[ga]=Comhroinn Fheistithe Samba (Microsoft Network) -Comment[gl]=Compartición Samba Montada (Rede de Microsoft) -Comment[he]=שיתוף Microsoft Network) Samba) מחובר -Comment[hi]=माउन्टेड साम्बा (माइक्रोसाफ्ट नेटवर्क) साझेदारी -Comment[hr]=Pristupljeno Samba dijeljenje (Microsoft mreža) -Comment[hsb]=Montowany Samba-(Microsoft syć)-zapisk -Comment[hu]=Csatlakoztatott Samba-megosztás -Comment[is]=Tengd Samba (Microsoft Network) sameign -Comment[it]=Condivisione samba (Rete Microsoft) montata -Comment[ja]=マウントされた Samba (マイクロソフトのネットワーク) 共有 -Comment[ka]=მონტირებული Samba რესურსი (Microsoft-ის ქსელი) -Comment[kk]=Тіркеген Samba ресурсы (Microsoft желісі) -Comment[km]=Samba (បណ្ដាញ Microsoft) Share បានរៀបចំ -Comment[lt]=Sumontuotas Samba (Microsoft Network) bendro naudojimo diskas -Comment[lv]=Piemontēta Samba (Microsoft tīkla) šāre -Comment[mk]=Монтиран Samba заеднички ресурс (Microsoft мрежа) -Comment[mn]=Залгагдсан Samba-Нөөцүүд (Microsoft-Сүлжээ) -Comment[ms]=Perkongsian Samba Terlekap (Rangkaian Microsoft) -Comment[mt]=Riżors Samba (Microsoft Network) immuntat -Comment[nb]=Montert Samba-katalog (Microsoft nettverk) -Comment[nds]=Inhangt Samba-Freegaav (Microsoft-Nettwark) -Comment[ne]=माउन्ट गरिएको साम्बा (माइक्रो सफ्ट सञ्जाल) साझेदारी -Comment[nl]=Aangekoppelde Samba-netwerkbron (Microsoft-netwerken) -Comment[nn]=Montert Samba-ressurs (Microsoft-nettverk) -Comment[nso]=Kabagano yeo e Nameleditswego ya Samba (Kgokagano ya Microsoft) -Comment[pa]=ਮਾਊਟ ਕੀਤੀ ਸਾਂਬਾ (ਮਾਈਕਰੋਸਾਫਟ ਨੈੱਟਵਰਕ) ਸਾਂਝ -Comment[pl]=Zamontowany udział Samby (sieci typu Microsoft Network) -Comment[pt]=Partilha de Samba (Microsoft Network) montada -Comment[pt_BR]=Compartilhamento do Samba (Rede Microsoft) montado -Comment[ro]=Partajare Samba (rețea Microsoft) montată -Comment[ru]=Смонтированный ресурс сети Microsoft -Comment[rw]=Umugabane Samba (Urusobemiyoboro Microsoft) Washyizwemo -Comment[se]=Čatnojuvvon Samba-resursa (Microsoft-fierbmi) -Comment[sk]=Pripojený disk Samba (Microsoft Network) -Comment[sl]=Priklopljen deljeni vir Sambe (Microsoftovo omrežje) -Comment[sr]=Монтирано Samba дељење (Microsoft-ова мрежа) -Comment[sr@Latn]=Montirano Samba deljenje (Microsoft-ova mreža) -Comment[sv]=Monterad utdelad Samba-katalog (Microsoft-nätverk) -Comment[ta]=சம்பா ஏற்றப்பட்டது (மைக்ரேசாப்ட் வலை) பகிர்வு -Comment[tg]=Монтажшудаи манбаъи Samba (шабакаи Microsoft) -Comment[th]=ทรัพยากร Samba (เครือข่ายวินโดว์ส) ที่ถูกเม้านท์ -Comment[tr]=Bağlanmış Samba (Microsoft Network) Paylaşımı -Comment[tt]=Totaşqan Samba (Microsoft Çeltäre) Urtağı -Comment[uk]=Змонтований спільний ресурс Samba (мережа Microsoft) -Comment[ven]=Samba yo gonyaho (Vhukwamani ha Microsoft) U kovhekana -Comment[vi]=Chia sẻ SAMBA (mạng của Microsoft) đã kết nối -Comment[wa]=Pårtaedje Samba (Rantoele Microsoft) monté -Comment[xh]=Samba Enyusiweyo (Umsebenzi womnatha we Microsoft) Ulwahlulo -Comment[zh_CN]=挂载的 Samba (Microsoft 网络)共享 -Comment[zh_TW]=已掛載的 Samba (Microsoft 網路) 分享 -Comment[zu]=Isabelo se-Samba esinyusiwe (Uxhumano olusakazekile le-Network) + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/smb_unmounted.desktop b/tdeioslave/media/mimetypes/smb_unmounted.desktop index 25ef6c838..e765d755c 100644 --- a/tdeioslave/media/mimetypes/smb_unmounted.desktop +++ b/tdeioslave/media/mimetypes/smb_unmounted.desktop @@ -1,83 +1,10 @@ [Desktop Entry] -Icon=nfs-unmounted Type=MimeType MimeType=media/smb_unmounted +Icon=nfs-unmounted + Comment=Unmounted Samba (Microsoft Network) Share -Comment[af]=Ontkoppelde Samba (Microsoft Netwerk) Hulpbron -Comment[ar]=مشاركة Samba غير محمّلة -Comment[az]=Ayrılmış Samba (Microsoft Şəbəkəsi) Sahəsi -Comment[be]=Адмацаваная агульная тэчка Samba (Сетка Microsoft) -Comment[bg]=Демонтиран ресурс Samba (Microsoft Network) -Comment[bn]=আনমাউন্ট করা সাম্বা (মাইক্রোসফট নেটওয়ার্ক) শেয়ার -Comment[br]=Rennad Samba (rouedad Microsoft) divarc'het -Comment[bs]=Demontiran Samba (Microsoft Network) Share -Comment[ca]=Recurs de Samba (xarxa Microsoft) desmuntat -Comment[cs]=Odpojený Samba (Microsoft Network) prostředek -Comment[csb]=Òdmòntowóné ùdzélenié Sambë (Microsoft Network) -Comment[cy]=Cydranniad Samba (Rhwydwaith Microsoft) wedi'i ddadosod -Comment[da]=Afmonteret Samba-share (Microsoft-netværk) -Comment[de]=Nicht eingebundene Samba-Freigabe (Microsoft-Netzwerk) -Comment[el]=Αποπροσαρτημένος κοινόχρηστος πόρος Samba (Δίκτυο Microsoft) -Comment[eo]=Demetita Sambo-opuzaĵo -Comment[es]=Recurso de Samba desmontado (Red de Microsoft) -Comment[et]=Lahutatud Samba (Microsoft Network) ressurss -Comment[eu]=Samba (Microsoft sarea) partekaketa desmuntatua -Comment[fa]=مشترک Samba (Microsoft Network) پیادهشده -Comment[fi]=Irrotettu Samba-jako (Microsoft-verkko) -Comment[fr]=Partage Samba (réseau Microsoft) non monté -Comment[fy]=Ofkeppele Samba-netwurkboarne (Microsoft-netwurken) -Comment[ga]=Comhroinn Samba (Microsoft Network) Gan Fheistiú -Comment[gl]=Compartición Samba Non Montada (Rede de Microsoft) -Comment[he]=שיתוף Microsoft Network) Samba) מנותק -Comment[hi]=अनमाउन्टेड साम्बा (माइक्रोसाफ्ट नेटवर्क) साझेदारी -Comment[hr]=Nepristupljeno Samba dijeljenje (Microsoft mreža) -Comment[hsb]=Njemontowany Samba-(Microsoft syć)-zapisk -Comment[hu]=Leválasztott Samba-megosztás -Comment[is]=Aftengd Samba (Microsoft Network) sameign -Comment[it]=Condivisione samba (Rete Microsoft) non montata -Comment[ja]=マウントされていない Samba (マイクロソフトのネットワーク) 共有 -Comment[ka]=დემონტირებული Samba რესურსი (Microsoft-ის ქსელი) -Comment[kk]=Тіркеуден шығарған Samba ресурсы (Microsoft желісі) -Comment[km]=Samba (បណ្ដាញ Microsoft) Share មិនទាន់រៀបចំ -Comment[lo]= ຫັງກາລີ -Comment[lt]=Išmontuotas Samba (Microsoft Network) bendro naudojimo diskas -Comment[lv]=Nomontēta Samba (Microsoft tīkla) šāre -Comment[mk]=Одмонтиран Samba заеднички ресурс (Microsoft мрежа) -Comment[mn]=Залгагдаагүй Samba-Нөөцүүд (Microsoft-Сүлжээ) -Comment[ms]=Perkongsian Samba Nyahlekap (Rangkaian Microsoft) -Comment[mt]=Riżors Samba (Microsoft Network) mhux immuntat -Comment[nb]=Avmontert Samba-katalog (Microsoft nettverk) -Comment[nds]=Afhangt Samba-Freegaav (Microsoft-Nettwark) -Comment[ne]=अनमाउन्ट गरिएको साम्बा (माइक्रो सफ्ट सञ्जाल) साझेदारी -Comment[nl]=Afgekoppelde Samba-netwerkbron (Microsoft-netwerkbron) -Comment[nn]=Avmontert Samba-ressurs (Microsoft-nettverk) -Comment[nso]=Kabagano yeo e Theositswego ya Samba (Kgokagano ya Microsoft) -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ ਸਾਂਬਾ (ਮਾਈਕਰੋਸਾਫਟ ਨੈੱਟਵਰਕ) ਸਾਂਝ -Comment[pl]=Odmontowany udział Samby (sieci typu Microsoft Network) -Comment[pt]=Partilha de Samba (Microsoft Network) desmontada -Comment[pt_BR]=Compartilhamento do Samba (Rede Microsoft) desmontado -Comment[ro]=Partajare Samba (rețea Microsoft) nemontată -Comment[ru]=Отмонтированный ресурс сети Microsoft -Comment[rw]=Umugabane Samba (Urusobemiyoboro Microsoft) Wakuwemo -Comment[se]=Gálgajuvvon Samba-resursa (Microsoft-fierbmi) -Comment[sk]=Nepripojený disk Samba (Microsoft Network) -Comment[sl]=Odklopljen deljeni vir Sambe (Microsoftovo omrežje) -Comment[sr]=Демонтирано Samba дељење (Microsoft-ова мрежа) -Comment[sr@Latn]=Demontirano Samba deljenje (Microsoft-ova mreža) -Comment[sv]=Avmonterad utdelad Samba-katalog (Microsoft-nätverk) -Comment[ta]=சம்பாவை வெளியேற்று(மைக்ரேசாப்ட் வலை) பகிர்வு -Comment[tg]=Ҷудо шудаи манбаъи Samba (шабакаи Microsoft) -Comment[th]=ทรัพยากร Samba (เครือข่ายวินโดว์ส) ที่ไม่ถูกเม้านท์ -Comment[tr]=Bağlanmış Samba (Microsoft Network) Paylaşımı -Comment[tt]=Totaşmağan Samba (Microsoft Çeltäre) Urtağı -Comment[uk]=Демонтований спільний ресурс Samba (мережа Microsoft) -Comment[ven]=Samba i songo gonyaho (Vhukamani ha Microsoft) U kovhekana -Comment[vi]=Chia sẻ SAMBA (mạng của Microsoft) đã gỡ ra -Comment[wa]=Pårtaedje Samba (Rantoele Microsoft) dismonté -Comment[xh]=Samba Enganyuswanga (Umsebenzi womnatha we Microsoft) Ulwahlulo -Comment[zh_CN]=未挂载的 Samba (Microsoft 网络)共享 -Comment[zh_TW]=未掛載的 Samba (Microsoft 網路) 分享 -Comment[zu]=Isabelo se-Samba esehlisiwe (Uxhumano olusakazekile lwe-Microsoft) + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/svcd.desktop b/tdeioslave/media/mimetypes/svcd.desktop index 7ba5f9571..1335fc5fe 100644 --- a/tdeioslave/media/mimetypes/svcd.desktop +++ b/tdeioslave/media/mimetypes/svcd.desktop @@ -1,51 +1,6 @@ [Desktop Entry] Type=MimeType MimeType=media/svcd -Comment=Super Video CD -Comment[ar]=قرص مدمج مرئي Super -Comment[bg]=Супер VCD диск -Comment[bn]=সুপার ভিডিও সিডি -Comment[ca]=CD Súper Vídeo -Comment[da]=Super Video-cd -Comment[de]=Super Video-CD -Comment[eo]=Supervidea lumdisko -Comment[fa]=دیسک فشردۀ ابرویدیویی -Comment[fr]=Super CD vidéo -Comment[fy]=Super Fideo-kompaktskiif -Comment[gl]=Super Vídeo CD -Comment[hi]=सुपर वीडियो सीडी -Comment[hu]=Super Video-CD -Comment[is]=Súper vídeó CD -Comment[it]=Super video CD -Comment[ja]=スーパービデオ CD -Comment[ka]=სუპერ ვიდეო CD -Comment[km]=ស៊ីឌីវីដេអូគុណភាពខ្ពស់ -Comment[mk]=Супер видео ЦД -Comment[ms]=CD Supervideo -Comment[nb]=Super video CD -Comment[nds]=Super-Video-CD -Comment[ne]=सुपर भिडियो सीडी -Comment[nl]=Super Video-cd -Comment[nn]=Super Video-CD -Comment[pa]=ਸੁਪਰ ਵੀਡਿਓ CD -Comment[pl]=Płyta Super Video CD -Comment[pt]=Super Vídeo CD -Comment[pt_BR]=Super vídeo CD (SVCD) -Comment[ro]=CD Super Video -Comment[rw]=CD Videwo Ihebuje -Comment[sr]=Супер видео CD -Comment[sr@Latn]=Super video CD -Comment[sv]=Supervideo-cd -Comment[ta]=சூப்பர் படக்காட்சி குறுந்தகடு -Comment[te]=సూపర్ విడియొ సిడి -Comment[tg]=Супер Видео CD -Comment[th]=ซุเปอร์วิดีโอซีดี -Comment[tr]=Süper Video CD'si -Comment[uk]=Супер відео КД -Comment[uz]=Super-video kompakt-disk -Comment[uz@cyrillic]=Супер-видео компакт-диск -Comment[vi]=Đĩa siêu video CD -Comment[wa]=Super plake lazer CD videyo -Comment[zh_CN]=超级 VCD -Comment[zh_TW]=超級視訊 CD Icon=media-optical-cdrom-unmounted + +Comment=Super Video CD diff --git a/tdeioslave/media/mimetypes/trash.desktop b/tdeioslave/media/mimetypes/trash.desktop index 9a29583e1..6f5fe091d 100644 --- a/tdeioslave/media/mimetypes/trash.desktop +++ b/tdeioslave/media/mimetypes/trash.desktop @@ -1,10 +1,10 @@ [Desktop Entry] -Icon=trashcan_full -EmptyIcon=trashcan_empty Type=MimeType MimeType=media/builtin-trash +Icon=trashcan_full +EmptyIcon=trashcan_empty + Comment=Trash -Comment[de]=Mülleimer Patterns=Trash diff --git a/tdeioslave/media/mimetypes/vcd.desktop b/tdeioslave/media/mimetypes/vcd.desktop index 98003ea06..6fbd87ad6 100644 --- a/tdeioslave/media/mimetypes/vcd.desktop +++ b/tdeioslave/media/mimetypes/vcd.desktop @@ -1,51 +1,6 @@ [Desktop Entry] Type=MimeType MimeType=media/vcd -Comment=Video CD -Comment[ar]=قرص مدمج مرئي -Comment[bg]=VCD диск -Comment[bn]=ভিডিও সিডি -Comment[br]=CD Video -Comment[ca]=CD Vídeo -Comment[da]=Video-cd -Comment[de]=Video-CD -Comment[el]=Βίντεο CD -Comment[eo]=Video-LD -Comment[fa]=دیسک فشردۀ ویدیویی -Comment[fr]=CD vidéo -Comment[fy]=Fideo-kompaktskiif -Comment[ga]=Dlúthdhiosca Físe -Comment[gl]=Vídeo CD -Comment[hi]=वीडियो सीडी -Comment[hu]=Video-CD -Comment[is]=Vídeó CD -Comment[ja]=ビデオ CD -Comment[kk]=Бейне CD -Comment[km]=ស៊ីឌីវីដេអូ -Comment[mk]=Видео ЦД -Comment[ms]=CD Video -Comment[nds]=Video-CD -Comment[ne]=भिडियो सीडी -Comment[nl]=Video-cd -Comment[nn]=Video-CD -Comment[pa]=ਵੀਡਿਓ CD -Comment[pl]=Płyta Video CD -Comment[pt]=Vídeo CD -Comment[pt_BR]=Vídeo CD (VCD) -Comment[ro]=CD Video -Comment[rw]=CD Videwo -Comment[sr]=Видео CD -Comment[sv]=Video-cd -Comment[ta]=படக்காட்சி குறுந்தகடு -Comment[te]=విడియొ సిడి -Comment[tg]=Видео CD -Comment[th]=วิดีโอซีดี -Comment[tr]=Video CD'si -Comment[uk]=Відео КД -Comment[uz]=Video kompakt-disk -Comment[uz@cyrillic]=Видео компакт-диск -Comment[vi]=Đĩa video CD -Comment[wa]=Plake lazer CD videyo -Comment[zh_CN]=VCD -Comment[zh_TW]=視訊 CD Icon=media-optical-cdrom-unmounted + +Comment=Video CD diff --git a/tdeioslave/media/mimetypes/webbrowser.desktop b/tdeioslave/media/mimetypes/webbrowser.desktop index 3cd180e1c..ba6df6b35 100644 --- a/tdeioslave/media/mimetypes/webbrowser.desktop +++ b/tdeioslave/media/mimetypes/webbrowser.desktop @@ -1,9 +1,10 @@ [Desktop Entry] -Icon=konqueror Type=MimeType MimeType=media/builtin-webbrowser +Icon=konqueror + Comment=Web Browser -Comment[de]=Webbrowser + Patterns=Web_Browser X-TDE-AutoEmbed=false diff --git a/tdeioslave/media/mimetypes/zip_mounted.desktop b/tdeioslave/media/mimetypes/zip_mounted.desktop index 1cc2faef9..d4bcd2df3 100644 --- a/tdeioslave/media/mimetypes/zip_mounted.desktop +++ b/tdeioslave/media/mimetypes/zip_mounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-floppy-zip-mounted Type=MimeType MimeType=media/zip_mounted +Icon=media-floppy-zip-mounted + Comment=Mounted Zip Disk -Comment[af]=Gekoppelde Zip Disket -Comment[ar]=قرص Zip محمّل -Comment[az]=Bağlanmış Zip Disk -Comment[be]=Прымацаваны дыск Zip -Comment[bg]=Монтиран Zip диск -Comment[bn]=মাউন্ট করা জিপ (Zip) ডিস্ক -Comment[br]=Pladenn Zip marc'het -Comment[bs]=Montiran Zip disk -Comment[ca]=Disc Zip muntat -Comment[cs]=Připojený disk Zip -Comment[csb]=Zamòntowóny disk Zip -Comment[cy]=Disg Zip wedi'i osod -Comment[da]=Monteret zip-disk -Comment[de]=Eingebundenes Zip-Medium -Comment[el]=Προσαρτημένος δίσκος Zip -Comment[eo]=Surmetita ZIP-disko -Comment[es]=Disco Zip montado -Comment[et]=Ühendatud Zip-ketas -Comment[eu]=Zip diska muntatua -Comment[fa]=دیسک فشردۀ سوارشده -Comment[fi]=Liitetty Zip-levy -Comment[fr]=Disque Zip monté -Comment[fy]=Oankeppelee Zip-skiif -Comment[ga]=Diosca Zip feistithe -Comment[gl]=Disco Zip Montado -Comment[he]=תקליטון Zip מחובר -Comment[hi]=माउन्टेड जिप डिस्क -Comment[hr]=Pristupljeni Zip disk -Comment[hu]=Csatlakoztatott Zip-lemez -Comment[is]=Tengdur Zip diskur -Comment[it]=Disco Zip montato -Comment[ja]=マウントされた Zip ディスク -Comment[ka]=მონტირებული диск Zip -Comment[kk]=Тіркеген Zip дискі -Comment[km]=ថាស Zip បានរៀបចំ -Comment[lo]=ຈໍພາບ -Comment[lt]=Sumontuotas Zip diskas -Comment[lv]=Piemontēts Zip disks -Comment[mk]=Монтиран Зип-диск -Comment[mn]=Залгагдсан Zip-Диск -Comment[ms]=Cakera Zip Terlekap -Comment[mt]=Diska Zip immuntata -Comment[nb]=Montert Zip-disk -Comment[nds]=Inhangt Zip-Diskett -Comment[ne]=माउन्ट गरिएको जिप डिस्क -Comment[nl]=Aangekoppelde Zip-diskette -Comment[nn]=Montert Zip-disk -Comment[nso]=Disk yeo e Nameleditswego ya ZIP -Comment[pa]=ਮਾਊਟ ਕੀਤੀ ਜਿਪ ਡਿਸਕ -Comment[pl]=Zamontowana dyskietka Zip -Comment[pt]=Disco ZIP montado -Comment[pt_BR]=Disco Zip Montado -Comment[ro]=Disc ZIP montat -Comment[ru]=Смонтированный диск Zip -Comment[rw]=Disiki Zipu Yashyizwemo -Comment[se]=Čatnojuvvon Zip-skearru -Comment[sk]=Pripojený disk Zip -Comment[sl]=Priklopljen disk Zip -Comment[sr]=Монтиран Zip диск -Comment[sr@Latn]=Montiran Zip disk -Comment[sv]=Monterad Zip-diskett -Comment[ta]=இறக்கப்பட்ட சுருக்க வட்டு -Comment[tg]=Монтажшудаи диски Zip -Comment[th]=ดิสก์ Zip ที่ถูกเม้านท์ -Comment[tr]=Bağlı Zip Diski -Comment[tt]=Totaşqan Zip Disk -Comment[uk]=Змонтований диск Zip -Comment[uz]=Ulangan ZIP-disk -Comment[uz@cyrillic]=Уланган ZIP-диск -Comment[ven]=Disk ya Zip yo gonyiswaho -Comment[vi]=Đĩa ZIP đã kết nối -Comment[wa]=Plakete ZIP montêye -Comment[xh]=Diski Yoqokelelo ndawonye Kwediski -Comment[zh_CN]=挂载的 Zip 磁盘 -Comment[zh_TW]=已掛載的 Zip 磁碟 -Comment[zu]=I-disk yokuhlanganiselwe ndawonye eyenyusiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mimetypes/zip_unmounted.desktop b/tdeioslave/media/mimetypes/zip_unmounted.desktop index 162cc5e4e..711759e89 100644 --- a/tdeioslave/media/mimetypes/zip_unmounted.desktop +++ b/tdeioslave/media/mimetypes/zip_unmounted.desktop @@ -1,84 +1,10 @@ [Desktop Entry] -Icon=media-floppy-zip-unmounted Type=MimeType MimeType=media/zip_unmounted +Icon=media-floppy-zip-unmounted + Comment=Unmounted Zip Disk -Comment[af]=Ontkoppel Zip Disket -Comment[ar]=قرص Zip غير محمّل -Comment[az]=Ayrılmış Zip Disk -Comment[be]=Адмацаваны дыск Zip -Comment[bg]=Демонтиран Zip диск -Comment[bn]=আনমাউন্ট করা জিপ (Zip) ডিস্ক -Comment[br]=Pladenn Zip divountet -Comment[bs]=Demontiran Zip disk -Comment[ca]=Disc Zip desmuntat -Comment[cs]=Odpojený disk Zip -Comment[csb]=Òdmòntowóny disk Zip -Comment[cy]=Disg Zip wedi'i ddadosod -Comment[da]=Afmonteret zip-disk -Comment[de]=Nicht eingebundenes Zip-Medium -Comment[el]=Αποπροσαρτημένος δίσκος Zip -Comment[eo]=Demetita ZIP-disko -Comment[es]=Disco Zip desmontado -Comment[et]=Lahutatud Zip-ketas -Comment[eu]=Zip diska desmuntatua -Comment[fa]=دیسک فشردۀ پیادهشده -Comment[fi]=Irrotettu Zip-levy -Comment[fr]=Disque Zip non monté -Comment[fy]=Ofkeppele Zip-skiif -Comment[ga]=Diosca Zip neamhfheistithe -Comment[gl]=Disco Zip non Montado -Comment[he]=תקליטון Zip מנותק -Comment[hi]=अनमाउन्टेड जिप डिस्क -Comment[hr]=Nepristupljeni Zip disk -Comment[hu]=Leválasztott Zip-lemez -Comment[is]=Aftengdur Zip diskur -Comment[it]=Disco Zip non montato -Comment[ja]=マウントされていない Zip ディスク -Comment[ka]=დემონტირებული диск Zip -Comment[kk]=Тіркеуден шығарған Zip дискі -Comment[km]=ថាស Zip មិនបានរៀបចំ -Comment[lo]= ຫັງກາລີ -Comment[lt]=Išmontuotas Zip diskas -Comment[lv]=Nomontēts Zip disks -Comment[mk]=Одмонтиран Зип-диск -Comment[mn]=Салгагдсан Zip-Диск -Comment[ms]=Cakera Zip Nyahlekap -Comment[mt]=Diska Zip mhux immuntata -Comment[nb]=Avmontert Zip-disk -Comment[nds]=Afhangt Zip-Diskett -Comment[ne]=अनमाउन्ट गरिएको जिप डिस्क -Comment[nl]=Afgekoppelde Zip-diskette -Comment[nn]=Avmontert Zip-disk -Comment[nso]=Disk yeo e Theositswego ya ZIP -Comment[pa]=ਅਨਮਾਊਟ ਕੀਤੀ ਜ਼ਿਪ ਡਿਸਕ -Comment[pl]=Odmontowana dyskietka Zip -Comment[pt]=Disco ZIP desmontado -Comment[pt_BR]=Disco Zip Desmontado -Comment[ro]=Disc ZIP nemontat -Comment[ru]=Отмонтированный диск Zip -Comment[rw]=Disiki Zipu Yakuwemo -Comment[se]=Gálgajuvvon Zip-skearru -Comment[sk]=Nepripojený disk Zip -Comment[sl]=Odklopljen disk Zip -Comment[sr]=Демонтиран Zip диск -Comment[sr@Latn]=Demontiran Zip disk -Comment[sv]=Avmonterad Zip-diskett -Comment[ta]=வெளியேற்றிய சுருக்க தகடு -Comment[tg]=Ҷудо шудаи диски Zip -Comment[th]=ดิสก์ Zip ที่ไม่ได้เม้านท์ -Comment[tr]=Ayrılmış Zip Diski -Comment[tt]=Totaşmağan Zip Disk -Comment[uk]=Демонтований диск Zip -Comment[uz]=Ulanmagan ZIP-disk -Comment[uz@cyrillic]=Уланмаган ZIP-диск -Comment[ven]=Disk ya Zip i songo gonyiswaho -Comment[vi]=Đĩa ZIP đã gỡ ra -Comment[wa]=Plakete ZIP dismontêye -Comment[xh]=Diski Yoqokelelo ndawone Enganyuswanga -Comment[zh_CN]=挂载的 Zip 磁盘 -Comment[zh_TW]=未掛載的 Zip 磁碟 -Comment[zu]=I-disk yokuhlanganiselwe ndawonye eyehlisiwe + Patterns= X-TDE-AutoEmbed=true diff --git a/tdeioslave/media/mounthelper/CMakeLists.txt b/tdeioslave/media/mounthelper/CMakeLists.txt index 90afad33f..cf7ca553f 100644 --- a/tdeioslave/media/mounthelper/CMakeLists.txt +++ b/tdeioslave/media/mounthelper/CMakeLists.txt @@ -12,6 +12,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/tdeioslave/media/libmediacommon + ${CMAKE_BINARY_DIR} ${TDE_INCLUDE_DIR} ${TQT_INCLUDE_DIRS} ) @@ -31,6 +32,6 @@ set( ${target}_SRCS tde_add_executable( ${target} AUTOMOC SOURCES ${${target}_SRCS} - LINK mediacommon-static tdeio-shared + LINK mediacommon-static tdeio-shared ${TDEHW_LIBRARIES} DESTINATION ${BIN_INSTALL_DIR} ) diff --git a/tdeioslave/media/mounthelper/dialog.cpp b/tdeioslave/media/mounthelper/dialog.cpp index f2cdb6b53..a257ca6d8 100644 --- a/tdeioslave/media/mounthelper/dialog.cpp +++ b/tdeioslave/media/mounthelper/dialog.cpp @@ -23,11 +23,10 @@ #include "dialog.h" Dialog::Dialog(TQString url, TQString iconName) : - KDialogBase(NULL, "Dialog", true, "Unlock Storage Device", (Cancel|User1), User1, false, KGuiItem(i18n("Unlock"), "unlocked" )) + KDialogBase(NULL, "Dialog", true, i18n("Unlock Storage Device"), (Cancel|User1), User1, false, KGuiItem(i18n("Unlock"), "unlocked" )) { unlockDialog = new UnlockDialog(this); - unlockDialog->errorBox->hide(); unlockDialog->descLabel->setText(unlockDialog->descLabel->text().arg(url)); unlockDialog->descLabel->adjustSize(); unlockDialog->adjustSize(); @@ -37,7 +36,7 @@ Dialog::Dialog(TQString url, TQString iconName) : TQPixmap pixmap = TDEGlobal::iconLoader()->loadIcon(iconName, TDEIcon::NoGroup, TDEIcon::SizeLarge); unlockDialog->encryptedIcon->setPixmap( pixmap ); - connect(unlockDialog->passwordEdit, TQT_SIGNAL (textChanged(const TQString &)), this, TQT_SLOT (slotPasswordChanged(const TQString &))); + connect(unlockDialog->passwordEdit, TQ_SIGNAL (textChanged(const TQString &)), this, TQ_SLOT (slotPasswordChanged(const TQString &))); setMainWidget(unlockDialog); } @@ -52,14 +51,6 @@ TQString Dialog::getPassword() return unlockDialog->passwordEdit->text(); } -void Dialog::slotDialogError(TQString errorMsg) -{ - kdDebug() << __func__ << "(" << errorMsg << " )" << endl; - - unlockDialog->errorLabel->setText(TQString("<b>%1</b>").arg(errorMsg)); - unlockDialog->errorBox->show(); -} - void Dialog::slotPasswordChanged(const TQString &text) { enableButton( User1, !text.isEmpty() ); diff --git a/tdeioslave/media/mounthelper/dialog.h b/tdeioslave/media/mounthelper/dialog.h index 8444ec7dd..d2b2925a9 100644 --- a/tdeioslave/media/mounthelper/dialog.h +++ b/tdeioslave/media/mounthelper/dialog.h @@ -36,12 +36,10 @@ #include "unlockdialog.h" -class KryptoMedia; - class Dialog : public KDialogBase { -Q_OBJECT +TQ_OBJECT public: Dialog(TQString url, TQString iconName); @@ -50,7 +48,6 @@ public: TQString getPassword(); public slots: - void slotDialogError(TQString errorMsg); void slotPasswordChanged(const TQString &text); private: diff --git a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp index 65b53a0f4..90f3caa3f 100644 --- a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp +++ b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.cpp @@ -19,6 +19,10 @@ Boston, MA 02110-1301, USA. */ +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + #include <tdecmdlineargs.h> #include <tdelocale.h> #include <tdeapplication.h> @@ -33,223 +37,238 @@ #include <kprocess.h> #include <tdestartupinfo.h> #include <kmimetype.h> -#ifdef __TDE_HAVE_TDEHWLIB +#ifdef WITH_TDEHWLIB #include <tdehardwaredevices.h> #endif #include "dialog.h" #include "tdeio_media_mounthelper.h" -const Medium MountHelper::findMedium(const KURL &url) +const Medium MountHelper::findMedium(const TQString &device) { DCOPRef mediamanager("kded", "mediamanager"); - - // Try filename first - DCOPReply reply = mediamanager.call( "properties", url.fileName() ); - if ( !reply.isValid() ) { - m_errorStr = i18n("The TDE mediamanager is not running.")+"\n"; + DCOPReply reply = mediamanager.call("properties", device); + if (!reply.isValid()) + { + m_errorStr = i18n("The TDE mediamanager is not running.\n"); return Medium(TQString::null, TQString::null, TQString::null); } - const Medium& medium = Medium::create(reply); - if ( medium.id().isEmpty() ) { - // Try full URL now - reply = mediamanager.call( "properties", url.prettyURL() ); - if ( !reply.isValid() ) { - m_errorStr = i18n("Internal Error"); - return Medium(TQString::null, TQString::null, TQString::null); - } - return Medium::create(reply); - } else { - return medium; - } + const Medium &medium = Medium::create(reply); + return medium; } -MountHelper::MountHelper() : TDEApplication() +void MountHelper::mount(const Medium &medium) { - TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); + DCOPRef mediamanager("kded", "mediamanager"); + DCOPReply reply = mediamanager.call("mount", medium.id()); + TQStringVariantMap mountResult; + if (reply.isValid()) { + reply.get(mountResult); + } + if (!mountResult.contains("result") || !mountResult["result"].toBool()) { + m_errorStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : i18n("Unknown mount error."); + errorAndExit(); + } +} - m_errorStr = TQString::null; +void MountHelper::unmount(const Medium &medium) +{ + DCOPRef mediamanager("kded", "mediamanager"); + DCOPReply reply = mediamanager.call("unmount", medium.id()); + TQStringVariantMap unmountResult; + if (reply.isValid()) { + reply.get(unmountResult); + } + if (!unmountResult.contains("result") || !unmountResult["result"].toBool()) { + m_errorStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : i18n("Unknown unmount error."); + kdDebug() << "medium unmount " << m_errorStr << endl; + errorAndExit(); + } +} - KURL url(args->url(0)); - const Medium medium = findMedium(url); +void MountHelper::unlock(const Medium &medium) +{ + TQString device = medium.deviceNode(); + if (device.isEmpty()) { + m_errorStr = i18n("Try to unlock an unknown medium."); + errorAndExit(); + } - if (medium.id().isEmpty()) + TQString iconName = medium.iconName(); + if (iconName.isEmpty()) { - if (m_errorStr.isEmpty()) { - m_errorStr+= i18n("%1 cannot be found.").arg(url.prettyURL()); - } - TQTimer::singleShot(0, this, TQT_SLOT(error()) ); - return; + TQString mime = medium.mimeType(); + iconName = KMimeType::mimeType(mime)->icon(mime, false); } + m_mediumId = medium.id(); + m_dialog = new Dialog(device, iconName); + connect(m_dialog, TQ_SIGNAL(user1Clicked()), this, TQ_SLOT(slotSendPassword())); + connect(m_dialog, TQ_SIGNAL(cancelClicked()), this, TQ_SLOT(slotCancel())); + m_dialog->show(); +} - if (!medium.isMountable() && !args->isSet("e") && !args->isSet("s")) +void MountHelper::lock(const Medium &medium) +{ + DCOPRef mediamanager("kded", "mediamanager"); + DCOPReply reply = mediamanager.call("lock", medium.id(), true); + TQStringVariantMap lockResult; + if (reply.isValid()) { + reply.get(lockResult); + } + if (!lockResult.contains("result") || !lockResult["result"].toBool()) { + m_errorStr = lockResult.contains("errStr") ? lockResult["errStr"].toString() : i18n("Unknown lock error."); + kdDebug() << "medium lock " << m_errorStr << endl; + errorAndExit(); + } +} + +void MountHelper::eject(const Medium &medium) +{ +#ifdef WITH_TDEHWLIB + DCOPRef mediamanager("kded", "mediamanager"); + DCOPReply reply = mediamanager.call("eject", medium.id()); + TQStringVariantMap ejectResult; + if (reply.isValid()) { + reply.get(ejectResult); + } + if (!ejectResult.contains("result") || !ejectResult["result"].toBool()) { + m_errorStr = ejectResult.contains("errStr") ? ejectResult["errStr"].toString() : i18n("Unknown eject error."); + kdDebug() << "medium eject " << m_errorStr << endl; + errorAndExit(); + } + else { - m_errorStr = i18n("%1 is not a mountable media.").arg(url.prettyURL()); - TQTimer::singleShot(0, this, TQT_SLOT(error()) ); - return; + ::exit(0); // Success! } +#endif - TQString device = medium.deviceNode(); - TQString mount_point = medium.mountPoint(); + // Otherwise fall back to tdeeject + TDEProcess *proc = new TDEProcess(this); + *proc << "tdeeject"; + *proc << medium.deviceNode(); + connect(proc, TQ_SIGNAL(processExited(TDEProcess*)), this, TQ_SLOT(ejectFinished(TDEProcess*))); + proc->start(); +} + +void MountHelper::safeRemoval(const Medium &medium) +{ + DCOPRef mediamanager("kded", "mediamanager"); + DCOPReply reply = mediamanager.call("safeRemove", medium.id()); + TQStringVariantMap safeRemoveResult; + if (reply.isValid()) { + reply.get(safeRemoveResult); + } + if (!safeRemoveResult.contains("result") || !safeRemoveResult["result"].toBool()) { + m_errorStr = safeRemoveResult.contains("errStr") ? safeRemoveResult["errStr"].toString() : i18n("Unknown safe removal error."); + kdDebug() << "medium safeRemoval " << m_errorStr << endl; + errorAndExit(); + } +} - m_isCdrom = medium.mimeType().find("dvd") != -1 || medium.mimeType().find("cd") != -1; +void MountHelper::openRealFolder(const Medium &medium) +{ + Medium &m = const_cast<Medium&>(medium); + if (!m.isMounted()) + { + // If the medium is not mounted, try mounting it first + mount(m); + m = findMedium(m.deviceNode()); + } - if (args->isSet("d")) + if (m.isMounted()) { - if (!medium.isEncrypted()) - { - m_errorStr = i18n("%1 is not an encrypted media.").arg(url.prettyURL()); - TQTimer::singleShot(0, this, TQT_SLOT(error()) ); - return; - } - if (!medium.needDecryption()) - { - m_errorStr = i18n("%1 is already unlocked.").arg(url.prettyURL()); - TQTimer::singleShot(0, this, TQT_SLOT(error())); - return; - } + system((TQString("kfmclient exec 'file://") + m.mountPoint()).local8Bit() + "'"); + } + else + { + m_errorStr = i18n("Try to open an unknown medium."); + errorAndExit(); + } +} - TQString iconName = medium.iconName(); - if (iconName.isEmpty()) - { - TQString mime = medium.mimeType(); - iconName = KMimeType::mimeType(mime)->icon(mime, false); +MountHelper::MountHelper() : TDEApplication() +{ + TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); + m_errorStr = TQString::null; + + const Medium medium = findMedium(args->arg(0)); + if (medium.id().isEmpty()) + { + if (m_errorStr.isEmpty()) { + m_errorStr+= i18n("%1 cannot be found.").arg(args->arg(0)); } + errorAndExit(); + } - m_mediumId = medium.id(); - dialog = new Dialog(url.prettyURL(), iconName); - dialog->show(); + TQString device = medium.deviceNode(); + if (!medium.isMountable() && !medium.isEncrypted() && !args->isSet("e") && !args->isSet("s")) + { + m_errorStr = i18n("%1 is not a mountable or encrypted media.").arg(device); + errorAndExit(); + } - connect(dialog, TQT_SIGNAL (user1Clicked()), this, TQT_SLOT (slotSendPassword())); - connect(dialog, TQT_SIGNAL (cancelClicked()), this, TQT_SLOT (slotCancel())); - connect(this, TQT_SIGNAL (signalPasswordError(TQString)), dialog, TQT_SLOT (slotDialogError(TQString))); + if (args->isSet("m")) + { + mount(medium); + ::exit(0); } else if (args->isSet("u")) { - DCOPRef mediamanager("kded", "mediamanager"); - DCOPReply reply = mediamanager.call("unmount", medium.id()); - TQStringVariantMap unmountResult; - if (reply.isValid()) { - reply.get(unmountResult); - } - if (unmountResult.contains("result") && unmountResult["result"].toBool()) { - ::exit(0); - } - else { - m_errorStr = unmountResult.contains("errStr") ? unmountResult["errStr"].toString() : i18n("Unknown unmount error."); - kdDebug() << "medium unmount " << m_errorStr << endl; - error(); - } - } - else if (args->isSet("s") || args->isSet("e")) + unmount(medium); + ::exit(0); + } + else if (args->isSet("k")) { - DCOPRef mediamanager("kded", "mediamanager"); - - /* - * We want to call mediamanager unmount before invoking eject. That's - * because unmount would provide an informative error message in case of - * failure. However, there are cases when unmount would fail - * (supermount, slackware, see bug#116209) but eject would succeed. - * Thus if unmount fails, save unmount error message and invokeEject() - * anyway. Only if both unmount and eject fail, notify the user by - * displaying the saved error message (see ejectFinished()). - */ - TQStringVariantMap unmountResult; - if (medium.isMounted()) - { - DCOPReply reply = mediamanager.call( "unmount", medium.id()); - if (reply.isValid()) { - reply.get(unmountResult); - if (unmountResult["result"].toBool()) { - reply.get(m_errorStr); - } - } - } - - // If this is an unlocked encrypted volume and there is no error yet, we try to lock it - if (unmountResult.contains("result") && unmountResult["result"].toBool() && - medium.isEncrypted() && !medium.clearDeviceUdi().isNull()) - { - DCOPReply reply = mediamanager.call( "undecrypt", medium.id()); - if (reply.isValid()) { - TQStringVariantMap undecryptResult; - reply.get(undecryptResult); - if (undecryptResult["result"].toBool()) { - reply.get(m_errorStr); - } - } - } - - if (m_errorStr.isNull()) { - invokeEject(device, true); - } - else { - error(); - } + unlock(medium); + // No call to ::exit() here because this will open up the password dialog + // ::exit() is handled in the invoked code. + } + else if (args->isSet("l")) + { + lock(medium); + ::exit(0); + } + else if (args->isSet("e")) + { + eject(medium); + ::exit(0); + } + else if (args->isSet("s")) + { + safeRemoval(medium); + ::exit(0); + } + else if (args->isSet("f")) + { + openRealFolder(medium); + ::exit(0); } else { - DCOPRef mediamanager("kded", "mediamanager"); - DCOPReply reply = mediamanager.call("mount", medium.id()); - TQStringVariantMap mountResult; - if (reply.isValid()) { - reply.get(mountResult); - } - if (mountResult.contains("result") && mountResult["result"].toBool()) { - ::exit(0); - } - else { - m_errorStr = mountResult.contains("errStr") ? mountResult["errStr"].toString() : i18n("Unknown mount error."); - error(); - } + TDECmdLineArgs::usage(); + ::exit(0); } } -void MountHelper::invokeEject(const TQString &device, bool quiet) +MountHelper::~MountHelper() { -#ifdef __TDE_HAVE_TDEHWLIB - // Try TDE HW library eject first... - TDEHardwareDevices *hwdevices = TDEGlobal::hardwareDevices(); - TDEGenericDevice *hwdevice = hwdevices->findByDeviceNode(device); - if (hwdevice->type() == TDEGenericDeviceType::Disk) { - TDEStorageDevice* sdevice = static_cast<TDEStorageDevice*>(hwdevice); - if (sdevice->ejectDrive()) { - // Success! - ::exit(0); - } - } -#endif - - // Then fall back to tdeeject if needed - TDEProcess *proc = new TDEProcess(TQT_TQOBJECT(this)); - *proc << "tdeeject"; - if (quiet) + if (m_dialog) { - *proc << "-q"; + delete m_dialog; } - *proc << device; - connect( proc, TQT_SIGNAL(processExited(TDEProcess *)), - this, TQT_SLOT( ejectFinished(TDEProcess *) ) ); - proc->start(); } -void MountHelper::ejectFinished(TDEProcess* proc) +void MountHelper::ejectFinished(TDEProcess *proc) { - /* - * If eject failed, report the error stored in m_errorStr - */ + //If eject failed, report the error stored in m_errorStr if (proc->normalExit() && proc->exitStatus() == 0) { ::exit(0); - } else { - if (m_errorStr.isEmpty()) { - if (m_isCdrom) - m_errorStr = i18n("The device was successfully unmounted, but the tray could not be opened"); - else - m_errorStr = i18n("The device was successfully unmounted, but could not be ejected"); + } + else { + if (!m_errorStr.isEmpty()) { + errorAndExit(); } -//X Comment this because the error is useless as long as the unmount is successful. -//X TQTimer::singleShot(0, this, TQT_SLOT(error())); - ::exit(0); + ::exit(0); } } @@ -262,25 +281,28 @@ void MountHelper::error() } } KMessageBox::error(0, prettyErrorString); +} + +void MountHelper::errorAndExit() +{ + error(); ::exit(1); } void MountHelper::slotSendPassword() { DCOPRef mediamanager("kded", "mediamanager"); - - DCOPReply reply = mediamanager.call( "decrypt", m_mediumId, dialog->getPassword() ); - TQStringVariantMap decryptResult; + DCOPReply reply = mediamanager.call("unlock", m_mediumId, m_dialog->getPassword()); + TQStringVariantMap unlockResult; if (reply.isValid()) { - reply.get(decryptResult); + reply.get(unlockResult); } - if (decryptResult.contains("result") && decryptResult["result"].toBool()) { + if (unlockResult.contains("result") && unlockResult["result"].toBool()) { ::exit(0); } else { - m_errorStr = decryptResult.contains("errStr") ? decryptResult["errStr"].toString() : i18n("Unknown decrypt error."); - kdDebug() << "medium decrypt " << m_errorStr << endl; - emit signalPasswordError(m_errorStr); + m_errorStr = unlockResult.contains("errStr") ? unlockResult["errStr"].toString() : i18n("Unknown unlock error."); + kdDebug() << "medium unlock " << m_errorStr << endl; error(); } } @@ -292,12 +314,14 @@ void MountHelper::slotCancel() static TDECmdLineOptions options[] = { - { "d", I18N_NOOP("Decrypt given URL"), 0 }, + { "m", I18N_NOOP("Mount given URL"), 0 }, { "u", I18N_NOOP("Unmount given URL"), 0 }, - { "m", I18N_NOOP("Mount given URL (default)"), 0 }, - { "e", I18N_NOOP("Eject given URL via tdeeject"), 0}, - { "s", I18N_NOOP("Unmount and Eject given URL (necessary for some USB devices)"), 0}, - {"!+URL", I18N_NOOP("media:/ URL to mount/unmount/eject/remove"), 0 }, + { "k", I18N_NOOP("Unlock given URL"), 0 }, + { "l", I18N_NOOP("Lock given URL"), 0 }, + { "e", I18N_NOOP("Eject given URL"), 0}, + { "s", I18N_NOOP("Safely remove (unmount and eject) given URL"), 0}, + { "f", I18N_NOOP("Open real medium folder"), 0}, + {"!+URL", I18N_NOOP("media:/URL to mount/unmount/unlock/lock/eject/remove"), 0 }, TDECmdLineLastOption }; @@ -308,13 +332,15 @@ int main(int argc, char **argv) "tdeio_media_mounthelper", "tdeio_media_mounthelper", "0.1"); - TDECmdLineArgs::addCmdLineOptions( options ); + TDECmdLineArgs::addCmdLineOptions(options); TDEGlobal::locale()->setMainCatalogue("tdeio_media"); TDEApplication::addCmdLineOptions(); + if (TDECmdLineArgs::parsedArgs()->count()==0) + { + TDECmdLineArgs::usage(); + } - if (TDECmdLineArgs::parsedArgs()->count()==0) TDECmdLineArgs::usage(); - TDEApplication *app = new MountHelper(); - + TDEApplication *app = new MountHelper(); TDEStartupInfo::appStarted(); app->dcopClient()->attach(); return app->exec(); diff --git a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h index 97df6b7e8..3cdf58488 100644 --- a/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h +++ b/tdeioslave/media/mounthelper/tdeio_media_mounthelper.h @@ -1,5 +1,5 @@ /* This file is part of the KDE project - Copyright (c) 2004 Kvin Ottens <ervin ipsquad net> + Copyright (c) 2004 Kévin Ottens <ervin ipsquad net> Parts of this file are Copyright 2003 Waldo Bastian <bastian@kde.org> @@ -29,29 +29,37 @@ #include "medium.h" class Dialog; +class TDEProcess; class MountHelper : public TDEApplication { - Q_OBJECT + TQ_OBJECT + public: MountHelper(); + ~MountHelper(); private: - const Medium findMedium(const KURL &url); - void invokeEject(const TQString &device, bool quiet=false); TQString m_errorStr; - bool m_isCdrom; TQString m_mediumId; - Dialog *dialog; + Dialog *m_dialog; + + const Medium findMedium(const TQString &device); + void error(); + + void mount(const Medium &medium); + void unmount(const Medium &medium); + void unlock(const Medium &medium); + void lock(const Medium &medium); + void eject(const Medium &medium); + void safeRemoval(const Medium &medium); + void openRealFolder(const Medium &medium); private slots: void slotSendPassword(); void slotCancel(); void ejectFinished(TDEProcess* proc); - void error(); - -signals: - void signalPasswordError(TQString errorMsg); + void errorAndExit(); }; #endif diff --git a/tdeioslave/media/mounthelper/unlockdialog.ui b/tdeioslave/media/mounthelper/unlockdialog.ui index 99a46a9ac..7b78cdb42 100644 --- a/tdeioslave/media/mounthelper/unlockdialog.ui +++ b/tdeioslave/media/mounthelper/unlockdialog.ui @@ -107,7 +107,7 @@ </property> <property name="text"> <string><p><b>%1</b> is an encrypted storage device.</p> -<p>Please enter the password to decrypt the storage device.</p></string> +<p>Please enter the password to unlock the storage device.</p></string> </property> <property name="alignment"> <set>WordBreak|AlignTop</set> @@ -155,46 +155,6 @@ </widget> </hbox> </widget> - <widget class="TQGroupBox" row="2" column="0"> - <property name="name"> - <cstring>errorBox</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>3</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="title"> - <string>Error</string> - </property> - <grid> - <property name="name"> - <cstring>unnamed</cstring> - </property> - <widget class="TQLabel" row="0" column="0"> - <property name="name"> - <cstring>errorLabel</cstring> - </property> - <property name="sizePolicy"> - <sizepolicy> - <hsizetype>3</hsizetype> - <vsizetype>3</vsizetype> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="text"> - <string></string> - </property> - <property name="alignment"> - <set>WordBreak|AlignTop</set> - </property> - </widget> - </grid> - </widget> </grid> </widget> <layoutdefaults spacing="6" margin="11"/> diff --git a/tdeioslave/media/propsdlgplugin/CMakeLists.txt b/tdeioslave/media/propsdlgplugin/CMakeLists.txt index f029b52ab..b9d4f0a7a 100644 --- a/tdeioslave/media/propsdlgplugin/CMakeLists.txt +++ b/tdeioslave/media/propsdlgplugin/CMakeLists.txt @@ -22,7 +22,11 @@ link_directories( ##### other data ################################ -install( FILES media_propsdlgplugin.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) +tde_create_translated_desktop( + SOURCE media_propsdlgplugin.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR tdeioslave-desktops +) ##### media_propsdlgplugin (module) ############# diff --git a/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop b/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop index cd2f352d2..8d460d565 100644 --- a/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop +++ b/tdeioslave/media/propsdlgplugin/media_propsdlgplugin.desktop @@ -1,102 +1,8 @@ [Desktop Entry] Type=Service +X-TDE-Library=media_propsdlgplugin +X-TDE-ServiceTypes=KPropsDlg/Plugin,media/audiocd,media/blankcd,media/blankbluray,media/blankdvd,media/hdd_mounted,media/hdd_unmounted,media/bluray_mounted,media/bluray_unmounted,media/cdrom_mounted,media/cdrom_unmounted,media/cd-r_mounted,media/cd-r_unmounted,media/cd-rw_mounted,media/cd-rw_unmounted,media/dvd_mounted,media/dvd_unmounted,media/removable_mounted,media/removable_unmounted,media/nfs_mounted,media/nfs_unmounted,media/smb_mounted,media/smb_unmounted,media/blurayvideo,media/dvdvideo,media/svcd,media/vcd,media/floppy_mounted,media/floppy_unmounted,media/floppy5_mounted,media/floppy5_unmounted,media/zip_mounted,media/zip_unmounted,media/gphoto2camera,media/camera_mounted,media/camera_unmounted + Name=Media Properties Page -Name[bg]=Страница с информация за носителя -Name[bn]=মিডিয়া বৈশিষ্ট্যাবলী পৃষ্ঠা -Name[ca]=Pàgina de propietats de suport -Name[cs]=Stránka vlastností média -Name[csb]=Starna swòjiznë media -Name[da]=Medieegenskabsside -Name[de]=Eigenschaften von Medien -Name[el]=Σελίδα ιδιοτήτων μέσων -Name[eo]=Medio-Ecoj Paĝo -Name[es]=Página de propiedades de medios -Name[et]=Andmekandjate omadused -Name[fa]=صفحۀ ویژگیهای رسانه -Name[fi]=Mediaominaisuudet -Name[fr]=Page de propriétés du média -Name[fy]=Media eigenskip side -Name[gl]=Páxina de Propiedades dos Media -Name[he]=דף מאפייני מדיה -Name[hr]=Stranica svojstva medija -Name[hu]=Médiajellemzők lap -Name[is]=Eiginleikar miðils -Name[it]=Pagina delle proprietà dei dispositivi di archiviazione -Name[ja]=メディア属性ページ -Name[kk]=Медиа қасиеттер беті -Name[km]=ទំព័រលក្ខណៈសម្បត្តិមេឌៀ -Name[lt]=Media įrenginio savybių puslapis -Name[nb]=Side for medievarsling -Name[nds]=Medienegenschappen-Siet -Name[ne]=मिडिया विशेषता पृष्ठ -Name[nl]=Pagina met media-eigenschappen -Name[nn]=Side for medieeigenskapar -Name[pa]=ਮੀਡਿਆ ਵਿਸ਼ੇਸ਼ਤਾ ਸਫ਼ਾ -Name[pl]=Strona właściwości nośnika -Name[pt]=Página de Propriedades de Suportes Físicos -Name[pt_BR]=Página de Propriedades da Mídia -Name[ro]=Pagina de proprietăți media -Name[ru]=Свойства диска -Name[sk]=Strana vlastností média -Name[sl]=Stran z lastnostmi nosilca -Name[sr]=Страна са својствима медијума -Name[sr@Latn]=Strana sa svojstvima medijuma -Name[sv]=Sida för mediaegenskaper -Name[te]=మాధ్యమ గుణాల పుట -Name[th]=หน้าคุณสมบัติของสื่อ -Name[tr]=Ortam Özellikleri Sayfası -Name[uk]=Сторінка властивостей носіїв інформації -Name[uz]=Saqlash uskunalarning xossalari -Name[uz@cyrillic]=Сақлаш ускуналарнинг хоссалари -Name[vi]=Trang tài sản phương tiện -Name[wa]=Pådje des prôpietés media -Name[zh_CN]=介质属性页面 -Name[zh_TW]=媒體內容頁 + Comment=Konqueror properties dialog plugin to configure mount behaviour -Comment[bg]=Приставка за настройване на монтирането (Konqueror) -Comment[ca]=Diàleg de propietats de l'endollable Konqueror per a configurar el comportament de muntatge -Comment[cs]=Dialog nastavení chování připojení modulu pro Konqueror -Comment[csb]=Plugins òkna swòjiznë Konquerora do kònfigùracëji zachówaniô mòntowaniô -Comment[da]=Konqueror plugin med egenskabsdialog til at indstille monteringsopførsel -Comment[de]=Konqueror-Modul zum Einstellen des Verhaltens beim Einbinden -Comment[el]=Πρόσθετο διαλόγου ιδιοτήτων του Konqueror για τη ρύθμιση της συμπεριφοράς προσάρτησης -Comment[eo]=Konkeranto eco-dialogo kromaĵo por agordi surmeto-konduton -Comment[es]=Complemento de la ventana de propiedades de Konqueror para configurar el comportamiento del montaje -Comment[et]=Konquerori seadistustedialoogi plugin andmekandjate ühendamise seadistamiseks -Comment[fa]=وصلۀ محاورۀ ویژگیهای Konqueror برای پیکربندی رفتار سوار کردن -Comment[fi]=Konquerorin ominaisuussovelma, joka tarkkailee liitospisteitä -Comment[fr]=Module de Konqueror pour configurer le comportement du montage -Comment[fy]=Konqueror eigenskip-dialooch-plugin om keppelgedrach te konfigurearjen -Comment[gl]=Extensión de diálogo de propiedades para Konqueror para configurar o comportamento das montaxes -Comment[he]=תוסף חלון מאפיינים של Konqueror לקביעת אפשרויות חיבור -Comment[hr]=Konqueror dodatak dijaloga svojstava za konfiguriranje načina pristupanja -Comment[hu]=Konqueror beállítómodul a csatlakoztatási mód megadásához -Comment[is]=Konqueror eiginleikagluggi til að stilla tengihegðun -Comment[it]=Plugin della configurazione di Konqueror per configurare il montaggio -Comment[ja]=mount の挙動を設定する Konqueror プロパティダイアログ プラグイン -Comment[kk]=Жалғау тәртібін баптайтын Konqueror қасиеттер диалогының плагин модулі -Comment[km]=កម្មវិធីជំនួយឲ្យមានប្រអប់លក្ខណៈសម្បត្តិ Konqueror ដើម្បីកំណត់រចនាសម្ព័ន្ធឥរិយាបថម៉ោន -Comment[lt]=Konqueror savybių dialogo priedas, leidžiantis konfigūruoti montavimo elgseną -Comment[nb]=Et programtillegg for å sette opp montering av enheter i Konqueror -Comment[nds]=Egenschappendialoog-Plugin för Konqueror för't Instellen vun't Inhangbedregen -Comment[ne]=माउन्ट व्यवहार कन्फिगर गर्न कन्क्वेरर विशेषता संवाद प्लगइन -Comment[nl]=Dialoogvenster voor Konqueror om het aankoppelgedrag in te stellen -Comment[nn]=Programtillegg for oppsett av montering i Konqueror -Comment[pl]=Wtyczka okna właściwości Konquerora do konfiguracji zachowania montowania -Comment[pt]='Plugin' da janela de propriedades do Konqueror, para configurar o comportamento da montagem -Comment[pt_BR]=Plug-in do diálogo de propriedades do Konqueror para configurar o comportamento da montagem -Comment[ro]=Plugin de dialog al proprietăților Konqueror pentru a configura comportarea lui mount -Comment[ru]=Модуль свойств для Konqueror, отвечающий за поведение при подключении файловых систем -Comment[sk]=Modul Konqueror dialógu vlastností pre konfiguráciu správania pripojenia -Comment[sl]=Vstavek za Konqueror s katerim se nastavlja obnašanje priklopa medijev -Comment[sr]=Прикључак са својствима Konqueror-а за подешавање понашања при монтирању -Comment[sr@Latn]=Priključak sa svojstvima Konqueror-a za podešavanje ponašanja pri montiranju -Comment[sv]=Konqueror insticksprogram med egenskapsdialogruta för att anpassa monteringsbeteende -Comment[th]=ปลั๊กอินกล่องตอบโต้ของ Konqueror ใช้เพื่อปรับแต่งพฤติกรรมการเมานท์สื่อ -Comment[uk]=Втулок вікна властивостей Konqueror для налаштування поведінки монтування -Comment[vi]=bổ sung hộp thoại tài sản Konqueror để cấu hình ứng xử gắn kết -Comment[wa]=Tchôke-divins di dvize di prôpietés Konqueror po-z apontyî l' dujhance do montaedje -Comment[zh_CN]=配置挂载行为的 Konqueror 属性对话框插件 -Comment[zh_TW]=Konqueror 內容對話框外掛程式,用於設定掛載的行為 -X-TDE-Library=media_propsdlgplugin -X-TDE-ServiceTypes=KPropsDlg/Plugin,media/audiocd,media/hdd_mounted,media/hdd_unmounted,media/hdd_encrypted_unlocked,media/cdrom_mounted,media/cdrom_unmounted,media/cdrom_encrypted_unlocked,media/cd-r_mounted,media/cd-rw_mounted,media/nfs_mounted,media/cd-r_unmounted,media/cd-r_encrypted_unlocked,media/cd-rw_unmounted,media/cd-rw_encrypted_unlocked,media/nfs_unmounted,media/removable_mounted,media/dvd_mounted,media/removable_unmounted,media/removable_encrypted_unlocked,media/dvd_unmounted,media/dvd_encrypted_unlocked,media/smb_mounted,media/dvdvideo,media/smb_unmounted,media/floppy5_mounted,media/floppy5_unmounted,media/floppy_mounted,media/zip_mounted,media/floppy_unmounted,media/zip_unmounted,media/camera_mounted,media/camera_unmounted diff --git a/tdeioslave/media/propsdlgplugin/propertiespage.cpp b/tdeioslave/media/propsdlgplugin/propertiespage.cpp index 5b54c8c5a..57fff8573 100644 --- a/tdeioslave/media/propsdlgplugin/propertiespage.cpp +++ b/tdeioslave/media/propsdlgplugin/propertiespage.cpp @@ -64,43 +64,43 @@ PropertiesPage::PropertiesPage(TQWidget* parent, const TQString &_id) option_ro->hide(); else option_ro->setChecked(options["ro"] == "true"); - connect( option_ro, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_ro, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("quiet")) option_quiet->hide(); else option_quiet->setChecked(options["quiet"] == "true"); - connect( option_quiet, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_quiet, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("sync")) option_sync->hide(); else option_sync->setChecked(options["sync"] == "true"); - connect( option_sync, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_sync, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("atime")) option_atime->hide(); else option_atime->setChecked(options["atime"] == "true"); - connect( option_atime, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_atime, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("flush")) option_flush->hide(); else option_flush->setChecked(options["flush"] == "true"); - connect( option_flush, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_flush, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("utf8")) option_utf8->hide(); else option_utf8->setChecked(options["utf8"] == "true"); - connect( option_utf8, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_utf8, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("uid")) option_uid->hide(); else option_uid->setChecked(options["uid"] == "true"); - connect( option_uid, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_uid, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); if (!options.contains("shortname")) { @@ -115,7 +115,7 @@ PropertiesPage::PropertiesPage(TQWidget* parent, const TQString &_id) option_shortname->setCurrentItem(index); break; } - connect( option_shortname, TQT_SIGNAL( activated(int) ), TQT_SIGNAL( changed() ) ); + connect( option_shortname, TQ_SIGNAL( activated(int) ), TQ_SIGNAL( changed() ) ); } if (!options.contains("journaling")) @@ -131,14 +131,14 @@ PropertiesPage::PropertiesPage(TQWidget* parent, const TQString &_id) option_journaling->setCurrentItem(index); break; } - connect( option_journaling, TQT_SIGNAL( activated(int) ), TQT_SIGNAL( changed() ) ); + connect( option_journaling, TQ_SIGNAL( activated(int) ), TQ_SIGNAL( changed() ) ); } label_filesystem->setText(i18n("Filesystem: %1").arg(options["filesystem"])); option_mountpoint->setText(options["mountpoint"]); - connect( option_mountpoint, TQT_SIGNAL( textChanged( const TQString &) ), TQT_SIGNAL( changed() ) ); + connect( option_mountpoint, TQ_SIGNAL( textChanged( const TQString &) ), TQ_SIGNAL( changed() ) ); option_automount->setChecked(options["automount"] == "true"); - connect( option_automount, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_automount, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); bool has_groupbox_specific = true; if (!options.contains("journaling") && @@ -152,11 +152,11 @@ PropertiesPage::PropertiesPage(TQWidget* parent, const TQString &_id) // The order is important - we want groupboxes to hide automatically depending on use_defaults // but don't want to emit changed() until user actually changes something. - connect( option_defaults, TQT_SIGNAL( toggled(bool) ), groupbox_generic, SLOT( setHidden(bool) ) ); + connect( option_defaults, TQ_SIGNAL( toggled(bool) ), groupbox_generic, TQ_SLOT( setHidden(bool) ) ); if (has_groupbox_specific) - connect( option_defaults, TQT_SIGNAL( toggled(bool) ), groupbox_specific, SLOT( setHidden(bool) ) ); + connect( option_defaults, TQ_SIGNAL( toggled(bool) ), groupbox_specific, TQ_SLOT( setHidden(bool) ) ); option_defaults->setChecked(options["use_defaults"] == "true"); - connect( option_defaults, TQT_SIGNAL( stateChanged(int) ), TQT_SIGNAL( changed() ) ); + connect( option_defaults, TQ_SIGNAL( stateChanged(int) ), TQ_SIGNAL( changed() ) ); } else { diff --git a/tdeioslave/media/propsdlgplugin/propertiespage.h b/tdeioslave/media/propsdlgplugin/propertiespage.h index 50a480719..33baef40f 100644 --- a/tdeioslave/media/propsdlgplugin/propertiespage.h +++ b/tdeioslave/media/propsdlgplugin/propertiespage.h @@ -28,7 +28,7 @@ class Medium; class PropertiesPage : public PropertiesPageGUI { - Q_OBJECT + TQ_OBJECT public: PropertiesPage(TQWidget* parent, const TQString &_id); diff --git a/tdeioslave/media/propsdlgplugin/propertiespagegui.ui b/tdeioslave/media/propsdlgplugin/propertiespagegui.ui index 2a6ff899e..5d461b406 100644 --- a/tdeioslave/media/propsdlgplugin/propertiespagegui.ui +++ b/tdeioslave/media/propsdlgplugin/propertiespagegui.ui @@ -372,12 +372,12 @@ Display the short name as is; store a long name when the short name is not all u <variables> <variable>bool m_hasChanged;</variable> </variables> -<Q_SIGNALS> +<signals> <signal>changed()</signal> -</Q_SIGNALS> -<Q_SLOTS> +</signals> +<slots> <slot access="protected">changedSlot()</slot> -</Q_SLOTS> +</slots> <functions> <function returnType="bool">hasChanged()</function> </functions> diff --git a/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp index ea830d2e1..dce33d786 100644 --- a/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp +++ b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.cpp @@ -70,10 +70,10 @@ PropsDlgSharePlugin::PropsDlgSharePlugin( KPropertiesDialog *dlg, d = new Private(); d->page = new PropertiesPage(vbox, Medium::create(reply).id()); - connect(d->page, TQT_SIGNAL(changed()), - TQT_SLOT(slotChanged())); + connect(d->page, TQ_SIGNAL(changed()), + TQ_SLOT(slotChanged())); - // TQTimer::singleShot(100, this, TQT_SLOT(slotChanged())); + // TQTimer::singleShot(100, this, TQ_SLOT(slotChanged())); } diff --git a/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h index 87b7d1e13..e2ed740a7 100644 --- a/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h +++ b/tdeioslave/media/propsdlgplugin/propsdlgshareplugin.h @@ -24,7 +24,7 @@ class PropsDlgSharePlugin : public KPropsDlgPlugin { -Q_OBJECT +TQ_OBJECT public: PropsDlgSharePlugin( KPropertiesDialog *dlg, const char *, const TQStringList & ); virtual ~PropsDlgSharePlugin(); diff --git a/tdeioslave/media/services/CMakeLists.txt b/tdeioslave/media/services/CMakeLists.txt index 055bfdf48..932188725 100644 --- a/tdeioslave/media/services/CMakeLists.txt +++ b/tdeioslave/media/services/CMakeLists.txt @@ -11,7 +11,12 @@ ##### other data ################################ -install( FILES - media_decrypt.desktop media_mount.desktop media_unmount.desktop +tde_create_translated_desktop( + SOURCE + media_mount.desktop media_unmount.desktop + media_unlock.desktop media_lock.desktop media_eject.desktop media_safelyremove.desktop - DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus ) + media_realfolder.desktop + DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus + PO_DIR tdeioslave-desktops +) diff --git a/tdeioslave/media/services/Makefile.am b/tdeioslave/media/services/Makefile.am index c744934f2..e08b06be8 100644 --- a/tdeioslave/media/services/Makefile.am +++ b/tdeioslave/media/services/Makefile.am @@ -1,3 +1,3 @@ servicesdir = $(kde_datadir)/konqueror/servicemenus -services_DATA = media_decrypt.desktop media_mount.desktop media_unmount.desktop media_eject.desktop media_safelyremove.desktop +services_DATA = media_mount.desktop media_unmount.desktop media_unlock.desktop media_lock.desktop media_eject.desktop media_safelyremove.desktop media_realfolder.desktop diff --git a/tdeioslave/media/services/media_decrypt.desktop b/tdeioslave/media/services/media_decrypt.desktop deleted file mode 100644 index 54580e86c..000000000 --- a/tdeioslave/media/services/media_decrypt.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -X-TDE-ServiceTypes=media/removable_encrypted_locked,media/hdd_encrypted_locked,media/cdrom_encrypted_locked,media/cd-rw_encrypted_locked,media/dvd_encrypted_locked -Actions=MediaUnlock; -X-TDE-Priority=TopLevel -X-TDE-MediaNotifierHide=true - -[Desktop Action MediaUnlock] -Exec=tdeio_media_mounthelper -k %u -Icon=decrypted -Name=Unlock diff --git a/tdeioslave/media/services/media_eject.desktop b/tdeioslave/media/services/media_eject.desktop index 81585520a..0bb128656 100644 --- a/tdeioslave/media/services/media_eject.desktop +++ b/tdeioslave/media/services/media_eject.desktop @@ -1,90 +1,10 @@ [Desktop Entry] -X-TDE-ServiceTypes=media/cdrom_mounted,media/cdrom_unmounted,media/cdrom_encrypted_unlocked,media/cdrom_encrypted_locked,media/cd-r_mounted,media/cd-r_unmounted,media/cd-r_encrypted_unlocked,media/cd-r_encrypted_locked,media/cd-rw_mounted,media/cd-rw_unmounted,media/cd-rw_encrypted_unlocked,media/cd-rw_encrypted_locked,media/dvd_mounted,media/dvd_unmounted,media/dvd_encrypted_unlocked,media/dvd_encrypted_locked,media/audiocd,media/blankcd,media/blankdvd,media/dvdvideo,media/svcd,media/vcd +X-TDE-ServiceTypes=media/bluray_mounted,media/bluray_unmounted,media/bluray_encrypted_locked,media/bluray_encrypted_unlocked,media/cdrom_mounted,media/cdrom_unmounted,media/cdrom_encrypted_locked,media/cdrom_encrypted_unlocked,media/cd-r_mounted,media/cd-r_unmounted,media/cd-r_encrypted_locked,media/cd-r_encrypted_unlocked,media/cd-rw_mounted,media/cd-rw_unmounted,media/cd-rw_encrypted_locked,media/cd-rw_encrypted_unlocked,media/dvd_mounted,media/dvd_unmounted,media/dvd_encrypted_locked,media/dvd_encrypted_unlocked,media/audiocd,media/blankbluray,media/blankcd,media/blankdvd,media/dvdvideo,media/svcd,media/vcd Actions=MediaEject; X-TDE-Priority=TopLevel X-TDE-MediaNotifierHide=true [Desktop Action MediaEject] -Name=Eject -Name[af]=Uitskiet -Name[ar]=أقذف -Name[az]=Çıxart -Name[be]=Вызваліць -Name[bg]=Изваждане -Name[bn]=ইজেক্ট -Name[br]=Stlepel -Name[bs]=Izbaci -Name[ca]=Expulsa -Name[cs]=Vysunout -Name[csb]=Wësënie -Name[cy]=Allfwrw -Name[da]=Skub ud -Name[de]=Auswerfen -Name[el]=Εξαγωγή -Name[eo]=Eligo -Name[es]=Expulsar -Name[et]=Väljastamine -Name[eu]=Egotzi -Name[fa]=پس زدن -Name[fi]=Poista -Name[fr]=Éjecter -Name[fy]=Utsmytknop -Name[ga]=Díchuir -Name[gl]=Expulsar -Name[he]=הוצא -Name[hi]=बाहर -Name[hr]=Izbaci -Name[hu]=Kidobás -Name[is]=Henda út -Name[it]=Espelli -Name[ja]=取り出し -Name[ka]=CD-ს ამოღება -Name[kk]=Алып-шығару -Name[km]=ច្រានចេញ -Name[ko]=꺼내기 -Name[lo]=ເອົາແຜ່ນອອກ -Name[lt]=Išmesti -Name[lv]=Izņemt -Name[mk]=Извади -Name[mn]=Гаргах -Name[ms]=Lenting -Name[mt]=Iftaħ -Name[nb]=Løs ut -Name[nds]=Rutsmieten -Name[ne]=निकाल्नुहोस् -Name[nl]=Uitwerpen -Name[nn]=Løys ut -Name[nso]=Ntsha -Name[oc]=Expulsa -Name[pa]=ਬਾਹਰ ਕੱਢੋ -Name[pl]=Wysuń -Name[pt]=Ejectar -Name[pt_BR]=Ejetar -Name[ro]=Ejectează -Name[ru]=Извлечь CD -Name[rw]=Gusohora -Name[se]=Bálkes olggos -Name[sk]=Vysunúť -Name[sl]=Izvrzi -Name[sr]=Избаци -Name[sr@Latn]=Izbaci -Name[ss]=Khafuna -Name[sv]=Mata ut -Name[ta]=வெளித்தள் -Name[te]=ఎజెక్ట్ -Name[tg]=Ихроҷ -Name[th]=เอาแผ่นออก -Name[tr]=Çıkart -Name[tt]=Çığar -Name[uk]=Виштовхнути -Name[uz]=Chiqarish -Name[uz@cyrillic]=Чиқариш -Name[ven]=Bvisa -Name[vi]=Đẩy đĩa ra -Name[wa]=Fé rexhe -Name[xh]=Khuphela ngaphandle -Name[zh_CN]=弹出 -Name[zh_TW]=退出 -Name[zu]=Khipha Exec=tdeio_media_mounthelper -e %u - +Icon=player_eject +Name=Eject diff --git a/tdeioslave/media/services/media_lock.desktop b/tdeioslave/media/services/media_lock.desktop new file mode 100644 index 000000000..d57565312 --- /dev/null +++ b/tdeioslave/media/services/media_lock.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +X-TDE-ServiceTypes=media/bluray_encrypted_unlocked,media/cdrom_encrypted_unlocked,media/cd-r_encrypted_unlocked,media/cd-rw_encrypted_unlocked,media/dvd_encrypted_unlocked,media/hdd_encrypted_unlocked,media/removable_encrypted_unlocked +Actions=MediaLock; +X-TDE-Priority=TopLevel +X-TDE-MediaNotifierHide=true + +[Desktop Action MediaLock] +Exec=tdeio_media_mounthelper -l %u +Icon=encrypted +Name=Lock diff --git a/tdeioslave/media/services/media_mount.desktop b/tdeioslave/media/services/media_mount.desktop index cbd663777..f018cfd18 100644 --- a/tdeioslave/media/services/media_mount.desktop +++ b/tdeioslave/media/services/media_mount.desktop @@ -1,87 +1,10 @@ [Desktop Entry] -X-TDE-ServiceTypes=media/cdrom_unmounted,media/cdrom_encrypted_unlocked,media/cd-rw_unmounted,media/cd-rw_encrypted_unlocked,media/dvd_unmounted,media/dvd_encrypted_unlocked,media/floppy5_unmounted,media/floppy_unmounted,media/hdd_unmounted,media/hdd_encrypted_unlocked,media/nfs_unmounted,media/removable_unmounted,media/removable_encrypted_unlocked,media/smb_unmounted,media/zip_unmounted,media/camera_unmounted +X-TDE-ServiceTypes=media/bluray_unmounted,media/camera_unmounted,media/cdrom_unmounted,media/cd-r_unmounted,media/cd-rw_unmounted,media/dvd_unmounted,media/floppy5_unmounted,media/floppy_unmounted,media/hdd_unmounted,media/nfs_unmounted,media/removable_unmounted,media/smb_unmounted,media/zip_unmounted,media/audiocd,media/blurayvideo,media/dvdvideo,media/svcd,media/vcd Actions=MediaMount; X-TDE-Priority=TopLevel -X-TDE-MediaNotifierHide=true +X-TDE-MediaNotifierHide=false [Desktop Action MediaMount] -Name=Mount -Name[af]=Koppel -Name[ar]=ركِب -Name[az]=Bağla -Name[be]=Прымацаваць -Name[bg]=Монтиране -Name[bn]=মাউন্ট -Name[br]=Marc'hañ -Name[bs]=Montiraj -Name[ca]=Munta -Name[cs]=Připojit -Name[csb]=Mòntujë -Name[cy]=Gosod -Name[da]=Montér -Name[de]=Laufwerk einbinden -Name[el]=Προσάρτηση -Name[eo]=Surmeti -Name[es]=Montar -Name[et]=Ühenda -Name[eu]=Muntatu -Name[fa]=سوار کردن -Name[fi]=Liitä -Name[fr]=Monter -Name[fy]=Oankeppelje (mount) -Name[ga]=Feistigh -Name[gl]=Montar -Name[he]=חבר -Name[hi]=माउन्ट -Name[hr]=Pristupi -Name[hsb]=montować -Name[hu]=Csatlakoztatás -Name[is]=Tengja -Name[it]=Monta -Name[ja]=マウント -Name[ka]=მონტირება -Name[kk]=Тіркеу -Name[km]=រៀបចំ -Name[lo]=ຈໍພາບ -Name[lt]=Montuoti -Name[lv]=Piemontēt -Name[mk]=Монтирај -Name[mn]=Залгах -Name[ms]=Lekap -Name[mt]=Immonta -Name[nb]=Monter -Name[nds]=Inhangen -Name[ne]=माउन्ट -Name[nl]=Aankoppelen (mount) -Name[nn]=Monter -Name[nso]=Nameletsa -Name[pa]=ਮਾਊਟ -Name[pl]=Zamontuj -Name[pt]=Montar -Name[pt_BR]=Montar -Name[ro]=Montează -Name[ru]=Подключить -Name[rw]=Gushyiramo -Name[se]=Čana -Name[sk]=Pripojiť -Name[sl]=Priklopi -Name[sr]=Монтирај -Name[sr@Latn]=Montiraj -Name[sv]=Montera -Name[ta]=ஏற்று -Name[tg]=Васл кунӣ -Name[th]=เม้านท์ -Name[tr]=Bağla -Name[tt]=Bäyläp quy -Name[uk]=Змонтувати -Name[uz]=Ulash -Name[uz@cyrillic]=Улаш -Name[ven]=Gonya -Name[vi]=Kết nối -Name[wa]=Monter -Name[xh]=Layisha -Name[zh_CN]=挂载 -Name[zh_TW]=掛載 -Name[zu]=Yenyusa Exec=tdeio_media_mounthelper -m %u - +Icon=drive-harddisk-mounted +Name=Mount diff --git a/tdeioslave/media/services/media_realfolder.desktop b/tdeioslave/media/services/media_realfolder.desktop new file mode 100644 index 000000000..a89066c53 --- /dev/null +++ b/tdeioslave/media/services/media_realfolder.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +X-TDE-ServiceTypes=media/bluray_mounted,media/bluray_unmounted,media/camera_mounted,media/camera_unmounted,media/cdrom_mounted,media/cdrom_unmounted,media/cd-r_mounted,media/cd-r_unmounted,media/cd-rw_mounted,media/cd-rw_unmounted,media/dvd_mounted,media/dvd_unmounted,media/floppy5_mounted,media/floppy5_unmounted,media/floppy_mounted,media/floppy_unmounted,media/hdd_mounted,media/hdd_unmounted,media/nfs_mounted,media/nfs_unmounted,media/removable_mounted,media/removable_unmounted,media/smb_mounted,media/smb_unmounted,media/zip_mounted,media/zip_unmounted,media/audiocd,media/blurayvideo,media/dvdvideo,media/svcd,media/vcd +Actions=MediaRealFolder +X-TDE-Priority=TopLevel +X-TDE-MediaNotifierHide=false + +[Desktop Action MediaRealFolder] +Exec=tdeio_media_mounthelper -f %u +Icon=folder_red +Name=Open Medium System Folder diff --git a/tdeioslave/media/services/media_safelyremove.desktop b/tdeioslave/media/services/media_safelyremove.desktop index 1f5558f01..cf7191c8b 100644 --- a/tdeioslave/media/services/media_safelyremove.desktop +++ b/tdeioslave/media/services/media_safelyremove.desktop @@ -1,75 +1,10 @@ [Desktop Entry] -X-TDE-ServiceTypes=media/removable_mounted,media/removable_unmounted,media/removable_encrypted_unlocked,media/camera_mounted,media/camera_unmounted +X-TDE-ServiceTypes=media/bluray_mounted,media/bluray_unmounted,media/bluray_encrypted_locked,media/bluray_encrypted_unlocked,media/cdrom_mounted,media/cdrom_unmounted,media/cdrom_encrypted_locked,media/cdrom_encrypted_unlocked,media/cd-r_mounted,media/cd-r_unmounted,media/cd-r_encrypted_locked,media/cd-r_encrypted_unlocked,media/cd-rw_mounted,media/cd-rw_unmounted,media/cd-rw_encrypted_locked,media/cd-rw_encrypted_unlocked,media/dvd_mounted,media/dvd_unmounted,media/dvd_encrypted_locked,media/dvd_encrypted_unlocked,media/audiocd,media/blankbluray,media/blankcd,media/blankdvd,media/dvdvideo,media/svcd,media/vcd,media/camera_mounted,media/camera_unmounted,media/removable_mounted,media/removable_unmounted,media/removable_encrypted_locked,media/removable_encrypted_unlocked Actions=MediaSafelyRemove; X-TDE-Priority=TopLevel X-TDE-MediaNotifierHide=true [Desktop Action MediaSafelyRemove] -Name=Safely Remove -Name[af]=Verwyder veilig -Name[ar]=أحذف بأمان -Name[be]=Бяспечна адлучыць -Name[bg]=Безопасно изваждане -Name[bn]=নিরাপদভাবে সরাও -Name[bs]=Sigurno ukloni -Name[ca]=Extreu amb seguretat -Name[cs]=Bezpečně odstranit -Name[csb]=Remôj na bezpieczny ôrt -Name[da]=Fjern sikkert -Name[de]=Sicher entfernen -Name[el]=Ασφαλής αφαίρεση -Name[eo]=Sekura Forigo -Name[es]=Extracción segura -Name[et]=Eemalda turvaliselt -Name[eu]=Atera arriskurik gabe -Name[fa]=حذف امن -Name[fi]=Poista turvallisesti -Name[fr]=Enlever en toute sécurité -Name[fy]=Feilich ferwiderje -Name[ga]=Bain Amach go Sábháilte -Name[gl]=Eliminar de Maneira Segura -Name[he]=שליפה בבטחה -Name[hr]=Slobodno uklonite -Name[hu]=Biztonságos leválasztás -Name[is]=Fjarlægja öruggt -Name[it]=Rimozione sicura -Name[ja]=安全に取り除く -Name[ka]=უსაფრთხოდ გამორთვა -Name[kk]=Қауіпсіз алып шығу -Name[km]=យកចេញដោយសុវត្ថិភាព -Name[lt]=Saugiai pašalinti -Name[mk]=Безбедно отстрани -Name[ms]=Buang Dengan Selamat -Name[nb]=Sikker fjerning -Name[nds]=Seker rutnehmen -Name[ne]=सुरक्षीत रुपमा हटाउनुहोस् -Name[nl]=Veilig verwijderen -Name[nn]=Trygg fjerning -Name[pa]=ਸੁਰੱਖਿਅਤ ਹਟਾਓ -Name[pl]=Usuń w sposób bezpieczny -Name[pt]=Retirar com Segurança -Name[pt_BR]=Remover de Modo Seguro -Name[ro]=Scoate în siguranță -Name[ru]=Безопасно извлечь -Name[rw]=Gukuramo Neza -Name[se]=Dorvvošlaš eretváldin -Name[sk]=Bezpečne odpojiť -Name[sl]=Varno odstrani -Name[sr]=Безбедно уклони -Name[sr@Latn]=Bezbedno ukloni -Name[sv]=Säker urkoppling -Name[ta]=பாதுகாப்பாக நீக்கு -Name[te]=జాగరత్తగా తియి -Name[tg]=Баровардани бехетар -Name[th]=ถอดออกอย่างปลอดภัย -Name[tr]=Güvenli Kaldır -Name[tt]=İmin Çığaru -Name[uk]=Безпечно вилучити -Name[uz]=Ehtiyotlik bilan uzish -Name[uz@cyrillic]=Эҳтиётлик билан узиш -Name[vi]=Gỡ ra An toàn -Name[wa]=Ositer e såvrité -Name[zh_CN]=安全删除 -Name[zh_TW]=安全的移除 Exec=tdeio_media_mounthelper -s %u - +Icon=player_safe_removal +Name=Safely Remove diff --git a/tdeioslave/media/services/media_unlock.desktop b/tdeioslave/media/services/media_unlock.desktop new file mode 100644 index 000000000..8d15cd46e --- /dev/null +++ b/tdeioslave/media/services/media_unlock.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +X-TDE-ServiceTypes=media/bluray_encrypted_locked,media/cdrom_encrypted_locked,media/cd-r_encrypted_locked,media/cd-rw_encrypted_locked,media/dvd_encrypted_locked,media/hdd_encrypted_locked,media/removable_encrypted_locked +Actions=MediaUnlock; +X-TDE-Priority=TopLevel +X-TDE-MediaNotifierHide=false + +[Desktop Action MediaUnlock] +Exec=tdeio_media_mounthelper -k %u +Icon=decrypted +Name=Unlock diff --git a/tdeioslave/media/services/media_unmount.desktop b/tdeioslave/media/services/media_unmount.desktop index e96be5e94..38370dd25 100644 --- a/tdeioslave/media/services/media_unmount.desktop +++ b/tdeioslave/media/services/media_unmount.desktop @@ -1,87 +1,10 @@ [Desktop Entry] -X-TDE-ServiceTypes=media/removable_mounted,media/cdrom_mounted,media/cd-r_mounted,media/cd-rw_mounted,media/dvd_mounted,media/floppy5_mounted,media/floppy_mounted,media/hdd_mounted,media/nfs_mounted,media/smb_mounted,media/zip_mounted,media/vcd,media/svcd,media/dvdvideo,media/camera_mounted +X-TDE-ServiceTypes=media/bluray_mounted,media/camera_mounted,media/cdrom_mounted,media/cd-r_mounted,media/cd-rw_mounted,media/dvd_mounted,media/floppy5_mounted,media/floppy_mounted,media/hdd_mounted,media/nfs_mounted,media/removable_mounted,media/smb_mounted,media/zip_mounted,media/audiocd,media/blurayvideo,media/dvdvideo,media/svcd,media/vcd Actions=MediaUnmount; X-TDE-Priority=TopLevel X-TDE-MediaNotifierHide=true [Desktop Action MediaUnmount] -Name=Unmount -Name[af]=Ontkoppel -Name[ar]=أزل التركيب -Name[az]=Ayır -Name[be]=Адмацаваць -Name[bg]=Демонтиране -Name[bn]=আনমাউন্ট -Name[br]=Divarc'hañ -Name[bs]=Demontiraj -Name[ca]= Desmunta -Name[cs]=Odpojit -Name[csb]=Òdmòntujë -Name[cy]=Dadosod -Name[da]=Afmontér -Name[de]=Laufwerkeinbindung lösen -Name[el]=Αποπροσάρτηση -Name[eo]=Demeti -Name[es]=Desmontar -Name[et]=Lahuta -Name[eu]=Desmuntatu -Name[fa]=پیاده کردن -Name[fi]=Irrota -Name[fr]=Libérer -Name[fy]=Ofkeppelje (unmount) -Name[ga]=Dífheistigh -Name[gl]=Desmontar -Name[he]=נתק -Name[hi]=अनमाउन्ट -Name[hr]=Napusti -Name[hsb]=Wotmontować -Name[hu]=Leválasztás -Name[is]=Aftengja -Name[it]=Smonta -Name[ja]=マウント解除 -Name[ka]=დემონტირება -Name[kk]=Тіркеуден шығару -Name[km]=មិនរៀបចំ -Name[lo]=ຫັງກາລີ -Name[lt]=Išmontuoti -Name[lv]=Nomontēt -Name[mk]=Одмонтирај -Name[mn]=Салгах -Name[ms]=Nyahlekap -Name[mt]=Żmonta -Name[nb]=Avmonter -Name[nds]=Afhangen -Name[ne]=अनमाउन्ट -Name[nl]=Afkoppelen (unmount) -Name[nn]=Avmonter -Name[nso]=Theosa -Name[pa]=ਅਨਮਾਉਟ -Name[pl]=Odmontuj -Name[pt]=Desmontar -Name[pt_BR]=Desmontar -Name[ro]=Demontează -Name[ru]=Отключить -Name[rw]=Gukuramo -Name[se]=Gálgga -Name[sk]=Odpojiť -Name[sl]=Odklopi -Name[sr]=Демонтирај -Name[sr@Latn]=Demontiraj -Name[sv]=Avmontera -Name[ta]=வெளியேற்று -Name[tg]=Ҷудо кунӣ -Name[th]=เลิกเม้านท์ -Name[tr]=Ayır -Name[tt]=Bäyläwne çiş -Name[uk]=Демонтувати -Name[uz]=Uzish -Name[uz@cyrillic]=Узиш -Name[ven]=Usa gonya -Name[vi]=Gỡ ra -Name[wa]=Dismonter -Name[xh]=Sukuyilayisha -Name[zh_CN]=卸载 -Name[zh_TW]=卸載 -Name[zu]=Yehlisa Exec=tdeio_media_mounthelper -u %u - +Icon=drive-harddisk-unmounted +Name=Unmount diff --git a/tdeioslave/media/tdecmodule/CMakeLists.txt b/tdeioslave/media/tdecmodule/CMakeLists.txt index 80128471e..8c4020452 100644 --- a/tdeioslave/media/tdecmodule/CMakeLists.txt +++ b/tdeioslave/media/tdecmodule/CMakeLists.txt @@ -25,7 +25,10 @@ link_directories( ##### other data ################################ -install( FILES media.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +tde_create_translated_desktop( + SOURCE media.desktop + PO_DIR tdeioslave-desktops +) ##### kcm_media (module) ######################## diff --git a/tdeioslave/media/tdecmodule/main.cpp b/tdeioslave/media/tdecmodule/main.cpp index e2d367e7d..dabac39aa 100644 --- a/tdeioslave/media/tdecmodule/main.cpp +++ b/tdeioslave/media/tdecmodule/main.cpp @@ -49,13 +49,13 @@ MediaModule::MediaModule( TQWidget *parent, const char *name, const TQStringList m_notifierModule = new NotifierModule( this, "notifier" ); tab->addTab( m_notifierModule, i18n( "&Notifications" ) ); - connect( m_notifierModule, TQT_SIGNAL( changed( bool ) ), - this, TQT_SLOT( moduleChanged( bool ) ) ); + connect( m_notifierModule, TQ_SIGNAL( changed( bool ) ), + this, TQ_SLOT( moduleChanged( bool ) ) ); m_managerModule = new ManagerModule( this, "manager" ); tab->addTab( m_managerModule, i18n( "&Advanced" ) ); - connect( m_managerModule, TQT_SIGNAL( changed( bool ) ), - this, TQT_SLOT( moduleChanged( bool ) ) ); + connect( m_managerModule, TQ_SIGNAL( changed( bool ) ), + this, TQ_SLOT( moduleChanged( bool ) ) ); diff --git a/tdeioslave/media/tdecmodule/main.h b/tdeioslave/media/tdecmodule/main.h index 5052d58eb..29d9eb21f 100644 --- a/tdeioslave/media/tdecmodule/main.h +++ b/tdeioslave/media/tdecmodule/main.h @@ -24,7 +24,7 @@ class MediaModule : public TDECModule { - Q_OBJECT + TQ_OBJECT public: MediaModule( TQWidget *parent, const char *name, const TQStringList& ); diff --git a/tdeioslave/media/tdecmodule/managermodule.cpp b/tdeioslave/media/tdecmodule/managermodule.cpp index 6478ee2a8..03a5ea500 100644 --- a/tdeioslave/media/tdecmodule/managermodule.cpp +++ b/tdeioslave/media/tdecmodule/managermodule.cpp @@ -44,13 +44,6 @@ ManagerModule::ManagerModule( TQWidget* parent, const char* name ) addConfig( MediaManagerSettings::self(), view ); -#ifndef COMPILE_HALBACKEND - TQString hal_text = view->kcfg_HalBackendEnabled->text(); - hal_text += " ("+i18n("No support for HAL on this system")+")"; - view->kcfg_HalBackendEnabled->setText( hal_text ); -#endif - view->kcfg_HalBackendEnabled->setEnabled( false ); - #ifndef COMPILE_LINUXCDPOLLING TQString poll_text = view->kcfg_CdPollingEnabled->text(); poll_text += " ("+i18n("No support for CD polling on this system")+")"; @@ -58,16 +51,16 @@ ManagerModule::ManagerModule( TQWidget* parent, const char* name ) #endif view->kcfg_CdPollingEnabled->setEnabled( false ); - connect( view->option_automount, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_ro, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_quiet, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_flush, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_uid, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_utf8, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_sync, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_atime, SIGNAL( stateChanged(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_shortname, SIGNAL( activated(int) ), this, SLOT( emitChanged() ) ); - connect( view->option_journaling, SIGNAL( activated(int) ), this, SLOT( emitChanged() ) ); + connect( view->option_automount, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_ro, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_quiet, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_flush, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_uid, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_utf8, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_sync, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_atime, TQ_SIGNAL( stateChanged(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_shortname, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( emitChanged() ) ); + connect( view->option_journaling, TQ_SIGNAL( activated(int) ), this, TQ_SLOT( emitChanged() ) ); load(); } @@ -98,7 +91,7 @@ void ManagerModule::load() else view->option_atime->setNoChange(); - QString value; + TQString value; value = config.readEntry("shortname", "lower").lower(); for (int i = 0; i < view->option_shortname->count(); i++) @@ -140,13 +133,12 @@ void ManagerModule::save() rememberSettings(); - //Well... reloadBackends is buggy with HAL, it seems to be linked - //to a bug in the unmaintained Qt3 DBUS binding ;-/ - //DCOPRef mediamanager( "kded", "mediamanager" ); - //DCOPReply reply = mediamanager.call( "reloadBackends" ); - - // So we use this hack instead... DCOPRef kded( "kded", "kded" ); + // DCOPReply reply = mediamanager.call( "reloadBackends" ); + // Well... reloadBackends had issues with HAL, it seems it was linked + // to a bug in the unmaintained Qt3 DBUS binding, but it is not quite clear. + // It may be ok now that HAL is no longer supported but needs to be tested. + // So we use this hack instead... kded.call( "unloadModule", "mediamanager" ); kded.call( "loadModule", "mediamanager" ); diff --git a/tdeioslave/media/tdecmodule/managermodule.h b/tdeioslave/media/tdecmodule/managermodule.h index a0a384675..ae79e8d78 100644 --- a/tdeioslave/media/tdecmodule/managermodule.h +++ b/tdeioslave/media/tdecmodule/managermodule.h @@ -27,7 +27,7 @@ class ManagerModuleView; class ManagerModule : public TDECModule { - Q_OBJECT + TQ_OBJECT public: ManagerModule( TQWidget* parent = 0, const char* name = 0); diff --git a/tdeioslave/media/tdecmodule/managermoduleview.ui b/tdeioslave/media/tdecmodule/managermoduleview.ui index febef70f7..748cd825c 100644 --- a/tdeioslave/media/tdecmodule/managermoduleview.ui +++ b/tdeioslave/media/tdecmodule/managermoduleview.ui @@ -21,46 +21,46 @@ </property> <widget class="TQCheckBox"> <property name="name"> - <cstring>kcfg_HalBackendEnabled</cstring> + <cstring>kcfg_CdPollingEnabled</cstring> </property> <property name="text"> - <string>Enable HAL backend</string> + <string>Enable CD polling</string> </property> <property name="whatsThis" stdset="0"> - <string>Select this if you want to enable the Hardware Abstraction Layer (http://hal.freedesktop.org/wiki/Software/hal) support.</string> + <string>Select this to enable the CD polling.</string> </property> </widget> <widget class="TQCheckBox"> <property name="name"> - <cstring>kcfg_CdPollingEnabled</cstring> + <cstring>kcfg_AutostartEnabled</cstring> </property> <property name="text"> - <string>Enable CD polling</string> + <string>Enable medium application autostart after mount</string> </property> <property name="whatsThis" stdset="0"> - <string>Select this to enable the CD polling.</string> + <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_AutostartEnabled</cstring> + <cstring>kcfg_NotificationPopupsEnabled</cstring> </property> <property name="text"> - <string>Enable medium application autostart after mount</string> + <string>Enable notification dialog popups</string> </property> <property name="whatsThis" stdset="0"> - <string>Select this if you want to enable application autostart after mounting a device.</string> + <string>Deselect this if you do not want action request dialog popups to be generated when devices are plugged in.</string> </property> </widget> <widget class="TQCheckBox"> <property name="name"> - <cstring>kcfg_NotificationPopupsEnabled</cstring> + <cstring>kcfg_DeviceMonitorPopupsEnabled</cstring> </property> <property name="text"> - <string>Enable notification popups</string> + <string>Enable device monitor 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> + <string>Deselect this if you do not want device monitoring popups to be generated when devices are added, modified or removed.</string> </property> </widget> <widget class="TQGroupBox"> @@ -337,19 +337,11 @@ Display the short name as is; store a long name when the short name is not all u </spacer> </vbox> </widget> -<connections> - <connection> - <sender>kcfg_HalBackendEnabled</sender> - <signal>toggled(bool)</signal> - <receiver>groupbox_mount</receiver> - <slot>setEnabled(bool)</slot> - </connection> -</connections> <tabstops> - <tabstop>kcfg_HalBackendEnabled</tabstop> <tabstop>kcfg_CdPollingEnabled</tabstop> <tabstop>kcfg_AutostartEnabled</tabstop> <tabstop>kcfg_NotificationPopupsEnabled</tabstop> + <tabstop>kcfg_DeviceMonitorPopupsEnabled</tabstop> <tabstop>option_automount</tabstop> <tabstop>option_ro</tabstop> <tabstop>option_quiet</tabstop> diff --git a/tdeioslave/media/tdecmodule/media.desktop b/tdeioslave/media/tdecmodule/media.desktop index badfc48cc..11c3c6973 100644 --- a/tdeioslave/media/tdecmodule/media.desktop +++ b/tdeioslave/media/tdecmodule/media.desktop @@ -6,189 +6,11 @@ Exec=tdecmshell media X-TDE-Library=media X-TDE-FactoryName=media X-TDE-ParentApp=kcontrol -Categories=Qt;TDE;X-TDE-settings-peripherals; Name=Storage Media -Name[af]=Stoor Media -Name[ar]=وسائط التخزين -Name[be]=Носьбіты -Name[bg]=Съхраняващи устройства -Name[bn]=স্টোরেজ মিডিয়া -Name[bs]=Uređaji za smještaj podataka -Name[ca]=Suports d'emmagatzematge -Name[cs]=Úložná zařízení -Name[csb]=Zôpisowné media -Name[da]=Opbevaringsmedie -Name[de]=Speichermedien -Name[el]=Συσκευές αποθήκευσης -Name[eo]=Enmemoriga Medio -Name[es]=Dispositivos de almacenamiento -Name[et]=Andmekandjad -Name[eu]=Biltegiratze-euskarria -Name[fa]=رسانۀ ذخیرهگاه -Name[fi]=Tallennusmedia -Name[fr]=Support de stockage -Name[fy]=Opslachapparaten -Name[ga]=Meán Stórais -Name[gl]=Medios de armacenaxe -Name[he]=התקנים -Name[hi]=भंडार मीडिया -Name[hr]=Mediji za pohranjivanje -Name[hu]=Tárolóeszközök -Name[is]=Geymslumiðlar -Name[it]=Dispositivi di archiviazione -Name[ja]=記憶メディア -Name[ka]=მონაცემთა შენახვის მოწყობილობები -Name[kk]=Жинақтаушы құрылғылар -Name[km]=ឧបករណ៍ផ្ទុក -Name[lt]=Saugojimo įrenginiai -Name[lv]=Datu nesējs -Name[mk]=Медиуми за податоци -Name[ms]=Media Storan -Name[nb]=Lagringsenheter -Name[nds]=Spiekermedien -Name[ne]=भण्डारण मिडिया -Name[nl]=Opslagapparaten -Name[nn]=Lagringsmedium -Name[pa]=ਸਟੋਰੇਜ਼ ਮੀਡਿਆ -Name[pl]=Urządzenia przechowywania danych -Name[pt]=Dispositivos de Armazenamento -Name[pt_BR]=Mídia de Armazenamento -Name[ro]=Mediu de stocare -Name[ru]=Устройства хранения данных -Name[rw]=Uburyo bwo Kubika -Name[se]=Vurkenmedia -Name[sk]=Zálohovacie médiá -Name[sl]=Nosilci za shranjevanje -Name[sr]=Складишни медијуми -Name[sr@Latn]=Skladišni medijumi -Name[sv]=Lagringsmedia -Name[ta]=சேகரிப்பு ஊடகம் -Name[tg]=Захирагоҳи маълумот -Name[th]=สื่อเก็บข้อมูล -Name[tr]=Depolama Ortamı -Name[tt]=Saqlawlı Media -Name[uk]=Пристрої зберігання інформації -Name[uz]=Saqlash uskunalari -Name[uz@cyrillic]=Сақлаш ускуналари -Name[vi]=Ổ chứa Dữ liệu -Name[wa]=Sopoirts di wårdaedje -Name[zh_CN]=存储介质 -Name[zh_TW]=儲存媒體 Comment=Configure Storage Media -Comment[af]=Stel Stoor Media op -Comment[ar]=إعداد وسائط التخزين -Comment[be]=Настаўленні носьбітаў -Comment[bg]=Настройване на устройствата за съхранение на информация -Comment[bn]=স্টোরেজ মিডিয়া কনফিগার করুন -Comment[bs]=Podesite prikaz uređaja -Comment[ca]=Configura els suports d'emmagatzematge -Comment[cs]=Nastavení úložných médií -Comment[csb]=Kònfigùracëjô zôpisownëch mediów -Comment[da]=Opsætning af opbevarelsesmedie -Comment[de]=Speichermedien einrichten -Comment[el]=Ρύθμιση μέσων αποθήκευσης -Comment[eo]=Agordo de enmemoriga medio -Comment[es]=Configuración de las medios de almacenamiento -Comment[et]=Salvestusandmekandjate seadistused -Comment[eu]=Konfiguratu biltegiratze-euskarria -Comment[fa]=پیکربندی رسانۀ ذخیرهگاه -Comment[fi]=Aseta tallennusmedia -Comment[fr]=Configurer le média de stockage -Comment[fy]=Opslachmedia ynstelle -Comment[ga]=Cumraigh Meáin Stórála -Comment[gl]=Configurar Medios de Armacenaxe -Comment[he]=שינוי הגדרות מדיות אחסון -Comment[hr]=Konfiguriranje medija za pohranu -Comment[hu]=A tárolóeszközök beállítása -Comment[is]=Stillingar geymslumiðla -Comment[it]=Configura dispositivi di archiviazione -Comment[ja]=記憶メディアの設定 -Comment[ka]=შენახვის მედიის გამართვა -Comment[kk]=Жинақтаушыларды баптау -Comment[km]=កំណត់រចនាសម្ព័ន្ធឧបករណ៍ផ្ទុក -Comment[lt]=Konfigūruoti saugojimo įrenginius -Comment[mk]=Конфигурирајте ги медиумите за податоци -Comment[nb]=Sett opp lagringsmedier -Comment[nds]=Spiekermedien instellen -Comment[ne]=भण्डारण मिडिया कन्फिगर गर्नुहोस् -Comment[nl]=Opslagmedia instellen -Comment[nn]=Set opp lagringsmedium -Comment[pa]=ਸਟੋਰੇਜ਼ ਮੀਡਿਆ ਸੰਰਚਨਾ -Comment[pl]=Konfiguracja nośników danych -Comment[pt]=Configurar os Suportes de Armazenamento -Comment[pt_BR]=Configura as mídias de armazenamento -Comment[ro]=Configurează mediile de stocare -Comment[ru]=Настройка подключаемых устройств хранения -Comment[se]=Heivet vurkenmediaid -Comment[sk]=Nastavenie zálohovacích médií -Comment[sl]=Nastavitve nosilcev za shranjevanje -Comment[sr]=Подешавање медијума за складиштење -Comment[sr@Latn]=Podešavanje medijuma za skladištenje -Comment[sv]=Anpassa lagringsmedia -Comment[th]=ตั้งค่าสื่อบันทึก -Comment[tr]=Depolama Aygıtlarını Yapılandır -Comment[tt]=Saqlaw Cıhazların Caylaw -Comment[uk]=Налаштування пристроїв зберігання інформації -Comment[uz]=Saqlash uskunalarni moslash -Comment[uz@cyrillic]=Сақлаш ускуналарни мослаш -Comment[vi]=Cấu hình Ổ lưu trữ Dữ liệu -Comment[wa]=Apontiaedjes sopoirts di wårdaedje -Comment[zh_CN]=配置存储介质 -Comment[zh_TW]=設定儲存媒體 Keywords=storage;media;usb;cdrom;device; -Keywords[ar]=تخزين;وسائط;usb;قرص مدمج cdrom;جهاز; -Keywords[be]=Носьбіт;Прылада;storage;media;usb;cdrom;device; -Keywords[bg]=съхранение; информация; компактдиск; устройство; данни; storage; media; usb; cdrom; device; -Keywords[bs]=storage;media;usb;cdrom;device;uređaji;mediji; -Keywords[ca]=emmagatzematge;suport;usb;cdrom;dispositiu; -Keywords[cs]=úložiště;média;USB;CDROM;zařízení; -Keywords[csb]=pòdôwczi;trzëmanié pòdôwków;zôpisowné media;usb;cdrom;ùrządzenié;nëk; -Keywords[da]=opbevaring;medie;usb;cdrom;enhed; -Keywords[de]=Speicher;Medien;Medium;USB;CD-Rom;cdrom;Gerät; -Keywords[el]=αποθήκευση;μέσο;usb;cdrom;συσκευή; -Keywords[eo]=memorigilo;medio;usb;lumdisko;aparato; -Keywords[es]=almacenamiento;medios;usb;cdrom;dispositivo; -Keywords[et]=salvestamine;andmekandja;usb;cd;seade; -Keywords[eu]=biltegiratzea;euskarriak;usb;cdrom;gailua; -Keywords[fa]=ذخیرهگاه، رسانه، گذرگاه سریال جهانی، دیسک فشرده، دستگاه; -Keywords[fi]=varasto;media;usb;cdrom;laite; -Keywords[fr]=stockage;media;média;medium;usb;cdrom;périphérique; -Keywords[fy]=storage;opslach;media;usb;cd-rom;kompakt-skiif;device;apparaat;mp3-speler;usb-stick;geheugenkaart; -Keywords[ga]=stóráil;stóras;meáin;meán;usb;cdrom;dlúthdhiosca;gléas; -Keywords[gl]=armacenaxe;medios;usb;cdrom;dispositivo; -Keywords[he]=storage;media;usb;cdrom;device;מדיה;התקן;סידירום;תקליטור; -Keywords[hr]=storage;media;usb;cdrom;device;pohrana;snimanje;mediji;uređaj; -Keywords[hu]=tároló;adathordozó;USB;CD-ROM;eszköz; -Keywords[is]=geymsla;miðill;usb;cdrom;tæki; -Keywords[it]=storage;media;usb;cdrom;dispositivi;dvd;penna usb;memory stick;stick; -Keywords[ja]=記憶;メディア;usb;cdrom;デバイス; -Keywords[km]=ឧបករណ៍ផ្ទុក; usb;ស៊ីឌីរ៉ូម;ឧបករណ៍; -Keywords[lt]=storage;media;usb;cdrom;device;saugojimas;media;įrenginiai;usb; -Keywords[mk]=storage;media;usb;cdrom;device;медиуми;усб;цдром;уред; -Keywords[nb]=lagring;media;usb;CD-spiller;CD-ROM;enheter;minnepinner;harddisker;HD;eksterne harddisker;zip-disker; -Keywords[nds]=Spieker;Medien;USB;CDROM;Reedschap; -Keywords[ne]=भण्डारण; मिडिया;usb;cdrom; यन्त्र; -Keywords[nl]=storage;opslag;media;usb;cd-rom;device;apparaat;mp3-speler;usb-stick;geheugenkaart; -Keywords[nn]=lagring;media;usb;CD-spiller;CD-ROM;einingar;minnepinnar;harddiskar;HD;eksterne harddiskar;zip-diskar; -Keywords[pa]=ਸਟੋਰੇਜ਼;ਮੀਡਿਆ;ਜੰਤਰ;usb;cdrom; -Keywords[pl]=dane;przechowywanie danych;nośnik danych;nośniki danych;usb;cdrom;urządzenie; -Keywords[pt]=armazenamento;discos;usb;cdrom;dispositivo; -Keywords[pt_BR]=armazenamento;mídia;usb;cd-rom;device;dispositivo; -Keywords[ro]=stocare;mediu;usb;cdrom;dispozitiv; -Keywords[ru]=storage;media;usb;cdrom;device;устройство хранения; -Keywords[sl]=shranjevanje;nosilec;usb;cdrom;naprava; -Keywords[sr]=storage;media;usb;cdrom;device;складиштење;медијум;уређај; -Keywords[sr@Latn]=storage;media;usb;cdrom;device;skladištenje;medijum;uređaj; -Keywords[sv]=lagring;media;usb;cdrom;enhet; -Keywords[th]=ที่เก็บข้อมูล;สื่อ;ยูเอสบี;;ซีดีรอม;อุปกรณ์; -Keywords[tr]=depolama;ortam;usb;cdrom;device; -Keywords[uk]=зберігання;носій;медіа;usb;cdrom;пристрій; -Keywords[uz]=saqlash uskunasi;usb;cdrom;kompakt-disk; -Keywords[uz@cyrillic]=сақлаш ускунаси;usb;cdrom;компакт-диск; -Keywords[vi]=lưu trữ;ổ;usb;cdrom;thiết bị; -Keywords[wa]=wårdaedje;media;usb;cdrom;device;éndjin; -Keywords[zh_CN]=storage;media;usb;cdrom;device;存储;介质;设备; -Keywords[zh_TW]=storage;media;usb;cdrom;device;儲存;媒體;光碟機;裝置; + +Categories=Qt;TDE;X-TDE-settings-peripherals; diff --git a/tdeioslave/media/tdecmodule/notifiermodule.cpp b/tdeioslave/media/tdecmodule/notifiermodule.cpp index 4364d93ad..2d2d53481 100644 --- a/tdeioslave/media/tdecmodule/notifiermodule.cpp +++ b/tdeioslave/media/tdecmodule/notifiermodule.cpp @@ -57,18 +57,18 @@ NotifierModule::NotifierModule(TQWidget *parent, const char *name) updateListBox(); - connect( m_view->mimetypesCombo, TQT_SIGNAL( activated(int) ), - this, TQT_SLOT( slotMimeTypeChanged(int) ) ); - connect( m_view->actionsList, TQT_SIGNAL( selectionChanged(TQListBoxItem*) ), - this, TQT_SLOT( slotActionSelected(TQListBoxItem*) ) ); - connect( m_view->addButton, TQT_SIGNAL( clicked() ), - this, TQT_SLOT( slotAdd() ) ); - connect( m_view->editButton, TQT_SIGNAL( clicked() ), - this, TQT_SLOT( slotEdit() ) ); - connect( m_view->deleteButton, TQT_SIGNAL( clicked() ), - this, TQT_SLOT( slotDelete() ) ); - connect( m_view->toggleAutoButton, TQT_SIGNAL( clicked() ), - this, TQT_SLOT( slotToggleAuto() ) ); + connect( m_view->mimetypesCombo, TQ_SIGNAL( activated(int) ), + this, TQ_SLOT( slotMimeTypeChanged(int) ) ); + connect( m_view->actionsList, TQ_SIGNAL( selectionChanged(TQListBoxItem*) ), + this, TQ_SLOT( slotActionSelected(TQListBoxItem*) ) ); + connect( m_view->addButton, TQ_SIGNAL( clicked() ), + this, TQ_SLOT( slotAdd() ) ); + connect( m_view->editButton, TQ_SIGNAL( clicked() ), + this, TQ_SLOT( slotEdit() ) ); + connect( m_view->deleteButton, TQ_SIGNAL( clicked() ), + this, TQ_SLOT( slotDelete() ) ); + connect( m_view->toggleAutoButton, TQ_SIGNAL( clicked() ), + this, TQ_SLOT( slotToggleAuto() ) ); } NotifierModule::~NotifierModule() diff --git a/tdeioslave/media/tdecmodule/notifiermodule.h b/tdeioslave/media/tdecmodule/notifiermodule.h index d5d97a96d..2192c30a9 100644 --- a/tdeioslave/media/tdecmodule/notifiermodule.h +++ b/tdeioslave/media/tdecmodule/notifiermodule.h @@ -28,7 +28,7 @@ class NotifierModule : public TDECModule { - Q_OBJECT + TQ_OBJECT public: NotifierModule( TQWidget* parent = 0, const char* name = 0); diff --git a/tdeioslave/media/tdecmodule/serviceconfigdialog.cpp b/tdeioslave/media/tdecmodule/serviceconfigdialog.cpp index 4147e437c..bcf533b9d 100644 --- a/tdeioslave/media/tdecmodule/serviceconfigdialog.cpp +++ b/tdeioslave/media/tdecmodule/serviceconfigdialog.cpp @@ -78,10 +78,10 @@ ServiceConfigDialog::ServiceConfigDialog(NotifierServiceAction *action, setMainWidget(m_view); setCaption( m_action->label() ); - connect( m_view->iconButton, TQT_SIGNAL( iconChanged(TQString) ), - this, TQT_SLOT( slotIconChanged() ) ); - connect( m_view->commandButton, TQT_SIGNAL( clicked() ), - this, TQT_SLOT( slotCommand() ) ); + connect( m_view->iconButton, TQ_SIGNAL( iconChanged(TQString) ), + this, TQ_SLOT( slotIconChanged() ) ); + connect( m_view->commandButton, TQ_SIGNAL( clicked() ), + this, TQ_SLOT( slotCommand() ) ); } bool operator==( KDEDesktopMimeType::Service s1, KDEDesktopMimeType::Service s2 ) diff --git a/tdeioslave/media/tdecmodule/serviceconfigdialog.h b/tdeioslave/media/tdecmodule/serviceconfigdialog.h index 24e907205..2f35bfb54 100644 --- a/tdeioslave/media/tdecmodule/serviceconfigdialog.h +++ b/tdeioslave/media/tdecmodule/serviceconfigdialog.h @@ -27,7 +27,7 @@ class ServiceConfigDialog : public KDialogBase { - Q_OBJECT + TQ_OBJECT public: ServiceConfigDialog(NotifierServiceAction *action, diff --git a/tdeioslave/media/tdefile-plugin/CMakeLists.txt b/tdeioslave/media/tdefile-plugin/CMakeLists.txt index 88c9220fa..29147ee57 100644 --- a/tdeioslave/media/tdefile-plugin/CMakeLists.txt +++ b/tdeioslave/media/tdefile-plugin/CMakeLists.txt @@ -26,7 +26,11 @@ link_directories( ##### other data ################################ -install( FILES tdefile_media.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) +tde_create_translated_desktop( + SOURCE tdefile_media.desktop + DESTINATION ${SERVICES_INSTALL_DIR} + PO_DIR tdeioslave-desktops +) ##### tdefile_media (module) ###################### diff --git a/tdeioslave/media/tdefile-plugin/tdefile_media.desktop b/tdeioslave/media/tdefile-plugin/tdefile_media.desktop index 514124a51..2b9b7c68e 100644 --- a/tdeioslave/media/tdefile-plugin/tdefile_media.desktop +++ b/tdeioslave/media/tdefile-plugin/tdefile_media.desktop @@ -1,75 +1,6 @@ [Desktop Entry] Type=Service -Name=Medium Information -Name[af]=Medium Informasie -Name[ar]=معلومات عن الوسيط -Name[az]=Mediyum Mə'lumatı -Name[be]=Інфармацыя аб носьбітах -Name[bg]=Информация за устройствата -Name[bn]=মিডিয়া তথ্য -Name[bs]=Informacije o mediju -Name[ca]=Informació de suports -Name[cs]=Informace o médiu -Name[csb]=Wëdowiédzô ò zôpisownëch mediach -Name[da]=Medieinformation -Name[de]=Medium-Information -Name[el]=Πληροφορίες μέσου -Name[eo]=datumportilaj informoj -Name[es]=Información de recursos -Name[et]=Andmekandja info -Name[eu]=Media informazioa -Name[fa]=اطلاعات رسانه -Name[fi]=Tallenteiden tiedot -Name[fr]=Informations sur le média -Name[fy]=Mediumynformaasje -Name[ga]=Eolas faoin Mheán -Name[gl]=Información do Meio -Name[he]=מידע אודות המדיה -Name[hi]=माध्यम जानकारी -Name[hr]=Podaci o mediju -Name[hu]=Adathordozó-jellemzők -Name[is]=Upplýsingar um miðil -Name[it]=Informazioni supporto -Name[ja]=メディア情報 -Name[ka]=ცნობები მატარებლის შესახებ -Name[kk]=Тасушының мәліметі -Name[km]=ព័ត៌មានឧបករណ៍ -Name[ko]=메모리 정보 -Name[lt]=Laikmenos informacija -Name[lv]=Datu nesēju informācija -Name[mk]=Информации за носач -Name[ms]=Maklumat Medium -Name[mt]=Informazzjoni tal-apparat -Name[nb]=Medieinformasjon -Name[nds]=Medium-Informatschoon -Name[ne]=माध्यम सूचना -Name[nl]=Mediuminformatie -Name[nn]=Medieinformasjon -Name[pa]=ਮਾਧਿਅਮ ਜਾਣਕਾਰੀ -Name[pl]=Informacje o nośnikach danych -Name[pt]=Informação do Dispositivo -Name[pt_BR]=Informações sobre a Mídia -Name[ro]=Informații mediu -Name[ru]=Сведения о диске -Name[rw]=Amakuru y'igitangazamakuru -Name[se]=Mediumdieđut -Name[sk]=Informácie o médiu -Name[sl]=Informacije o mediju -Name[sr]=Информације о медијуму -Name[sr@Latn]=Informacije o medijumu -Name[sv]=Mediainformation -Name[ta]=சாதனத் தகவல் -Name[te]=మాధ్యమ సమాచారం -Name[th]=ข้อมูลของสื่อ -Name[tr]=Ortam Bilgisi -Name[tt]=Media Turında -Name[uk]=Інформація про носій -Name[uz]=Saqlash uskuna haqida maʼlumot -Name[uz@cyrillic]=Сақлаш ускуна ҳақида маълумот -Name[vi]=Thông tin về Ổ lưu trữ -Name[wa]=Informåcions sol mediom -Name[zh_CN]=介质信息 -Name[zh_TW]=媒體資訊 -X-TDE-ServiceTypes=KFilePlugin X-TDE-Library=tdefile_media -MimeType=media/audiocd;media/hdd_mounted;media/blankcd;media/hdd_unmounted;media/hdd_encrypted_unlocked;media/blankdvd;media/cdrom_mounted;media/cdrom_unmounted;media/cdrom_encrypted_unlocked;media/cd-r_mounted;media/cd-rw_mounted;media/nfs_mounted;media/cd-r_unmounted;media/cd-r_encrypted_unlocked;media/cd-rw_unmounted;media/cd-rw_encrypted_unlocked;media/nfs_unmounted;media/removable_mounted;media/dvd_mounted;media/removable_unmounted;media/removable_encrypted_unlocked;media/dvd_unmounted;media/dvd_encrypted_unlocked;media/smb_mounted;media/dvdvideo;media/smb_unmounted;media/floppy5_mounted;media/svcd;media/floppy5_unmounted;media/vcd;media/floppy_mounted;media/zip_mounted;media/floppy_unmounted;media/zip_unmounted;media/gphoto2camera;media/camera_mounted;media/camera_unmounted +X-TDE-ServiceTypes=KFilePlugin,media/audiocd,media/blankcd,media/blankbluray,media/blankdvd,media/hdd_mounted,media/hdd_unmounted,media/hdd_encrypted_unlocked,media/hdd_encrypted_locked,media/bluray_mounted,media/bluray_unmounted,media/bluray_encrypted_unlocked,media/bluray_encrypted_locked,media/cdrom_mounted,media/cdrom_unmounted,media/cdrom_encrypted_unlocked,media/cdrom_encrypted_locked,media/cd-r_mounted,media/cd-r_unmounted,media/cd-r_encrypted_unlocked,media/cd-r_encrypted_locked,media/cd-rw_mounted,media/cd-rw_unmounted,media/cd-rw_encrypted_unlocked,media/cd-rw_encrypted_locked,media/dvd_mounted,media/dvd_unmounted,media/dvd_encrypted_unlocked,media/dvd_encrypted_locked,media/removable_mounted,media/removable_unmounted,media/removable_encrypted_unlocked,media/removable_encrypted_locked,media/nfs_mounted,media/nfs_unmounted,media/smb_mounted,media/smb_unmounted,media/blurayvideo,media/dvdvideo,media/svcd,media/vcd,media/floppy_mounted,media/floppy_unmounted,media/floppy5_mounted,media/floppy5_unmounted,media/zip_mounted,media/zip_unmounted,media/gphoto2camera,media/camera_mounted,media/camera_unmounted + +Name=Medium Information diff --git a/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.cpp b/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.cpp index 7ca1d311d..190bec197 100644 --- a/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.cpp +++ b/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.cpp @@ -49,42 +49,54 @@ KFileMediaPlugin::KFileMediaPlugin(TQObject *parent, const char *name, : KFilePlugin(parent, name, args) { addMimeType( "media/audiocd" ); - addMimeType( "media/hdd_mounted" ); + addMimeType( "media/blankbluray" ); addMimeType( "media/blankcd" ); - addMimeType( "media/hdd_unmounted" ); - addMimeType( "media/hdd_encrypted_unlocked" ); addMimeType( "media/blankdvd" ); + addMimeType( "media/bluray_mounted" ); + addMimeType( "media/bluray_unmounted" ); + addMimeType( "media/bluray_encrypted_unlocked" ); + addMimeType( "media/bluray_encrypted_locked" ); addMimeType( "media/cdrom_mounted" ); addMimeType( "media/cdrom_unmounted" ); addMimeType( "media/cdrom_encrypted_unlocked" ); + addMimeType( "media/cdrom_encrypted_locked" ); addMimeType( "media/cd-r_mounted" ); - addMimeType( "media/cd-rw_mounted" ); - addMimeType( "media/nfs_mounted" ); addMimeType( "media/cd-r_unmounted" ); addMimeType( "media/cd-r_encrypted_unlocked" ); + addMimeType( "media/cd-r_encrypted_locked" ); + addMimeType( "media/cd-rw_mounted" ); addMimeType( "media/cd-rw_unmounted" ); addMimeType( "media/cd-rw_encrypted_unlocked" ); - addMimeType( "media/nfs_unmounted" ); - addMimeType( "media/removable_mounted" ); + addMimeType( "media/cd-rw_encrypted_locked" ); addMimeType( "media/dvd_mounted" ); - addMimeType( "media/removable_unmounted" ); - addMimeType( "media/removable_encrypted_unlocked" ); addMimeType( "media/dvd_unmounted" ); addMimeType( "media/dvd_encrypted_unlocked" ); + addMimeType( "media/dvd_encrypted_locked" ); + addMimeType( "media/hdd_mounted" ); + addMimeType( "media/hdd_unmounted" ); + addMimeType( "media/hdd_encrypted_unlocked" ); + addMimeType( "media/hdd_encrypted_locked" ); + addMimeType( "media/removable_mounted" ); + addMimeType( "media/removable_unmounted" ); + addMimeType( "media/removable_encrypted_unlocked" ); + addMimeType( "media/removable_encrypted_locked" ); + addMimeType( "media/nfs_mounted" ); + addMimeType( "media/nfs_unmounted" ); addMimeType( "media/smb_mounted" ); - addMimeType( "media/dvdvideo" ); addMimeType( "media/smb_unmounted" ); + addMimeType( "media/floppy_mounted" ); + addMimeType( "media/floppy_unmounted" ); addMimeType( "media/floppy5_mounted" ); - addMimeType( "media/svcd" ); addMimeType( "media/floppy5_unmounted" ); - addMimeType( "media/vcd" ); - addMimeType( "media/floppy_mounted" ); addMimeType( "media/zip_mounted" ); - addMimeType( "media/floppy_unmounted" ); addMimeType( "media/zip_unmounted" ); - addMimeType( "media/gphoto2camera" ); + addMimeType( "media/blurayvideo" ); + addMimeType( "media/dvdvideo" ); + addMimeType( "media/svcd" ); + addMimeType( "media/vcd" ); addMimeType( "media/camera_mounted" ); - addMimeType( "media/camera_unmounted" ); + addMimeType( "media/camera_unmounted" ); + addMimeType( "media/gphoto2camera" ); } bool KFileMediaPlugin::readInfo(KFileMetaInfo &info, uint /*what*/) @@ -146,12 +158,12 @@ bool KFileMediaPlugin::readInfo(KFileMetaInfo &info, uint /*what*/) TQPixmap bar(150, 20); TQPainter p(&bar); - p.fillRect(0, 0, length, 20, Qt::red); - p.fillRect(length, 0, 150-length, 20, Qt::green); + p.fillRect(0, 0, length, 20, TQt::red); + p.fillRect(length, 0, 150-length, 20, TQt::green); TQColorGroup cg = TQApplication::palette().active(); - TQApplication::style().tqdrawPrimitive(TQStyle::PE_Panel, &p, + TQApplication::style().drawPrimitive(TQStyle::PE_Panel, &p, TQRect(0, 0, 150, 20), cg, TQStyle::Style_Sunken); diff --git a/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.h b/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.h index dcc2591be..0f9dc0038 100644 --- a/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.h +++ b/tdeioslave/media/tdefile-plugin/tdefilemediaplugin.h @@ -28,7 +28,7 @@ class KFileMediaPlugin : public KFilePlugin { -Q_OBJECT +TQ_OBJECT public: KFileMediaPlugin(TQObject *parent, const char *name, const TQStringList &args); diff --git a/tdeioslave/media/tdeio_media.cpp b/tdeioslave/media/tdeio_media.cpp index 9124568c1..33bc4a05b 100644 --- a/tdeioslave/media/tdeio_media.cpp +++ b/tdeioslave/media/tdeio_media.cpp @@ -40,7 +40,7 @@ static const TDECmdLineOptions options[] = }; extern "C" { - int KDE_EXPORT kdemain( int argc, char **argv ) + int TDE_EXPORT kdemain( int argc, char **argv ) { // TDEApplication is necessary to use other ioslaves putenv(strdup("SESSION_MANAGER=")); @@ -62,8 +62,8 @@ MediaProtocol::MediaProtocol(const TQCString &protocol, const TQCString &pool, const TQCString &app) : ForwardingSlaveBase(protocol, pool, app) { - connect( &m_impl, TQT_SIGNAL( warning( const TQString & ) ), - this, TQT_SLOT( slotWarning( const TQString & ) ) ); + connect( &m_impl, TQ_SIGNAL( warning( const TQString & ) ), + this, TQ_SLOT( slotWarning( const TQString & ) ) ); } MediaProtocol::~MediaProtocol() diff --git a/tdeioslave/media/tdeio_media.h b/tdeioslave/media/tdeio_media.h index 7acc44df0..473a623b1 100644 --- a/tdeioslave/media/tdeio_media.h +++ b/tdeioslave/media/tdeio_media.h @@ -26,7 +26,7 @@ class MediaProtocol : public TDEIO::ForwardingSlaveBase { -Q_OBJECT +TQ_OBJECT public: MediaProtocol(const TQCString &protocol, const TQCString &pool, const TQCString &app); |