summaryrefslogtreecommitdiffstats
path: root/konq-plugins/microformat
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit84da08d7b7fcda12c85caeb5a10b4903770a6f69 (patch)
tree2a6aea76f2dfffb4cc04bb907c4725af94f70e72 /konq-plugins/microformat
downloadtdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.tar.gz
tdeaddons-84da08d7b7fcda12c85caeb5a10b4903770a6f69.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeaddons@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'konq-plugins/microformat')
-rw-r--r--konq-plugins/microformat/Makefile.am19
-rw-r--r--konq-plugins/microformat/README14
-rw-r--r--konq-plugins/microformat/hcard.pngbin0 -> 304 bytes
-rw-r--r--konq-plugins/microformat/konqmficon.cpp323
-rw-r--r--konq-plugins/microformat/konqmficon.h70
-rw-r--r--konq-plugins/microformat/mf_konqmficon.desktop110
-rw-r--r--konq-plugins/microformat/mf_konqmficon.rc3
-rw-r--r--konq-plugins/microformat/microformat.pngbin0 -> 1046 bytes
-rw-r--r--konq-plugins/microformat/microformat.svgzbin0 -> 1258 bytes
-rw-r--r--konq-plugins/microformat/pluginbase.cpp43
-rw-r--r--konq-plugins/microformat/pluginbase.h38
11 files changed, 620 insertions, 0 deletions
diff --git a/konq-plugins/microformat/Makefile.am b/konq-plugins/microformat/Makefile.am
new file mode 100644
index 0000000..d96b5c5
--- /dev/null
+++ b/konq-plugins/microformat/Makefile.am
@@ -0,0 +1,19 @@
+INCLUDES = $(all_includes)
+METASOURCES = AUTO
+
+
+# Install this plugin in the KDE modules directory
+kde_module_LTLIBRARIES = libmfkonqmficon.la
+
+libmfkonqmficon_la_SOURCES = konqmficon.cpp pluginbase.cpp
+libmfkonqmficon_la_LIBADD = -lkonq $(LIB_KHTML)
+libmfkonqmficon_la_LDFLAGS = -module $(KDE_PLUGIN) -avoid-version -no-undefined $(all_libraries)
+
+konqmficondir = $(kde_datadir)/khtml/kpartplugins
+konqmficon_DATA = mf_konqmficon.desktop mf_konqmficon.rc
+
+mficondir = $(kde_datadir)/microformat/pics
+mficon_DATA = microformat.png
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp *.h -o $(podir)/mf_konqplugin.pot
diff --git a/konq-plugins/microformat/README b/konq-plugins/microformat/README
new file mode 100644
index 0000000..896256f
--- /dev/null
+++ b/konq-plugins/microformat/README
@@ -0,0 +1,14 @@
+Microformats
+------------
+
+Please see:
+
+http://developers.technorati.com/wiki/hCard
+http://developers.technorati.com/wiki/hCalendar
+http://developers.technorati.com/wiki/MicroFormat
+
+
+Also try:
+http://tantek.com/microformats/hcard-creator.html
+http://theryanking.com/microformats/hcalendar-creator.html
+
diff --git a/konq-plugins/microformat/hcard.png b/konq-plugins/microformat/hcard.png
new file mode 100644
index 0000000..b80213c
--- /dev/null
+++ b/konq-plugins/microformat/hcard.png
Binary files differ
diff --git a/konq-plugins/microformat/konqmficon.cpp b/konq-plugins/microformat/konqmficon.cpp
new file mode 100644
index 0000000..51fdd97
--- /dev/null
+++ b/konq-plugins/microformat/konqmficon.cpp
@@ -0,0 +1,323 @@
+/*
+ Copyright (C) 2004 Teemu Rytilahti <tpr@d5k.net>
+ Copyright (C) 2005 George Staikos <staikos@kde.org>
+
+ 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.
+
+ As a special exception, permission is given to link this program
+ with any edition of Qt, and distribute the resulting executable,
+ without including the source code for Qt in the source distribution.
+*/
+
+#include "konqmficon.h"
+
+#include <dcopref.h>
+#include <kdebug.h>
+#include <kgenericfactory.h>
+#include <kiconloader.h>
+#include <kparts/statusbarextension.h>
+#include <kstandarddirs.h>
+#include <kstatusbar.h>
+#include <kurllabel.h>
+
+#include <qcursor.h>
+#include <qstylesheet.h>
+#include <qtimer.h>
+#include <qtooltip.h>
+
+typedef KGenericFactory<KonqMFIcon> KonqMFIconFactory;
+K_EXPORT_COMPONENT_FACTORY(libmfkonqmficon,
+ KonqMFIconFactory("mfkonqmficon"))
+
+KonqMFIcon::KonqMFIcon(QObject *parent, const char *name, const QStringList &)
+: KParts::Plugin(parent, name), PluginBase(), m_part(0), m_mfIcon(0), m_statusBarEx(0), m_menu(0) {
+ KGlobal::locale()->insertCatalogue("mf_konqplugin");
+
+ m_part = dynamic_cast<KHTMLPart*>(parent);
+ if (!m_part) {
+ kdDebug() << "couldn't get part" << endl;
+ return;
+ }
+ QTimer::singleShot(0, this, SLOT(waitPartToLoad()));
+}
+
+
+void KonqMFIcon::waitPartToLoad() {
+ connect(m_part, SIGNAL(completed()), this, SLOT(addMFIcon()));
+ connect(m_part, SIGNAL(completed(bool)), this, SLOT(addMFIcon())); // to make pages with metarefresh to work
+ connect(m_part, SIGNAL(started(KIO::Job *)), this, SLOT(removeMFIcon()));
+}
+
+
+KonqMFIcon::~KonqMFIcon() {
+ KGlobal::locale()->removeCatalogue("mf_konqplugin");
+ delete m_menu;
+ m_menu = 0L;
+}
+
+
+static QString textForNode(DOM::Node node) {
+ QString rc;
+ DOM::NodeList nl = node.childNodes();
+ for (unsigned int i = 0; i < nl.length(); ++i) {
+ DOM::Node n = nl.item(i);
+ if (n.nodeType() == DOM::Node::TEXT_NODE) {
+ rc += n.nodeValue().string();
+ }
+ }
+ // FIXME: entries need to be escaped for vcard/vevent
+ return rc.stripWhiteSpace();
+}
+
+
+static QString extractAddress(DOM::Node node) {
+ QString rc = ";;";
+ QMap<QString,QString> entry;
+ DOM::NodeList nodes = node.childNodes();
+ unsigned int n = nodes.length();
+ for (unsigned int i = 0; i < n; ++i) {
+ DOM::Node node = nodes.item(i);
+ DOM::NamedNodeMap map = node.attributes();
+ for (unsigned int j = 0; j < map.length(); ++j) {
+ if (map.item(j).nodeName().string() != "class") {
+ continue;
+ }
+ QString a = map.item(j).nodeValue().string();
+ if (a == "street-address") {
+ entry["street-address"] = textForNode(node);
+ } else if (a == "locality") {
+ entry["locality"] = textForNode(node);
+ } else if (a == "region") {
+ entry["region"] = textForNode(node);
+ } else if (a == "postal-code") {
+ entry["postal-code"] = textForNode(node);
+ }
+ }
+ }
+
+ rc += entry["street-address"] + ";" + entry["locality"] + ";" + entry["region"] + ";" + entry["postal-code"] + ";" + entry["country"];
+ return rc.stripWhiteSpace();
+}
+
+
+void KonqMFIcon::extractCard(DOM::Node node) {
+ QString name, value;
+ DOM::NodeList nodes = node.childNodes();
+ unsigned int n = nodes.length();
+ value += "BEGIN:VCARD\nVERSION:3.0\n";
+ for (unsigned int i = 0; i < n; ++i) {
+ DOM::Node node = nodes.item(i);
+ DOM::NamedNodeMap map = node.attributes();
+ for (unsigned int j = 0; j < map.length(); ++j) {
+ if (map.item(j).nodeName().string() != "class") {
+ continue;
+ }
+ QStringList l = QStringList::split(' ', map.item(j).nodeValue().string());
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
+ if (*it == "photo") {
+ } else if (*it == "adr") {
+ value += "ADR:" + extractAddress(node) + "\n";
+ } else if (*it == "tel") {
+ value += "TEL;TYPE=VOICE:" + textForNode(node) + "\n";
+ } else if (*it == "fn") {
+ name = textForNode(node);
+ value += "FN:" + name + "\n";
+ } else if (*it == "url") {
+ DOM::Node at = node.attributes().getNamedItem("href");
+ if (!at.isNull()) {
+ value += "URL:" + at.nodeValue().string().stripWhiteSpace() + "\n";
+ }
+ } else if (*it == "email") {
+ DOM::Node at = node.attributes().getNamedItem("href");
+ if (!at.isNull()) {
+ QString v = at.nodeValue().string();
+ if (v.startsWith("mailto:")) {
+ v = v.mid(7);
+ }
+ value += "EMAIL:" + v.stripWhiteSpace() + "\n";
+ }
+ } else if (*it == "org") {
+ value += "ORG:" + textForNode(node) + "\n";
+ }
+ }
+ }
+ }
+
+ if (!name.isEmpty()) {
+ value += "END:VCARD\n";
+ _cards.append(qMakePair(name, value));
+ }
+}
+
+
+void KonqMFIcon::extractEvent(DOM::Node node) {
+ QString name, value = "BEGIN:VCALENDAR\nPRODID:-//Konqueror//EN\nVERSION:2.0\nBEGIN:VEVENT\n";
+ DOM::NodeList nodes = node.childNodes();
+ unsigned int n = nodes.length();
+ for (unsigned int i = 0; i < n; ++i) {
+ DOM::Node node = nodes.item(i);
+ DOM::NamedNodeMap map = node.attributes();
+ for (unsigned int j = 0; j < map.length(); ++j) {
+ if (map.item(j).nodeName().string() != "class") {
+ continue;
+ }
+ QStringList l = QStringList::split(' ', map.item(j).nodeValue().string());
+ for (QStringList::ConstIterator it = l.begin(); it != l.end(); ++it) {
+ if (*it == "url") {
+ DOM::Node at = node.attributes().getNamedItem("href");
+ if (!at.isNull()) {
+ value += "URL:" + at.nodeValue().string().stripWhiteSpace() + "\n";
+ }
+ } else if (*it == "dtstart") {
+ DOM::Node at = node.attributes().getNamedItem("title");
+ if (!at.isNull()) {
+ value += "DTSTART:" + at.nodeValue().string().stripWhiteSpace() + "\n";
+ }
+ } else if (*it == "dtend") {
+ DOM::Node at = node.attributes().getNamedItem("title");
+ if (!at.isNull()) {
+ value += "DTEND:" + at.nodeValue().string().stripWhiteSpace() + "\n";
+ }
+ } else if (*it == "summary") {
+ name = textForNode(node);
+ value += "SUMMARY:" + name + "\n";
+ } else if (*it == "location") {
+ value += "LOCATION:" + textForNode(node) + "\n";
+ }
+ }
+ }
+ }
+
+ if (!name.isEmpty()) {
+ value += "END:VEVENT\nEND:VCALENDAR\n";
+ _events.append(qMakePair(name, value));
+ }
+}
+
+
+bool KonqMFIcon::hasMicroFormat(DOM::NodeList nodes) {
+ bool ok = false;
+ unsigned int n = nodes.length();
+ for (unsigned int i = 0; i < n; ++i) {
+ DOM::Node node = nodes.item(i);
+ DOM::NamedNodeMap map = node.attributes();
+ for (unsigned int j = 0; j < map.length(); ++j) {
+ if (map.item(j).nodeName().string() != "class") {
+ continue;
+ }
+ if (map.item(j).nodeValue().string() == "vevent") {
+ ok = true;
+ extractEvent(node);
+ break;
+ }
+ if (map.item(j).nodeValue().string() == "vcard") {
+ ok = true;
+ extractCard(node);
+ break;
+ }
+ }
+ if (hasMicroFormat(node.childNodes())) {
+ ok = true;
+ }
+ }
+ return ok;
+}
+
+
+bool KonqMFIcon::mfFound() {
+ _events.clear();
+ _cards.clear();
+ return hasMicroFormat(m_part->document().childNodes());
+}
+
+
+void KonqMFIcon::contextMenu() {
+ delete m_menu;
+ m_menu = new KPopupMenu(m_part->widget());
+ m_menu->insertTitle(i18n("Microformats"));
+ connect(m_menu, SIGNAL(activated(int)), this, SLOT(addMF(int)));
+ int id = 0;
+ for (QValueList<QPair<QString, QString> >::ConstIterator it = _events.begin(); it != _events.end(); ++it) {
+ m_menu->insertItem(SmallIcon("bookmark_add"), (*it).first, id);
+ id++;
+ }
+ for (QValueList<QPair<QString, QString> >::ConstIterator it = _cards.begin(); it != _cards.end(); ++it) {
+ m_menu->insertItem(SmallIcon("bookmark_add"), (*it).first, id);
+ id++;
+ }
+ m_menu->insertSeparator();
+ m_menu->insertItem(SmallIcon("bookmark_add"), i18n("Import All Microformats"), this, SLOT(addMFs()), 0, 50000 );
+ m_menu->popup(QCursor::pos());
+}
+
+
+void KonqMFIcon::addMFIcon() {
+ if (!mfFound() || m_mfIcon) {
+ return;
+ }
+
+ m_statusBarEx = KParts::StatusBarExtension::childObject(m_part);
+ if (!m_statusBarEx) {
+ return;
+ }
+
+ m_mfIcon = new KURLLabel(m_statusBarEx->statusBar());
+ m_mfIcon->setFixedHeight(instance()->iconLoader()->currentSize(KIcon::Small));
+ m_mfIcon->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+ m_mfIcon->setUseCursor(false);
+ //FIXME hackish
+ m_mfIcon->setPixmap(QPixmap(locate("data", "microformat/pics/microformat.png")));
+
+ QToolTip::remove(m_mfIcon);
+ QToolTip::add(m_mfIcon, i18n("This site has a microformat entry", "This site has %n microformat entries", _events.count() + _cards.count()));
+
+ m_statusBarEx->addStatusBarItem(m_mfIcon, 0, true);
+
+ connect(m_mfIcon, SIGNAL(leftClickedURL()), this, SLOT(contextMenu()));
+}
+
+
+void KonqMFIcon::removeMFIcon() {
+ _events.clear();
+ _cards.clear();
+ if (m_mfIcon) {
+ m_statusBarEx->removeStatusBarItem(m_mfIcon);
+ delete m_mfIcon;
+ m_mfIcon = 0;
+ }
+
+ // Close the popup if it's open, otherwise we crash
+ delete m_menu;
+ m_menu = 0L;
+}
+
+
+void KonqMFIcon::addMF(int id) {
+ if (id < int(_events.count())) {
+ } else if (id < int(_cards.count())) {
+ id -= _cards.count() - 1;
+ addVCardViaDCOP(_cards[id].second);
+ }
+}
+
+
+void KonqMFIcon::addMFs() {
+ int n = _events.count() + _cards.count();
+ for (int i = 0; i < n; ++i) {
+ addMF(i);
+ }
+}
+
+#include "konqmficon.moc"
diff --git a/konq-plugins/microformat/konqmficon.h b/konq-plugins/microformat/konqmficon.h
new file mode 100644
index 0000000..819bb2e
--- /dev/null
+++ b/konq-plugins/microformat/konqmficon.h
@@ -0,0 +1,70 @@
+/*
+ Copyright (C) 2004 Teemu Rytilahti <tpr@d5k.net>
+ Copyright (C) 2005 George Staikos <staikos@kde.org>
+
+ 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.
+
+ As a special exception, permission is given to link this program
+ with any edition of Qt, and distribute the resulting executable,
+ without including the source code for Qt in the source distribution.
+*/
+
+#ifndef KONQFEEDICON_H
+#define KONQFEEDICON_H
+
+#include <khtml_part.h>
+#include <kparts/plugin.h>
+#include <kpopupmenu.h>
+#include "pluginbase.h"
+
+/**
+@author Teemu Rytilahti
+*/
+class KURLLabel;
+class QStringList;
+
+namespace KParts {
+ class StatusBarExtension;
+}
+
+class KonqMFIcon : public KParts::Plugin, PluginBase {
+ Q_OBJECT
+ public:
+ KonqMFIcon(QObject *parent, const char *name, const QStringList &);
+
+ ~KonqMFIcon();
+
+ private:
+ bool mfFound();
+ bool hasMicroFormat(DOM::NodeList nodes);
+ void extractCard(DOM::Node node);
+ void extractEvent(DOM::Node node);
+
+ QGuardedPtr<KHTMLPart> m_part;
+ KURLLabel *m_mfIcon;
+ KParts::StatusBarExtension *m_statusBarEx;
+ QGuardedPtr<KPopupMenu> m_menu;
+ QValueList<QPair<QString, QString> > _events, _cards;
+
+ private slots:
+ void waitPartToLoad();
+ void contextMenu();
+ void addMFIcon();
+ void removeMFIcon();
+ void addMFs();
+ void addMF(int id);
+};
+
+#endif
diff --git a/konq-plugins/microformat/mf_konqmficon.desktop b/konq-plugins/microformat/mf_konqmficon.desktop
new file mode 100644
index 0000000..27edbc6
--- /dev/null
+++ b/konq-plugins/microformat/mf_konqmficon.desktop
@@ -0,0 +1,110 @@
+[Desktop Entry]
+Name=Konqueror Microformat Plugin
+Name[bg]=Приставка за Microformat (Konqueror)
+Name[br]=Lugent Microformat Konqueror
+Name[ca]=Connector de microformat pel Konqueror
+Name[cs]=Microformat modul pro Konqueror
+Name[da]=Konqueror mikroformat-plugin
+Name[de]=Konqueror-Modul für Microformat
+Name[el]=Πρόσθετο Microformat του Konqueror
+Name[eo]=Mikroformata kromaĵo por Konkeranto
+Name[es]=Complemento Microformato de Konqueror
+Name[et]=Konquerori Microformati plugin
+Name[eu]=Konqueror-en Microformat-en plugina
+Name[fa]=وصلۀ ریزقالب Konqueror
+Name[fi]=Konqueror mikromuotoliitännäinen
+Name[fr]=Module d'icône de flux pour Konqueror
+Name[fy]=Konqueror Microformat-plugin
+Name[ga]=Breiseán Micreafhormáid Konqueror
+Name[gl]=Plugin de Micro-formato de Konqueror
+Name[he]=תוסף Microformat עבור Konqueror
+Name[hr]=Konqueror Microformat dodatak
+Name[hu]=Konqueror Microformat-bővítőmodul
+Name[is]=Konqueror Microformat íforrit
+Name[it]=Plugin per il formato microformat di Konqueror
+Name[ja]=Konqueror マイクロフォーマット プラグイン
+Name[ka]=Konqueror მიკროფორმატის მოდული
+Name[kk]=Konqueror Microformat плагин модулі
+Name[km]=កម្មវិធី​ជំនួយ​ទ្រង់ទ្រាយ​មីក្រូ​របស់​ Konqueror
+Name[lt]=Konqueror mikroformatų priedai
+Name[mk]=Приклучок за микроформат на Konqueror
+Name[nb]=Mikroformat programtillegg for Konqueror
+Name[nds]=Mikroformaat-Moduul för Konqueror
+Name[ne]=कन्क्वेर सूक्ष्म ढाँचा प्लगइन
+Name[nl]=Konqueror Microformat-plugin
+Name[nn]=Programtillegg for mikroformat i Konqueror
+Name[pa]=ਕੋਨਕਿਊਰੋਰ ਮਾਈਕਰੋਫਾਰਮਿਟ ਪਲੱਗਇਨ
+Name[pl]=Wtyczka Mikroformatu dla Konquerora
+Name[pt]='Plugin' de Micro-formato do Konqueror
+Name[pt_BR]=Plug-in de fonte de notícias RSS do Konqueror
+Name[ru]=Микроформаты для Konqueror
+Name[sk]=Modul Konqueror microformat
+Name[sl]=Vstavek Konquerorja za Microformat
+Name[sr]=Прикључак Konqueror-а за микроформат
+Name[sr@Latn]=Priključak Konqueror-a za mikroformat
+Name[sv]=Konqueror-insticksprogram för mikroformat
+Name[tr]=Konqueror Besleme Simge Eklentisi
+Name[uk]=Втулок мікроформату для Konqueror
+Name[vi]=Bổ sung định dạng vi Konqueror
+Name[zh_CN]=Konqueror 微格式插件
+Name[zh_TW]=Konqueror Microformat 外掛程式
+Icon=akregator
+Comment=Displays icon in the statusbar when the page has a microformat
+Comment[bg]=Показване на икона в лентата за състоянието, когато страницата има умален формат
+Comment[ca]=Mostra la icona a la barra d'estat quan la pàgina té un microformat
+Comment[cs]=Zobrazí na panelu ikonku, pokud má stránka mikroformát
+Comment[da]=Viser ikon i statusfelt når siden har et mikroformat
+Comment[de]=Zeigt das Symbol in der Statusleiste, wenn die Seite ein Microformat hat
+Comment[el]=Εμφανίζει το εικονίδιο στη γραμμή κατάστασης όταν η σελίδα έχει microformat
+Comment[eo]=Montras piktogramon en la statolistelo kiam la paĝo enhavas mikroformaton
+Comment[es]=Muestra el icono en la barra de estado cuando la página tiene un microformato
+Comment[et]=Näitab olekuribal kanaliikooni, kui saidil on microformat
+Comment[eu]=Orriak mikroformatu bat badu ikono bat bistaratzen du egoera-barran
+Comment[fa]=وقتی صفحه دارای ریزقالب باشد، شمایل را در میله وضعیت نمایش می‌دهد
+Comment[fi]=Näyttää syötekuvakkeen tilapalkissa jos sivulla on mikromuoto
+Comment[fr]=Affiche une icône dans la barre d'état lorsque la page possède un microformat
+Comment[fy]=Toant in piktogram yn de tastânbalke as de side in mikroformaat hat.
+Comment[ga]=Taispeánann sé deilbhín sa bharra stádais nuair atá micreafhormáid ag an leathanach
+Comment[gl]=Mostra un ícone na barra de estado cando a páxina ten un micro-formato
+Comment[hr]=Prikazuje ikonu u traci stanja ako stranica posjeduje mikro-oblikovanje
+Comment[hu]=Ikont jelenít meg az állapotsorban, ha az oldalhoz található Microformat-információ
+Comment[is]=Sýnir táknmynd í stöðuslá þegar síða inniheldur microformat
+Comment[it]=Mostra l'icona nella barra di stato quando la pagina ha un microformat
+Comment[ja]=ページにマイクロフォーマットがある場合、ステータスバーにアイコンを表示します
+Comment[ka]=სტატუსის ველში ასახავს ხატულას როდესაც გვერდს გააჩნია მიკროფორმატი
+Comment[kk]=Бетте микроформат болса, күй-жай жолағында таңбашасын көрсету
+Comment[km]=បង្ហាញ​រូប​តំណាង​នៅ​ក្នុង​របារ​ស្ថានភាព ​នៅ​ពេល​ដែល​ទំព័រ​មាន​ទ្រង់ទ្រាយ​មីក្រូ
+Comment[lt]=Rodo ženkliuką būsenos juostoje kai puslapis turi mikroformatą
+Comment[mk]=Прикажува икона во статусната лента кога страницата има микроформат
+Comment[nb]=Viser ikon for nyhetskilde på statuslinja når nettstedet har etmikroformat
+Comment[nds]=Wiest en Lüttbild op den Statusbalken, wenn de Siet en Mikroformaat hett
+Comment[ne]=पृष्ठमा सूक्ष्म ढाँचा हुदाँ स्थितिपट्टीमा प्रतिमा प्रदर्शन गर्छ
+Comment[nl]=Toont een pictogram in de statusbalk als een pagina een microformaat bevat.
+Comment[nn]=Viser eit ikon på statuslinja når sida har eit mikroformat
+Comment[pl]=Wyświetla ikonę w pasku stanu, jeśli strona zawiera mikroformat
+Comment[pt]=Mostra um ícone na barra de estado quando a página tem um micro-formato
+Comment[pt_BR]=Mostra um ícone na barra de status quando a página possui uma fonte de notícias RSS
+Comment[ru]=Показать в строке состояния значок поддержки микроформата на странице
+Comment[sk]=Zobrazí ikonu v statovom riadku keď strana obsahuje microformat
+Comment[sl]=Ko stran vsebuje Microformat se v vrstici stanja prikaže ikona
+Comment[sr]=Приказује икону у статусној траци када страна има микроформат
+Comment[sr@Latn]=Prikazuje ikonu u statusnoj traci kada strana ima mikroformat
+Comment[sv]=Visar en ikon i statusraden när sidan har ett mikroformat
+Comment[tr]=Sayfaya özgü bir biçim olduğunda simgeyi durum çubuğunda göster
+Comment[uk]=Показує піктограму в рядку стану, коли сторінка має мікроформат
+Comment[uz]=Sahifada mikroformat boʻlsa, holat panelida nishonchani koʻrsatish
+Comment[uz@cyrillic]=Саҳифада микроформат бўлса, ҳолат панелида нишончани кўрсатиш
+Comment[vi]=Hiển thị biểu tượng trên thanh trạng thái khi trang có định dạng vi
+Comment[zh_CN]=当页面有微格式时在状态栏显示图标
+Comment[zh_TW]=當網頁有 microformat 時在狀態列顯示圖示
+Type=Service
+X-KDE-Library=libakregatorkonqfeedicon
+X-KDE-PluginInfo-Author=George Staikos
+X-KDE-PluginInfo-Email=staikos@kde.org
+X-KDE-PluginInfo-Name=konqmficon
+X-KDE-PluginInfo-Version=1.0.0
+X-KDE-PluginInfo-Category=Statusbar
+X-KDE-PluginInfo-Depends=
+X-KDE-PluginInfo-License=GPL
+X-KDE-PluginInfo-EnabledByDefault=false
+X-KDE-ParentApp=konqueror
diff --git a/konq-plugins/microformat/mf_konqmficon.rc b/konq-plugins/microformat/mf_konqmficon.rc
new file mode 100644
index 0000000..466b14e
--- /dev/null
+++ b/konq-plugins/microformat/mf_konqmficon.rc
@@ -0,0 +1,3 @@
+<!DOCTYPE kpartgui>
+<kpartplugin name="konqmficon" library="libmfkonqmficon" version="1">
+</kpartplugin>
diff --git a/konq-plugins/microformat/microformat.png b/konq-plugins/microformat/microformat.png
new file mode 100644
index 0000000..0217918
--- /dev/null
+++ b/konq-plugins/microformat/microformat.png
Binary files differ
diff --git a/konq-plugins/microformat/microformat.svgz b/konq-plugins/microformat/microformat.svgz
new file mode 100644
index 0000000..5975616
--- /dev/null
+++ b/konq-plugins/microformat/microformat.svgz
Binary files differ
diff --git a/konq-plugins/microformat/pluginbase.cpp b/konq-plugins/microformat/pluginbase.cpp
new file mode 100644
index 0000000..9f73dd6
--- /dev/null
+++ b/konq-plugins/microformat/pluginbase.cpp
@@ -0,0 +1,43 @@
+/*
+ Copyright (C) 2004 Teemu Rytilahti <tpr@d5k.net>
+ Copyright (C) 2005 George Staikos <staikos@kde.org>
+
+ 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.
+
+ As a special exception, permission is given to link this program
+ with any edition of Qt, and distribute the resulting executable,
+ without including the source code for Qt in the source distribution.
+*/
+
+#include <kprocess.h>
+#include <dcopref.h>
+#include <klocale.h>
+
+#include "pluginbase.h"
+
+#include <kdebug.h>
+
+PluginBase::PluginBase() {
+}
+
+
+PluginBase::~PluginBase() {
+}
+
+
+void PluginBase::addVCardViaDCOP(const QString& card) {
+ DCOPRef("kaddressbook", "AddressBookServiceIface").send("importVCard", card);
+}
+
diff --git a/konq-plugins/microformat/pluginbase.h b/konq-plugins/microformat/pluginbase.h
new file mode 100644
index 0000000..e37ea36
--- /dev/null
+++ b/konq-plugins/microformat/pluginbase.h
@@ -0,0 +1,38 @@
+/*
+ Copyright (C) 2004 Teemu Rytilahti <tpr@d5k.net>
+ Copyright (C) 2005 George Staikos <staikos@kde.org>
+
+ 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.
+
+ As a special exception, permission is given to link this program
+ with any edition of Qt, and distribute the resulting executable,
+ without including the source code for Qt in the source distribution.
+*/
+
+#ifndef PLUGINBASE_H
+#define PLUGINBASE_H
+
+class QString;
+
+class PluginBase {
+ public:
+ PluginBase();
+ ~PluginBase();
+
+ public:
+ void addVCardViaDCOP(const QString& vcard);
+};
+
+#endif