diff options
Diffstat (limited to 'kate/openheader')
-rw-r--r-- | kate/openheader/Makefile.am | 21 | ||||
-rw-r--r-- | kate/openheader/kateopenheader.desktop | 112 | ||||
-rw-r--r-- | kate/openheader/plugin_kateopenheader.cpp | 117 | ||||
-rw-r--r-- | kate/openheader/plugin_kateopenheader.h | 50 | ||||
-rw-r--r-- | kate/openheader/ui.rc | 8 |
5 files changed, 308 insertions, 0 deletions
diff --git a/kate/openheader/Makefile.am b/kate/openheader/Makefile.am new file mode 100644 index 0000000..9db3328 --- /dev/null +++ b/kate/openheader/Makefile.am @@ -0,0 +1,21 @@ +INCLUDES = $(all_includes) +METASOURCES = AUTO + +# Install this plugin in the KDE modules directory +kde_module_LTLIBRARIES = kateopenheaderplugin.la + +# This is all standard. Remove the LIB_KHTML reference if you are not +# using the KHTML Part +kateopenheaderplugin_la_SOURCES = plugin_kateopenheader.cpp +kateopenheaderplugin_la_LIBADD = -lkateinterfaces +kateopenheaderplugin_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/kateopenheader +plugins_DATA = ui.rc + +kde_services_DATA = kateopenheader.desktop + +messages: rc.cpp + $(XGETTEXT) *.cpp -o $(podir)/kateopenheader.pot diff --git a/kate/openheader/kateopenheader.desktop b/kate/openheader/kateopenheader.desktop new file mode 100644 index 0000000..f5f3322 --- /dev/null +++ b/kate/openheader/kateopenheader.desktop @@ -0,0 +1,112 @@ +[Desktop Entry] +Type=Service +ServiceTypes=Kate/Plugin +X-KDE-Library=kateopenheaderplugin +X-Kate-Version=2.5 +Name=Kate OpenHeader +Name[af]=Kate Maak-opskrif-oop +Name[cy]=AgorPennawd Kate +Name[el]=Άνοιγμα επικεφαλίδας του Kate +Name[eo]=Kodredaktilo-difinmalfermilo +Name[es]=Cabecera abierta de Kate +Name[et]=Kate päisefaili avaja +Name[eu]= Kateren OpenHeader +Name[fi]=Kate avaaotsikko +Name[fo]=Kate opna høvd +Name[fr]=Ouverture d'en-tête pour Kate +Name[gl]=OpenHeader para Kate +Name[he]=פותח הכותרות של Kate +Name[hi]=के-एटीई ओपन-हेडर +Name[hr]=Kate OtvorenoZaglavlje +Name[hu]=Kate fejlécmegnyitó +Name[it]=ApriHeader di Kate +Name[ja]=Kate オープンヘッダ +Name[kk]=Kate айдар файлын ашу +Name[lv]=Kate AtvērtHederi +Name[nb]=Åpne hodefil i Kate +Name[nds]=Koppdateien opmaken för Kate +Name[ne]=केट ओपनहेडर +Name[pa]=ਕੇਟ ਫਾਇਲ-ਸਿਰਲੇਖ +Name[pl]=Kate - Otwarcie pliku nagłówkowego +Name[pt]=OpenHeader do Kate +Name[pt_BR]=Abrir Cabeçalhos do Kate +Name[ro]=Includere fişier antet pentru Kate +Name[ru]=Открытие файла заголовка для Kate +Name[sr]=Отварање заглавља за Kate +Name[sr@Latn]=Otvaranje zaglavlja za Kate +Name[ta]=கேட் திறந்த தலைப்பு +Name[tg]=Кушодани сарлавҳаи файл барои Kate +Name[th]=เปิดส่วนหัวของ Kate +Name[tr]=Kate Başlık Aç +Name[uk]=Відкрити файл заголовка Kate +Name[ven]=Kate Openeheda +Name[vi]=Phần đầu mở Kate +Name[xh]=Intloko Yokuvula ye Kate +Name[zu]=u Kate Vula isihloko +Comment=Opens the corresponding .h/[.cpp|.c] file +Comment[af]=Maak oop die ooreenstemmend .h/[.cpp|.c] lêer +Comment[ar]=تفتح ملف .h المقابل لملف [.cpp|.c] +Comment[az]=Korespond .h/[.cpp|.c] faylını açar +Comment[bg]=Отваряне на съответстващите файлове .h/[.cpp|.c] +Comment[bs]=Otvara odgovarajuću .h/[.cpp|.c] datoteku +Comment[ca]=Obre el corresponent fitxer .h/[.cpp|.c] +Comment[cs]=Otevře odpovídající soubor .h/[.cpp|.c] +Comment[cy]=Agor y ffeil .h/[.cpp|.c] addas +Comment[da]=Åbner den tilsvarende .h/[.cpp|.c]-fil +Comment[de]=Öffnet die entsprechende .h/[.cpp|.c]-Datei +Comment[el]=Ανοίγει το αντίστοιχο αρχείο .h/[.cpp|.c] +Comment[eo]=Malfermas la koncernan .h/[.cpp|.c]-dosieron +Comment[es]=Abre el archivo .h/[.cpp|.c] +Comment[et]=Vastava .h/[.cpp|.c] faili avamine +Comment[eu]= Dagokion .h/[.cpp|.c] fitxategia irekitzen du +Comment[fa]=پروندۀ متناظر .h/[.cpp|.c] را باز میکند. +Comment[fi]=Avaa vastaavan .h/[.cpp|.c] tiedoston +Comment[fo]=Opnar tann samsvarandi .h/[.cpp|.c]-fíla. +Comment[fr]=Ouvre le fichier correspondant .h/[.cpp|.c] +Comment[fy]=iepent de korrespondearjende .h/[.cpp|.c]-triem +Comment[ga]=Oscail an comhad .h/[.cpp|.c] a fhreagraíonn leis an gceann seo +Comment[gl]=Abre o ficheiro .h/[.cpp|.c] correspondente +Comment[he]=פתיחת קובץ הכותרת המתאים [h/[.cpp|.c. +Comment[hi]= .h/[.cpp|.c] के सदृश्य फ़ाइल खोलता है +Comment[hr]=Otvaranje odgovarajuće .h/[.cpp|.c] datoteke +Comment[hu]=A megfelelő .h/[.cpp|.c] fájl megnyitása +Comment[is]=Opnar viðkomandi .h/[.cpp|.c] skrá +Comment[it]=Apre il file .h/[.cpp|.c] corrispondente +Comment[ja]=対応する .h/[.cpp|.c] ファイルを開きます +Comment[ka]=ხსნის შესაბამის .h/[.cpp|.c] ფაილს +Comment[kk]=Керек .h/[.cpp|.c] айдар файлын ашады +Comment[km]=បើកការទាក់ទងឯកសារ .h/[.cpp|.c] +Comment[lt]=Atveria atitinkamą .h/[.cpp|.c] bylą +Comment[lv]=Atver atbilstošo .h/[.cpp|.c] failu +Comment[mk]=Ја отвора соодветната .h/[.cpp|.c] датотека +Comment[ms]=Membuka fail .h/[.cpp|.c] yang sepadan. +Comment[mt]=Jiftaħ il-fajl .h/[.cpp|.c] li jikkorrispondi +Comment[nb]=Åpner den tilhørende .h/[.cpp|.c]-fila +Comment[nds]=Maakt de tohören .h/[.cpp|.c]-Datei op +Comment[ne]=सङ्गत .h/[.cpp|.c] फाइल खोल्दछ +Comment[nl]=Opent het corresponderende .h/[.cpp|.c]-bestand +Comment[nn]=Opnar .h/[.cpp|.c]-fila som høyrer til +Comment[pa]=ਅਨੁਸਾਰੀ .h/[.cpp|.c] ਫਾਇਲ ਖੋਲੋ +Comment[pl]=Otwiera odpowiadający plik h/[.cpp|.c] +Comment[pt]=Abre o ficheiro .h/[.cpp|.c] correspondente +Comment[pt_BR]=Abrir o arquivo .h[cpp|.c] correspondente +Comment[ro]=Deschide fişierul antet corespunzător .h/[.cpp|.c] +Comment[ru]=Открывает соответствующий файл .h/[.cpp|.c] +Comment[sk]=Otvorí odpovedajúci súbor .h/[.cpp|.c] +Comment[sl]=Odpre pripadajočo datoteko .h/[.cpp|.c] +Comment[sr]=Отвара одговарајући .h/[.cpp|.c] фајл +Comment[sr@Latn]=Otvara odgovarajući .h/[.cpp|.c] fajl +Comment[sv]=Öppnar den motsvarande .h/[.cpp|.c]-filen +Comment[ta]=தொடர்புடைய .h/[.cpp|.c] கோப்பினைத் திறக்கிறது +Comment[tg]=Файли мувофиқи .h/[.cpp|.c] мекушояд +Comment[th]=เปิดแฟ้มที่มีรูปแบบ .h/[.cpp|.c] +Comment[tr]=.h/[.cpp|.c] dosyasını açar +Comment[uk]=Відкриває відповідний файл .h/[.cpp|.c] +Comment[uz]=Tegishli .h/[.cpp|.c] faylini ochish +Comment[uz@cyrillic]=Тегишли .h/[.cpp|.c] файлини очиш +Comment[ven]=Tshi vula faele dzino yelana .h/[.cpp|.c] +Comment[vi]=Mở tập tin .h/[.cpp|.c] tương ứng +Comment[xh]=Ivula ungqamano .h/[.cpp|.c] file +Comment[zh_CN]=打开相应的 .h/[.cpp|.c] 文件 +Comment[zh_TW]=開啟相對應的 .h/[.cpp|.c] 檔案 +Comment[zu]=Ivula ifayela evumelenayo .h/[.cpp|.c] diff --git a/kate/openheader/plugin_kateopenheader.cpp b/kate/openheader/plugin_kateopenheader.cpp new file mode 100644 index 0000000..f404022 --- /dev/null +++ b/kate/openheader/plugin_kateopenheader.cpp @@ -0,0 +1,117 @@ +/*************************************************************************** + plugin_katetextfilter.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_kateopenheader.h" +#include "plugin_kateopenheader.moc" + +#include <qfileinfo.h> +#include <kgenericfactory.h> +#include <kaction.h> +#include <klocale.h> +#include <kdebug.h> +#include <kurl.h> +#include <kio/netaccess.h> + +class PluginView : public KXMLGUIClient +{ + friend class PluginKateOpenHeader; + + public: + Kate::MainWindow *win; +}; + +K_EXPORT_COMPONENT_FACTORY( kateopenheaderplugin, KGenericFactory<PluginKateOpenHeader>( "kateopenheader" ) ) + +PluginKateOpenHeader::PluginKateOpenHeader( QObject* parent, const char* name, const QStringList& ) + : Kate::Plugin ( (Kate::Application *)parent, name ) +{ +} + +PluginKateOpenHeader::~PluginKateOpenHeader() +{ +} + +void PluginKateOpenHeader::addView(Kate::MainWindow *win) +{ + // TODO: doesn't this have to be deleted? + PluginView *view = new PluginView (); + + (void) new KAction( i18n("Open .h/.cpp/.c"), Key_F12, + this, SLOT( slotOpenHeader() ), + view->actionCollection(), "file_openheader" ); + + view->setInstance (new KInstance("kate")); + view->setXMLFile( "plugins/kateopenheader/ui.rc" ); + win->guiFactory()->addClient (view); + view->win = win; + + m_views.append (view); +} + +void PluginKateOpenHeader::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 PluginKateOpenHeader::slotOpenHeader () +{ + if (!application()->activeMainWindow()) + return; + + Kate::View * kv (application()->activeMainWindow()->viewManager()->activeView()); + if (!kv) return; + + KURL url=kv->document()->url(); + if ((!url.isValid()) || (url.isEmpty())) return; + + QFileInfo info( url.path() ); + QString extension = info.extension().lower(); + + QStringList headers( QStringList() << "h" << "H" << "hh" << "hpp" ); + QStringList sources( QStringList() << "c" << "cpp" << "cc" << "cp" << "cxx" ); + + if( sources.find( extension ) != sources.end() ) { + tryOpen( url, headers ); + } else if ( headers.find( extension ) != headers.end() ) { + tryOpen( url, sources ); + } +} + +void PluginKateOpenHeader::tryOpen( const KURL& url, const QStringList& extensions ) +{ + if (!application()->activeMainWindow()) + return; + + kdDebug() << "Trying to open " << url.prettyURL() << " with extensions " << extensions.join(" ") << endl; + QString basename = QFileInfo( url.path() ).baseName(); + KURL newURL( url ); + for( QStringList::ConstIterator it = extensions.begin(); it != extensions.end(); ++it ) { + newURL.setFileName( basename + "." + *it ); + if( KIO::NetAccess::exists( newURL ) ) + application()->activeMainWindow()->viewManager()->openURL( newURL ); + newURL.setFileName( basename + "." + (*it).upper() ); + if( KIO::NetAccess::exists( newURL ) ) + application()->activeMainWindow()->viewManager()->openURL( newURL ); + } +} diff --git a/kate/openheader/plugin_kateopenheader.h b/kate/openheader/plugin_kateopenheader.h new file mode 100644 index 0000000..61b6058 --- /dev/null +++ b/kate/openheader/plugin_kateopenheader.h @@ -0,0 +1,50 @@ + /*************************************************************************** + plugin_katetextfilter.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_HEADER_H +#define _PLUGIN_KANT_HEADER_H + +#include <qstring.h> + +#include <kate/plugin.h> +#include <kate/application.h> +#include <kate/view.h> +#include <kate/document.h> +#include <kate/documentmanager.h> +#include <kate/mainwindow.h> +#include <kate/viewmanager.h> + +class PluginKateOpenHeader : public Kate::Plugin, Kate::PluginViewInterface +{ + Q_OBJECT + + public: + PluginKateOpenHeader( QObject* parent = 0, const char* name = 0, const QStringList& = QStringList() ); + virtual ~PluginKateOpenHeader(); + + void addView (Kate::MainWindow *win); + void removeView (Kate::MainWindow *win); + + public slots: + void slotOpenHeader (); + void tryOpen( const KURL& url, const QStringList& extensions ); + + private: + QPtrList<class PluginView> m_views; +}; + +#endif // _PLUGIN_KANT_OPENHEADER_H diff --git a/kate/openheader/ui.rc b/kate/openheader/ui.rc new file mode 100644 index 0000000..5ccd8f8 --- /dev/null +++ b/kate/openheader/ui.rc @@ -0,0 +1,8 @@ +<!DOCTYPE kpartgui> +<kpartplugin name="kateopenheader" library="libkateopenheaderplugin" version="3"> +<MenuBar> + <Menu name="file"><Text>&File</Text> + <Action name="file_openheader" group="open_merge"/> + </Menu> +</MenuBar> +</kpartplugin> |