/* This file is part of the KDE project * Copyright (C) 2002 Rolf Magnus * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation version 2. * * This program 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 * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. * */ #include "kfile_desktop.h" #include #include #include #include #include #include typedef KGenericFactory DotDesktopFactory; K_EXPORT_COMPONENT_FACTORY(kfile_desktop, DotDesktopFactory("kfile_desktop")) KDotDesktopPlugin::KDotDesktopPlugin(TQObject *parent, const char *name, const TQStringList &preferredItems) : KFilePlugin(parent, name, preferredItems) { kdDebug(7034) << ".desktop plugin\n"; KFileMimeTypeInfo* info; KFileMimeTypeInfo::GroupInfo* group; KFileMimeTypeInfo::ItemInfo* item; info = addMimeTypeInfo("application/x-desktop"); group = addGroupInfo(info, "General", i18n("General")); item = addItemInfo(group, "Name", i18n("Name"), TQVariant::String); setHint(item, KFileMimeTypeInfo::Name); item = addItemInfo(group, "Comment", i18n("Comment"), TQVariant::String); setHint(item, KFileMimeTypeInfo::Description); addItemInfo(group, "Type", i18n("Type"), TQVariant::String); addItemInfo(group, "Device", i18n("Device"), TQVariant::String); addItemInfo(group, "Mount Point", i18n("Mount Point"), TQVariant::String); addItemInfo(group, "File System", i18n("File System"), TQVariant::String); addItemInfo(group, "Writable", i18n("Writable"), TQVariant::Bool); addItemInfo(group, "File Type", i18n("File Type"), TQVariant::String); addItemInfo(group, "Service Type", i18n("Service Type"), TQVariant::String); addItemInfo(group, "Preferred Items", i18n("Preferred Items"), TQVariant::String); addItemInfo(group, "Link To", i18n("Link To"), TQVariant::String); } bool KDotDesktopPlugin::readInfo( KFileMetaInfo& info, uint ) { if ( info.path().isEmpty() ) // remote file return false; KDesktopFile file(info.path(), true); TQString s; KFileMetaInfoGroup group = appendGroup(info, "General"); s = file.readName(); if (!s.isEmpty()) appendItem(group, "Name", s); s = file.readComment(); if (!s.isEmpty()) appendItem(group, "Comment", s); TQString type = file.readType(); if (type == "FSDevice") { appendItem(group, "Type", i18n("Device")); s = file.readDevice(); if (!s.isEmpty()) appendItem(group, "Device", s); s = file.readEntry("MountPoint"); if (!s.isEmpty()) appendItem(group, "Mount Point", s); s = i18n(file.readEntry("FSType").local8Bit()); if (!s.isEmpty()) appendItem(group, "File System", s); appendItem(group, "Writable", TQVariant(!file.readBoolEntry("ReadOnly", true), 42)); } else if (type == "Service") { appendItem(group, "Type", i18n("Service")); s = file.readEntry("MimeType"); if (!s.isEmpty()) { KMimeType::Ptr mt = KMimeType::mimeType(s); appendItem(group, "File Type", mt->comment()); } TQString sType = file.readEntry("ServiceTypes"); appendItem(group, "Service Type", sType); if (sType == "KFilePlugin") { TQStringList preferred = file.readListEntry("PreferredItems"); appendItem(group, "Preferred Items", preferred); } } else if (type == "Link") { TQString url = file.readPathEntry("URL"); appendItem(group, "Link To", url); } return true; } #include "kfile_desktop.moc"