From 84da08d7b7fcda12c85caeb5a10b4903770a6f69 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: 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 --- kate/htmltools/Makefile.am | 21 +++++ kate/htmltools/katehtmltools.desktop | 136 +++++++++++++++++++++++++++ kate/htmltools/plugin_katehtmltools.cpp | 161 ++++++++++++++++++++++++++++++++ kate/htmltools/plugin_katehtmltools.h | 53 +++++++++++ kate/htmltools/ui.rc | 8 ++ 5 files changed, 379 insertions(+) create mode 100644 kate/htmltools/Makefile.am create mode 100644 kate/htmltools/katehtmltools.desktop create mode 100644 kate/htmltools/plugin_katehtmltools.cpp create mode 100644 kate/htmltools/plugin_katehtmltools.h create mode 100644 kate/htmltools/ui.rc (limited to 'kate/htmltools') diff --git a/kate/htmltools/Makefile.am b/kate/htmltools/Makefile.am new file mode 100644 index 0000000..73795b7 --- /dev/null +++ b/kate/htmltools/Makefile.am @@ -0,0 +1,21 @@ +INCLUDES = $(all_includes) +METASOURCES = AUTO + +# Install this plugin in the KDE modules directory +kde_module_LTLIBRARIES = katehtmltoolsplugin.la + +# This is all standard. Remove the LIB_KHTML reference if you are not +# using the KHTML Part +katehtmltoolsplugin_la_SOURCES = plugin_katehtmltools.cpp +katehtmltoolsplugin_la_LIBADD = -lkateinterfaces +katehtmltoolsplugin_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries) + +# Install the .rc file in the Part's directory (in this case, the part +# is KHTMLPart) +pluginsdir = $(kde_datadir)/kate/plugins/katehtmltools +plugins_DATA = ui.rc + +kde_services_DATA = katehtmltools.desktop + +messages: rc.cpp + $(XGETTEXT) *.cpp -o $(podir)/katehtmltools.pot diff --git a/kate/htmltools/katehtmltools.desktop b/kate/htmltools/katehtmltools.desktop new file mode 100644 index 0000000..ed9b1ec --- /dev/null +++ b/kate/htmltools/katehtmltools.desktop @@ -0,0 +1,136 @@ +[Desktop Entry] +Type=Service +ServiceTypes=Kate/Plugin +X-KDE-Library=katehtmltoolsplugin +X-Kate-Version=2.5 +Name=Kate HTML Tools +Name[af]=Kate Html Nutsprogramme +Name[ar]=أدوات Kate HTML +Name[az]=Kate HTML Vasitələri +Name[br]=Ostilhoù Kate HTML +Name[bs]=Kate HTML alati +Name[ca]=Eines HTML per a Kate +Name[cs]=HTML nástroje Kate +Name[cy]=Offer HTML am Kate +Name[da]=Kate HTML-værktøjer +Name[de]=HTML-Dienstprogramme für Kate +Name[el]=Εργαλεία HTML του Kate +Name[eo]=HTML-iloj por Kodredaktilo +Name[es]=Herramientas HTML de Kate +Name[et]=Kate HTML-tööriistad +Name[eu]=Kateren HTML tresnak +Name[fa]=ابزارهای زنگام Kate +Name[fi]=Kate HTML-työkalut +Name[fo]=Kate HTML-amboð +Name[fr]=Outils HTML pour Kate +Name[fy]=Kate HTML Ark +Name[ga]=Uirlisí HTML Kate +Name[gl]=Ferramentas de HTML para Kate +Name[he]=כלי ה־HTML של Kate +Name[hi]=के-एटीई एचटीएमएल औज़ार +Name[hr]=Kate HTML alati +Name[hu]=Kate HTML-eszközök +Name[is]=Kate HTML tól +Name[it]=Strumenti HTML di Kate +Name[ja]=Kate HTML ツール +Name[ka]=Kate HTML ხელსაწყოები +Name[kk]=Kate HTML құралдары +Name[km]=ឧបករណ៍ Kate HTML +Name[lt]=Kate HTML įrankiai +Name[lv]=Kate HTML Rīki +Name[mk]=HTML-алатки за Кате +Name[ms]= Alat HTML Kate +Name[mt]=Għodda HTML Kate +Name[nb]=HTML-verktøy til Kate +Name[nds]=HTML-Warktüüch för Kate +Name[ne]=केट एचटीएमएल उपकरणहरू +Name[nn]=Kate HTML-verktøy +Name[nso]=Dibereka tsa HTML ya Kate +Name[pa]=ਕੇਟ HTML ਸੰਦ +Name[pl]=Narzędzia HTML do Kate +Name[pt]=Ferramentas de HTML do Kate +Name[pt_BR]=Ferramentas HTML do Kate +Name[ro]=Unelte HTML Kate +Name[ru]=Утилиты для работы с HTML в Kate +Name[sk]=HTML nástroje Kate +Name[sl]=Orodja za HTML Kate +Name[sr]=HTML алати за Kate +Name[sr@Latn]=HTML alati za Kate +Name[sv]=HTML-verktyg för Kate +Name[ta]=கேட் HTML கருவிகள் +Name[tg]=Асбобҳо барои кор бо HTML дар Kate +Name[th]=เครื่องมือ HTML ของ Kate +Name[tr]=Kate HTML Araçları +Name[uk]=Засоби HTML для Kate +Name[uz]=Kate HTML vositalari +Name[uz@cyrillic]=Kate HTML воситалари +Name[ven]=Kate HTML Zwishumiswa +Name[vi]=Công cụ HTML Kate +Name[xh]=Izixhobo ze Kate HTML +Name[zh_CN]=Kate HTML 工具 +Name[zh_TW]=Kate HTML 工具組 +Name[zu]=Amathuluzi e Kate HTML. +Comment=Facilitated insertion of HTML tags +Comment[af]=Bystand invoeg van Html etiket +Comment[ar]=ادخال أسهل لعلامات HTML +Comment[az]=HTML təqlərinin səliqəli əlavəsi +Comment[bg]=Помощ при вмъкване на тагове и елементи HTML +Comment[bs]=Primjenjeno ubacivanje HTML tagova +Comment[ca]=Fàcil inserció d'etiquetes HTML +Comment[cs]=Usnadněné vkládání HTML značek +Comment[cy]=Hwyluso mewnosod tagiau HTML +Comment[da]=Hjælper med indsætning af HTML-koder +Comment[de]=Vereinfachte Eingabe von HTML-Formatierungen +Comment[el]=Διευκόλυνση της εισαγωγής HTML tags +Comment[eo]=Asistita enmeto de HTML-etikedoj +Comment[es]=Facilita la inserción de etiquetas HTML +Comment[et]=Hõlpus HTML-siltide lisamine +Comment[eu]=HTML etiketen txertaketa erraza +Comment[fa]=درج آسان برچسبهای زنگام +Comment[fi]=Helpotettu HTML-tagien lisäys +Comment[fo]=Gevur møguleiki fyri at innseta HTML-merki. +Comment[fr]=Aide à l'insertion de balises HTML +Comment[fy]=Maklike ynfoeging fan HTML-tags +Comment[ga]=Ionsá éascaithe de chlibeanna HTML +Comment[gl]=Introdución facilitada de marcas de HTML +Comment[he]=הוספה מובנית של תגיות HTML +Comment[hi]=एचटीएमएल टैग्स शामिल करने में मदद करता है +Comment[hr]=Olakšano umetanje HTML oznaka +Comment[hu]=HTML-tag-ek beszúrása +Comment[is]=Hjálpar til við að setja HTML merki i texta +Comment[it]=Inserimento facilitato dei tag HTML +Comment[ja]=HTML タグ挿入を簡単にします +Comment[ka]=HTML ჭდეების გამიზნული ჩადგმა +Comment[kk]=HTML тегтерін енгізуін жеңілдету +Comment[km]=ការ​បញ្ចូល​ដែល​បាន​​​សម្រួល​របស់​​ស្លាក HTML +Comment[lt]=Palengvintas HTML tagų įdėjimas +Comment[lv]=Atvieglota HTML tagu iespraušana +Comment[mk]=Го олеснува вметнувањето на HTML-ознаки +Comment[ms]=Memudahkan penyertaan tag HTML +Comment[mt]=Jiffaċilita l-użu ta' tags HTML +Comment[nb]=Forenklet innsetting av HTML-tagger +Comment[nds]=HTML-Betekers eenfacher infögen +Comment[ne]=एचटीएमएल ट्यागहरूको घुसाई सहजता +Comment[nl]=Gemakkelijke invoeging van HTML-tags +Comment[nn]=Enkel innsetjing av HTML-taggar +Comment[pl]=Uproszczone wstawianie znaczników HTML +Comment[pt]=Introdução facilitada de marcas de HTML +Comment[pt_BR]=Inserção de tags HTML facilitada +Comment[ro]=Facilitează inserarea de taguri HTML +Comment[ru]=Интеллектуальная вставка тегов HTML +Comment[sk]=Vkladanie tagov HTML +Comment[sl]=Pospešeno vstavljanje oznak HTML +Comment[sr]=Олакшано убацивање HTML ознака +Comment[sr@Latn]=Olakšano ubacivanje HTML oznaka +Comment[sv]=Kraftfull infogning av HTML-taggar +Comment[ta]=HTML கட்டளைகளை இணைக்க உதவும் +Comment[tg]=Барқарори маънавии тегҳои HTML +Comment[th]=การแทรกแท็ก HTML ที่แสนสะดวก +Comment[tr]=Kolaylaştırılmış HTML etiketleri eklenmesi +Comment[uk]=Форматування тексту мітками HTML +Comment[ven]=U dzhenisiwa zwo itwaho zwa dzi thege dza HTML +Comment[vi]=Làm dễ dàng việc chèn thẻ HTML +Comment[xh]=Ufakelo olulula lwe tags ze HTML +Comment[zh_CN]=方便地插入 HTML 标签 +Comment[zh_TW]=輔助嵌入 HTML 標籤 +Comment[zu]=Kuqhubekisiwe Ukufakwa kwamathagi e HTML diff --git a/kate/htmltools/plugin_katehtmltools.cpp b/kate/htmltools/plugin_katehtmltools.cpp new file mode 100644 index 0000000..f0764f2 --- /dev/null +++ b/kate/htmltools/plugin_katehtmltools.cpp @@ -0,0 +1,161 @@ +/*************************************************************************** + plugin_katehtmltools.cpp - description + ------------------- + begin : FRE Feb 23 2001 + copyright : (C) 2001 by Joseph Wenninger + email : jowenn@bigfoot.com + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +#include "plugin_katehtmltools.h" +#include "plugin_katehtmltools.moc" + +#include +#include +#include +#include +#include +#include +#include + +K_EXPORT_COMPONENT_FACTORY( katehtmltoolsplugin, KGenericFactory( "katehtmltools" ) ) + +class PluginView : public KXMLGUIClient +{ + friend class PluginKateHtmlTools; + + public: + Kate::MainWindow *win; +}; + +PluginKateHtmlTools::PluginKateHtmlTools( QObject* parent, const char* name, const QStringList& ) + : Kate::Plugin ( (Kate::Application *)parent, name ) +{ +} + +PluginKateHtmlTools::~PluginKateHtmlTools() +{ +} + +void PluginKateHtmlTools::addView(Kate::MainWindow *win) +{ + // TODO: doesn't this have to be deleted? + PluginView *view = new PluginView (); + + (void) new KAction ( i18n("HT&ML Tag..."), /*"edit_HTML_tag",*/ ALT + Key_Minus, this, + SLOT( slotEditHTMLtag() ), view->actionCollection(), "edit_HTML_tag" ); + + view->setInstance (new KInstance("kate")); + view->setXMLFile( "plugins/katehtmltools/ui.rc" ); + win->guiFactory()->addClient (view); + view->win = win; + + m_views.append (view); +} + +void PluginKateHtmlTools::removeView(Kate::MainWindow *win) +{ + for (uint z=0; z < m_views.count(); z++) + if (m_views.at(z)->win == win) + { + PluginView *view = m_views.at(z); + m_views.remove (view); + win->guiFactory()->removeClient (view); + delete view; + } +} + +void PluginKateHtmlTools::slotEditHTMLtag() +// PCP +{ + if (!application()->activeMainWindow()) + return; + + Kate::View *kv=application()->activeMainWindow()->viewManager()->activeView(); + if (!kv) return; + + QString text ( KatePrompt ( i18n("HTML Tag"), + i18n("Enter HTML tag contents (the <, >, and closing tag will be supplied):"), + (QWidget *)kv) + ); + + if ( !text.isEmpty () ) + slipInHTMLtag (*kv, text); // user entered something and pressed ok + +} + + +QString PluginKateHtmlTools::KatePrompt + ( + const QString & strTitle, + const QString & strPrompt, + QWidget * that + ) +{ + // TODO: Make this a "memory edit" field with a combo box + // containing prior entries + + KLineEditDlg dlg(strPrompt, QString::null, that); + dlg.setCaption(strTitle); + + if (dlg.exec()) + return dlg.text(); + else + return ""; +} + + +void PluginKateHtmlTools::slipInHTMLtag (Kate::View & view, QString text) // PCP +{ + + // We must add a heavy elaborate HTML markup system. Not! + + QStringList list = QStringList::split (' ', text); + QString marked = view.getDoc()->selection (); + uint preDeleteLine = 0, preDeleteCol = 0; + view.cursorPosition (&preDeleteLine, &preDeleteCol); + + if (marked.length() > 0) + view.keyDelete (); + uint line = 0, col = 0; + view.cursorPosition (&line, &col); + QString pre ("<" + text + ">"); + QString post; + if (list.count () > 0) post = ""; + view.insertText (pre + marked + post); + + // all this muck to leave the cursor exactly where the user + // put it... + + // Someday we will can all this (unless if it already + // is canned and I didn't find it...) + + // The second part of the if disrespects the display bugs + // when we try to reselect. TODO: fix those bugs, and we can + // un-break this if... + + if (preDeleteLine == line && -1 == marked.find ('\n')) + if (preDeleteLine == line && preDeleteCol == col) + { + view.setCursorPosition (line, col + pre.length () + marked.length () - 1); + + for (int x (marked.length()); x--;) + view.shiftCursorLeft (); + } + else + { + view.setCursorPosition (line, col += pre.length ()); + + for (int x (marked.length()); x--;) + view.shiftCursorRight (); + } + +} diff --git a/kate/htmltools/plugin_katehtmltools.h b/kate/htmltools/plugin_katehtmltools.h new file mode 100644 index 0000000..8f134ce --- /dev/null +++ b/kate/htmltools/plugin_katehtmltools.h @@ -0,0 +1,53 @@ + /*************************************************************************** + plugin_katehtmltools.h - description + ------------------- + begin : FRE Feb 23 2001 + copyright : (C) 2001 by Joseph Wenninger + email : jowenn@bigfoot.com + ***************************************************************************/ + +/*************************************************************************** + * * + * 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. * + * * + ***************************************************************************/ + +#ifndef _PLUGIN_KANT_HTMLTOOLS_H +#define _PLUGIN_KANT_HTMLTOOLS_H + +#include + +#include +#include +#include +#include +#include +#include +#include + +class PluginKateHtmlTools : public Kate::Plugin, Kate::PluginViewInterface +{ + Q_OBJECT + +public: + PluginKateHtmlTools( QObject* parent = 0, const char* name = 0, const QStringList& = QStringList() ); + virtual ~PluginKateHtmlTools(); + + void addView (Kate::MainWindow *win); + void removeView (Kate::MainWindow *win); + +private: + QPtrList m_views; + + QString KatePrompt (const QString & strTitle, const QString &strPrompt, + QWidget * that); + void slipInHTMLtag (Kate::View & view, QString text); + +public slots: + void slotEditHTMLtag(); +}; + +#endif // _PLUGIN_KANT_HTMLTOOLS_H diff --git a/kate/htmltools/ui.rc b/kate/htmltools/ui.rc new file mode 100644 index 0000000..885f00e --- /dev/null +++ b/kate/htmltools/ui.rc @@ -0,0 +1,8 @@ + + + + &Tools + + + + -- cgit v1.2.1