summaryrefslogtreecommitdiffstats
path: root/tdefile-plugins/xpm
diff options
context:
space:
mode:
Diffstat (limited to 'tdefile-plugins/xpm')
-rw-r--r--tdefile-plugins/xpm/CMakeLists.txt35
-rw-r--r--tdefile-plugins/xpm/Makefile.am21
-rw-r--r--tdefile-plugins/xpm/tdefile_xpm.cpp71
-rw-r--r--tdefile-plugins/xpm/tdefile_xpm.desktop53
-rw-r--r--tdefile-plugins/xpm/tdefile_xpm.h46
5 files changed, 226 insertions, 0 deletions
diff --git a/tdefile-plugins/xpm/CMakeLists.txt b/tdefile-plugins/xpm/CMakeLists.txt
new file mode 100644
index 00000000..5b357416
--- /dev/null
+++ b/tdefile-plugins/xpm/CMakeLists.txt
@@ -0,0 +1,35 @@
+#################################################
+#
+# (C) 2010-2011 Calvin Morrison
+# mutantturkey@gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+
+#### other data #################################
+
+install( FILES tdefile_xpm.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
+
+
+#### tdefile_xpm (module) #########################
+
+tde_add_kpart( tdefile_xpm AUTOMOC
+ SOURCES tdefile_xpm.cpp
+ LINK tdeio-shared
+ DESTINATION ${PLUGIN_INSTALL_DIR}
+)
diff --git a/tdefile-plugins/xpm/Makefile.am b/tdefile-plugins/xpm/Makefile.am
new file mode 100644
index 00000000..3a32555e
--- /dev/null
+++ b/tdefile-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 = tdefile_xpm.h
+
+kde_module_LTLIBRARIES = tdefile_xpm.la
+
+tdefile_xpm_la_SOURCES = tdefile_xpm.cpp
+tdefile_xpm_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
+tdefile_xpm_la_LIBADD = $(LIB_KIO)
+tdefile_xpm_la_METASOURCES = tdefile_xpm.moc
+
+# let automoc handle all of the meta source files (moc)
+METASOURCES = AUTO
+
+kde_services_DATA = tdefile_xpm.desktop
+
+messages:
+ $(XGETTEXT) *.cpp -o $(podir)/tdefile_xpm.pot
diff --git a/tdefile-plugins/xpm/tdefile_xpm.cpp b/tdefile-plugins/xpm/tdefile_xpm.cpp
new file mode 100644
index 00000000..46b07e51
--- /dev/null
+++ b/tdefile-plugins/xpm/tdefile_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 <tqimage.h>
+#include "tdefile_xpm.h"
+
+#include <kgenericfactory.h>
+
+//--------------------------------------------------------------------------------
+
+typedef KGenericFactory<xpmPlugin> xpmFactory;
+
+K_EXPORT_COMPONENT_FACTORY(tdefile_xpm, xpmFactory( "tdefile_xpm" ))
+
+//--------------------------------------------------------------------------------
+
+xpmPlugin::xpmPlugin(TQObject *parent, const char *name, const TQStringList &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"), TQVariant::Size);
+ setHint(item, KFileMimeTypeInfo::Size);
+ setUnit(item, KFileMimeTypeInfo::Pixels);
+
+ item = addItemInfo(group, "BitDepth", i18n("Bit Depth"), TQVariant::Int);
+ setUnit(item, KFileMimeTypeInfo::BitsPerPixel);
+}
+
+//--------------------------------------------------------------------------------
+
+bool xpmPlugin::readInfo(KFileMetaInfo& info, uint /*what*/)
+{
+ TQImage pix;
+
+ if ( ! pix.load(info.path(), "XPM") ) return false;
+
+ KFileMetaInfoGroup group = appendGroup(info, "xpmInfo");
+
+ appendItem(group, "Dimension", TQSize(pix.size()));
+ appendItem(group, "BitDepth", pix.depth());
+
+ return true;
+}
+
+#include "tdefile_xpm.moc"
diff --git a/tdefile-plugins/xpm/tdefile_xpm.desktop b/tdefile-plugins/xpm/tdefile_xpm.desktop
new file mode 100644
index 00000000..43c18514
--- /dev/null
+++ b/tdefile-plugins/xpm/tdefile_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-TDE-Library=tdefile_xpm
+MimeType=image/x-xpm
+PreferredGroups=xpmInfo
+PreferredItems=Dimension
diff --git a/tdefile-plugins/xpm/tdefile_xpm.h b/tdefile-plugins/xpm/tdefile_xpm.h
new file mode 100644
index 00000000..275d3dd7
--- /dev/null
+++ b/tdefile-plugins/xpm/tdefile_xpm.h
@@ -0,0 +1,46 @@
+/***************************************************************************
+ * 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 <$TDEDIR/include/tdefilemetainfo.h>
+ */
+#include <tdefilemetainfo.h>
+
+class TQStringList;
+
+class xpmPlugin: public KFilePlugin
+{
+ Q_OBJECT
+
+
+ public:
+ xpmPlugin(TQObject *parent, const char *name, const TQStringList& args);
+
+ virtual bool readInfo(KFileMetaInfo& info, uint what);
+};
+
+#endif
+