summaryrefslogtreecommitdiffstats
path: root/kfile-plugins/xpm
diff options
context:
space:
mode:
Diffstat (limited to 'kfile-plugins/xpm')
-rw-r--r--kfile-plugins/xpm/Makefile.am21
-rw-r--r--kfile-plugins/xpm/kfile_xpm.cpp71
-rw-r--r--kfile-plugins/xpm/kfile_xpm.desktop53
-rw-r--r--kfile-plugins/xpm/kfile_xpm.h45
4 files changed, 190 insertions, 0 deletions
diff --git a/kfile-plugins/xpm/Makefile.am b/kfile-plugins/xpm/Makefile.am
new file mode 100644
index 00000000..5a1254b1
--- /dev/null
+++ b/kfile-plugins/xpm/Makefile.am
@@ -0,0 +1,21 @@
+## Makefile.am for xpm file meta info plugin
+
+INCLUDES = $(all_includes)
+
+# these are the headers for your project
+noinst_HEADERS = kfile_xpm.h
+
+kde_module_LTLIBRARIES = kfile_xpm.la
+
+kfile_xpm_la_SOURCES = kfile_xpm.cpp
+kfile_xpm_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+kfile_xpm_la_LIBADD = $(LIB_KIO)
+kfile_xpm_la_METASOURCES = kfile_xpm.moc
+
+# let automoc handle all of the meta source files (moc)
+METASOURCES = AUTO
+
+kde_services_DATA = kfile_xpm.desktop
+
+messages:
+ $(XGETTEXT) *.cpp -o $(podir)/kfile_xpm.pot
diff --git a/kfile-plugins/xpm/kfile_xpm.cpp b/kfile-plugins/xpm/kfile_xpm.cpp
new file mode 100644
index 00000000..3fd188b7
--- /dev/null
+++ b/kfile-plugins/xpm/kfile_xpm.cpp
@@ -0,0 +1,71 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Martin Koller *
+ * m.koller@surfeu.at *
+ * *
+ * 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; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * 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; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include <config.h>
+#include <qimage.h>
+#include "kfile_xpm.h"
+
+#include <kgenericfactory.h>
+
+//--------------------------------------------------------------------------------
+
+typedef KGenericFactory<xpmPlugin> xpmFactory;
+
+K_EXPORT_COMPONENT_FACTORY(kfile_xpm, xpmFactory( "kfile_xpm" ))
+
+//--------------------------------------------------------------------------------
+
+xpmPlugin::xpmPlugin(QObject *parent, const char *name, const QStringList &args)
+ : KFilePlugin(parent, name, args)
+{
+ KFileMimeTypeInfo* info = addMimeTypeInfo( "image/x-xpm" );
+
+ // our new group
+ KFileMimeTypeInfo::GroupInfo* group = 0;
+ group = addGroupInfo(info, "xpmInfo", i18n("X PixMap File Information"));
+
+ KFileMimeTypeInfo::ItemInfo* item;
+
+ // our new items in the group
+ item = addItemInfo(group, "Dimension", i18n("Dimension"), QVariant::Size);
+ setHint(item, KFileMimeTypeInfo::Size);
+ setUnit(item, KFileMimeTypeInfo::Pixels);
+
+ item = addItemInfo(group, "BitDepth", i18n("Bit Depth"), QVariant::Int);
+ setUnit(item, KFileMimeTypeInfo::BitsPerPixel);
+}
+
+//--------------------------------------------------------------------------------
+
+bool xpmPlugin::readInfo(KFileMetaInfo& info, uint /*what*/)
+{
+ QImage pix;
+
+ if ( ! pix.load(info.path(), "XPM") ) return false;
+
+ KFileMetaInfoGroup group = appendGroup(info, "xpmInfo");
+
+ appendItem(group, "Dimension", pix.size());
+ appendItem(group, "BitDepth", pix.depth());
+
+ return true;
+}
+
+#include "kfile_xpm.moc"
diff --git a/kfile-plugins/xpm/kfile_xpm.desktop b/kfile-plugins/xpm/kfile_xpm.desktop
new file mode 100644
index 00000000..612fb82e
--- /dev/null
+++ b/kfile-plugins/xpm/kfile_xpm.desktop
@@ -0,0 +1,53 @@
+[Desktop Entry]
+Type=Service
+Name=XPM Info
+Name[br]=Titouroù XPM
+Name[ca]=Informació de XPM
+Name[cs]=XPM info
+Name[de]=XPM-Info
+Name[el]=Πληροφορίες XPM
+Name[eo]=XPM-informo
+Name[es]=Información XPM
+Name[et]=XPM info
+Name[fa]=اطلاعات XPM
+Name[fi]=XPM-tiedot
+Name[fr]=Informations XPM
+Name[gl]=Información XPM
+Name[he]=מידע XPM
+Name[hu]=XPM-jellemzők
+Name[is]=XPM upplýsingar
+Name[it]=Informazioni XPM
+Name[ja]=XPM 情報
+Name[kk]=XPM мәліметі
+Name[km]=ព័ត៌មាន XPM
+Name[lt]=XPM informacija
+Name[ms]=Maklumat XPM
+Name[nb]=XPM-info
+Name[nds]=XPM-Info
+Name[ne]=XPM सूचना
+Name[nl]=XPM-info
+Name[nn]=XPM-info
+Name[pa]=XPM ਜਾਣਕਾਰੀ
+Name[pl]=Informacja o pliku XPM
+Name[pt]=Informação do XPM
+Name[pt_BR]=Informações Sobre XPM
+Name[ro]=Informaţii XPM
+Name[ru]=Информация о XPM
+Name[sl]=Podatki o XPM
+Name[sr]=XPM информације
+Name[sr@Latn]=XPM informacije
+Name[sv]=XPM-information
+Name[ta]=XPM தகவல்
+Name[th]=ข้อมูลแฟ้ม XPM
+Name[tr]=XPM Bilgisi
+Name[uk]=Інформація про XPM
+Name[uz]=XPM haqida maʼlumot
+Name[uz@cyrillic]=XPM ҳақида маълумот
+Name[zh_CN]=XPM 信息
+Name[zh_HK]=XPM 資訊
+Name[zh_TW]=XPM 資訊
+ServiceTypes=KFilePlugin
+X-KDE-Library=kfile_xpm
+MimeType=image/x-xpm
+PreferredGroups=xpmInfo
+PreferredItems=Dimension
diff --git a/kfile-plugins/xpm/kfile_xpm.h b/kfile-plugins/xpm/kfile_xpm.h
new file mode 100644
index 00000000..c68ad4eb
--- /dev/null
+++ b/kfile-plugins/xpm/kfile_xpm.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+ * Copyright (C) 2004 by Martin Koller *
+ * m.koller@surfeu.at *
+ * *
+ * This plugin provides information about the content of a *
+ * XPM image file. *
+ * *
+ * 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; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * 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; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef KFILE_XPM_H
+#define KFILE_XPM_H
+
+/**
+ * Note: For further information look into <$KDEDIR/include/kfilemetainfo.h>
+ */
+#include <kfilemetainfo.h>
+
+class QStringList;
+
+class xpmPlugin: public KFilePlugin
+{
+ Q_OBJECT
+
+ public:
+ xpmPlugin(QObject *parent, const char *name, const QStringList& args);
+
+ virtual bool readInfo(KFileMetaInfo& info, uint what);
+};
+
+#endif
+