From 722ce1efbac31c61b1d4b13f7e075c9f311e3e73 Mon Sep 17 00:00:00 2001 From: Darrell Anderson Date: Sun, 2 Mar 2014 20:05:33 +0100 Subject: Finish renaming tdevelop components --- lib/interfaces/CMakeLists.txt | 34 +- lib/interfaces/KDevCoreIface.cpp | 59 ---- lib/interfaces/KDevCoreIface.h | 52 --- lib/interfaces/KDevPartControllerIface.cpp | 95 ----- lib/interfaces/KDevPartControllerIface.h | 64 ---- lib/interfaces/Makefile.am | 38 +- lib/interfaces/TDevCoreIface.cpp | 59 ++++ lib/interfaces/TDevCoreIface.h | 52 +++ lib/interfaces/TDevPartControllerIface.cpp | 95 +++++ lib/interfaces/TDevPartControllerIface.h | 64 ++++ lib/interfaces/extensions/CMakeLists.txt | 20 +- lib/interfaces/extensions/Mainpage.dox | 10 +- lib/interfaces/extensions/Makefile.am | 18 +- lib/interfaces/extensions/codebrowserfrontend.h | 8 +- lib/interfaces/extensions/dcop/CMakeLists.txt | 10 +- .../extensions/dcop/KDevAppFrontendIface.cpp | 76 ---- .../extensions/dcop/KDevAppFrontendIface.h | 52 --- .../extensions/dcop/KDevMakeFrontendIface.cpp | 46 --- .../extensions/dcop/KDevMakeFrontendIface.h | 45 --- lib/interfaces/extensions/dcop/Makefile.am | 10 +- .../extensions/dcop/TDevAppFrontendIface.cpp | 76 ++++ .../extensions/dcop/TDevAppFrontendIface.h | 52 +++ .../extensions/dcop/TDevMakeFrontendIface.cpp | 46 +++ .../extensions/dcop/TDevMakeFrontendIface.h | 45 +++ lib/interfaces/extensions/kdevappfrontend.cpp | 2 - lib/interfaces/extensions/kdevappfrontend.h | 116 ------ lib/interfaces/extensions/kdevcreatefile.h | 146 -------- lib/interfaces/extensions/kdevdifffrontend.cpp | 33 -- lib/interfaces/extensions/kdevdifffrontend.h | 79 ----- lib/interfaces/extensions/kdevmakefrontend.cpp | 2 - lib/interfaces/extensions/kdevmakefrontend.h | 107 ------ lib/interfaces/extensions/kdevquickopen.h | 130 ------- lib/interfaces/extensions/kdevsourceformatter.h | 69 ---- lib/interfaces/extensions/kdevversioncontrol.h | 239 ------------- lib/interfaces/extensions/tdevappfrontend.cpp | 2 + lib/interfaces/extensions/tdevappfrontend.h | 116 ++++++ lib/interfaces/extensions/tdevcreatefile.h | 146 ++++++++ lib/interfaces/extensions/tdevdifffrontend.cpp | 33 ++ lib/interfaces/extensions/tdevdifffrontend.h | 79 +++++ lib/interfaces/extensions/tdevmakefrontend.cpp | 2 + lib/interfaces/extensions/tdevmakefrontend.h | 107 ++++++ lib/interfaces/extensions/tdevquickopen.h | 130 +++++++ lib/interfaces/extensions/tdevsourceformatter.h | 69 ++++ lib/interfaces/extensions/tdevversioncontrol.h | 239 +++++++++++++ lib/interfaces/external/Mainpage.dox | 14 +- lib/interfaces/extras/CMakeLists.txt | 8 +- lib/interfaces/extras/Makefile.am | 14 +- lib/interfaces/extras/kdevcompileroptions.cpp | 8 - lib/interfaces/extras/kdevcompileroptions.h | 91 ----- lib/interfaces/extras/kdevvcsintegrator.cpp | 26 -- lib/interfaces/extras/kdevvcsintegrator.h | 77 ---- lib/interfaces/extras/tdevcompileroptions.cpp | 8 + lib/interfaces/extras/tdevcompileroptions.h | 91 +++++ lib/interfaces/extras/tdevvcsintegrator.cpp | 26 ++ lib/interfaces/extras/tdevvcsintegrator.h | 77 ++++ lib/interfaces/katedocumentmanagerinterface.cpp | 4 +- lib/interfaces/katedocumentmanagerinterface.h | 6 +- lib/interfaces/kdevapi.cpp | 93 ----- lib/interfaces/kdevapi.h | 104 ------ lib/interfaces/kdevcoderepository.cpp | 71 ---- lib/interfaces/kdevcoderepository.h | 95 ----- lib/interfaces/kdevcore.cpp | 298 ---------------- lib/interfaces/kdevcore.h | 388 --------------------- lib/interfaces/kdevdesignerintegration.cpp | 40 --- lib/interfaces/kdevdesignerintegration.h | 98 ------ lib/interfaces/kdevdesignerintegrationiface.cpp | 63 ---- lib/interfaces/kdevdesignerintegrationiface.h | 49 --- lib/interfaces/kdevgenericfactory.h | 91 ----- lib/interfaces/kdevlanguagesupport.cpp | 166 --------- lib/interfaces/kdevlanguagesupport.h | 261 -------------- lib/interfaces/kdevmainwindow.cpp | 28 -- lib/interfaces/kdevmainwindow.h | 101 ------ lib/interfaces/kdevpartcontroller.cpp | 30 -- lib/interfaces/kdevpartcontroller.h | 176 ---------- lib/interfaces/kdevplugin.cpp | 139 -------- lib/interfaces/kdevplugin.h | 201 ----------- lib/interfaces/kdevplugincontroller.cpp | 49 --- lib/interfaces/kdevplugincontroller.h | 119 ------- lib/interfaces/kdevplugininfo.cpp | 181 ---------- lib/interfaces/kdevplugininfo.h | 111 ------ lib/interfaces/kdevproject.cpp | 164 --------- lib/interfaces/kdevproject.h | 219 ------------ lib/interfaces/kdevprojectiface.cpp | 186 ---------- lib/interfaces/kdevprojectiface.h | 82 ----- lib/interfaces/tdevapi.cpp | 93 +++++ lib/interfaces/tdevapi.h | 104 ++++++ lib/interfaces/tdevcoderepository.cpp | 71 ++++ lib/interfaces/tdevcoderepository.h | 95 +++++ lib/interfaces/tdevcore.cpp | 298 ++++++++++++++++ lib/interfaces/tdevcore.h | 388 +++++++++++++++++++++ lib/interfaces/tdevdesignerintegration.cpp | 40 +++ lib/interfaces/tdevdesignerintegration.h | 98 ++++++ lib/interfaces/tdevdesignerintegrationiface.cpp | 63 ++++ lib/interfaces/tdevdesignerintegrationiface.h | 49 +++ lib/interfaces/tdevgenericfactory.h | 91 +++++ lib/interfaces/tdevlanguagesupport.cpp | 166 +++++++++ lib/interfaces/tdevlanguagesupport.h | 261 ++++++++++++++ lib/interfaces/tdevmainwindow.cpp | 28 ++ lib/interfaces/tdevmainwindow.h | 101 ++++++ lib/interfaces/tdevpartcontroller.cpp | 30 ++ lib/interfaces/tdevpartcontroller.h | 176 ++++++++++ lib/interfaces/tdevplugin.cpp | 139 ++++++++ lib/interfaces/tdevplugin.h | 201 +++++++++++ lib/interfaces/tdevplugincontroller.cpp | 49 +++ lib/interfaces/tdevplugincontroller.h | 119 +++++++ lib/interfaces/tdevplugininfo.cpp | 181 ++++++++++ lib/interfaces/tdevplugininfo.h | 111 ++++++ lib/interfaces/tdevproject.cpp | 164 +++++++++ lib/interfaces/tdevproject.h | 219 ++++++++++++ lib/interfaces/tdevprojectiface.cpp | 186 ++++++++++ lib/interfaces/tdevprojectiface.h | 82 +++++ 111 files changed, 5314 insertions(+), 5314 deletions(-) delete mode 100644 lib/interfaces/KDevCoreIface.cpp delete mode 100644 lib/interfaces/KDevCoreIface.h delete mode 100644 lib/interfaces/KDevPartControllerIface.cpp delete mode 100644 lib/interfaces/KDevPartControllerIface.h create mode 100644 lib/interfaces/TDevCoreIface.cpp create mode 100644 lib/interfaces/TDevCoreIface.h create mode 100644 lib/interfaces/TDevPartControllerIface.cpp create mode 100644 lib/interfaces/TDevPartControllerIface.h delete mode 100644 lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp delete mode 100644 lib/interfaces/extensions/dcop/KDevAppFrontendIface.h delete mode 100644 lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp delete mode 100644 lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h create mode 100644 lib/interfaces/extensions/dcop/TDevAppFrontendIface.cpp create mode 100644 lib/interfaces/extensions/dcop/TDevAppFrontendIface.h create mode 100644 lib/interfaces/extensions/dcop/TDevMakeFrontendIface.cpp create mode 100644 lib/interfaces/extensions/dcop/TDevMakeFrontendIface.h delete mode 100644 lib/interfaces/extensions/kdevappfrontend.cpp delete mode 100644 lib/interfaces/extensions/kdevappfrontend.h delete mode 100644 lib/interfaces/extensions/kdevcreatefile.h delete mode 100644 lib/interfaces/extensions/kdevdifffrontend.cpp delete mode 100644 lib/interfaces/extensions/kdevdifffrontend.h delete mode 100644 lib/interfaces/extensions/kdevmakefrontend.cpp delete mode 100644 lib/interfaces/extensions/kdevmakefrontend.h delete mode 100644 lib/interfaces/extensions/kdevquickopen.h delete mode 100644 lib/interfaces/extensions/kdevsourceformatter.h delete mode 100644 lib/interfaces/extensions/kdevversioncontrol.h create mode 100644 lib/interfaces/extensions/tdevappfrontend.cpp create mode 100644 lib/interfaces/extensions/tdevappfrontend.h create mode 100644 lib/interfaces/extensions/tdevcreatefile.h create mode 100644 lib/interfaces/extensions/tdevdifffrontend.cpp create mode 100644 lib/interfaces/extensions/tdevdifffrontend.h create mode 100644 lib/interfaces/extensions/tdevmakefrontend.cpp create mode 100644 lib/interfaces/extensions/tdevmakefrontend.h create mode 100644 lib/interfaces/extensions/tdevquickopen.h create mode 100644 lib/interfaces/extensions/tdevsourceformatter.h create mode 100644 lib/interfaces/extensions/tdevversioncontrol.h delete mode 100644 lib/interfaces/extras/kdevcompileroptions.cpp delete mode 100644 lib/interfaces/extras/kdevcompileroptions.h delete mode 100644 lib/interfaces/extras/kdevvcsintegrator.cpp delete mode 100644 lib/interfaces/extras/kdevvcsintegrator.h create mode 100644 lib/interfaces/extras/tdevcompileroptions.cpp create mode 100644 lib/interfaces/extras/tdevcompileroptions.h create mode 100644 lib/interfaces/extras/tdevvcsintegrator.cpp create mode 100644 lib/interfaces/extras/tdevvcsintegrator.h delete mode 100644 lib/interfaces/kdevapi.cpp delete mode 100644 lib/interfaces/kdevapi.h delete mode 100644 lib/interfaces/kdevcoderepository.cpp delete mode 100644 lib/interfaces/kdevcoderepository.h delete mode 100644 lib/interfaces/kdevcore.cpp delete mode 100644 lib/interfaces/kdevcore.h delete mode 100644 lib/interfaces/kdevdesignerintegration.cpp delete mode 100644 lib/interfaces/kdevdesignerintegration.h delete mode 100644 lib/interfaces/kdevdesignerintegrationiface.cpp delete mode 100644 lib/interfaces/kdevdesignerintegrationiface.h delete mode 100644 lib/interfaces/kdevgenericfactory.h delete mode 100644 lib/interfaces/kdevlanguagesupport.cpp delete mode 100644 lib/interfaces/kdevlanguagesupport.h delete mode 100644 lib/interfaces/kdevmainwindow.cpp delete mode 100644 lib/interfaces/kdevmainwindow.h delete mode 100644 lib/interfaces/kdevpartcontroller.cpp delete mode 100644 lib/interfaces/kdevpartcontroller.h delete mode 100644 lib/interfaces/kdevplugin.cpp delete mode 100644 lib/interfaces/kdevplugin.h delete mode 100644 lib/interfaces/kdevplugincontroller.cpp delete mode 100644 lib/interfaces/kdevplugincontroller.h delete mode 100644 lib/interfaces/kdevplugininfo.cpp delete mode 100644 lib/interfaces/kdevplugininfo.h delete mode 100644 lib/interfaces/kdevproject.cpp delete mode 100644 lib/interfaces/kdevproject.h delete mode 100644 lib/interfaces/kdevprojectiface.cpp delete mode 100644 lib/interfaces/kdevprojectiface.h create mode 100644 lib/interfaces/tdevapi.cpp create mode 100644 lib/interfaces/tdevapi.h create mode 100644 lib/interfaces/tdevcoderepository.cpp create mode 100644 lib/interfaces/tdevcoderepository.h create mode 100644 lib/interfaces/tdevcore.cpp create mode 100644 lib/interfaces/tdevcore.h create mode 100644 lib/interfaces/tdevdesignerintegration.cpp create mode 100644 lib/interfaces/tdevdesignerintegration.h create mode 100644 lib/interfaces/tdevdesignerintegrationiface.cpp create mode 100644 lib/interfaces/tdevdesignerintegrationiface.h create mode 100644 lib/interfaces/tdevgenericfactory.h create mode 100644 lib/interfaces/tdevlanguagesupport.cpp create mode 100644 lib/interfaces/tdevlanguagesupport.h create mode 100644 lib/interfaces/tdevmainwindow.cpp create mode 100644 lib/interfaces/tdevmainwindow.h create mode 100644 lib/interfaces/tdevpartcontroller.cpp create mode 100644 lib/interfaces/tdevpartcontroller.h create mode 100644 lib/interfaces/tdevplugin.cpp create mode 100644 lib/interfaces/tdevplugin.h create mode 100644 lib/interfaces/tdevplugincontroller.cpp create mode 100644 lib/interfaces/tdevplugincontroller.h create mode 100644 lib/interfaces/tdevplugininfo.cpp create mode 100644 lib/interfaces/tdevplugininfo.h create mode 100644 lib/interfaces/tdevproject.cpp create mode 100644 lib/interfaces/tdevproject.h create mode 100644 lib/interfaces/tdevprojectiface.cpp create mode 100644 lib/interfaces/tdevprojectiface.h (limited to 'lib/interfaces') diff --git a/lib/interfaces/CMakeLists.txt b/lib/interfaces/CMakeLists.txt index 94b07bec..47d6855d 100644 --- a/lib/interfaces/CMakeLists.txt +++ b/lib/interfaces/CMakeLists.txt @@ -27,12 +27,12 @@ include_directories( ##### headers ################################### install( FILES - kdevlanguagesupport.h kdevmainwindow.h kdevpartcontroller.h - kdevplugin.h kdevproject.h kdevcore.h kdevcoderepository.h + tdevlanguagesupport.h tdevmainwindow.h tdevpartcontroller.h + tdevplugin.h tdevproject.h tdevcore.h tdevcoderepository.h codemodel.h codemodel_utils.h codemodel_treeparser.h - kdevgenericfactory.h kdevapi.h kdevdesignerintegration.h - kdevplugincontroller.h kdevplugininfo.h KDevCoreIface.h - KDevPartControllerIface.h katedocumentmanagerinterface.h + tdevgenericfactory.h tdevapi.h tdevdesignerintegration.h + tdevplugincontroller.h tdevplugininfo.h TDevCoreIface.h + TDevPartControllerIface.h katedocumentmanagerinterface.h hashedstring.h DESTINATION ${INCLUDE_INSTALL_DIR}/tdevelop/interfaces ) @@ -42,20 +42,20 @@ install( FILES DESTINATION ${SERVICETYPES_INSTALL_DIR} ) -##### kdevinterfaces (static) ################### +##### tdevinterfaces (static) ################### -tde_add_library( kdevinterfaces STATIC_PIC AUTOMOC +tde_add_library( tdevinterfaces STATIC_PIC AUTOMOC SOURCES - kdevcore.cpp kdevproject.cpp kdevlanguagesupport.cpp - kdevpartcontroller.cpp kdevapi.cpp KDevCoreIface.skel - kdevmainwindow.cpp KDevPartControllerIface.skel - kdevplugin.cpp kdevcoderepository.cpp + tdevcore.cpp tdevproject.cpp tdevlanguagesupport.cpp + tdevpartcontroller.cpp tdevapi.cpp TDevCoreIface.skel + tdevmainwindow.cpp TDevPartControllerIface.skel + tdevplugin.cpp tdevcoderepository.cpp codemodel.cpp codemodel_treeparser.cpp - codemodel_utils.cpp kdevdesignerintegration.cpp - kdevplugincontroller.cpp kdevplugininfo.cpp - KDevCoreIface.cpp KDevPartControllerIface.cpp + codemodel_utils.cpp tdevdesignerintegration.cpp + tdevplugincontroller.cpp tdevplugininfo.cpp + TDevCoreIface.cpp TDevPartControllerIface.cpp katedocumentmanagerinterface.cpp - katedocumentmanagerinterface.skel kdevprojectiface.cpp - kdevprojectiface.skel kdevdesignerintegrationiface.cpp - kdevdesignerintegrationiface.skel hashedstring.cpp + katedocumentmanagerinterface.skel tdevprojectiface.cpp + tdevprojectiface.skel tdevdesignerintegrationiface.cpp + tdevdesignerintegrationiface.skel hashedstring.cpp ) diff --git a/lib/interfaces/KDevCoreIface.cpp b/lib/interfaces/KDevCoreIface.cpp deleted file mode 100644 index aa70e01b..00000000 --- a/lib/interfaces/KDevCoreIface.cpp +++ /dev/null @@ -1,59 +0,0 @@ - - -/* This file is part of the KDE project - Copyright (C) 2001 Bernd Gehrmann - Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include -#include -#include "KDevCoreIface.h" -#include "kdevcore.h" - - -KDevCoreIface::KDevCoreIface(KDevCore *core) - : TQObject(core), DCOPObject("KDevCore"), m_core(core) -{ - connect( m_core, TQT_SIGNAL(projectOpened()), this, TQT_SLOT(forwardProjectOpened()) ); - connect( m_core, TQT_SIGNAL(projectClosed()), this, TQT_SLOT(forwardProjectClosed()) ); -} - - -KDevCoreIface::~KDevCoreIface() -{} - - -void KDevCoreIface::forwardProjectOpened() -{ - kdDebug(9000) << "dcop emitting project opened" << endl; - emitDCOPSignal("projectOpened()", TQByteArray()); -} - - -void KDevCoreIface::forwardProjectClosed() -{ - kdDebug(9000) << "dcop emitting project closed" << endl; - emitDCOPSignal("projectClosed()", TQByteArray()); -} - -void KDevCoreIface::openProject( const TQString & projectFileName ) -{ - m_core->openProject(projectFileName); -} - -#include "KDevCoreIface.moc" diff --git a/lib/interfaces/KDevCoreIface.h b/lib/interfaces/KDevCoreIface.h deleted file mode 100644 index 612c8457..00000000 --- a/lib/interfaces/KDevCoreIface.h +++ /dev/null @@ -1,52 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Bernd Gehrmann - Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef _KDEVCOREIFACE_H_ -#define _KDEVCOREIFACE_H_ - -#include -#include - -class KDevCore; - - -class KDevCoreIface : public TQObject, public DCOPObject -{ - Q_OBJECT -// - K_DCOP - -public: - - KDevCoreIface( KDevCore *core ); - ~KDevCoreIface(); - -k_dcop: - void openProject(const TQString& projectFileName); - -private slots: - void forwardProjectOpened(); - void forwardProjectClosed(); - -private: - KDevCore *m_core; -}; - -#endif diff --git a/lib/interfaces/KDevPartControllerIface.cpp b/lib/interfaces/KDevPartControllerIface.cpp deleted file mode 100644 index 1b184453..00000000 --- a/lib/interfaces/KDevPartControllerIface.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Matthias Hoelzer-Kluepfel - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include -#include -#include - - -#include "KDevPartControllerIface.h" -#include "kdevpartcontroller.h" - - -KDevPartControllerIface::KDevPartControllerIface(KDevPartController *pc) - : TQObject(pc), DCOPObject("KDevPartController"), m_controller(pc) -{ - connect(pc, TQT_SIGNAL(loadedFile(const KURL &)), this, TQT_SLOT(forwardLoadedFile(const KURL &))); - connect(pc, TQT_SIGNAL(savedFile(const KURL &)), this, TQT_SLOT(forwardSavedFile(const KURL &))); - connect(pc, TQT_SIGNAL(closedFile(const KURL &)), this, TQT_SLOT(forwardClosedFile(const KURL &))); -} - - -KDevPartControllerIface::~KDevPartControllerIface() -{ -} - - -void KDevPartControllerIface::editDocument(const TQString &url, int lineNum) -{ - m_controller->editDocument(KURL(url), lineNum); -} - - -void KDevPartControllerIface::showDocument(const TQString &url, bool newWin) -{ - m_controller->showDocument(KURL(url), newWin); -} - - -void KDevPartControllerIface::saveAllFiles() -{ - m_controller->saveAllFiles(); -} - - -void KDevPartControllerIface::revertAllFiles() -{ - m_controller->revertAllFiles(); -} - - -void KDevPartControllerIface::forwardLoadedFile(const KURL &fileName) -{ - kdDebug(9000) << "dcop emitting loadedFile " << fileName << endl; - emitDCOPSignal("projectOpened()", TQByteArray()); -} - - -void KDevPartControllerIface::forwardSavedFile(const KURL &fileName) -{ - kdDebug(9000) << "dcop emitting savedFile " << fileName << endl; - emitDCOPSignal("projectClosed()", TQByteArray()); -} - -void KDevPartControllerIface::forwardClosedFile(const KURL &fileName) -{ - kdDebug(9000) << "dcop emitting closedFile " << fileName << endl; - emitDCOPSignal("projectClosed()", TQByteArray()); -} - -bool KDevPartControllerIface::closeAllFiles( ) -{ - return m_controller->closeAllFiles(); -} - -uint KDevPartControllerIface::documentState( const KURL & url ) -{ - return (uint) m_controller->documentState(url); -} - -#include "KDevPartControllerIface.moc" diff --git a/lib/interfaces/KDevPartControllerIface.h b/lib/interfaces/KDevPartControllerIface.h deleted file mode 100644 index 8c3647ea..00000000 --- a/lib/interfaces/KDevPartControllerIface.h +++ /dev/null @@ -1,64 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Matthias Hoelzer-Kluepfel - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef _KDEVPARTCONTROLLERIFACE_H_ -#define _KDEVPARTCONTROLLERIFACE_H_ - -#include -#include -#include - -class KDevPartController; - -class KDevPartControllerIface : public TQObject, public DCOPObject -{ - Q_OBJECT -// - K_DCOP - -public: - - KDevPartControllerIface(KDevPartController *pc); - ~KDevPartControllerIface(); - - -k_dcop: - - void editDocument(const TQString &url, int lineNum); - void showDocument(const TQString &url, bool newWin); - - void saveAllFiles(); - void revertAllFiles(); - - bool closeAllFiles(); - uint documentState( const KURL & url ); - -private slots: - - void forwardLoadedFile(const KURL &fileName); - void forwardSavedFile(const KURL &fileName); - void forwardClosedFile(const KURL &fileName); - -private: - - KDevPartController *m_controller; - -}; - - -#endif diff --git a/lib/interfaces/Makefile.am b/lib/interfaces/Makefile.am index 1944f4f9..93533492 100644 --- a/lib/interfaces/Makefile.am +++ b/lib/interfaces/Makefile.am @@ -1,27 +1,27 @@ INCLUDES = -I$(top_srcdir)/lib/interfaces/external -I$(top_srcdir)/lib/util -I$(top_srcdir)/lib/cppparser \ $(all_includes) -noinst_LTLIBRARIES = libkdevinterfaces.la +noinst_LTLIBRARIES = libtdevinterfaces.la -libkdevinterfaces_la_SOURCES = kdevcore.cpp kdevproject.cpp \ - kdevlanguagesupport.cpp kdevpartcontroller.cpp kdevapi.cpp KDevCoreIface.skel \ - kdevmainwindow.cpp KDevPartControllerIface.skel kdevplugin.cpp kdevcoderepository.cpp \ +libtdevinterfaces_la_SOURCES = tdevcore.cpp tdevproject.cpp \ + tdevlanguagesupport.cpp tdevpartcontroller.cpp tdevapi.cpp TDevCoreIface.skel \ + tdevmainwindow.cpp TDevPartControllerIface.skel tdevplugin.cpp tdevcoderepository.cpp \ codemodel.cpp codemodel_treeparser.cpp codemodel_utils.cpp \ - kdevdesignerintegration.cpp kdevplugincontroller.cpp kdevplugininfo.cpp KDevCoreIface.cpp \ - KDevPartControllerIface.cpp katedocumentmanagerinterface.cpp katedocumentmanagerinterface.skel \ - kdevprojectiface.cpp kdevprojectiface.skel kdevdesignerintegrationiface.cpp \ - kdevdesignerintegrationiface.skel hashedstring.cpp -libkdevinterfaces_la_LDFLAGS = -no-undefined $(all_libraries) -libkdevinterfaces_la_LIBADD = $(top_builddir)/lib/interfaces/external/libkinterfacedesigner.la \ - $(top_builddir)/lib/util/libkdevutil.la \ + tdevdesignerintegration.cpp tdevplugincontroller.cpp tdevplugininfo.cpp TDevCoreIface.cpp \ + TDevPartControllerIface.cpp katedocumentmanagerinterface.cpp katedocumentmanagerinterface.skel \ + tdevprojectiface.cpp tdevprojectiface.skel tdevdesignerintegrationiface.cpp \ + tdevdesignerintegrationiface.skel hashedstring.cpp +libtdevinterfaces_la_LDFLAGS = -no-undefined $(all_libraries) +libtdevinterfaces_la_LIBADD = $(top_builddir)/lib/interfaces/external/libkinterfacedesigner.la \ + $(top_builddir)/lib/util/libtdevutil.la \ $(LIB_TDEUI) $(LIB_TDEHTML) $(LIB_TDEPARTS) -ltdetexteditor -ltdescript -lDCOP tdevelopincludedir = $(includedir)/tdevelop/interfaces -tdevelopinclude_HEADERS = kdevlanguagesupport.h kdevmainwindow.h \ - kdevpartcontroller.h kdevplugin.h kdevproject.h kdevcore.h kdevcoderepository.h codemodel.h \ - codemodel_utils.h codemodel_treeparser.h kdevgenericfactory.h kdevapi.h \ - kdevdesignerintegration.h kdevplugincontroller.h kdevplugininfo.h KDevCoreIface.h \ - KDevPartControllerIface.h katedocumentmanagerinterface.h \ +tdevelopinclude_HEADERS = tdevlanguagesupport.h tdevmainwindow.h \ + tdevpartcontroller.h tdevplugin.h tdevproject.h tdevcore.h tdevcoderepository.h codemodel.h \ + codemodel_utils.h codemodel_treeparser.h tdevgenericfactory.h tdevapi.h \ + tdevdesignerintegration.h tdevplugincontroller.h tdevplugininfo.h TDevCoreIface.h \ + TDevPartControllerIface.h katedocumentmanagerinterface.h \ hashedstring.h @@ -33,8 +33,8 @@ METASOURCES = AUTO SUBDIRS = extensions external extras -DOXYGEN_REFERENCES = dcop interfaces tdecore tdefx tdeui tdehtml tdemdi tdeio kjs tdeparts tdeutils kdevutil designer_integration kdevcatalog kdevprofileslib kdevextensions +DOXYGEN_REFERENCES = dcop interfaces tdecore tdefx tdeui tdehtml tdemdi tdeio kjs tdeparts tdeutils tdevutil designer_integration tdevcatalog tdevprofileslib tdevextensions DOXYGEN_PROJECTNAME = TDevelop Interfaces Library -DOXYGEN_DOCDIRPREFIX = kdev +DOXYGEN_DOCDIRPREFIX = tdev include ../../Doxyfile.am -noinst_HEADERS = kdevprojectiface.h kdevdesignerintegrationiface.h +noinst_HEADERS = tdevprojectiface.h tdevdesignerintegrationiface.h diff --git a/lib/interfaces/TDevCoreIface.cpp b/lib/interfaces/TDevCoreIface.cpp new file mode 100644 index 00000000..39d4bb97 --- /dev/null +++ b/lib/interfaces/TDevCoreIface.cpp @@ -0,0 +1,59 @@ + + +/* This file is part of the KDE project + Copyright (C) 2001 Bernd Gehrmann + Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include +#include +#include "TDevCoreIface.h" +#include "tdevcore.h" + + +TDevCoreIface::TDevCoreIface(TDevCore *core) + : TQObject(core), DCOPObject("TDevCore"), m_core(core) +{ + connect( m_core, TQT_SIGNAL(projectOpened()), this, TQT_SLOT(forwardProjectOpened()) ); + connect( m_core, TQT_SIGNAL(projectClosed()), this, TQT_SLOT(forwardProjectClosed()) ); +} + + +TDevCoreIface::~TDevCoreIface() +{} + + +void TDevCoreIface::forwardProjectOpened() +{ + kdDebug(9000) << "dcop emitting project opened" << endl; + emitDCOPSignal("projectOpened()", TQByteArray()); +} + + +void TDevCoreIface::forwardProjectClosed() +{ + kdDebug(9000) << "dcop emitting project closed" << endl; + emitDCOPSignal("projectClosed()", TQByteArray()); +} + +void TDevCoreIface::openProject( const TQString & projectFileName ) +{ + m_core->openProject(projectFileName); +} + +#include "TDevCoreIface.moc" diff --git a/lib/interfaces/TDevCoreIface.h b/lib/interfaces/TDevCoreIface.h new file mode 100644 index 00000000..f259005a --- /dev/null +++ b/lib/interfaces/TDevCoreIface.h @@ -0,0 +1,52 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Bernd Gehrmann + Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef _TDEVCOREIFACE_H_ +#define _TDEVCOREIFACE_H_ + +#include +#include + +class TDevCore; + + +class TDevCoreIface : public TQObject, public DCOPObject +{ + Q_OBJECT +// + K_DCOP + +public: + + TDevCoreIface( TDevCore *core ); + ~TDevCoreIface(); + +k_dcop: + void openProject(const TQString& projectFileName); + +private slots: + void forwardProjectOpened(); + void forwardProjectClosed(); + +private: + TDevCore *m_core; +}; + +#endif diff --git a/lib/interfaces/TDevPartControllerIface.cpp b/lib/interfaces/TDevPartControllerIface.cpp new file mode 100644 index 00000000..e8bd1bb7 --- /dev/null +++ b/lib/interfaces/TDevPartControllerIface.cpp @@ -0,0 +1,95 @@ +/* This file is part of the KDE project + Copyright (C) 2002 Matthias Hoelzer-Kluepfel + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include +#include +#include + + +#include "TDevPartControllerIface.h" +#include "tdevpartcontroller.h" + + +TDevPartControllerIface::TDevPartControllerIface(TDevPartController *pc) + : TQObject(pc), DCOPObject("TDevPartController"), m_controller(pc) +{ + connect(pc, TQT_SIGNAL(loadedFile(const KURL &)), this, TQT_SLOT(forwardLoadedFile(const KURL &))); + connect(pc, TQT_SIGNAL(savedFile(const KURL &)), this, TQT_SLOT(forwardSavedFile(const KURL &))); + connect(pc, TQT_SIGNAL(closedFile(const KURL &)), this, TQT_SLOT(forwardClosedFile(const KURL &))); +} + + +TDevPartControllerIface::~TDevPartControllerIface() +{ +} + + +void TDevPartControllerIface::editDocument(const TQString &url, int lineNum) +{ + m_controller->editDocument(KURL(url), lineNum); +} + + +void TDevPartControllerIface::showDocument(const TQString &url, bool newWin) +{ + m_controller->showDocument(KURL(url), newWin); +} + + +void TDevPartControllerIface::saveAllFiles() +{ + m_controller->saveAllFiles(); +} + + +void TDevPartControllerIface::revertAllFiles() +{ + m_controller->revertAllFiles(); +} + + +void TDevPartControllerIface::forwardLoadedFile(const KURL &fileName) +{ + kdDebug(9000) << "dcop emitting loadedFile " << fileName << endl; + emitDCOPSignal("projectOpened()", TQByteArray()); +} + + +void TDevPartControllerIface::forwardSavedFile(const KURL &fileName) +{ + kdDebug(9000) << "dcop emitting savedFile " << fileName << endl; + emitDCOPSignal("projectClosed()", TQByteArray()); +} + +void TDevPartControllerIface::forwardClosedFile(const KURL &fileName) +{ + kdDebug(9000) << "dcop emitting closedFile " << fileName << endl; + emitDCOPSignal("projectClosed()", TQByteArray()); +} + +bool TDevPartControllerIface::closeAllFiles( ) +{ + return m_controller->closeAllFiles(); +} + +uint TDevPartControllerIface::documentState( const KURL & url ) +{ + return (uint) m_controller->documentState(url); +} + +#include "TDevPartControllerIface.moc" diff --git a/lib/interfaces/TDevPartControllerIface.h b/lib/interfaces/TDevPartControllerIface.h new file mode 100644 index 00000000..87a4e04e --- /dev/null +++ b/lib/interfaces/TDevPartControllerIface.h @@ -0,0 +1,64 @@ +/* This file is part of the KDE project + Copyright (C) 2002 Matthias Hoelzer-Kluepfel + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef _TDEVPARTCONTROLLERIFACE_H_ +#define _TDEVPARTCONTROLLERIFACE_H_ + +#include +#include +#include + +class TDevPartController; + +class TDevPartControllerIface : public TQObject, public DCOPObject +{ + Q_OBJECT +// + K_DCOP + +public: + + TDevPartControllerIface(TDevPartController *pc); + ~TDevPartControllerIface(); + + +k_dcop: + + void editDocument(const TQString &url, int lineNum); + void showDocument(const TQString &url, bool newWin); + + void saveAllFiles(); + void revertAllFiles(); + + bool closeAllFiles(); + uint documentState( const KURL & url ); + +private slots: + + void forwardLoadedFile(const KURL &fileName); + void forwardSavedFile(const KURL &fileName); + void forwardClosedFile(const KURL &fileName); + +private: + + TDevPartController *m_controller; + +}; + + +#endif diff --git a/lib/interfaces/extensions/CMakeLists.txt b/lib/interfaces/extensions/CMakeLists.txt index 459c1197..cf5514be 100644 --- a/lib/interfaces/extensions/CMakeLists.txt +++ b/lib/interfaces/extensions/CMakeLists.txt @@ -22,9 +22,9 @@ include_directories( ##### headers ################################### install( FILES - codebrowserfrontend.h kdevappfrontend.h kdevcreatefile.h - kdevdifffrontend.h kdevmakefrontend.h kdevquickopen.h - kdevsourceformatter.h kdevversioncontrol.h + codebrowserfrontend.h tdevappfrontend.h tdevcreatefile.h + tdevdifffrontend.h tdevmakefrontend.h tdevquickopen.h + tdevsourceformatter.h tdevversioncontrol.h DESTINATION ${INCLUDE_INSTALL_DIR}/tdevelop/interfaces/extensions ) install( FILES @@ -35,20 +35,20 @@ install( FILES DESTINATION ${SERVICETYPES_INSTALL_DIR} ) -##### kdevextensions (static) ################### +##### tdevextensions (static) ################### add_custom_command( OUTPUT codebrowserfrontend.moc.cpp COMMAND ${TMOC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/codebrowserfrontend.h -o codebrowserfrontend.moc.cpp DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/codebrowserfrontend.h ) -add_custom_command( OUTPUT kdevversioncontrol.moc.cpp +add_custom_command( OUTPUT tdevversioncontrol.moc.cpp COMMAND - ${TMOC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kdevversioncontrol.h -o kdevversioncontrol.moc.cpp - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/kdevversioncontrol.h ) + ${TMOC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/tdevversioncontrol.h -o tdevversioncontrol.moc.cpp + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tdevversioncontrol.h ) -tde_add_library( kdevextensions STATIC_PIC AUTOMOC +tde_add_library( tdevextensions STATIC_PIC AUTOMOC SOURCES - kdevappfrontend.cpp kdevappfrontend.cpp kdevmakefrontend.cpp - codebrowserfrontend.moc.cpp kdevversioncontrol.moc.cpp + tdevappfrontend.cpp tdevappfrontend.cpp tdevmakefrontend.cpp + codebrowserfrontend.moc.cpp tdevversioncontrol.moc.cpp ) diff --git a/lib/interfaces/extensions/Mainpage.dox b/lib/interfaces/extensions/Mainpage.dox index 3b493fde..37c72c16 100644 --- a/lib/interfaces/extensions/Mainpage.dox +++ b/lib/interfaces/extensions/Mainpage.dox @@ -10,8 +10,8 @@ This library contains extension interfaces used by TDevelop plugin architecture. \section whatisextension What is the TDevelop extension Extension is a TDevelop plugin which implements one of extension interfaces. -Extension is usually not important enough to be returned by @ref KDevApi and @ref KDevPlugin -methods. Therefore extension instance can be obtained by @ref KDevPlugin::extension method. +Extension is usually not important enough to be returned by @ref TDevApi and @ref TDevPlugin +methods. Therefore extension instance can be obtained by @ref TDevPlugin::extension method. Note: extension plugins can be either core, global and project plugins. They are loaded in the same way other plugins are. But extensions differ from usual plugins. @@ -36,10 +36,10 @@ those should be loaded at a time. This can be accomplished by: @endcode - Define an abstract base class for an extension like: @code - class KDevMyExtension: public KDevPlugin { + class KDevMyExtension: public TDevPlugin { public: - KDevMyExtension(const KDevPluginInfo *info, QObject* parent, const char* name) - :KDevPlugin(info, parent, name) {} + KDevMyExtension(const TDevPluginInfo *info, QObject* parent, const char* name) + :TDevPlugin(info, parent, name) {} virtual void doSomething() = 0; }; diff --git a/lib/interfaces/extensions/Makefile.am b/lib/interfaces/extensions/Makefile.am index a6d00bc2..55f4d774 100644 --- a/lib/interfaces/extensions/Makefile.am +++ b/lib/interfaces/extensions/Makefile.am @@ -1,7 +1,7 @@ tdevelopincludeextdir = $(includedir)/tdevelop/interfaces/extensions -tdevelopincludeext_HEADERS = codebrowserfrontend.h kdevappfrontend.h \ - kdevcreatefile.h kdevdifffrontend.h kdevmakefrontend.h kdevquickopen.h \ - kdevsourceformatter.h kdevversioncontrol.h +tdevelopincludeext_HEADERS = codebrowserfrontend.h tdevappfrontend.h \ + tdevcreatefile.h tdevdifffrontend.h tdevmakefrontend.h tdevquickopen.h \ + tdevsourceformatter.h tdevversioncontrol.h servicetypedir = $(kde_servicetypesdir) servicetype_DATA = tdevelopappfrontend.desktop \ @@ -10,14 +10,14 @@ servicetype_DATA = tdevelopappfrontend.desktop \ tdevelopversioncontrol.desktop SUBDIRS = dcop -libkdevextensions_la_LDFLAGS = $(all_libraries) -noinst_LTLIBRARIES = libkdevextensions.la -libkdevextensions_la_SOURCES = kdevappfrontend.cpp kdevmakefrontend.cpp +libtdevextensions_la_LDFLAGS = $(all_libraries) +noinst_LTLIBRARIES = libtdevextensions.la +libtdevextensions_la_SOURCES = tdevappfrontend.cpp tdevmakefrontend.cpp INCLUDES = -I$(top_srcdir)/lib/interfaces $(all_includes) METASOURCES = AUTO -DOXYGEN_REFERENCES = dcop interfaces tdecore tdefx tdeui tdehtml tdemdi tdeio kjs tdeparts tdeutils kdevinterfaces -DOXYGEN_PROJECTNAME = KDevelop Extension Interfaces Library -DOXYGEN_DOCDIRPREFIX = kdev +DOXYGEN_REFERENCES = dcop interfaces tdecore tdefx tdeui tdehtml tdemdi tdeio kjs tdeparts tdeutils tdevinterfaces +DOXYGEN_PROJECTNAME = TDevelop Extension Interfaces Library +DOXYGEN_DOCDIRPREFIX = tdev include ../../../Doxyfile.am noinst_HEADERS = codebrowserfrontend.h diff --git a/lib/interfaces/extensions/codebrowserfrontend.h b/lib/interfaces/extensions/codebrowserfrontend.h index e8158fe4..68c4e90f 100644 --- a/lib/interfaces/extensions/codebrowserfrontend.h +++ b/lib/interfaces/extensions/codebrowserfrontend.h @@ -20,18 +20,18 @@ #define CODEBROWSERRONTEND_H -#include +#include #include namespace Extensions { -class KDevCodeBrowserFrontend : public KDevPlugin { +class TDevCodeBrowserFrontend : public TDevPlugin { Q_OBJECT public: - KDevCodeBrowserFrontend(const KDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) - :KDevPlugin(info, parent, name ? name : "CodeBrowserFrontend") {} + TDevCodeBrowserFrontend(const TDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) + :TDevPlugin(info, parent, name ? name : "CodeBrowserFrontend") {} ///Used by the quickopen-plugin to notify extensions that it jumped to a searched item virtual bool jumpedToItem( ItemDom item ) = 0; diff --git a/lib/interfaces/extensions/dcop/CMakeLists.txt b/lib/interfaces/extensions/dcop/CMakeLists.txt index b6255fc6..8658d320 100644 --- a/lib/interfaces/extensions/dcop/CMakeLists.txt +++ b/lib/interfaces/extensions/dcop/CMakeLists.txt @@ -21,14 +21,14 @@ include_directories( ##### headers ################################### install( FILES - KDevAppFrontendIface.h KDevMakeFrontendIface.h + TDevAppFrontendIface.h TDevMakeFrontendIface.h DESTINATION ${INCLUDE_INSTALL_DIR}/tdevelop/interfaces/extensions/dcop ) -##### kdevdcopextensions (static) ############### +##### tdevdcopextensions (static) ############### -tde_add_library( kdevdcopextensions STATIC_PIC +tde_add_library( tdevdcopextensions STATIC_PIC SOURCES - KDevAppFrontendIface.cpp KDevMakeFrontendIface.cpp - KDevAppFrontendIface.skel KDevMakeFrontendIface.skel + TDevAppFrontendIface.cpp TDevMakeFrontendIface.cpp + TDevAppFrontendIface.skel TDevMakeFrontendIface.skel ) diff --git a/lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp b/lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp deleted file mode 100644 index 1eca4bfc..00000000 --- a/lib/interfaces/extensions/dcop/KDevAppFrontendIface.cpp +++ /dev/null @@ -1,76 +0,0 @@ - - -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Roberto Raggi - Copyright (C) 2002 Bernd Gehrmann - Copyright (C) 2003 Amilcar do Carmo Lucas - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "KDevAppFrontendIface.h" -#include "kdevappfrontend.h" - - -KDevAppFrontendIface::KDevAppFrontendIface(KDevAppFrontend *appFrontend) - : DCOPObject("KDevAppFrontend"), m_appFrontend(appFrontend) -{ -} - - -KDevAppFrontendIface::~KDevAppFrontendIface() -{} - - -void KDevAppFrontendIface::startAppCommand(const TQString &directory, const TQString &command, bool inTerminal) -{ - m_appFrontend->startAppCommand(directory, command, inTerminal); -} - -void KDevAppFrontendIface::stopApplication( ) -{ - m_appFrontend->stopApplication(); -} - -bool KDevAppFrontendIface::isRunning( ) -{ - return m_appFrontend->isRunning(); -} - -void KDevAppFrontendIface::clearView( ) -{ - m_appFrontend->clearView(); -} - -void KDevAppFrontendIface::insertStderrLine( const TQCString & line ) -{ - m_appFrontend->insertStderrLine(line); -} - -void KDevAppFrontendIface::insertStdoutLine( const TQCString & line ) -{ - m_appFrontend->insertStdoutLine(line); -} - -void KDevAppFrontendIface::addPartialStderrLine( const TQCString& line ) -{ - m_appFrontend->addPartialStderrLine(line); -} - -void KDevAppFrontendIface::addPartialStdoutLine( const TQCString& line ) -{ - m_appFrontend->addPartialStdoutLine(line); -} diff --git a/lib/interfaces/extensions/dcop/KDevAppFrontendIface.h b/lib/interfaces/extensions/dcop/KDevAppFrontendIface.h deleted file mode 100644 index 3903e897..00000000 --- a/lib/interfaces/extensions/dcop/KDevAppFrontendIface.h +++ /dev/null @@ -1,52 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Roberto Raggi - Copyright (C) 2002 Bernd Gehrmann - Copyright (C) 2003 Amilcar do Carmo Lucas - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef _KDEVAPPFRONTENDIFACE_H_ -#define _KDEVAPPFRONTENDIFACE_H_ - -#include - -class KDevAppFrontend; - -class KDevAppFrontendIface : public DCOPObject -{ - K_DCOP - -public: - - KDevAppFrontendIface( KDevAppFrontend *appFrontend ); - ~KDevAppFrontendIface(); - -k_dcop: - void startAppCommand(const TQString &directory, const TQString &command, bool inTerminal); - void stopApplication(); - bool isRunning(); - void clearView(); - void insertStderrLine(const TQCString &line); - void insertStdoutLine(const TQCString &line); - void addPartialStderrLine(const TQCString &line); - void addPartialStdoutLine(const TQCString &line); - -private: - KDevAppFrontend *m_appFrontend; -}; - -#endif diff --git a/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp b/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp deleted file mode 100644 index 73305e4a..00000000 --- a/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.cpp +++ /dev/null @@ -1,46 +0,0 @@ - - -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001 Bernd Gehrmann - Copyright (C) 2002 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "KDevMakeFrontendIface.h" -#include "kdevmakefrontend.h" - - -KDevMakeFrontendIface::KDevMakeFrontendIface(KDevMakeFrontend *makeFrontend) - : DCOPObject("KDevMakeFrontend") -{ - m_makeFrontend = makeFrontend; -} - - -KDevMakeFrontendIface::~KDevMakeFrontendIface() -{} - - -void KDevMakeFrontendIface::queueCommand(const TQString &dir, const TQString &command) -{ - m_makeFrontend->queueCommand(dir, command); -} - -bool KDevMakeFrontendIface::isRunning( ) -{ - return m_makeFrontend->isRunning(); -} diff --git a/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h b/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h deleted file mode 100644 index 53217359..00000000 --- a/lib/interfaces/extensions/dcop/KDevMakeFrontendIface.h +++ /dev/null @@ -1,45 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001 Bernd Gehrmann - Copyright (C) 2002 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef _KDEVMAKEFRONTENDIFACE_H_ -#define _KDEVMAKEFRONTENDIFACE_H_ - -#include - -class KDevMakeFrontend; - -class KDevMakeFrontendIface : public DCOPObject -{ - K_DCOP - -public: - - KDevMakeFrontendIface( KDevMakeFrontend *makeFrontend ); - ~KDevMakeFrontendIface(); - -k_dcop: - void queueCommand(const TQString &dir, const TQString &command); - bool isRunning(); - -private: - KDevMakeFrontend *m_makeFrontend; -}; - -#endif diff --git a/lib/interfaces/extensions/dcop/Makefile.am b/lib/interfaces/extensions/dcop/Makefile.am index 116c4979..e46606ac 100644 --- a/lib/interfaces/extensions/dcop/Makefile.am +++ b/lib/interfaces/extensions/dcop/Makefile.am @@ -1,10 +1,10 @@ INCLUDES = -I$(top_srcdir)/lib/interfaces -I$(top_srcdir)/lib/interfaces/extensions $(all_includes) METASOURCES = AUTO -noinst_LTLIBRARIES = libkdevdcopextensions.la -libkdevdcopextensions_la_LDFLAGS = $(all_libraries) -libkdevdcopextensions_la_SOURCES = KDevAppFrontendIface.cpp \ - KDevMakeFrontendIface.cpp KDevAppFrontendIface.skel KDevMakeFrontendIface.skel +noinst_LTLIBRARIES = libtdevdcopextensions.la +libtdevdcopextensions_la_LDFLAGS = $(all_libraries) +libtdevdcopextensions_la_SOURCES = TDevAppFrontendIface.cpp \ + TDevMakeFrontendIface.cpp TDevAppFrontendIface.skel TDevMakeFrontendIface.skel dcopincludeextdir = $(includedir)/tdevelop/interfaces/extensions/dcop -dcopincludeext_HEADERS = KDevAppFrontendIface.h KDevMakeFrontendIface.h +dcopincludeext_HEADERS = TDevAppFrontendIface.h TDevMakeFrontendIface.h diff --git a/lib/interfaces/extensions/dcop/TDevAppFrontendIface.cpp b/lib/interfaces/extensions/dcop/TDevAppFrontendIface.cpp new file mode 100644 index 00000000..a42d0d7d --- /dev/null +++ b/lib/interfaces/extensions/dcop/TDevAppFrontendIface.cpp @@ -0,0 +1,76 @@ + + +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Roberto Raggi + Copyright (C) 2002 Bernd Gehrmann + Copyright (C) 2003 Amilcar do Carmo Lucas + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "TDevAppFrontendIface.h" +#include "tdevappfrontend.h" + + +TDevAppFrontendIface::TDevAppFrontendIface(TDevAppFrontend *appFrontend) + : DCOPObject("TDevAppFrontend"), m_appFrontend(appFrontend) +{ +} + + +TDevAppFrontendIface::~TDevAppFrontendIface() +{} + + +void TDevAppFrontendIface::startAppCommand(const TQString &directory, const TQString &command, bool inTerminal) +{ + m_appFrontend->startAppCommand(directory, command, inTerminal); +} + +void TDevAppFrontendIface::stopApplication( ) +{ + m_appFrontend->stopApplication(); +} + +bool TDevAppFrontendIface::isRunning( ) +{ + return m_appFrontend->isRunning(); +} + +void TDevAppFrontendIface::clearView( ) +{ + m_appFrontend->clearView(); +} + +void TDevAppFrontendIface::insertStderrLine( const TQCString & line ) +{ + m_appFrontend->insertStderrLine(line); +} + +void TDevAppFrontendIface::insertStdoutLine( const TQCString & line ) +{ + m_appFrontend->insertStdoutLine(line); +} + +void TDevAppFrontendIface::addPartialStderrLine( const TQCString& line ) +{ + m_appFrontend->addPartialStderrLine(line); +} + +void TDevAppFrontendIface::addPartialStdoutLine( const TQCString& line ) +{ + m_appFrontend->addPartialStdoutLine(line); +} diff --git a/lib/interfaces/extensions/dcop/TDevAppFrontendIface.h b/lib/interfaces/extensions/dcop/TDevAppFrontendIface.h new file mode 100644 index 00000000..5061c782 --- /dev/null +++ b/lib/interfaces/extensions/dcop/TDevAppFrontendIface.h @@ -0,0 +1,52 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Roberto Raggi + Copyright (C) 2002 Bernd Gehrmann + Copyright (C) 2003 Amilcar do Carmo Lucas + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef _TDEVAPPFRONTENDIFACE_H_ +#define _TDEVAPPFRONTENDIFACE_H_ + +#include + +class TDevAppFrontend; + +class TDevAppFrontendIface : public DCOPObject +{ + K_DCOP + +public: + + TDevAppFrontendIface( TDevAppFrontend *appFrontend ); + ~TDevAppFrontendIface(); + +k_dcop: + void startAppCommand(const TQString &directory, const TQString &command, bool inTerminal); + void stopApplication(); + bool isRunning(); + void clearView(); + void insertStderrLine(const TQCString &line); + void insertStdoutLine(const TQCString &line); + void addPartialStderrLine(const TQCString &line); + void addPartialStdoutLine(const TQCString &line); + +private: + TDevAppFrontend *m_appFrontend; +}; + +#endif diff --git a/lib/interfaces/extensions/dcop/TDevMakeFrontendIface.cpp b/lib/interfaces/extensions/dcop/TDevMakeFrontendIface.cpp new file mode 100644 index 00000000..06bd432f --- /dev/null +++ b/lib/interfaces/extensions/dcop/TDevMakeFrontendIface.cpp @@ -0,0 +1,46 @@ + + +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001 Bernd Gehrmann + Copyright (C) 2002 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "TDevMakeFrontendIface.h" +#include "tdevmakefrontend.h" + + +TDevMakeFrontendIface::TDevMakeFrontendIface(TDevMakeFrontend *makeFrontend) + : DCOPObject("TDevMakeFrontend") +{ + m_makeFrontend = makeFrontend; +} + + +TDevMakeFrontendIface::~TDevMakeFrontendIface() +{} + + +void TDevMakeFrontendIface::queueCommand(const TQString &dir, const TQString &command) +{ + m_makeFrontend->queueCommand(dir, command); +} + +bool TDevMakeFrontendIface::isRunning( ) +{ + return m_makeFrontend->isRunning(); +} diff --git a/lib/interfaces/extensions/dcop/TDevMakeFrontendIface.h b/lib/interfaces/extensions/dcop/TDevMakeFrontendIface.h new file mode 100644 index 00000000..3aee75be --- /dev/null +++ b/lib/interfaces/extensions/dcop/TDevMakeFrontendIface.h @@ -0,0 +1,45 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001 Bernd Gehrmann + Copyright (C) 2002 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef _TDEVMAKEFRONTENDIFACE_H_ +#define _TDEVMAKEFRONTENDIFACE_H_ + +#include + +class TDevMakeFrontend; + +class TDevMakeFrontendIface : public DCOPObject +{ + K_DCOP + +public: + + TDevMakeFrontendIface( TDevMakeFrontend *makeFrontend ); + ~TDevMakeFrontendIface(); + +k_dcop: + void queueCommand(const TQString &dir, const TQString &command); + bool isRunning(); + +private: + TDevMakeFrontend *m_makeFrontend; +}; + +#endif diff --git a/lib/interfaces/extensions/kdevappfrontend.cpp b/lib/interfaces/extensions/kdevappfrontend.cpp deleted file mode 100644 index 3d918fe2..00000000 --- a/lib/interfaces/extensions/kdevappfrontend.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "kdevappfrontend.h" -#include "kdevappfrontend.moc" diff --git a/lib/interfaces/extensions/kdevappfrontend.h b/lib/interfaces/extensions/kdevappfrontend.h deleted file mode 100644 index 76952f35..00000000 --- a/lib/interfaces/extensions/kdevappfrontend.h +++ /dev/null @@ -1,116 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001-2002 Bernd Gehrmann - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2002 John Firebaugh - Copyright (C) 2003 Amilcar do Carmo Lucas - Copyright (C) 2003 Hamish Rodda - Copyright (C) 2003 Jens Dagerbo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVAPPFRONTEND_H -#define KDEVAPPFRONTEND_H - -#include -#include - -/** -@file kdevappfrontend.h -Application frontend interface. -*/ - -/** -Application frontend interface. -This interface is responsible for handling the running of an application in KDevelop. -Currently, this interface defines ways to do the following: -- check if the application is running; -- execute the application; -- stop the currently running application; -- control the output view as seen in the 'Application' tool dock. - -Instances that implement this interface are available through extension architecture: -@code -KDevAppFrontend *apf = extension("TDevelop/AppFrontend"); -if (apf) { - // do something -} else { - // fail -} -@endcode -@sa KDevPlugin::extension method documentation. -*/ -class KDevAppFrontend : public KDevPlugin -{ - Q_OBJECT - - -public: - /**Constructor. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevAppFrontend(const KDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) - :KDevPlugin(info, parent, name ? name : "KDevAppFrontend") {} - - /**@return Whether the application is currently running.*/ - virtual bool isRunning() = 0; - -public slots: - /** - * The component shall start to execute an app-like command. - * Running the application is always asynchronous. - * @param directory The working directory to start the app in, - * if empty then the user's home directory is used. - * @param program A program to start. - * @param inTerminal If true then the program is started in an external konsole. - */ - virtual void startAppCommand(const TQString &directory, const TQString &program, bool inTerminal) = 0; - - /** - * Stops the currently running application. - */ - virtual void stopApplication() = 0; - - /** - * Inserts a string into the application output view. - * @param line A string to insert. - */ - virtual void insertStdoutLine(const TQCString &line) = 0; - - /** - * Inserts a string into the application output view marked as stderr output - * (usually colored). - * @param line An error string to insert. - */ - virtual void insertStderrLine(const TQCString &line) = 0; - - virtual void addPartialStderrLine( const TQCString& line ) = 0; - virtual void addPartialStdoutLine( const TQCString& line ) = 0; - - /** - * Clears the output view. - */ - virtual void clearView() = 0; -}; - -#endif diff --git a/lib/interfaces/extensions/kdevcreatefile.h b/lib/interfaces/extensions/kdevcreatefile.h deleted file mode 100644 index 35b98d19..00000000 --- a/lib/interfaces/extensions/kdevcreatefile.h +++ /dev/null @@ -1,146 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2003 Julian Rockey - Copyright (C) 2003 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVCREATEFILE_H -#define KDEVCREATEFILE_H - -#include - -#include - -/** -@file kdevcreatefile.h -File creation facility interface. -*/ - -/** -File creation facility interface. - -An abstract class for all extensions that are responsible for file creation. - -Instances that implement this interface are available through extension architecture: -@code -KDevCreateFile *cf = extension("TDevelop/CreateFile"); -if (cf) { - // do something -} else { - // fail -} -@endcode -@sa KDevPlugin::extension method documentation. -*/ -class KDevCreateFile : public KDevPlugin -{ - -public: - /**File created with @ref KDevCreateFile implementation.*/ - class CreatedFile { - - public: - /**The status of a file.*/ - enum Status { - STATUS_OK /** - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevdifffrontend.h" - - -KDevDiffFrontend::KDevDiffFrontend(const KDevPluginInfo *info, TQObject *parent, const char *name) - : KDevPlugin(info, parent, name ? name : "KDevDiffFrontend") -{ -} - -KDevDiffFrontend::~KDevDiffFrontend() -{ -} - -#include "kdevdifffrontend.moc" diff --git a/lib/interfaces/extensions/kdevdifffrontend.h b/lib/interfaces/extensions/kdevdifffrontend.h deleted file mode 100644 index 6d4cb2b6..00000000 --- a/lib/interfaces/extensions/kdevdifffrontend.h +++ /dev/null @@ -1,79 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Harald Fernengel - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVDIFFFRONTEND_H -#define KDEVDIFFFRONTEND_H - -#include -#include - -/** -@file kdevdifffrontend.h -Diff frontend interface. -*/ - -/** -KDevelop diff frontend interface. -This is the abstract base class for plugins that want to display differencies between -files. - -Instances that implement this interface are available through extension architecture: -@code -KDevDiffFrontend *df = extension("TDevelop/DiffFrontend"); -if (df) { - // do something -} else { - // fail -} -@endcode -@sa KDevPlugin::extension method documentation. -*/ -class KDevDiffFrontend : public KDevPlugin -{ - -public: - /**Constructor. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevDiffFrontend( const KDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) - :KDevPlugin(info, parent, name ? name : "KDevDiffFrontend") {} - - /**Displays the patch. - @param diff A string which contains a patch in unified format.*/ - virtual void showDiff( const TQString& diff ) = 0; - - /**Displays a patch file. - @param url An url of the patch file.*/ - virtual void openURL( const KURL &url ) = 0; - - /**Displays the difference between the two files. - @param url1 First file to compare. - @param url2 Second file to compare.*/ - virtual void showDiff( const KURL &url1, const KURL &url2 ) = 0; - -}; - -#endif diff --git a/lib/interfaces/extensions/kdevmakefrontend.cpp b/lib/interfaces/extensions/kdevmakefrontend.cpp deleted file mode 100644 index 5e035270..00000000 --- a/lib/interfaces/extensions/kdevmakefrontend.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "kdevmakefrontend.h" -#include "kdevmakefrontend.moc" diff --git a/lib/interfaces/extensions/kdevmakefrontend.h b/lib/interfaces/extensions/kdevmakefrontend.h deleted file mode 100644 index 52afa3d3..00000000 --- a/lib/interfaces/extensions/kdevmakefrontend.h +++ /dev/null @@ -1,107 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001 Sandy Meier - Copyright (C) 2001-2002 Bernd Gehrmann - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 Amilcar do Carmo Lucas - Copyright (C) 2003 Hamish Rodda - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVMAKEFRONTEND_H -#define KDEVMAKEFRONTEND_H - -#include -#include - -/** -@file kdevmakefrontend.h -Make frontend interface. -*/ - -/** -KDevelop make frontend interface. -This is the abstract base class for plugins that are able to run "make" -or similar commands to build a project, api documentation, etc. - -Instances that implement this interface are available through extension architecture: -@code -KDevMakeFrontend *mf = extension("TDevelop/MakeFrontend"); -if (mf) { - // do something -} else { - // fail -} -@endcode -@sa KDevPlugin::extension method documentation. -*/ -class KDevMakeFrontend : public KDevPlugin -{ - Q_OBJECT - - -public: - - /**Constructor. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevMakeFrontend(const KDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) - :KDevPlugin(info, parent, name ? name : "KDevMakeFrontend") {} - - /**@return The widget where the make output is shown.*/ - virtual TQWidget* widget() { return 0L; } - - /**The component shall start to execute a make-like command. - * Commands are always asynchronous. You can submit several jobs - * without caring about another job already running. There are - * executed in the order in which they are submitted. If one of - * then fails, all following jobs are dropped. - * You should not make any assumptions about the directory in which - * the command is started. If the command depends on that, put and - * explicit 'cd' into the command. - * @param dir A starting directory to find files when parsing compiler error - * messages. - * @param command A shell command to execute. - */ - virtual void queueCommand(const TQString &dir, const TQString &command) = 0; - - /**@return Whether the application is currently running.*/ - virtual bool isRunning() = 0; - - /**Advices to synchronize the settings from TDEConfig because they were changed externally.*/ - virtual void updateSettingsFromConfig() = 0; - -signals: - /** - * Only emitted if the command was succesfully finished. - */ - void commandFinished(const TQString &command); - - /** - * Emitted if a command failed. - */ - void commandFailed(const TQString &command); -}; - -#endif diff --git a/lib/interfaces/extensions/kdevquickopen.h b/lib/interfaces/extensions/kdevquickopen.h deleted file mode 100644 index 91dce7ca..00000000 --- a/lib/interfaces/extensions/kdevquickopen.h +++ /dev/null @@ -1,130 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2007 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVQUICKOPEN_H -#define KDEVQUICKOPEN_H - -#include -#include - -/** -@file kdevquickopen.h -Source formatter interface. -*/ - -/** -Quick open plugin interface. - -Use it when you need to present a dialog to choose between files to open. -@code -KDevQuickOpen *qo = extension("TDevelop/QuickOpen"); -if (qo) { - // do something -} else { - // fail -} -@endcode -@sa @ref KDevPlugin::extension method documentation. -@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation. -*/ -class KDevQuickOpen : public KDevPlugin -{ -public: - /**Constructor. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevQuickOpen(const KDevPluginInfo *info, TQObject* parent, const char* name) - :KDevPlugin(info, parent, name) {} - - /**Shows the file selection dialog. - @param text A list of urls to open.*/ - virtual void quickOpenFile(const KURL::List urls) = 0; -}; - -#endif -/* This file is part of the KDE project - Copyright (C) 2007 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVQUICKOPEN_H -#define KDEVQUICKOPEN_H - -#include -#include - -/** -@file kdevquickopen.h -Source formatter interface. -*/ - -/** -Quick open plugin interface. - -Use it when you need to present a dialog to choose between files to open. -@code -KDevQuickOpen *qo = extension("TDevelop/QuickOpen"); -if (qo) { - // do something -} else { - // fail -} -@endcode -@sa @ref KDevPlugin::extension method documentation. -@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation. -*/ -class KDevQuickOpen : public KDevPlugin -{ -public: - /**Constructor. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevQuickOpen(const KDevPluginInfo *info, TQObject* parent, const char* name) - :KDevPlugin(info, parent, name) {} - - /**Shows the file selection dialog. - @param text A list of urls to open.*/ - virtual void quickOpenFile(const KURL::List urls) = 0; -}; - -#endif diff --git a/lib/interfaces/extensions/kdevsourceformatter.h b/lib/interfaces/extensions/kdevsourceformatter.h deleted file mode 100644 index c4a380cf..00000000 --- a/lib/interfaces/extensions/kdevsourceformatter.h +++ /dev/null @@ -1,69 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2003-2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVSOURCEFORMATTER_H -#define KDEVSOURCEFORMATTER_H - -#include - -/** -@file kdevsourceformatter.h -Source formatter interface. -*/ - -/** -Source formatter interface. -This interface is responsible for formatting source files and strings of code. - -Instances that implement this interface are available through extension architecture: -@code -KDevSourceFormatter *sf = extension("TDevelop/SourceFormatter"); -if (sf) { - // do something -} else { - // fail -} -@endcode -@sa @ref KDevPlugin::extension method documentation. -@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation. -*/ -class KDevSourceFormatter : public KDevPlugin -{ -public: - /**Constructor. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevSourceFormatter(const KDevPluginInfo *info, TQObject* parent, const char* name) - :KDevPlugin(info, parent, name) {} - - /**Formats the source. - @param text A string with a code. - @return The formatted string.*/ - virtual TQString formatSource(const TQString text) = 0; - - /**@return The indentation string. For example, tab or four spaces can be returned.*/ - virtual TQString indentString() const = 0; -}; - -#endif diff --git a/lib/interfaces/extensions/kdevversioncontrol.h b/lib/interfaces/extensions/kdevversioncontrol.h deleted file mode 100644 index a19c6275..00000000 --- a/lib/interfaces/extensions/kdevversioncontrol.h +++ /dev/null @@ -1,239 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2003 Mario Scalas - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVVERSIONCONTROL_H -#define KDEVVERSIONCONTROL_H - -#include -#include -#include -#include -#include - -#include - -/** -@file kdevversioncontrol.h -Version control system interface and utility classes. -*/ - -/** -Info about file state in VCS. - -Used, for example in file views to display VCS related information about files. -*/ -struct VCSFileInfo -{ - /**State of the file.*/ - enum FileState { - Unknown /** VCSFileInfoMap; @endcode -*/ -typedef TQMap VCSFileInfoMap; - -class KDevVCSFileInfoProvider; - - -/** -KDevelop version control system interface. -This is the abstract base class which encapsulates everything -necessary for communicating with version control systems. -VCS support plugins should implement this interface. - -Instances that implement this interface are available through extension architecture: -@code -KDevVersionControl *vcs = extension("TDevelop/VersionControl"); -if (vcs) { - // do something -} else { - // fail -} -@endcode -@sa KDevPlugin::extension method documentation. -*/ -class KDevVersionControl: public KDevPlugin -{ - Q_OBJECT - - -public: - /**Constructs a VCS plugin. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevVersionControl(const KDevPluginInfo *info, TQObject *parent, const char *name ) - :KDevPlugin(info, parent, name ) {} - - /**Creates a new project in the passed path @p dir. This should instantiate - VCS infrastructure and import a project into the VCS in that directory. - @param dir The absolute path to the directory where VCS infrastructure should be - created.*/ - virtual void createNewProject(const TQString& dir) = 0; - - /**Fetches a module from remote repository, so it can be used for importing. - @return true in case of success.*/ - virtual bool fetchFromRepository() = 0; - - /**@return The file info provider for this version control (0 if none is available).*/ - virtual KDevVCSFileInfoProvider *fileInfoProvider() const = 0; - - /**Checks if the directory is valid for this version control (for example - CVS may check for the presence of "/CVS/" subdir and something else) - @param dirPath The absolute path of the directory. - @return true if the directory is valid for this version control - warning: this returns false by default.*/ - virtual bool isValidDirectory(const TQString &dirPath) const = 0; - - -signals: - /**Emitted when the Version Control has finished importing a module from remote - repository - @param destinationDir The directory where the module has been fetched.*/ - void finishedFetching(TQString destinationDir); - -}; - -/** -Basic interface for providing info on file registered in a version control repository repository. -*/ -class KDevVCSFileInfoProvider: public TQObject -{ - Q_OBJECT - -public: - /**Constructor. - @param parent The parent VCS plugin. - @param name The name of a provider object.*/ - KDevVCSFileInfoProvider(KDevVersionControl *parent, const char *name) - : TQObject( parent, name ), m_owner(parent) {} - - /**Gets the status for local files in the specified directory: - the info are collected locally so they are necessarily in sync with the repository - - This is a synchronous operation (blocking). - @param dirPath The relative (to project dir) directory path to stat. - @return Status for all registered files.*/ - virtual const VCSFileInfoMap *status(const TQString &dirPath) = 0; - - /**Starts a request for directory status to the remote repository. - Requests and answers are asynchronous. - - This is an asynchronous operation for requesting data, so - for obvious reasons: the caller must connect the statusReady() signal and - check for the return value of this method. - @param dirPath The (relative to project directory) directory which status you are asking for. - @param callerData The pointer to some data you want the provider will return - to you when it has done. - @param recursive If false, retrieve information only for dirPath's immediate children. - @param checkRepos If true, contact remote repository and augment repository's status. - If false, retrieve only for local modification information. - @return true if the request has been successfully started, false otherwise.*/ - virtual bool requestStatus( const TQString &dirPath, void *callerData, bool recursive = true, bool checkRepos = true ) = 0; - -signals: - /**Emitted when the status request to remote repository has finished. - @param fileInfoMap The status for registered in repository files. - @param callerData The pointer to some data you want the provider will return - to you when it has done - @see requestStatus for to find out when this signal should be used.*/ - void statusReady(const VCSFileInfoMap &fileInfoMap, void *callerData); - -protected: - /**@return The version control which owns this provider.*/ - KDevVersionControl *owner() const { return m_owner; } - -private: - KDevVersionControl *m_owner; - -private: - KDevVCSFileInfoProvider( const KDevVCSFileInfoProvider & ); - KDevVCSFileInfoProvider &operator=( const KDevVCSFileInfoProvider & ); -}; - -#endif diff --git a/lib/interfaces/extensions/tdevappfrontend.cpp b/lib/interfaces/extensions/tdevappfrontend.cpp new file mode 100644 index 00000000..4f7c52a7 --- /dev/null +++ b/lib/interfaces/extensions/tdevappfrontend.cpp @@ -0,0 +1,2 @@ +#include "tdevappfrontend.h" +#include "tdevappfrontend.moc" diff --git a/lib/interfaces/extensions/tdevappfrontend.h b/lib/interfaces/extensions/tdevappfrontend.h new file mode 100644 index 00000000..085d3c9d --- /dev/null +++ b/lib/interfaces/extensions/tdevappfrontend.h @@ -0,0 +1,116 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001-2002 Bernd Gehrmann + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2002 John Firebaugh + Copyright (C) 2003 Amilcar do Carmo Lucas + Copyright (C) 2003 Hamish Rodda + Copyright (C) 2003 Jens Dagerbo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVAPPFRONTEND_H +#define TDEVAPPFRONTEND_H + +#include +#include + +/** +@file tdevappfrontend.h +Application frontend interface. +*/ + +/** +Application frontend interface. +This interface is responsible for handling the running of an application in KDevelop. +Currently, this interface defines ways to do the following: +- check if the application is running; +- execute the application; +- stop the currently running application; +- control the output view as seen in the 'Application' tool dock. + +Instances that implement this interface are available through extension architecture: +@code +TDevAppFrontend *apf = extension("TDevelop/AppFrontend"); +if (apf) { + // do something +} else { + // fail +} +@endcode +@sa TDevPlugin::extension method documentation. +*/ +class TDevAppFrontend : public TDevPlugin +{ + Q_OBJECT + + +public: + /**Constructor. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + TDevAppFrontend(const TDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) + :TDevPlugin(info, parent, name ? name : "TDevAppFrontend") {} + + /**@return Whether the application is currently running.*/ + virtual bool isRunning() = 0; + +public slots: + /** + * The component shall start to execute an app-like command. + * Running the application is always asynchronous. + * @param directory The working directory to start the app in, + * if empty then the user's home directory is used. + * @param program A program to start. + * @param inTerminal If true then the program is started in an external konsole. + */ + virtual void startAppCommand(const TQString &directory, const TQString &program, bool inTerminal) = 0; + + /** + * Stops the currently running application. + */ + virtual void stopApplication() = 0; + + /** + * Inserts a string into the application output view. + * @param line A string to insert. + */ + virtual void insertStdoutLine(const TQCString &line) = 0; + + /** + * Inserts a string into the application output view marked as stderr output + * (usually colored). + * @param line An error string to insert. + */ + virtual void insertStderrLine(const TQCString &line) = 0; + + virtual void addPartialStderrLine( const TQCString& line ) = 0; + virtual void addPartialStdoutLine( const TQCString& line ) = 0; + + /** + * Clears the output view. + */ + virtual void clearView() = 0; +}; + +#endif diff --git a/lib/interfaces/extensions/tdevcreatefile.h b/lib/interfaces/extensions/tdevcreatefile.h new file mode 100644 index 00000000..b1148e94 --- /dev/null +++ b/lib/interfaces/extensions/tdevcreatefile.h @@ -0,0 +1,146 @@ +/* This file is part of the KDE project + Copyright (C) 2003 Julian Rockey + Copyright (C) 2003 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVCREATEFILE_H +#define TDEVCREATEFILE_H + +#include + +#include + +/** +@file tdevcreatefile.h +File creation facility interface. +*/ + +/** +File creation facility interface. + +An abstract class for all extensions that are responsible for file creation. + +Instances that implement this interface are available through extension architecture: +@code +TDevCreateFile *cf = extension("TDevelop/CreateFile"); +if (cf) { + // do something +} else { + // fail +} +@endcode +@sa TDevPlugin::extension method documentation. +*/ +class TDevCreateFile : public TDevPlugin +{ + +public: + /**File created with @ref TDevCreateFile implementation.*/ + class CreatedFile { + + public: + /**The status of a file.*/ + enum Status { + STATUS_OK /** + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevdifffrontend.h" + + +TDevDiffFrontend::TDevDiffFrontend(const TDevPluginInfo *info, TQObject *parent, const char *name) + : TDevPlugin(info, parent, name ? name : "TDevDiffFrontend") +{ +} + +TDevDiffFrontend::~TDevDiffFrontend() +{ +} + +#include "tdevdifffrontend.moc" diff --git a/lib/interfaces/extensions/tdevdifffrontend.h b/lib/interfaces/extensions/tdevdifffrontend.h new file mode 100644 index 00000000..c0c343cb --- /dev/null +++ b/lib/interfaces/extensions/tdevdifffrontend.h @@ -0,0 +1,79 @@ +/* This file is part of the KDE project + Copyright (C) 2002 Harald Fernengel + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVDIFFFRONTEND_H +#define TDEVDIFFFRONTEND_H + +#include +#include + +/** +@file tdevdifffrontend.h +Diff frontend interface. +*/ + +/** +KDevelop diff frontend interface. +This is the abstract base class for plugins that want to display differencies between +files. + +Instances that implement this interface are available through extension architecture: +@code +TDevDiffFrontend *df = extension("TDevelop/DiffFrontend"); +if (df) { + // do something +} else { + // fail +} +@endcode +@sa TDevPlugin::extension method documentation. +*/ +class TDevDiffFrontend : public TDevPlugin +{ + +public: + /**Constructor. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + TDevDiffFrontend( const TDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) + :TDevPlugin(info, parent, name ? name : "TDevDiffFrontend") {} + + /**Displays the patch. + @param diff A string which contains a patch in unified format.*/ + virtual void showDiff( const TQString& diff ) = 0; + + /**Displays a patch file. + @param url An url of the patch file.*/ + virtual void openURL( const KURL &url ) = 0; + + /**Displays the difference between the two files. + @param url1 First file to compare. + @param url2 Second file to compare.*/ + virtual void showDiff( const KURL &url1, const KURL &url2 ) = 0; + +}; + +#endif diff --git a/lib/interfaces/extensions/tdevmakefrontend.cpp b/lib/interfaces/extensions/tdevmakefrontend.cpp new file mode 100644 index 00000000..140d074d --- /dev/null +++ b/lib/interfaces/extensions/tdevmakefrontend.cpp @@ -0,0 +1,2 @@ +#include "tdevmakefrontend.h" +#include "tdevmakefrontend.moc" diff --git a/lib/interfaces/extensions/tdevmakefrontend.h b/lib/interfaces/extensions/tdevmakefrontend.h new file mode 100644 index 00000000..47b14fc4 --- /dev/null +++ b/lib/interfaces/extensions/tdevmakefrontend.h @@ -0,0 +1,107 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001 Sandy Meier + Copyright (C) 2001-2002 Bernd Gehrmann + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 Amilcar do Carmo Lucas + Copyright (C) 2003 Hamish Rodda + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVMAKEFRONTEND_H +#define TDEVMAKEFRONTEND_H + +#include +#include + +/** +@file tdevmakefrontend.h +Make frontend interface. +*/ + +/** +KDevelop make frontend interface. +This is the abstract base class for plugins that are able to run "make" +or similar commands to build a project, api documentation, etc. + +Instances that implement this interface are available through extension architecture: +@code +TDevMakeFrontend *mf = extension("TDevelop/MakeFrontend"); +if (mf) { + // do something +} else { + // fail +} +@endcode +@sa TDevPlugin::extension method documentation. +*/ +class TDevMakeFrontend : public TDevPlugin +{ + Q_OBJECT + + +public: + + /**Constructor. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + TDevMakeFrontend(const TDevPluginInfo *info, TQObject *parent=0, const char *name=0 ) + :TDevPlugin(info, parent, name ? name : "TDevMakeFrontend") {} + + /**@return The widget where the make output is shown.*/ + virtual TQWidget* widget() { return 0L; } + + /**The component shall start to execute a make-like command. + * Commands are always asynchronous. You can submit several jobs + * without caring about another job already running. There are + * executed in the order in which they are submitted. If one of + * then fails, all following jobs are dropped. + * You should not make any assumptions about the directory in which + * the command is started. If the command depends on that, put and + * explicit 'cd' into the command. + * @param dir A starting directory to find files when parsing compiler error + * messages. + * @param command A shell command to execute. + */ + virtual void queueCommand(const TQString &dir, const TQString &command) = 0; + + /**@return Whether the application is currently running.*/ + virtual bool isRunning() = 0; + + /**Advices to synchronize the settings from TDEConfig because they were changed externally.*/ + virtual void updateSettingsFromConfig() = 0; + +signals: + /** + * Only emitted if the command was succesfully finished. + */ + void commandFinished(const TQString &command); + + /** + * Emitted if a command failed. + */ + void commandFailed(const TQString &command); +}; + +#endif diff --git a/lib/interfaces/extensions/tdevquickopen.h b/lib/interfaces/extensions/tdevquickopen.h new file mode 100644 index 00000000..e1fd2f65 --- /dev/null +++ b/lib/interfaces/extensions/tdevquickopen.h @@ -0,0 +1,130 @@ +/* This file is part of the KDE project + Copyright (C) 2007 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVQUICKOPEN_H +#define TDEVQUICKOPEN_H + +#include +#include + +/** +@file tdevquickopen.h +Source formatter interface. +*/ + +/** +Quick open plugin interface. + +Use it when you need to present a dialog to choose between files to open. +@code +KDevQuickOpen *qo = extension("TDevelop/QuickOpen"); +if (qo) { + // do something +} else { + // fail +} +@endcode +@sa @ref TDevPlugin::extension method documentation. +@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation. +*/ +class KDevQuickOpen : public TDevPlugin +{ +public: + /**Constructor. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + KDevQuickOpen(const TDevPluginInfo *info, TQObject* parent, const char* name) + :TDevPlugin(info, parent, name) {} + + /**Shows the file selection dialog. + @param text A list of urls to open.*/ + virtual void quickOpenFile(const KURL::List urls) = 0; +}; + +#endif +/* This file is part of the KDE project + Copyright (C) 2007 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVQUICKOPEN_H +#define TDEVQUICKOPEN_H + +#include +#include + +/** +@file tdevquickopen.h +Source formatter interface. +*/ + +/** +Quick open plugin interface. + +Use it when you need to present a dialog to choose between files to open. +@code +KDevQuickOpen *qo = extension("TDevelop/QuickOpen"); +if (qo) { + // do something +} else { + // fail +} +@endcode +@sa @ref TDevPlugin::extension method documentation. +@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation. +*/ +class KDevQuickOpen : public TDevPlugin +{ +public: + /**Constructor. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + KDevQuickOpen(const TDevPluginInfo *info, TQObject* parent, const char* name) + :TDevPlugin(info, parent, name) {} + + /**Shows the file selection dialog. + @param text A list of urls to open.*/ + virtual void quickOpenFile(const KURL::List urls) = 0; +}; + +#endif diff --git a/lib/interfaces/extensions/tdevsourceformatter.h b/lib/interfaces/extensions/tdevsourceformatter.h new file mode 100644 index 00000000..3403a5d2 --- /dev/null +++ b/lib/interfaces/extensions/tdevsourceformatter.h @@ -0,0 +1,69 @@ +/* This file is part of the KDE project + Copyright (C) 2003-2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVSOURCEFORMATTER_H +#define TDEVSOURCEFORMATTER_H + +#include + +/** +@file tdevsourceformatter.h +Source formatter interface. +*/ + +/** +Source formatter interface. +This interface is responsible for formatting source files and strings of code. + +Instances that implement this interface are available through extension architecture: +@code +KDevSourceFormatter *sf = extension("TDevelop/SourceFormatter"); +if (sf) { + // do something +} else { + // fail +} +@endcode +@sa @ref TDevPlugin::extension method documentation. +@sa @ref whatisextension and @ref creatingextension sections of Platform API documentation. +*/ +class KDevSourceFormatter : public TDevPlugin +{ +public: + /**Constructor. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + KDevSourceFormatter(const TDevPluginInfo *info, TQObject* parent, const char* name) + :TDevPlugin(info, parent, name) {} + + /**Formats the source. + @param text A string with a code. + @return The formatted string.*/ + virtual TQString formatSource(const TQString text) = 0; + + /**@return The indentation string. For example, tab or four spaces can be returned.*/ + virtual TQString indentString() const = 0; +}; + +#endif diff --git a/lib/interfaces/extensions/tdevversioncontrol.h b/lib/interfaces/extensions/tdevversioncontrol.h new file mode 100644 index 00000000..d796e31f --- /dev/null +++ b/lib/interfaces/extensions/tdevversioncontrol.h @@ -0,0 +1,239 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2003 Mario Scalas + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVVERSIONCONTROL_H +#define TDEVVERSIONCONTROL_H + +#include +#include +#include +#include +#include + +#include + +/** +@file tdevversioncontrol.h +Version control system interface and utility classes. +*/ + +/** +Info about file state in VCS. + +Used, for example in file views to display VCS related information about files. +*/ +struct VCSFileInfo +{ + /**State of the file.*/ + enum FileState { + Unknown /** VCSFileInfoMap; @endcode +*/ +typedef TQMap VCSFileInfoMap; + +class TDevVCSFileInfoProvider; + + +/** +KDevelop version control system interface. +This is the abstract base class which encapsulates everything +necessary for communicating with version control systems. +VCS support plugins should implement this interface. + +Instances that implement this interface are available through extension architecture: +@code +TDevVersionControl *vcs = extension("TDevelop/VersionControl"); +if (vcs) { + // do something +} else { + // fail +} +@endcode +@sa TDevPlugin::extension method documentation. +*/ +class TDevVersionControl: public TDevPlugin +{ + Q_OBJECT + + +public: + /**Constructs a VCS plugin. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + TDevVersionControl(const TDevPluginInfo *info, TQObject *parent, const char *name ) + :TDevPlugin(info, parent, name ) {} + + /**Creates a new project in the passed path @p dir. This should instantiate + VCS infrastructure and import a project into the VCS in that directory. + @param dir The absolute path to the directory where VCS infrastructure should be + created.*/ + virtual void createNewProject(const TQString& dir) = 0; + + /**Fetches a module from remote repository, so it can be used for importing. + @return true in case of success.*/ + virtual bool fetchFromRepository() = 0; + + /**@return The file info provider for this version control (0 if none is available).*/ + virtual TDevVCSFileInfoProvider *fileInfoProvider() const = 0; + + /**Checks if the directory is valid for this version control (for example + CVS may check for the presence of "/CVS/" subdir and something else) + @param dirPath The absolute path of the directory. + @return true if the directory is valid for this version control + warning: this returns false by default.*/ + virtual bool isValidDirectory(const TQString &dirPath) const = 0; + + +signals: + /**Emitted when the Version Control has finished importing a module from remote + repository + @param destinationDir The directory where the module has been fetched.*/ + void finishedFetching(TQString destinationDir); + +}; + +/** +Basic interface for providing info on file registered in a version control repository repository. +*/ +class TDevVCSFileInfoProvider: public TQObject +{ + Q_OBJECT + +public: + /**Constructor. + @param parent The parent VCS plugin. + @param name The name of a provider object.*/ + TDevVCSFileInfoProvider(TDevVersionControl *parent, const char *name) + : TQObject( parent, name ), m_owner(parent) {} + + /**Gets the status for local files in the specified directory: + the info are collected locally so they are necessarily in sync with the repository + + This is a synchronous operation (blocking). + @param dirPath The relative (to project dir) directory path to stat. + @return Status for all registered files.*/ + virtual const VCSFileInfoMap *status(const TQString &dirPath) = 0; + + /**Starts a request for directory status to the remote repository. + Requests and answers are asynchronous. + + This is an asynchronous operation for requesting data, so + for obvious reasons: the caller must connect the statusReady() signal and + check for the return value of this method. + @param dirPath The (relative to project directory) directory which status you are asking for. + @param callerData The pointer to some data you want the provider will return + to you when it has done. + @param recursive If false, retrieve information only for dirPath's immediate children. + @param checkRepos If true, contact remote repository and augment repository's status. + If false, retrieve only for local modification information. + @return true if the request has been successfully started, false otherwise.*/ + virtual bool requestStatus( const TQString &dirPath, void *callerData, bool recursive = true, bool checkRepos = true ) = 0; + +signals: + /**Emitted when the status request to remote repository has finished. + @param fileInfoMap The status for registered in repository files. + @param callerData The pointer to some data you want the provider will return + to you when it has done + @see requestStatus for to find out when this signal should be used.*/ + void statusReady(const VCSFileInfoMap &fileInfoMap, void *callerData); + +protected: + /**@return The version control which owns this provider.*/ + TDevVersionControl *owner() const { return m_owner; } + +private: + TDevVersionControl *m_owner; + +private: + TDevVCSFileInfoProvider( const TDevVCSFileInfoProvider & ); + TDevVCSFileInfoProvider &operator=( const TDevVCSFileInfoProvider & ); +}; + +#endif diff --git a/lib/interfaces/external/Mainpage.dox b/lib/interfaces/external/Mainpage.dox index 4ed571dd..6c2fb2b9 100644 --- a/lib/interfaces/external/Mainpage.dox +++ b/lib/interfaces/external/Mainpage.dox @@ -30,7 +30,7 @@ are connected to corresponding Q_SLOTS of TDevelop designer integration engine w Each language support which wants to use integrated designer, must reimplement @code -virtual KDevDesignerIntegration *KDevLanguageSupport::designer(KInterfaceDesigner::DesignerType type) +virtual TDevDesignerIntegration *TDevLanguageSupport::designer(KInterfaceDesigner::DesignerType type) @endcode method and return designer integration object. @@ -39,15 +39,15 @@ developers. With the convenience library writing %Qt designer integration for th trivial task. -\section kdevdesigner KDevelop Designer technical overview -KDevelop version >= 3.1 comes with a customized version (fork ;)) of %Qt Designer. It is called KDevelop Designer (KDevDesigner, kdevdesigner from the command line). KDevDesigner has some important differences: -- KDevDesigner provides a read/write KPart which can be embedded into any application which wants to edit .ui files. TDevelop IDE embeds KDevDesigner this way. -- KDevDesigner uses %KDE icons and dialogs and thus provides better integration with a system. +\section tdevdesigner KDevelop Designer technical overview +KDevelop version >= 3.1 comes with a customized version (fork ;)) of %Qt Designer. It is called KDevelop Designer (TDevDesigner, tdevdesigner from the command line). TDevDesigner has some important differences: +- TDevDesigner provides a read/write KPart which can be embedded into any application which wants to edit .ui files. TDevelop IDE embeds TDevDesigner this way. +- TDevDesigner uses %KDE icons and dialogs and thus provides better integration with a system. . -It is safe to preview forms with some %KDE widgets from tdeui and tdeio libraries - KDevDesigner part is linked to those libraries so it will not crash under some circumstances. +It is safe to preview forms with some %KDE widgets from tdeui and tdeio libraries - TDevDesigner part is linked to those libraries so it will not crash under some circumstances. -KDevDesigner will not create .ui.h files - this feature is completely disabled. Integrated KDevDesigner will use subclassing approach, standalone does not allow to enter code. +TDevDesigner will not create .ui.h files - this feature is completely disabled. Integrated TDevDesigner will use subclassing approach, standalone does not allow to enter code. \section other Other information diff --git a/lib/interfaces/extras/CMakeLists.txt b/lib/interfaces/extras/CMakeLists.txt index eb4cdb75..afe233aa 100644 --- a/lib/interfaces/extras/CMakeLists.txt +++ b/lib/interfaces/extras/CMakeLists.txt @@ -22,7 +22,7 @@ link_directories( ##### headers ################################### install( FILES - kdevcompileroptions.h kdevvcsintegrator.h + tdevcompileroptions.h tdevvcsintegrator.h DESTINATION ${INCLUDE_INSTALL_DIR}/tdevelop/interfaces/extras ) install( FILES @@ -30,10 +30,10 @@ install( FILES DESTINATION ${SERVICETYPES_INSTALL_DIR} ) -##### kdevextras (shared) ####################### +##### tdevextras (shared) ####################### -tde_add_library( kdevextras SHARED AUTOMOC - SOURCES kdevcompileroptions.cpp kdevvcsintegrator.cpp +tde_add_library( tdevextras SHARED AUTOMOC + SOURCES tdevcompileroptions.cpp tdevvcsintegrator.cpp VERSION 0.0.0 LINK ${TQT_LIBRARIES} DESTINATION ${LIB_INSTALL_DIR} diff --git a/lib/interfaces/extras/Makefile.am b/lib/interfaces/extras/Makefile.am index 67615223..c504621e 100644 --- a/lib/interfaces/extras/Makefile.am +++ b/lib/interfaces/extras/Makefile.am @@ -1,18 +1,18 @@ INCLUDES = -I$(top_srcdir)/lib/interfaces/external -I$(top_srcdir)/lib/util \ $(all_includes) METASOURCES = AUTO -libkdevextras_la_LIBADD = $(LIB_QT) -libkdevextras_la_LDFLAGS = $(all_libraries) -lib_LTLIBRARIES = libkdevextras.la +libtdevextras_la_LIBADD = $(LIB_QT) +libtdevextras_la_LDFLAGS = $(all_libraries) +lib_LTLIBRARIES = libtdevextras.la tdevelopincludedir = $(includedir)/tdevelop/interfaces/extras servicetypedir = $(kde_servicetypesdir) -tdevelopinclude_HEADERS = kdevcompileroptions.h kdevvcsintegrator.h -libkdevextras_la_SOURCES = kdevcompileroptions.cpp kdevvcsintegrator.cpp +tdevelopinclude_HEADERS = tdevcompileroptions.h tdevvcsintegrator.h +libtdevextras_la_SOURCES = tdevcompileroptions.cpp tdevvcsintegrator.cpp servicetype_DATA = tdevelopcompileroptions.desktop \ tdevelopvcsintegrator.desktop -DOXYGEN_REFERENCES = dcop interfaces tdecore tdefx tdeui tdehtml tdemdi tdeio kjs tdeparts tdeutils kdevinterfaces +DOXYGEN_REFERENCES = dcop interfaces tdecore tdefx tdeui tdehtml tdemdi tdeio kjs tdeparts tdeutils tdevinterfaces DOXYGEN_PROJECTNAME = TDevelop Extra Interfaces Library -DOXYGEN_DOCDIRPREFIX = kdev +DOXYGEN_DOCDIRPREFIX = tdev include ../../../Doxyfile.am diff --git a/lib/interfaces/extras/kdevcompileroptions.cpp b/lib/interfaces/extras/kdevcompileroptions.cpp deleted file mode 100644 index 22c701f1..00000000 --- a/lib/interfaces/extras/kdevcompileroptions.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "kdevcompileroptions.h" - -KDevCompilerOptions::KDevCompilerOptions( TQObject * parent, const char * name ) - :TQObject(parent, name) -{ -} - -#include "kdevcompileroptions.moc" diff --git a/lib/interfaces/extras/kdevcompileroptions.h b/lib/interfaces/extras/kdevcompileroptions.h deleted file mode 100644 index 6544c5d0..00000000 --- a/lib/interfaces/extras/kdevcompileroptions.h +++ /dev/null @@ -1,91 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -/** -@file kdevcompileroptions.h -The interface to compiler options configuration. -*/ - -#ifndef _KDEVCOMPILEROPTIONS_H_ -#define _KDEVCOMPILEROPTIONS_H_ - -#include - -/** -The interface to compiler options configuration. -Used by build systems to give users a compiler options configuration dialog. - -Common use case: -@code -static KDevCompilerOptions *createCompilerOptions( const TQString &name, TQObject *parent ) -{ - KService::Ptr service = KService::serviceByDesktopName( name ); - if ( !service ) - return 0; - - KLibFactory *factory = KLibLoader::self()->factory(TQFile::encodeName(service->library())); - if (!factory) - return 0; - - TQStringList args; - TQVariant prop = service->property("X-TDevelop-Args"); - if (prop.isValid()) - args = TQStringList::split(" ", prop.toString()); - - TQObject *obj = factory->create(parent, service->name().latin1(), - "KDevCompilerOptions", args); - - if (!obj->inherits("KDevCompilerOptions")) - return 0; - - KDevCompilerOptions *dlg = (KDevCompilerOptions*) obj; - return dlg; -} - -... -KDevCompilerOptions *plugin = createCompilerOptions(compilerName, parent); -TQString flags = ""; //old compiler flags -if ( plugin ) -{ - flags = plugin->exec( parent, flags ); //new compiler flags are returned - delete plugin; -} -@endcode -*/ -class KDevCompilerOptions : public TQObject -{ - Q_OBJECT - - -public: - KDevCompilerOptions( TQObject *parent=0, const char *name=0 ); - - /** - * Opens a dialog which allows the user to configure the - * compiler options. The initial settings in the dialog - * will be set from the flags argument of this method. - * After the dialog is accepted, the new settings will - * be returned as a string. If the dialog was cancelled, - * TQString() is returned. - */ - virtual TQString exec(TQWidget *parent, const TQString &flags) = 0; -}; - -#endif diff --git a/lib/interfaces/extras/kdevvcsintegrator.cpp b/lib/interfaces/extras/kdevvcsintegrator.cpp deleted file mode 100644 index 5a6ab429..00000000 --- a/lib/interfaces/extras/kdevvcsintegrator.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevvcsintegrator.h" - -KDevVCSIntegrator::KDevVCSIntegrator(TQObject *parent, const char *name) - :TQObject(parent, name) -{ -} - -#include "kdevvcsintegrator.moc" diff --git a/lib/interfaces/extras/kdevvcsintegrator.h b/lib/interfaces/extras/kdevvcsintegrator.h deleted file mode 100644 index 793070b3..00000000 --- a/lib/interfaces/extras/kdevvcsintegrator.h +++ /dev/null @@ -1,77 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVVCSINTEGRATOR_H -#define KDEVVCSINTEGRATOR_H - -#include - -/** -@file kdevvcsintegrator.h -The interface to VCS integrators. -*/ - -class TQDomDocument; -class TQWidget; - -/** -VCS Integration Dialog. - -Usually it is created as: -@code -class MyVCSDialog: public TQWidget, public VCSDialog { - MyVCSDialog(TQWidget *parent = 0, const char *name = 0); - virtual void accept() { ... } - virtual void init(const TQString &projectName, const TQString &projectLocation) { ... } - virtual TQWidget *self() { - return const_cast(this); - } -} -@endcode -*/ -class VCSDialog { -public: - VCSDialog() { } - /**Implement all integration actions here. Do not use TQDialog::accept method - to perform integration actions.*/ - virtual void accept() = 0; - /**Init integration dialog with the project name and location.*/ - virtual void init(const TQString &projectName, const TQString &projectLocation) = 0; - /**Reimplement to return an actual integration widget. Use TQWidgets for that, not - TQDialogs because integrator dialogs are usually have parent containers.*/ - virtual TQWidget *self() = 0; -}; - -/** -The interface to VCS integrators. -VCS integrator takes care about setting up VCS for new and existing projects. -It can, for example, perform checkout or import operations. -*/ -class KDevVCSIntegrator: public TQObject { - Q_OBJECT - -public: - KDevVCSIntegrator(TQObject *parent = 0, const char *name = 0); - - /**Reimplement to return a dialog to fetch the project from VCS.*/ - virtual VCSDialog *fetcher(TQWidget *parent) = 0; - /**Reimplement to return a dialog to integrate the project into VCS.*/ - virtual VCSDialog *integrator(TQWidget *parent) = 0; -}; - -#endif diff --git a/lib/interfaces/extras/tdevcompileroptions.cpp b/lib/interfaces/extras/tdevcompileroptions.cpp new file mode 100644 index 00000000..9eead32f --- /dev/null +++ b/lib/interfaces/extras/tdevcompileroptions.cpp @@ -0,0 +1,8 @@ +#include "tdevcompileroptions.h" + +TDevCompilerOptions::TDevCompilerOptions( TQObject * parent, const char * name ) + :TQObject(parent, name) +{ +} + +#include "tdevcompileroptions.moc" diff --git a/lib/interfaces/extras/tdevcompileroptions.h b/lib/interfaces/extras/tdevcompileroptions.h new file mode 100644 index 00000000..b8509a99 --- /dev/null +++ b/lib/interfaces/extras/tdevcompileroptions.h @@ -0,0 +1,91 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +/** +@file tdevcompileroptions.h +The interface to compiler options configuration. +*/ + +#ifndef _TDEVCOMPILEROPTIONS_H_ +#define _TDEVCOMPILEROPTIONS_H_ + +#include + +/** +The interface to compiler options configuration. +Used by build systems to give users a compiler options configuration dialog. + +Common use case: +@code +static TDevCompilerOptions *createCompilerOptions( const TQString &name, TQObject *parent ) +{ + KService::Ptr service = KService::serviceByDesktopName( name ); + if ( !service ) + return 0; + + KLibFactory *factory = KLibLoader::self()->factory(TQFile::encodeName(service->library())); + if (!factory) + return 0; + + TQStringList args; + TQVariant prop = service->property("X-TDevelop-Args"); + if (prop.isValid()) + args = TQStringList::split(" ", prop.toString()); + + TQObject *obj = factory->create(parent, service->name().latin1(), + "TDevCompilerOptions", args); + + if (!obj->inherits("TDevCompilerOptions")) + return 0; + + TDevCompilerOptions *dlg = (TDevCompilerOptions*) obj; + return dlg; +} + +... +TDevCompilerOptions *plugin = createCompilerOptions(compilerName, parent); +TQString flags = ""; //old compiler flags +if ( plugin ) +{ + flags = plugin->exec( parent, flags ); //new compiler flags are returned + delete plugin; +} +@endcode +*/ +class TDevCompilerOptions : public TQObject +{ + Q_OBJECT + + +public: + TDevCompilerOptions( TQObject *parent=0, const char *name=0 ); + + /** + * Opens a dialog which allows the user to configure the + * compiler options. The initial settings in the dialog + * will be set from the flags argument of this method. + * After the dialog is accepted, the new settings will + * be returned as a string. If the dialog was cancelled, + * TQString() is returned. + */ + virtual TQString exec(TQWidget *parent, const TQString &flags) = 0; +}; + +#endif diff --git a/lib/interfaces/extras/tdevvcsintegrator.cpp b/lib/interfaces/extras/tdevvcsintegrator.cpp new file mode 100644 index 00000000..26bf915d --- /dev/null +++ b/lib/interfaces/extras/tdevvcsintegrator.cpp @@ -0,0 +1,26 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevvcsintegrator.h" + +TDevVCSIntegrator::TDevVCSIntegrator(TQObject *parent, const char *name) + :TQObject(parent, name) +{ +} + +#include "tdevvcsintegrator.moc" diff --git a/lib/interfaces/extras/tdevvcsintegrator.h b/lib/interfaces/extras/tdevvcsintegrator.h new file mode 100644 index 00000000..23ee6c22 --- /dev/null +++ b/lib/interfaces/extras/tdevvcsintegrator.h @@ -0,0 +1,77 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVVCSINTEGRATOR_H +#define TDEVVCSINTEGRATOR_H + +#include + +/** +@file tdevvcsintegrator.h +The interface to VCS integrators. +*/ + +class TQDomDocument; +class TQWidget; + +/** +VCS Integration Dialog. + +Usually it is created as: +@code +class MyVCSDialog: public TQWidget, public VCSDialog { + MyVCSDialog(TQWidget *parent = 0, const char *name = 0); + virtual void accept() { ... } + virtual void init(const TQString &projectName, const TQString &projectLocation) { ... } + virtual TQWidget *self() { + return const_cast(this); + } +} +@endcode +*/ +class VCSDialog { +public: + VCSDialog() { } + /**Implement all integration actions here. Do not use TQDialog::accept method + to perform integration actions.*/ + virtual void accept() = 0; + /**Init integration dialog with the project name and location.*/ + virtual void init(const TQString &projectName, const TQString &projectLocation) = 0; + /**Reimplement to return an actual integration widget. Use TQWidgets for that, not + TQDialogs because integrator dialogs are usually have parent containers.*/ + virtual TQWidget *self() = 0; +}; + +/** +The interface to VCS integrators. +VCS integrator takes care about setting up VCS for new and existing projects. +It can, for example, perform checkout or import operations. +*/ +class TDevVCSIntegrator: public TQObject { + Q_OBJECT + +public: + TDevVCSIntegrator(TQObject *parent = 0, const char *name = 0); + + /**Reimplement to return a dialog to fetch the project from VCS.*/ + virtual VCSDialog *fetcher(TQWidget *parent) = 0; + /**Reimplement to return a dialog to integrate the project into VCS.*/ + virtual VCSDialog *integrator(TQWidget *parent) = 0; +}; + +#endif diff --git a/lib/interfaces/katedocumentmanagerinterface.cpp b/lib/interfaces/katedocumentmanagerinterface.cpp index 0afbcc81..360be1c4 100644 --- a/lib/interfaces/katedocumentmanagerinterface.cpp +++ b/lib/interfaces/katedocumentmanagerinterface.cpp @@ -17,7 +17,7 @@ Boston, MA 02110-1301, USA. */ #include "katedocumentmanagerinterface.h" -#include "kdevpartcontroller.h" +#include "tdevpartcontroller.h" #include #include #include @@ -26,7 +26,7 @@ #include #include -KateDocumentManagerInterface::KateDocumentManagerInterface( KDevPartController *pc) +KateDocumentManagerInterface::KateDocumentManagerInterface( TDevPartController *pc) : TQObject(pc), DCOPObject("KateDocumentManager"), m_controller(pc) { diff --git a/lib/interfaces/katedocumentmanagerinterface.h b/lib/interfaces/katedocumentmanagerinterface.h index 8bdbdf8f..235c7738 100644 --- a/lib/interfaces/katedocumentmanagerinterface.h +++ b/lib/interfaces/katedocumentmanagerinterface.h @@ -23,7 +23,7 @@ #include #include #include -class KDevPartController; +class TDevPartController; /** This is an emulated interface to provide compatibility with Kate scripts. @@ -36,7 +36,7 @@ class KateDocumentManagerInterface : public TQObject, public DCOPObject { // K_DCOP public: - KateDocumentManagerInterface( KDevPartController *pc ); + KateDocumentManagerInterface( TDevPartController *pc ); ~KateDocumentManagerInterface(); @@ -53,7 +53,7 @@ k_dcop: uint documents(); private: - KDevPartController *m_controller; + TDevPartController *m_controller; }; #endif diff --git a/lib/interfaces/kdevapi.cpp b/lib/interfaces/kdevapi.cpp deleted file mode 100644 index 04cf078d..00000000 --- a/lib/interfaces/kdevapi.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2000-2001 Bernd Gehrmann - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevapi.h" - -#include "kdevcoderepository.h" - -/////////////////////////////////////////////////////////////////////////////// -// class KDevApi::Private -/////////////////////////////////////////////////////////////////////////////// - -class KDevApi::Private -{ -public: - Private() - : m_projectDom(0), m_project(0), m_languageSupport(0), - m_codeRepository(0) - {} - - TQDomDocument *m_projectDom; - KDevProject *m_project; - KDevLanguageSupport *m_languageSupport; - KDevCodeRepository* m_codeRepository; -}; - -/////////////////////////////////////////////////////////////////////////////// -// class KDevApi -/////////////////////////////////////////////////////////////////////////////// - -KDevApi::KDevApi() -{ - d = new KDevApi::Private; - d->m_codeRepository = new KDevCodeRepository(); -} - -KDevApi::~KDevApi() -{ - delete d->m_codeRepository; - delete d; -} - -KDevProject *KDevApi::project() const -{ - return d->m_project; -} - -void KDevApi::setProject(KDevProject *project) -{ - d->m_project = project; -} - -KDevLanguageSupport *KDevApi::languageSupport() const -{ - return d->m_languageSupport; -} - -void KDevApi::setLanguageSupport(KDevLanguageSupport *languageSupport) -{ - d->m_languageSupport = languageSupport; -} - -TQDomDocument *KDevApi::projectDom() const -{ - return d->m_projectDom; -} - -void KDevApi::setProjectDom(TQDomDocument *dom) -{ - d->m_projectDom = dom; -} - -KDevCodeRepository *KDevApi::codeRepository() const -{ - return d->m_codeRepository; -} - -#include "kdevapi.moc" diff --git a/lib/interfaces/kdevapi.h b/lib/interfaces/kdevapi.h deleted file mode 100644 index d1f4f5cc..00000000 --- a/lib/interfaces/kdevapi.h +++ /dev/null @@ -1,104 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2000-2001 Bernd Gehrmann - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVAPI_H -#define KDEVAPI_H - -#include - -class TQStringList; -class TQDomDocument; -class KDevCore; -class KDevProject; -class KDevLanguageSupport; -class CodeModel; -class KDevPartController; -class KDevMainWindow; -class KDevCodeRepository; -class KDevPlugin; -class KDevPluginController; - -/** -@file kdevapi.h -KDevelop API interface. -*/ - -/** -The interface to KDevelop's core components. -Needs to be implemented in a shell. Developers do not need to use this -class because @ref KDevPlugin already provides API convenience methods. -*/ -class KDevApi: public TQObject -{ - Q_OBJECT - -public: - /**Constructor.*/ - KDevApi(); - - /**Destructor.*/ - virtual ~KDevApi(); - - /**@return A reference to the toplevel widget.*/ - virtual KDevMainWindow *mainWindow() const = 0; - - /**@return A reference to the part controller which is used to manipulate loaded KParts.*/ - virtual KDevPartController *partController() const = 0; - - /**@return A reference to the plugin controller which is used to manipulate loaded plugin.*/ - virtual KDevPluginController *pluginController() const = 0; - - /**@return A reference to the application core - an object which provides - basic functionalities for inter-parts communications / cooperation.*/ - virtual KDevCore *core() const = 0; - - /**@return A reference to the memory symbol store.*/ - virtual CodeModel *codeModel() const = 0; - - /**@return A reference to the DOM tree that represents the project file or 0 if no project is loaded.*/ - TQDomDocument *projectDom() const; - - /**Sets the Document Object Model for the current project. - @param dom The project DOM.*/ - void setProjectDom(TQDomDocument *dom); - - /**@return A reference to the current project component or 0 if no project is loaded.*/ - KDevProject *project() const; - - /**Sets the current project. - @param project The project plugin which becames the current project.*/ - void setProject(KDevProject *project); - - /**@return A reference to the language support component or 0 if no support available.*/ - KDevLanguageSupport *languageSupport() const; - - /**Sets the object charged of providing handling for the source files written in particular - language (languages support component). - @param languageSupport The language support plugin.*/ - void setLanguageSupport(KDevLanguageSupport *languageSupport); - - /**@return A reference to the code repository (accessor to persistent symbol stores).*/ - KDevCodeRepository *codeRepository() const; - -private: - class Private; - Private *d; -}; - -#endif diff --git a/lib/interfaces/kdevcoderepository.cpp b/lib/interfaces/kdevcoderepository.cpp deleted file mode 100644 index 26249544..00000000 --- a/lib/interfaces/kdevcoderepository.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2003 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevcoderepository.h" - -struct KDevCodeRepositoryData -{ - Catalog* mainCatalog; - TQValueList catalogs; - - KDevCodeRepositoryData(): mainCatalog( 0 ) {} -}; - -KDevCodeRepository::KDevCodeRepository( ) - : d( new KDevCodeRepositoryData ) -{ -} - -KDevCodeRepository::~KDevCodeRepository( ) -{ - delete( d ); -} - -Catalog* KDevCodeRepository::mainCatalog() -{ - return d->mainCatalog; -} - -void KDevCodeRepository::setMainCatalog( Catalog * mainCatalog ) -{ - d->mainCatalog = mainCatalog; -} - -void KDevCodeRepository::registerCatalog( Catalog * catalog ) -{ - d->catalogs.append( catalog ); - emit catalogRegistered( catalog ); -} - -void KDevCodeRepository::unregisterCatalog( Catalog * catalog ) -{ - d->catalogs.remove( catalog ); - emit catalogUnregistered( catalog ); -} - -void KDevCodeRepository::touchCatalog( Catalog * catalog ) -{ - emit catalogChanged( catalog ); -} - -TQValueList< Catalog * > KDevCodeRepository::registeredCatalogs( ) -{ - return d->catalogs; -} - -#include "kdevcoderepository.moc" diff --git a/lib/interfaces/kdevcoderepository.h b/lib/interfaces/kdevcoderepository.h deleted file mode 100644 index 4e1dd765..00000000 --- a/lib/interfaces/kdevcoderepository.h +++ /dev/null @@ -1,95 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2003 Roberto Raggi - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVCODEREPOSITORY_H -#define KDEVCODEREPOSITORY_H - -#include -#include - -/** -@file kdevcoderepository.h -Code repository - the persistent symbol store accessor. -*/ - -class KDevCodeRepositoryData; -class Catalog; - -/** -Code repository - the persistent symbol store accessor. -Symbols from parsed files can be saved to the persistent symbol store. -Persistence in this case means that symbol database is never loaded into memory -and works like a usual database which executes queries. - -Code repository consists from @ref Catalog objects that represent separate symbol -databases. Catalogs can be created/loaded/unloaded dynamically. -To find a symbol in the repository each catalog should be queried. - -Persistent symbol store is useful to keep information about code that -never or rarely changes. System libraries are perfect examples of such code. -Symbols from code contained in project files are better stored in memory -symbol store like @ref CodeModel. -*/ -class KDevCodeRepository : public TQObject -{ - Q_OBJECT - -public: - /**Constructor.*/ - KDevCodeRepository(); - /**Destructor.*/ - virtual ~KDevCodeRepository(); - - /**@return The main catalog. Each catalog can be marked is main - to provide easy access to it.*/ - Catalog* mainCatalog(); - /**Sets the main catalog. - @param mainCatalog The catalog to be marked as main.*/ - void setMainCatalog( Catalog* mainCatalog ); - - /**@return The list of registered catalogs.*/ - TQValueList registeredCatalogs(); - - /**Registers catalog in the repository. - @param catalog The catalog to register.*/ - void registerCatalog( Catalog* catalog ); - /**Unregisters catalog from the repository. - @param catalog The catalog to unregister.*/ - void unregisterCatalog( Catalog* catalog ); - /**Marks catalog as changed and emits @ref catalogChanged signal. - @param catalog The catalog to touch.*/ - void touchCatalog( Catalog* catalog ); - -signals: - /**Emitted when a new catalog is registered. - @param catalog The new catalog.*/ - void catalogRegistered( Catalog* catalog ); - - /**Emitted when a catalog in removed - @param catalog The catalog that was removed.*/ - void catalogUnregistered( Catalog* catalog ); - - /**Emitted when the contens of catalog is changed. - @param catalog Changed catalog.*/ - void catalogChanged( Catalog* catalog ); - -private: - KDevCodeRepositoryData* d; -}; - -#endif diff --git a/lib/interfaces/kdevcore.cpp b/lib/interfaces/kdevcore.cpp deleted file mode 100644 index dda66cbf..00000000 --- a/lib/interfaces/kdevcore.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2003 Mario Scalas - Copyright (C) 2003 Amilcar do Carmo Lucas - Copyright (C) 2003 Jens Dagerbo - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "KDevCoreIface.h" -#include "kdevcore.h" - -#include "urlutil.h" - -/////////////////////////////////////////////////////////////////////////////// -// class Context -/////////////////////////////////////////////////////////////////////////////// - -Context::Context() -{ -} - -Context::~Context() -{ -} - -bool Context::hasType( int aType ) const -{ - return aType == this->type(); -} - -/////////////////////////////////////////////////////////////////////////////// -// class EditorContext -/////////////////////////////////////////////////////////////////////////////// - -class EditorContext::Private -{ -public: - Private( const KURL &url, int line, int col, const TQString &linestr, - const TQString &wordstr ) - : m_url(url), m_line(line), m_col(col), - m_linestr(linestr), m_wordstr(wordstr) - { - } - - KURL m_url; - int m_line, m_col; - TQString m_linestr, m_wordstr; -}; - -EditorContext::EditorContext( const KURL &url, int line, int col, - const TQString &linestr, const TQString &wordstr ) - : Context(), d( new Private(url, line, col, linestr, wordstr) ) -{ -} - -EditorContext::~EditorContext() -{ - delete d; - d = 0; -} - -int EditorContext::type() const -{ - return Context::EditorContext; -} - -const KURL &EditorContext::url() const -{ - return d->m_url; -} - -int EditorContext::line() const -{ - return d->m_line; -} - -int EditorContext::col() const -{ - return d->m_col; -} - -TQString EditorContext::currentLine() const -{ - return d->m_linestr; -} - -TQString EditorContext::currentWord() const -{ - return d->m_wordstr; -} - -/////////////////////////////////////////////////////////////////////////////// -// class FileContext -/////////////////////////////////////////////////////////////////////////////// - -class FileContext::Private -{ -public: - Private( const KURL::List &someURLs ) : m_urls(someURLs) - { - if (m_urls.count() == 0) - { - m_fileName = "INVALID-FILENAME"; - m_isDirectory = false; // well, "true" should be ok too ... - } - else - { - m_fileName = m_urls[0].path(); - m_isDirectory = URLUtil::isDirectory( m_urls[0] ); - } - } - Private( const TQString &fileName, bool isDirectory ) - : m_fileName(fileName), m_isDirectory(isDirectory) - { - } - - KURL::List m_urls; - /// \FIXME the following data members should be removed, but first other - // parts should be modified to comply with this change. - TQString m_fileName; - bool m_isDirectory; -}; - -FileContext::FileContext( const KURL::List &someURLs ) - : Context(), d( new Private(someURLs) ) -{ -} - -FileContext::~FileContext() -{ - delete d; - d = 0; -} - -int FileContext::type() const -{ - return Context::FileContext; -} - -const KURL::List &FileContext::urls() const -{ - return d->m_urls; -} - -/////////////////////////////////////////////////////////////////////////////// -// class DocumentationContext -/////////////////////////////////////////////////////////////////////////////// - -class DocumentationContext::Private -{ -public: - Private( const TQString &url, const TQString &selection ) - : m_url(url), m_selection(selection) - { - } - - TQString m_url; - TQString m_selection; -}; - -DocumentationContext::DocumentationContext( const TQString &url, const TQString &selection ) - : Context(), d( new Private(url, selection) ) -{ -} - -DocumentationContext::DocumentationContext( const DocumentationContext &aContext ) - : Context(), d( 0 ) -{ - *this = aContext; -} - -DocumentationContext &DocumentationContext::operator=( const DocumentationContext &aContext) -{ - if (d) { - delete d; d = 0; - } - d = new Private( *aContext.d ); - return *this; -} - -DocumentationContext::~DocumentationContext() -{ - delete d; - d = 0; -} - -int DocumentationContext::type() const -{ - return Context::DocumentationContext; -} - -TQString DocumentationContext::url() const -{ - return d->m_url; -} - -TQString DocumentationContext::selection() const -{ - return d->m_selection; -} - -/////////////////////////////////////////////////////////////////////////////// -// class CodeModelItemContext -/////////////////////////////////////////////////////////////////////////////// - -class CodeModelItemContext::Private -{ -public: - Private( const CodeModelItem* item ) : m_item( item ) {} - - const CodeModelItem* m_item; -}; - -CodeModelItemContext::CodeModelItemContext( const CodeModelItem* item ) - : Context(), d( new Private(item) ) -{ -} - -CodeModelItemContext::~CodeModelItemContext() -{ - delete d; - d = 0; -} - -int CodeModelItemContext::type() const -{ - return Context::CodeModelItemContext; -} - -const CodeModelItem* CodeModelItemContext::item() const -{ - return d->m_item; -} - -/////////////////////////////////////////////////////////////////////////////// -// class ProjectModelItemContext -/////////////////////////////////////////////////////////////////////////////// - -class ProjectModelItemContext::Private -{ -public: - Private( const ProjectModelItem* item ) : m_item( item ) {} - - const ProjectModelItem* m_item; -}; - -ProjectModelItemContext::ProjectModelItemContext( const ProjectModelItem* item ) - : Context(), d( new Private(item) ) -{ -} - -ProjectModelItemContext::~ProjectModelItemContext() -{ - delete d; - d = 0; -} - -int ProjectModelItemContext::type() const -{ - return Context::ProjectModelItemContext; -} - -const ProjectModelItem* ProjectModelItemContext::item() const -{ - return d->m_item; -} - - -/////////////////////////////////////////////////////////////////////////////// -// class KDevCore -/////////////////////////////////////////////////////////////////////////////// - -KDevCore::KDevCore( TQObject *parent, const char *name ) - : TQObject( parent, name ) -{ - new KDevCoreIface(this); -} - -KDevCore::~KDevCore() -{ -} - -#include "kdevcore.moc" diff --git a/lib/interfaces/kdevcore.h b/lib/interfaces/kdevcore.h deleted file mode 100644 index fad2891a..00000000 --- a/lib/interfaces/kdevcore.h +++ /dev/null @@ -1,388 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel - Copyright (C) 2001-2002 Bernd Gehrmann - Copyright (C) 2001 Sandy Meier - Copyright (C) 2002 Daniel Engelschalt - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2003 Mario Scalas - Copyright (C) 2003 Harald Fernengel - Copyright (C) 2003 Hamish Rodda - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVCORE_H -#define KDEVCORE_H - -/** -@file kdevcore.h -The interface to the application core and context menu classes. -*/ - -#include -#include -#include - -#include - -class KDialogBase; -class KDevPlugin; -class CodeModelItem; -class ProjectModelItem; - -namespace KParts -{ - class Part; -} - -class TQStatusBar; -class TQPopupMenu; - -/** -Base class for every context. -Think of a Context-based class as "useful -info associated to a context menu". Several context menu can be defined, -each defining different information: because of these context menus being -used in many modules, they are defined here. - -When context menu with a certain "context" associated appears, KDevelop core -sends a notification signal and all plugins which receive this signal have -the ability to add own items into the menu. For example, VCS plugin could -add "commit" and "update" menu items to the context menu of a file. - -How to use context from a plugin: --# Create a popup menu in context menu event handler: @code TDEPopupMenu menu(this); @endcode --# Create a context: @code MyContext context(param). @endcode --# Fill a context menu: @code core()->fillContextMenu(&menu, &context); @endcode --# Show the popup menu: @code menu.exec(event->globalPos()); @endcode -. -In this example @em event is an object of TQContextMenuEvent class which you have access -to if you reimplement TQWidget::contextMenuEvent method. - -How to fill context menu from a plugin: --# Create a @code contextMenu(TQPopupMenu *, const Context *) @endcode slot in your plugin class. --# Connect KDevCore::contextMenu(TQPopupMenu *, const Context *) signal to that slot in -the constructor of your plugin:\n -@code -connect(core(), TQT_SIGNAL(contextMenu(TQPopupMenu *, const Context *)), - this, TQT_SLOT(contextMenu(TQPopupMenu *, const Context *))); -@endcode --# Fill the menu in the slot you created, for example:\n -@code -if (context->hasType(Context::EditorContext)) -{ - const EditorContext *econtext = static_cast(context); - int id = popup->insertItem(i18n("My Menu Item 1"), this, TQT_SLOT(myMenuAction1())); - popup->setWhatsThis(id, i18n("What's this for my menu item 1")); -} -else if context->hasType(MyContext)) -{ - int id = popup->insertItem(... - ... -} -... -@endcode -*/ -class Context -{ -public: - /**Pre-defined context types. More may be added so it is possible to add custom - contexts. We reserve enum values until 1000 (yeah, it is one thousand ) - for tdevelop official context types.*/ - enum Type - { - EditorContext, /** - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevdesignerintegration.h" -#include "kdevdesignerintegrationiface.h" - -class KDevDesignerIntegration::KDevDesignerIntegrationPrivate { -public: - KDevDesignerIntegrationIface *m_iface; -}; - -KDevDesignerIntegration::KDevDesignerIntegration(TQObject *parent, const char *name) - : TQObject(parent, name) -{ - dptr = new KDevDesignerIntegrationPrivate(); - - dptr->m_iface = new KDevDesignerIntegrationIface(this); -} - -KDevDesignerIntegration::~KDevDesignerIntegration() -{ - delete dptr; -} - -#include "kdevdesignerintegration.moc" diff --git a/lib/interfaces/kdevdesignerintegration.h b/lib/interfaces/kdevdesignerintegration.h deleted file mode 100644 index 528926cb..00000000 --- a/lib/interfaces/kdevdesignerintegration.h +++ /dev/null @@ -1,98 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVDESIGNERINTEGRATION_H -#define KDEVDESIGNERINTEGRATION_H - -#include -#include -#include - -/** -@file kdevdesignerintegration.h -TDevelop designer integration interface. -*/ - -/** -TDevelop designer integration interface. -Designer integration object provides functionality which is used by integrated -into KDevelop GUI designers: -- adding/removing/editing functions (class methods); -- opening form implementation files; -- saving and loading designer integration settings. -. - -Designer integration is a layer between visual form (GUI) designer of any type -and the current language support. Usually designers create some kind of forms -and allow developers to define actions which are executed upon some GUI events -(for example, TQt Designer allows to define slots connected to GUI signals). -The actual code with action implementations needs to be written by hand in source -files. Designer integration captures such implementation requests and opens -necessary files at desired line numbers and adds (edits, removes) code for implementations. - -For example, TQt Designer integration should be able to create an subclass for a form -and reimplement slots defined in the form. -*/ -class KDevDesignerIntegration : public TQObject -{ -Q_OBJECT - -public: - /**Constructor. - @param parent Parent object. - @param name Internal name.*/ - KDevDesignerIntegration(TQObject *parent = 0, const char *name = 0); - /**Destructor.*/ - ~KDevDesignerIntegration(); - - /**Saves designer integration settings.*/ - virtual void saveSettings(TQDomDocument dom, TQString path) = 0; - /**Loads designer integration settings.*/ - virtual void loadSettings(TQDomDocument dom, TQString path) = 0; - -public slots: - /**Adds the implementation for a function. - @param formName The name of a GUI form. - @param function The function which needs to be implemented in the source.*/ - virtual void addFunction(const TQString &formName, KInterfaceDesigner::Function function) = 0; - - /**Removes the implementation of a function. - @param formName The name of a GUI form. - @param function The function which needs to be removed from the source.*/ - virtual void removeFunction(const TQString &formName, KInterfaceDesigner::Function function) = 0; - - /**Edites the implementation of a function. - @param formName The name of a GUI form. - @param oldFunction The function which needs to be edited from the source. - @param function The new function declaration.*/ - virtual void editFunction(const TQString &formName, KInterfaceDesigner::Function oldFunction, KInterfaceDesigner::Function function) = 0; - - /**Opens the function and jumps to the line number of its definition (declaration). - @param formName The name of a GUI form. - @param functionName The name of a function to find in the source.*/ - virtual void openFunction(const TQString &formName, const TQString &functionName) = 0; - - /**Opens the form source. - @param formName The name of a GUI form.*/ - virtual void openSource(const TQString &formName) = 0; - private: - class KDevDesignerIntegrationPrivate; - KDevDesignerIntegrationPrivate *dptr; -}; - -#endif diff --git a/lib/interfaces/kdevdesignerintegrationiface.cpp b/lib/interfaces/kdevdesignerintegrationiface.cpp deleted file mode 100644 index 964ca340..00000000 --- a/lib/interfaces/kdevdesignerintegrationiface.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2005 Ian Reinhart Geiser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevdesignerintegrationiface.h" -#include -#include "kdevdesignerintegration.h" - -KDevDesignerIntegrationIface::KDevDesignerIntegrationIface(KDevDesignerIntegration *p) - : DCOPObject("GUIDesigner"), m_designer(p) -{ - //FIXME figure out what number our interface is... -} - - -KDevDesignerIntegrationIface::~KDevDesignerIntegrationIface() -{ -} - -void KDevDesignerIntegrationIface::addFunction( const TQString & formName, TQString returnType, TQString function, TQString specifier, TQString access, uint type ) -{ - KInterfaceDesigner::Function f = {returnType, function, specifier, access, (KInterfaceDesigner::FunctionType)type }; - m_designer->addFunction(formName, f); -} - -void KDevDesignerIntegrationIface::removeFunction( const TQString & formName, TQString returnType, TQString function, TQString specifier, TQString access, uint type ) -{ - KInterfaceDesigner::Function f = {returnType, function, specifier, access, (KInterfaceDesigner::FunctionType)type }; - m_designer->addFunction(formName, f); -} - -void KDevDesignerIntegrationIface::editFunction( const TQString & formName, TQString oldReturnType, TQString oldFunction, TQString oldSpecifier, TQString oldAccess, uint oldType, TQString returnType, TQString function, TQString specifier, TQString access, uint type ) -{ - KInterfaceDesigner::Function fold = {oldReturnType, oldFunction, oldSpecifier, oldAccess, (KInterfaceDesigner::FunctionType)oldType }; - KInterfaceDesigner::Function fnew = {returnType, function, specifier, access, (KInterfaceDesigner::FunctionType)type }; - m_designer->editFunction(formName,fold,fnew); -} - -void KDevDesignerIntegrationIface::openFunction( const TQString & formName, const TQString & functionName ) -{ - m_designer->openFunction(formName,functionName); -} - -void KDevDesignerIntegrationIface::openSource( const TQString & formName ) -{ - m_designer->openSource(formName); -} - - diff --git a/lib/interfaces/kdevdesignerintegrationiface.h b/lib/interfaces/kdevdesignerintegrationiface.h deleted file mode 100644 index c6c8988a..00000000 --- a/lib/interfaces/kdevdesignerintegrationiface.h +++ /dev/null @@ -1,49 +0,0 @@ -/* I am drunk. - Copyright (C) 2005 Ian Reinhart Geiser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVDESIGNERINTEGRATIONIFACE_H -#define KDEVDESIGNERINTEGRATIONIFACE_H - -#include -class KDevDesignerIntegration; -/** -The dcop interface for GUI designers in KDevelop. - -@author KDevelop Authors -*/ -class KDevDesignerIntegrationIface : public DCOPObject -{ - K_DCOP -public: - KDevDesignerIntegrationIface(KDevDesignerIntegration *p); - - ~KDevDesignerIntegrationIface(); -k_dcop: - void addFunction(const TQString &formName, TQString returnType, TQString function,TQString specifier,TQString access,uint type); - void removeFunction(const TQString &formName, TQString returnType, TQString function,TQString specifier,TQString access,uint type); - void editFunction(const TQString &formName, TQString oldReturnType, TQString oldFunction, - TQString oldSpecifier,TQString oldAccess,uint oldType, - TQString returnType, TQString function,TQString specifier,TQString access,uint type); - void openFunction(const TQString &formName, const TQString &functionName); - void openSource(const TQString &formName); - - private: - KDevDesignerIntegration *m_designer; -}; - -#endif diff --git a/lib/interfaces/kdevgenericfactory.h b/lib/interfaces/kdevgenericfactory.h deleted file mode 100644 index 6f8d3dc9..00000000 --- a/lib/interfaces/kdevgenericfactory.h +++ /dev/null @@ -1,91 +0,0 @@ -/* This file is part of the KDE project - * Copyright (C) 2003 Harald Fernengel - * Copyright (C) 2004 Alexander Dymo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ -#include -#include - -/** -@file kdevgenericfactory.h -KDevelop generic plugin factory. -*/ - -/** -This class provides a generic implementation of a KLibFactory for -use with TDevelop plugins. -Usually it is convenient to use K_EXPORT_COMPONENT_FACTORY macro -to create factories for TDevelop plugins. For example, for DummyPlugin -the factory can be created (in dummyplugin.cpp file) as: -@code -typedef KDevGenericFactory DummyPluginFactory; -K_EXPORT_COMPONENT_FACTORY(libkdevdummyplugin, DummyPluginFactory( data ) ) -@endcode -Data should be a const static object. This way it complies with the requirements -for data objecs of KDevGenericFactory constructor. - -Important:
-There is no need to create @ref TDEAboutData objects. It is more useful to create -a static const @ref KDevPluginInfo object which can be used also in the constructor -of a plugin. - -For example, dummyplugin.cpp file could contain: -@code -#include - -static const KDevPluginInfo data("KDevDummyPlugin"); -typedef KDevGenericFactory DummyPluginFactory; -K_EXPORT_COMPONENT_FACTORY(libkdevdummyplugin, DummyPluginFactory( data ) ) - -DummyPlugin::DummyPlugin(TQObject *parent, const char *name, const TQStringList & ) - :KDevPlugin(&data, parent, name) -{ -} -@endcode - -In the example above the duplication of information is avoided as same @ref KDevPluginInfo -objects are used for plugin and for plugin factory. This is possible because @ref KDevPluginInfo -class has an operator to cast @ref KDevPluginInfo to @ref TDEAboutData. -*/ -template -class KDevGenericFactory: public KGenericFactory -{ -public: - /**Constructor. - @param data A reference to TDEAboutData with an information about the plugin. - Data should have: - - plugin name as an application name; - - untranslated plugin generic name as a product name; - - license type number. - . - data object should live as long as factory lives.*/ - KDevGenericFactory(TDEAboutData *data) - :KGenericFactory(data->appName()), aboutData(data) - { - } - - /**Creates an instance.*/ - TDEInstance *createInstance() - { - return new TDEInstance(aboutData); - } - -private: - TDEAboutData *aboutData; - -}; - diff --git a/lib/interfaces/kdevlanguagesupport.cpp b/lib/interfaces/kdevlanguagesupport.cpp deleted file mode 100644 index aa5b560c..00000000 --- a/lib/interfaces/kdevlanguagesupport.cpp +++ /dev/null @@ -1,166 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001-2002 Bernd Gehrmann - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 Alexander Dymo - Copyright (C) 2003 Amilcar do Carmo Lucas - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "codemodel.h" - -#include - -#include "kdevdesignerintegration.h" -#include "kdevlanguagesupport.h" - -KDevLanguageSupport::KDevLanguageSupport(const KDevPluginInfo *info, TQObject *parent, const char *name) - : KDevPlugin(info, parent, name ? name : "KDevLanguageSupport" ) -{ -} - -KDevLanguageSupport::~KDevLanguageSupport() -{ -} - -KDevLanguageSupport::Features KDevLanguageSupport::features() -{ - return Features(0); -} - -KMimeType::List KDevLanguageSupport::mimeTypes() -{ - return KMimeType::List(); -} - -TQString KDevLanguageSupport::formatTag( const Tag& /*tag*/ ) -{ - return TQString(); -} - -TQString KDevLanguageSupport::formatClassName(const TQString &name) -{ - return name; -} - -TQString KDevLanguageSupport::unformatClassName(const TQString &name) -{ - return name; -} - -bool KDevLanguageSupport::shouldSplitDocument(const KURL &url) -{ - return false; -} - -Qt::Orientation KDevLanguageSupport::splitOrientation() const -{ - return Qt::Vertical; -} - -void KDevLanguageSupport::addClass() -{ -} - -void KDevLanguageSupport::addMethod( ClassDom /*klass*/ ) -{ -} - -void KDevLanguageSupport::implementVirtualMethods( ClassDom /*klass*/ ) -{ -} - -void KDevLanguageSupport::addAttribute( ClassDom /*klass*/ ) -{ -} - -TQStringList KDevLanguageSupport::subclassWidget(const TQString& /*formName*/) -{ - return TQStringList(); -} - -TQStringList KDevLanguageSupport::updateWidget(const TQString& /*formName*/, const TQString& /*fileName*/) -{ - return TQStringList(); -} - -TQString KDevLanguageSupport::formatModelItem( const CodeModelItem *item, bool /*shortDescription*/ ) -{ - return item->name(); -} - -void KDevLanguageSupport::addFunction( DesignerType type, const TQString & formName, Function function ) -{ -// kdDebug() << "KDevLanguageSupport::addFunction: 1" << endl; - KDevDesignerIntegration *designerIntegration = designer(type); -// kdDebug() << "KDevLanguageSupport::addFunction: 2" << endl; - if (!designerIntegration) - { -// kdDebug() << "KDevLanguageSupport::addFunction: x" << endl; - return; - } -// kdDebug() << "KDevLanguageSupport::addFunction: 3" << endl; - designerIntegration->addFunction(formName, function); -// kdDebug() << "KDevLanguageSupport::addFunction: 4" << endl; -} - -void KDevLanguageSupport::editFunction( DesignerType type, const TQString & formName, Function oldFunction, Function function ) -{ - KDevDesignerIntegration *designerIntegration = designer(type); - if (!designerIntegration) - return; - designerIntegration->editFunction(formName, oldFunction, function); -} - -void KDevLanguageSupport::removeFunction( DesignerType type, const TQString & formName, Function function ) -{ - KDevDesignerIntegration *designerIntegration = designer(type); - if (!designerIntegration) - return; - designerIntegration->removeFunction(formName, function); -} - -KDevDesignerIntegration * KDevLanguageSupport::designer( DesignerType // type - ) -{ - return 0; -} - -void KDevLanguageSupport::openFunction( DesignerType type, const TQString & formName, const TQString & functionName ) -{ - KDevDesignerIntegration *designerIntegration = designer(type); - if (!designerIntegration) - return; - designerIntegration->openFunction(formName, functionName); -} - -void KDevLanguageSupport::createAccessMethods( ClassDom // theClass - , VariableDom // theVariable - ) -{ -} - -void KDevLanguageSupport::openSource( DesignerType type, const TQString & formName) -{ - KDevDesignerIntegration *designerIntegration = designer(type); - if (!designerIntegration) - return; - designerIntegration->openSource(formName); -} - -#include "kdevlanguagesupport.moc" diff --git a/lib/interfaces/kdevlanguagesupport.h b/lib/interfaces/kdevlanguagesupport.h deleted file mode 100644 index 42221868..00000000 --- a/lib/interfaces/kdevlanguagesupport.h +++ /dev/null @@ -1,261 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001-2002 Bernd Gehrmann - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 Amilcar do Carmo Lucas - Copyright (C) 2003-2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVLANGUAGESUPPORT_H -#define KDEVLANGUAGESUPPORT_H - -#include -#include -#include -#include "kdevplugin.h" -#include "codemodel.h" -#include - -/** -@file kdevlanguagesupport.h -Interface to programming language specific features. -*/ - -class Tag; -class KDevDesignerIntegration; - -using namespace KInterfaceDesigner; - -/** -KDevelop language support interface - the base class for all programming language support plugins. -Language support is used to load facilities specific to certain programming language. -Language supports are usually loaded among with a project. In this case project file defines -which language support to load. - -Language support plugin is a good place for: -- a language parser which fills memory and persistent symbol store -(see @ref CodeModel and @ref KDevCodeRepository); -- code wizards specific to a programming language (like new class wizard); -- GUI designer integration (see @ref KDevLanguageSupport::designer method -documentation and @ref KDevDesignerIntegration class documentation; -- symbol (class, function, etc.) name formatting to a human-readable convention (pretty -formatted name). -. -*/ -class KDevLanguageSupport: public KDevPlugin -{ - Q_OBJECT - - -public: - - /**Features supported by this language support.*/ - enum Features { - /*features of the language itself*/ - Classes=1 /**loadSettings(*project()->projectDom(), "kdevmylangsupport/designerintegration"); - saveDesignerToCache(type, des); - } - break; - } - return des; - @endcode - @ref ImplementationWidget and @ref TQtDesignerIntegration classes are available - from designerintegration support library. - @param type The type of the designer to integrate. - @return The pointer to designer integration of given type or 0.*/ - virtual KDevDesignerIntegration *designer(KInterfaceDesigner::DesignerType type); - -public slots: - /**Adds a function requested by a GUI designer. No need to reimplement this slot - unless you want to use specific implementation of KDevDesignerIntegration interface. - @param type The type of integrated designer. - @param formName The name of a GUI form. - @param function The function to implement (add).*/ - void addFunction(DesignerType type, const TQString &formName, Function function); - - /**Removes a function requested by a GUI designer. No need to reimplement this slot - unless you want to use specific implementation of KDevDesignerIntegration interface. - @param type The type of integrated designer. - @param formName The name of a GUI form. - @param function The function to remove.*/ - void removeFunction(DesignerType type, const TQString &formName, Function function); - - /**Edits a function requested by a GUI designer. No need to reimplement this slot - unless you want to use specific implementation of KDevDesignerIntegration interface. - @param type The type of integrated designer. - @param formName The name of a GUI form. - @param oldFunction The old function signature before editing. - @param function The new function signature after editing.*/ - void editFunction(DesignerType type, const TQString &formName, Function oldFunction, Function function); - - /**Opens a function requested by a GUI designer. No need to reimplement this slot - unless you want to use specific implementation of KDevDesignerIntegration interface. - @param type The type of integrated designer. - @param formName The name of a GUI form. - @param functionName The name of a function to seek in the code for.*/ - void openFunction(DesignerType type, const TQString &formName, const TQString &functionName); - - /**Opens a form source requested by a GUI designer. No need to reimplement this slot - unless you want to use specific implementation of KDevDesignerIntegration interface. - @param type The type of integrated designer. - @param formName The name of a GUI form.*/ - void openSource(DesignerType type, const TQString &formName); - -signals: - /**Emitted when the content of the memory symbol store has been modified.*/ - void updatedSourceInfo(); - - /**Emitted before removing the file from the memory symbol store.*/ - void aboutToRemoveSourceInfo(const TQString& fileName); - - /**Emitted when a file has been removed from the memory symbol store.*/ - void removedSourceInfo(const TQString& fileName); - - /**Emitted when a file has been added to the memory symbol store.*/ - void addedSourceInfo( const TQString& fileName ); - - /**Emitted when the language part changes the Split View orientation.*/ - void splitOrientationChanged( Qt::Orientation orientation ); -}; - -#endif diff --git a/lib/interfaces/kdevmainwindow.cpp b/lib/interfaces/kdevmainwindow.cpp deleted file mode 100644 index 4b95f669..00000000 --- a/lib/interfaces/kdevmainwindow.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 John Firebaugh - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevmainwindow.h" - -#include -#include - -KStatusBar *KDevMainWindow::statusBar() -{ - return main()->statusBar(); -} diff --git a/lib/interfaces/kdevmainwindow.h b/lib/interfaces/kdevmainwindow.h deleted file mode 100644 index 8138ab78..00000000 --- a/lib/interfaces/kdevmainwindow.h +++ /dev/null @@ -1,101 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2003 F@lk Brettschneider - Copyright (C) 2003 John Firebaugh - Copyright (C) 2003 Amilcar do Carmo Lucas - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEV_MAINWINDOW_H -#define KDEV_MAINWINDOW_H - -#include - -class TQWidget; -class KStatusBar; -class TDEMainWindow; - -/** -@file kdevmainwindow.h -KDevelop main window interface. -*/ - -/** -KDevelop main window interface. -Provides methods to control the main window of an application. -*/ -class KDevMainWindow -{ -public: - /**Destroys the main window*/ - virtual ~KDevMainWindow() {} // must be virtual! - - /**Embeds a view of a part into the main window. - @param view The view to embed. Must be a KPart. - @param title The title of a view. - @param toolTip The tooltip of a view.*/ - virtual void embedPartView(TQWidget *view, const TQString &title, const TQString& toolTip = TQString()) = 0; - - /**Embeds a toolview at the left of the main window. - @param view The view to embed. Must be a KPart. - @param title The title of a view. - @param toolTip The tooltip of a view.*/ - virtual void embedSelectView(TQWidget *view, const TQString &title, const TQString &toolTip) = 0; - - /**Embeds a toolview at the bottom of the main window. - @param view The view to embed. Must be a KPart. - @param title The title of a view. - @param toolTip The tooltip of a view.*/ - virtual void embedOutputView(TQWidget *view, const TQString &title, const TQString &toolTip) = 0; - - /**Embeds a toolview at the right of the main window. - @param view The view to embed. Must be a KPart. - @param title The title of a view. - @param toolTip The tooltip of a view.*/ - virtual void embedSelectViewRight(TQWidget* view, const TQString& title, const TQString &toolTip) = 0; - - /**Removes a view from the main window. - @param view The view to remove.*/ - virtual void removeView(TQWidget *view) = 0; - - /**Shows or hides a view. - @param pView The view to show or hide. - @param bEnabled true if view should be shown, false it it is not.*/ - virtual void setViewAvailable(TQWidget *pView, bool bEnabled) = 0; - - /**Raises a view (shows it if it was minimized). - @param view The view to be raised.*/ - virtual void raiseView(TQWidget *view) = 0; - - /**Minimize a view. - @param view The view to be lowered.*/ - virtual void lowerView(TQWidget *view) = 0; - - /**Loads main window settings.*/ - virtual void loadSettings() = 0; - - /**Sets the current document's caption, if applicable. - @param caption the caption to set.*/ - virtual void setCurrentDocumentCaption( const TQString &caption ) = 0; - - /**@return TDEMainWindow object which actually represents the main window.*/ - virtual TDEMainWindow *main() = 0; - - /**@return KStatusBar object which actually represents the status bar in the main window.*/ - KStatusBar *statusBar(); -}; - -#endif diff --git a/lib/interfaces/kdevpartcontroller.cpp b/lib/interfaces/kdevpartcontroller.cpp deleted file mode 100644 index 58f1dc2a..00000000 --- a/lib/interfaces/kdevpartcontroller.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Matthias Hoelzer-Kluepfel - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "KDevPartControllerIface.h" -#include "kdevpartcontroller.h" -#include "katedocumentmanagerinterface.h" - -KDevPartController::KDevPartController(TQWidget *parent) - : KParts::PartManager(parent) -{ - new KDevPartControllerIface(this); - new KateDocumentManagerInterface(this); -} - -#include "kdevpartcontroller.moc" diff --git a/lib/interfaces/kdevpartcontroller.h b/lib/interfaces/kdevpartcontroller.h deleted file mode 100644 index fd8e6830..00000000 --- a/lib/interfaces/kdevpartcontroller.h +++ /dev/null @@ -1,176 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Bernd Gehrmann - Copyright (C) 2003 Roberto Raggi - Copyright (C) 2003 Hamish Rodda - Copyright (C) 2003 Harald Fernengel - Copyright (C) 2003 Jens Dagerbo - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEV_PARTCONTROLLER_H -#define KDEV_PARTCONTROLLER_H - -#include -#include -#include - -/** -@file kdevpartcontroller.h -KDevelop part controller interface. -*/ - -namespace KParts -{ - class ReadOnlyPart; -} - -/**Document state enum.*/ -enum DocumentState -{ - Clean, /** - Copyright (C) 2002 Matthias Hoelzer-Kluepfel - Copyright (C) 2002 Harald Fernengel - Copyright (C) 2002 F@lk Brettschneider - Copyright (C) 2003 Julian Rockey - Copyright (C) 2003 Roberto Raggi - Copyright (C) 2003 Jens Dagerbo - Copyright (C) 2003 Mario Scalas - Copyright (C) 2003-2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevplugin.h" - -#include "kdevapi.h" -#include "kdevcore.h" -#include "kdevplugininfo.h" -#include "kdevpartcontroller.h" -#include "kdevplugincontroller.h" - -#include -#include -#include - -#include -#include - -#include - -/////////////////////////////////////////////////////////////////////////////// -// struct KDevPlugin::Private -/////////////////////////////////////////////////////////////////////////////// - -struct KDevPlugin::Private -{ - const KDevPluginInfo *info; -}; - -/////////////////////////////////////////////////////////////////////////////// -// class KDevPlugin -/////////////////////////////////////////////////////////////////////////////// - -KDevPlugin::KDevPlugin(const KDevPluginInfo *info, TQObject *parent, const char *name) - :TQObject(parent, name), d(new Private) -{ - assert(parent->inherits( "KDevApi" )); - m_api = static_cast( parent ); - - actionCollection()->setHighlightingEnabled( true ); - - d->info = info; - TDEGlobal::iconLoader()->addAppDir("tdevelop"); -} - -KDevPlugin::~KDevPlugin() -{ - delete( d ); -} - -KDevMainWindow *KDevPlugin::mainWindow() -{ - return m_api->mainWindow(); -} - -KDevCore *KDevPlugin::core() const -{ - return m_api->core(); -} - -KDevProject *KDevPlugin::project() const -{ - return m_api->project(); -} - -CodeModel *KDevPlugin::codeModel() const -{ - return m_api->codeModel(); -} - -TQDomDocument *KDevPlugin::projectDom() const -{ - return m_api->projectDom(); -} - -KDevLanguageSupport *KDevPlugin::languageSupport() const -{ - return m_api->languageSupport(); -} - -KDevPartController *KDevPlugin::partController() const -{ - return m_api->partController(); -} - -KDevPluginController *KDevPlugin::pluginController() const -{ - return m_api->pluginController(); -} - -void KDevPlugin::restorePartialProjectSession(const TQDomElement* /*el*/) -{ - // there's still nothing to do in the base class -} - -void KDevPlugin::savePartialProjectSession(TQDomElement* /*el*/) -{ - // there's still nothing to do in the base class -} - -KDevCodeRepository * KDevPlugin::codeRepository() const -{ - return m_api->codeRepository(); -} - -KDevPlugin * KDevPlugin::extension_internal(const TQString &serviceType, const TQString &constraint) -{ - return m_api->pluginController()->extension(serviceType, constraint); -} - -const KDevPluginInfo *KDevPlugin::info() -{ - return d->info; -} - -#include "kdevplugin.moc" diff --git a/lib/interfaces/kdevplugin.h b/lib/interfaces/kdevplugin.h deleted file mode 100644 index 31cc5550..00000000 --- a/lib/interfaces/kdevplugin.h +++ /dev/null @@ -1,201 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 1999-2001 Bernd Gehrmann - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVPLUGIN_H -#define KDEVPLUGIN_H - -#include -#include -#include "kdevapi.h" - -class KDevCore; -class KDevProject; -class KDevVersionControl; -class KDevLanguageSupport; -class KDevPartController; -class KDevMainWindow; -class KDevCodeRepository; -class CodeModel; -class KDevPluginInfo; -class TQDomElement; - -/** -@file kdevplugin.h -TDevelop plugin interface. -*/ - -/**Current TDevelop plugin interface version. Interfaces declare plugin version to make sure -old source (or binary) incompatible plugins are not loaded. Increase this if -it is necessary that old plugins stop working.*/ -#define TDEVELOP_PLUGIN_VERSION 5 - -/** -The base class for all TDevelop plugins. -Plugin is a component which is loaded into TDevelop shell at startup or by request. -Each plugin should have corresponding .desktop file with a description. -.desktop file template looks like: -@code -[Desktop Entry] -Encoding=UTF-8 -Type=Service -Name= -GenericName= -Comment= -Icon= -X-TDevelop-Plugin-Version= -X-TDevelop-Plugin-Homepage= -X-TDevelop-Plugin-BugsEmailAddress= -X-TDevelop-Plugin-Copyright= -X-TDE-Library= -X-TDevelop-Version= -X-TDevelop-Scope= -X-TDevelop-Properties= -X-TDevelop-Args= -@endcode -Description of parameters in .desktop file: -- Name is a non-translatable name of a plugin, it is used in TDETrader queries -to search for a plugin (required); -- GenericName is a translatable name of a plugin, it is used to show -plugin names in GUI (required); -- Comment is a short description about the plugin (optional); -- Icon is a plugin icon (preferred); -- X-TDevelop-Plugin-Version is a version of a plugin (optional); -- X-TDevelop-Plugin-Homepage is a home page of a plugin (optional); -- X-TDevelop-Plugin-License is a license (optional). can be: GPL, LGPL, BSD, Artistic, -TQPL or Custom. If this property is not set, license is considered as unknown; -- X-TDevelop-Plugin-BugsEmailAddress is an email address for bug reports (optional); -- X-TDevelop-Plugin-Copyright is a copyright statement (optional); -- X-TDE-Library is a name of library which contains the plugin (required); -- X-TDevelop-Version is a version of TDevelop interfaces which is supported by the plugin (required); -- X-TDevelop-Scope is a scope of a plugin (see below for explanation) (required); -- X-TDevelop-Args is a list of additional arguments passed to plugins constructor (optional); -- X-TDevelop-Properties is a list of properties which this plugin supports, see @ref Profile class documentation for explanation (required to work with shells that support profiles). -. -Plugin scope can be either: -- Core -- Global -- Project -. -Global plugins are plugins which require only shell to be loaded and do not operate on @ref KDevProject interface and/or do not use project wide information.\n -Core plugins are global plugins which offer some important "core" functionality and thus -are not selectable by user in plugin configuration pages.\n -Project plugins require a project to be loaded and are usually loaded/unloaded among with the project. -If your plugin use @ref KDevProject interface and/or operate on project-related information then this is the project plugin. - -@sa KDevGenericFactory class documentation for an information about plugin instantiation -and writing factories for plugins. - -@sa KDevCore class documentation for an information about features which are available to plugins -from shell applications. -*/ -class KDevPlugin: public TQObject, public KXMLGUIClient -{ - Q_OBJECT - - -public: - /**Constructs a plugin. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevPlugin(const KDevPluginInfo *info, TQObject *parent, const char *name = 0); - - /**Destructs a plugin.*/ - virtual ~KDevPlugin(); - - /**Provides an information about the plugin. - @return TDEAboutData object which was initialized in the constructor.*/ - const KDevPluginInfo* info(); - - /**@return A reference to the toplevel widget.*/ - KDevMainWindow *mainWindow(); - - /**@return A reference to the application core - an object which provides - basic functionalities for inter-parts communications / cooperation.*/ - KDevCore *core() const; - - /**@return A reference to the current project component or 0 if no project is loaded.*/ - KDevProject *project() const; - - /**@return A reference to the language support component or 0 if no support available.*/ - KDevLanguageSupport *languageSupport() const; - - /**@return A reference to the memory symbol store.*/ - CodeModel *codeModel() const; - - /**@return A reference to the DOM tree that represents the project file or 0 if no project is loaded.*/ - TQDomDocument *projectDom() const; - - /**@return A reference to the part controller which is used to manipulate loaded KParts.*/ - KDevPartController *partController() const; - - /**@return A reference to the plugin controller which is used to manipulate loaded plugin.*/ - virtual KDevPluginController *pluginController() const; - - /**@return A reference to the code repository (accessor to persistent symbol stores).*/ - KDevCodeRepository* codeRepository() const; - - /**Queries for the plugin which supports given service type (such plugins are called extensions in KDevelop). - All already loaded plugins will be queried and the first loaded one to support - the service type will be returned. Any plugin can be an extension, only "ServiceTypes=..." - entry is required in .desktop file for that plugin. - - Template argument is used as a type to cast the result to. This is done because extension - is usually derived from a certain base class and not directly from KDevPlugin. - @param serviceType The service type of an extension (like "TDevelop/SourceFormatter"). - @param constraint The constraint which is applied when quering for the service. This - constraint is a usual TDETrader constraint statement (like "[X-TDevelop-Foo]=='MyFoo'"). - @return A KDevelop extension plugin for given service type or 0 if no plugin supports it*/ - template - Extension *extension(const TQString &serviceType, const TQString &constraint = "") - { - return static_cast(extension_internal(serviceType, constraint)); - } - - /**Override this base class method to restore any settings which differs from project to project. - Data can be read from a certain subtree of the project session file. - During project loading, respectively project session (.kdevses) loading, - this method will be called to give a chance to adapt the plugin to - the newly loaded project. For instance, the debugger plugin might restore the - list of breakpoints from the previous debug session for the certain project. - @note Take attention to the difference to common not-project-related session stuff. - They belong to the application rc file (tdeveloprc) - @note Project session file is useful for settings which cannot be shared between - developers. If a setting should be shared, modify projectDom instead. - @param el The parent DOM element for plugins session settings.*/ - virtual void restorePartialProjectSession(const TQDomElement* el); - - /**Saves session settings. - @sa restorePartialProjectSession - this is the other way round, the same just for saving.*/ - virtual void savePartialProjectSession(TQDomElement* el); - -private: - KDevPlugin *extension_internal(const TQString &serviceType, const TQString &constraint = ""); - - KDevApi *m_api; - class Private; - Private *d; -}; - -#endif diff --git a/lib/interfaces/kdevplugincontroller.cpp b/lib/interfaces/kdevplugincontroller.cpp deleted file mode 100644 index 1cc6caa3..00000000 --- a/lib/interfaces/kdevplugincontroller.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevplugincontroller.h" - -#include "kdevplugin.h" - -KDevPluginController::KDevPluginController() -{ -} - -TDETrader::OfferList KDevPluginController::query(const TQString &serviceType, - const TQString &constraint) -{ - return TDETrader::self()->query(serviceType, - TQString("%1 and [X-TDevelop-Version] == %2").arg(constraint).arg(TDEVELOP_PLUGIN_VERSION)); -} - -TDETrader::OfferList KDevPluginController::queryPlugins(const TQString &constraint) -{ - return query("TDevelop/Plugin", constraint); -} - -KURL::List KDevPluginController::profileResources(const TQString &/*nameFilter*/) -{ - return KURL::List(); -} - -KURL::List KDevPluginController::profileResourcesRecursive(const TQString &/*nameFilter*/) -{ - return KURL::List(); -} - -#include "kdevplugincontroller.moc" diff --git a/lib/interfaces/kdevplugincontroller.h b/lib/interfaces/kdevplugincontroller.h deleted file mode 100644 index 05ee050b..00000000 --- a/lib/interfaces/kdevplugincontroller.h +++ /dev/null @@ -1,119 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVPLUGINCONTROLLER_H -#define KDEVPLUGINCONTROLLER_H - -#include - -#include -#include - -/** -@file kdevplugincontroller.h -TDevelop plugin controller interface. -*/ - -class KDevPlugin; -class ProfileEngine; - -/** -The base class for TDevelop plugin controller. -Plugin controller is responsible for quering, loading and unloading available plugins. -*/ -class KDevPluginController: public TQObject -{ - Q_OBJECT - -public: - - /** - * Returns a uniquely specified plugin. If it isn't already loaded, it will be. - * Use with caution! See extension for parameter details. - */ - virtual KDevPlugin * loadPlugin( const TQString & serviceType, const TQString & constraint ) = 0; - - /** - * Unloads the plugin specified by @p plugin - * @param plugin The plugin desktopEntryName of the plugin to unload - */ - virtual void unloadPlugin( const TQString & plugin ) = 0; - - /**Unloads plugins specified by @p list. - @param list The list of plugin names to unload. plugin name corresponds - to the "Name" property in plugin .desktop file.*/ - virtual void unloadPlugins(TQStringList const &list) = 0; - - /**@return The list of currently loaded plugins.*/ - virtual const TQValueList loadedPlugins() = 0; - - /**Queries for the plugin which supports given service type. - All already loaded plugins will be queried and the first one to support the service type - will be returned. Any plugin can be an extension, only "ServiceTypes=..." entry is - required in .desktop file for that plugin. - @param serviceType The service type of an extension (like "TDevelop/SourceFormatter") - @param constraint The constraint which is applied when quering for the service. This - constraint is a usual TDETrader constraint statement (like "[X-TDevelop-Foo]=='MyFoo'"). - @return A KDevelop extension plugin for given service type or 0 if no plugin supports it*/ - virtual KDevPlugin *extension(const TQString &serviceType, const TQString &constraint = "") = 0; - - /**Queries KDevelop services. Version is checked automatically - by adding proper X-TDevelop-Version=N statement into the query. - @param serviceType The service type to query, for example "TDevelop/Plugin" or - "TDevelop/SourceFormatter." - @param constraint A constraint for the service. Do not include plugin version number - it - is done automatically. - @return The list of plugin offers.*/ - static TDETrader::OfferList query(const TQString &serviceType, const TQString &constraint); - - /**Queries TDevelop plugins. Works like - KDevPluginController::query with serviceType set to "TDevelop/Plugin". - @param constraint A constraint for the service. Do not include plugin version number - it - is done automatically. - @return The list of plugin offers.*/ - static TDETrader::OfferList queryPlugins(const TQString &constraint); - - /**Reimplement this function only if your shell supports plugin profiles. - @return The list of URLs to the profile resources (files) with given @p extension. - @param nameFilter Name filter for files. @see TQDir::setNameFilter documentation - for name filters syntax.*/ - virtual KURL::List profileResources(const TQString &nameFilter); - - /**Reimplement this function only if your shell supports plugin profiles. - @return The list of URLs to the resources (files) with given @p extension. - This list is obtained by a recursive search that process given profile - and all it's subprofiles. - @param nameFilter Name filter for files. @see TQDir::setNameFilter documentation - for name filters syntax.*/ - virtual KURL::List profileResourcesRecursive(const TQString &nameFilter); - - /** @return The current Profile Engine */ - virtual ProfileEngine &engine() = 0; - -signals: - /**Emitted when a plugin profile was changed (reloaded, other profile opened, etc.). - Should work only on shells with plugin profiles support.*/ - void profileChanged(); - -protected: - /**Constructor.*/ - KDevPluginController(); - -}; - -#endif diff --git a/lib/interfaces/kdevplugininfo.cpp b/lib/interfaces/kdevplugininfo.cpp deleted file mode 100644 index e80385cb..00000000 --- a/lib/interfaces/kdevplugininfo.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#include "kdevplugininfo.h" - -#include - -#include -#include - -#include "kdevplugincontroller.h" - -struct KDevPluginInfo::Private { - TQString m_pluginName; - TQString m_rawGenericName; - - TQString m_genericName; - TQString m_description; - TQString m_icon; - - TQString m_version; - int m_licenseType; - TQString m_copyrightStatement; - TQString m_homePageAddress; - TQString m_bugsEmailAddress; - - TQValueList m_authors; - TQValueList m_credits; - - TDEAboutData *m_data; -}; - - -KDevPluginInfo::KDevPluginInfo(const TQString &pluginName) - :d(new Private()) -{ - d->m_pluginName = pluginName; - - KService::Ptr offer = KService::serviceByDesktopName(pluginName); - if (offer != 0) - { - d->m_genericName = offer->genericName(); - d->m_icon = offer->icon(); - d->m_description = offer->comment(); - - d->m_rawGenericName = offer->untranslatedGenericName(); - - d->m_version = offer->property("X-TDevelop-Plugin-Version").toString(); - d->m_homePageAddress = offer->property("X-TDevelop-Plugin-Homepage").toString(); - d->m_bugsEmailAddress = offer->property("X-TDevelop-Plugin-BugsEmailAddress").toString(); - d->m_copyrightStatement = offer->property("X-TDevelop-Plugin-Copyright").toString(); - - TQString lic = offer->property("X-TDevelop-Plugin-License").toString(); - if (lic == "GPL") - d->m_licenseType = TDEAboutData::License_GPL; - else if (lic == "LGPL") - d->m_licenseType = TDEAboutData::License_LGPL; - else if (lic == "BSD") - d->m_licenseType = TDEAboutData::License_BSD; - else if (lic == "QPL") - d->m_licenseType = TDEAboutData::License_QPL; - else if (lic == "Artistic") - d->m_licenseType = TDEAboutData::License_Artistic; - else if (lic == "Custom") - d->m_licenseType = TDEAboutData::License_Custom; - else - d->m_licenseType = TDEAboutData::License_Unknown; - - d->m_data = new TDEAboutData(d->m_pluginName.ascii(), d->m_rawGenericName.ascii(), "1", 0, d->m_licenseType); - } - else - kdDebug() << "Unable to load information for plugin: " << pluginName - << ". Check if " << pluginName << ".desktop exists." << endl; -} - - -KDevPluginInfo::operator TDEAboutData *() const -{ - return d->m_data; -} - -TQString KDevPluginInfo::pluginName() const -{ - return d->m_pluginName; -} - -TQString KDevPluginInfo::genericName() const -{ - return d->m_genericName; -} - -TQString KDevPluginInfo::icon() const -{ - return d->m_icon; -} - -TQString KDevPluginInfo::description() const -{ - return d->m_description; -} - -TQString KDevPluginInfo::version() const -{ - return d->m_version; -} - -int KDevPluginInfo::licenseType() const -{ - return d->m_licenseType; -} - -TQString KDevPluginInfo::license() const -{ - KDevPluginInfo &info = *const_cast(this); -// return TDEAboutData(info).license(); - TDEAboutData *data = info; - return data->license(); -} - -TQString KDevPluginInfo::copyrightStatement() const -{ - return d->m_copyrightStatement; -} - -TQString KDevPluginInfo::homePageAddress() const -{ - return d->m_homePageAddress; -} - -TQString KDevPluginInfo::bugsEmailAddress() const -{ - return d->m_bugsEmailAddress; -} - -TQVariant KDevPluginInfo::property(const TQString &name) const -{ - TDETrader::OfferList offers = KDevPluginController::queryPlugins(TQString("Name='%1'").arg(d->m_pluginName)); - if (offers.count() == 1) - return offers.first()->property(name); - return TQVariant(); -} - -TQVariant KDevPluginInfo::operator [](const TQString &name) const -{ - return property(name); -} - -TQStringList KDevPluginInfo::propertyNames( ) const -{ - TDETrader::OfferList offers = KDevPluginController::queryPlugins(TQString("Name='%1'").arg(d->m_pluginName)); - if (offers.count() == 1) - return offers.first()->propertyNames(); - return TQStringList(); -} - -void KDevPluginInfo::addAuthor(const char *name, const char *task, - const char *emailAddress, const char *webAddress) -{ - d->m_authors.append(TDEAboutPerson(name, task, emailAddress, webAddress)); -} - -void KDevPluginInfo::addCredit(const char *name, const char *task, - const char *emailAddress, const char *webAddress) -{ - d->m_credits.append(TDEAboutPerson(name, task, emailAddress, webAddress)); -} diff --git a/lib/interfaces/kdevplugininfo.h b/lib/interfaces/kdevplugininfo.h deleted file mode 100644 index ffd1c46e..00000000 --- a/lib/interfaces/kdevplugininfo.h +++ /dev/null @@ -1,111 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVPLUGININFO_H -#define KDEVPLUGININFO_H - -#include - -#include - -/** -@file kdevplugininfo.h -TDevelop plugin information container class. -*/ - -/** -Information about TDevelop plugin. -It uses plugin name to query plugin .desktop files and -retrieve most information. Names of authors and credits to other people -must be added manually using KDevPluginInfo::addAuthor and KDevPluginInfo::addCredit -methods. -@sa KDevPlugin class documentation for more information about .desktop files. -*/ -class KDevPluginInfo -{ -public: - /**Constructor. - @param pluginName A name of a plugin. Must be the same as the name of a .desktop file - and the same as the location of plugin resource files.*/ - KDevPluginInfo(const TQString &pluginName); - - /**Casts KDevPluginInfo to TDEAboutData. Uses KDevPluginInfo::pluginName as TDEAboutData::appName, - KDevPluginInfo::rawGenericName as TDEAboutData::programName KDevPluginInfo::licenseType as TDEAboutData::licenseType. Other parameters are ignored.*/ - operator TDEAboutData*() const; - - /**@return A name of a plugin (always untranslated).*/ - TQString pluginName() const; - /**@return A generic name of a plugin (translated). Use this in GUI. Information is taken from .desktop file.*/ - TQString genericName() const; - /**@return An icon name of a plugin. Information is taken from .desktop file.*/ - TQString icon() const; - /**@return A description of a plugin. Information is taken from .desktop file.*/ - TQString description() const; - /**@return A version of a plugin. Information is taken from .desktop file.*/ - TQString version() const; - /**@return A license type of a plugin. Information is taken from .desktop file.*/ - int licenseType() const; - /**@return A license text for known license types (GPL, LGPL, BSD, Artistic, TQPL).*/ - TQString license() const; - /**@return A copyright statement of a plugin. Information is taken from .desktop file.*/ - TQString copyrightStatement() const; - /**@return A home page of a plugin. Information is taken from .desktop file.*/ - TQString homePageAddress() const; - /**@return A email address for bugs of a plugin. Information is taken from .desktop file.*/ - TQString bugsEmailAddress() const; - - /**@param name The name of a property. - @return Any property value which exists in .desktop file.*/ - TQVariant property(const TQString &name) const; - /**@param name The name of a property. - @return Any property value which exists in .desktop file.*/ - TQVariant operator [] (const TQString &name) const; - /**@return A list of property names set in .desktop file.*/ - TQStringList propertyNames() const; - - /**@return A list of plugin authors.*/ - const TQValueList authors() const; - /**@return A list of other plugin contributors.*/ - const TQValueList credits() const; - - /**Adds an author to the list of authors. - You can call this function as many times you need. Each entry is appended to a list. - @param name The developer's name in UTF-8 encoding. - @param task What the person is responsible for. This text can contain newlines. It should be marked for translation like this: I18N_NOOP("Task description..."). Can be 0. - @param emailAddress An Email address where the person can be reached. Can be 0. - @param webAddress The person's homepage or a relevant link. Start the address with "http://". "http://some.domain" is correct, "some.domain" is not. Can be 0.*/ - void addAuthor(const char *name, const char *task, - const char *emailAddress = 0, const char *webAddress = 0); - /**Adds a contributor to the list of contributors. - You can call this function as many times you need. Each entry is appended to a list. - @param name The developer's name in UTF-8 encoding. - @param task What the person is responsible for. This text can contain newlines. It should be marked for translation like this: I18N_NOOP("Task description..."). Can be 0. - @param emailAddress An Email address where the person can be reached. Can be 0. - @param webAddress The person's homepage or a relevant link. Start the address with "http://". "http://some.domain" is correct, "some.domain" is not. Can be 0.*/ - void addCredit(const char *name, const char *task = 0, - const char *emailAddress = 0, const char *webAddress = 0); - -private: - /**Returns the untranslated generic name of a plugin as set in .desktop file.*/ - const char *rawGenericName() const; - - class Private; - Private *d; -}; - -#endif diff --git a/lib/interfaces/kdevproject.cpp b/lib/interfaces/kdevproject.cpp deleted file mode 100644 index e8616df1..00000000 --- a/lib/interfaces/kdevproject.cpp +++ /dev/null @@ -1,164 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2003 Jens Dagerbo - Copyright (C) 2003 Mario Scalas - Copyright (C) 2003-2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include - -#include "kdevproject.h" -#include -#include -#include -#include "kdevprojectiface.h" - -struct KDevProject::Private { - TQMap m_absToRel; - TQStringList m_symlinkList; - TQTimer *m_timer; - KDevProjectIface *m_iface; -}; - -KDevProject::KDevProject(const KDevPluginInfo *info, TQObject *parent, const char *name) - : KDevPlugin(info, parent, name), d(new KDevProject::Private()) -{ - connect( this, TQT_SIGNAL(addedFilesToProject(const TQStringList& )), this, TQT_SLOT(buildFileMap()) ); - connect( this, TQT_SIGNAL(removedFilesFromProject(const TQStringList& )), this, TQT_SLOT(buildFileMap()) ); - - connect( this, TQT_SIGNAL(addedFilesToProject(const TQStringList& )), this, TQT_SLOT(slotAddFilesToFileMap(const TQStringList& )) ); - connect( this, TQT_SIGNAL(removedFilesFromProject(const TQStringList& )), this, TQT_SLOT(slotRemoveFilesFromFileMap(const TQStringList& )) ); - - d->m_timer = new TQTimer(this); - connect(d->m_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotBuildFileMap())); - d->m_iface = new KDevProjectIface(this); -} - -KDevProject::~KDevProject() -{ - d->m_timer->stop(); - delete d->m_iface; - delete d->m_timer; - delete d; -} - -void KDevProject::changedFile( const TQString & fileName ) -{ - TQStringList fileList; - fileList.append ( fileName ); - - emit changedFilesInProject( fileList ); - -} - -void KDevProject::changedFiles( const TQStringList & fileList ) -{ - emit changedFilesInProject( fileList ); -} - -KDevProject::Options KDevProject::options() const -{ - return (KDevProject::Options)0; -} - -bool KDevProject::isProjectFile( const TQString & absFileName ) -{ - return d->m_absToRel.contains( absFileName ); -} - -TQString KDevProject::relativeProjectFile( const TQString & absFileName ) -{ - if( isProjectFile(absFileName) ) - return d->m_absToRel[ absFileName ]; - return TQString(); -} - -void KDevProject::buildFileMap() -{ - d->m_timer->stop(); - d->m_timer->start(0, true); -} - -void KDevProject::slotBuildFileMap() -{ - kdDebug(9000) << k_funcinfo << endl; - - d->m_absToRel.clear(); - d->m_symlinkList.clear(); - const TQStringList fileList = allFiles(); - for( TQStringList::ConstIterator it=fileList.begin(); it!=fileList.end(); ++it ) - { - TQFileInfo fileInfo( projectDirectory() + "/" + *it ); - d->m_absToRel[ URLUtil::canonicalPath(fileInfo.absFilePath()) ] = *it; - - if ( URLUtil::canonicalPath( fileInfo.absFilePath() ) != fileInfo.absFilePath() ) - { - d->m_symlinkList << *it; - } - } -} - -void KDevProject::openProject( const TQString & /*dirName*/, const TQString & /*projectName*/ ) -{ - buildFileMap(); -} - -TQStringList KDevProject::symlinkProjectFiles( ) -{ - return d->m_symlinkList; -} - -TQString KDevProject::defaultRunDirectory(const TQString& projectPluginName) const -{ - return DomUtil::readEntry(*projectDom(), "/" + projectPluginName + "/run/globalcwd"); -} - -void KDevProject::slotAddFilesToFileMap( const TQStringList & fileList ) -{ - TQStringList::ConstIterator it = fileList.begin(); - while( it != fileList.end() ) - { - TQFileInfo fileInfo( projectDirectory() + "/" + *it ); - d->m_absToRel[ URLUtil::canonicalPath(fileInfo.absFilePath()) ] = *it; - - if ( URLUtil::canonicalPath( fileInfo.absFilePath() ) != fileInfo.absFilePath() ) - { - d->m_symlinkList << *it; - } - - ++it; - } -} - -void KDevProject::slotRemoveFilesFromFileMap( const TQStringList & fileList ) -{ - TQStringList::ConstIterator it = fileList.begin(); - while( it != fileList.end() ) - { - TQFileInfo fileInfo( projectDirectory() + "/" + *it ); - d->m_absToRel.remove( URLUtil::canonicalPath(fileInfo.absFilePath()) ); - - d->m_symlinkList.remove( *it ); - - ++it; - } -} - -#include "kdevproject.moc" diff --git a/lib/interfaces/kdevproject.h b/lib/interfaces/kdevproject.h deleted file mode 100644 index 256b0c0c..00000000 --- a/lib/interfaces/kdevproject.h +++ /dev/null @@ -1,219 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2001 Matthias Hoelzer-Kluepfel - Copyright (C) 2001-2002 Bernd Gehrmann - Copyright (C) 2002-2003 Roberto Raggi - Copyright (C) 2002 Simon Hausmann - Copyright (C) 2003 Jens Dagerbo - Copyright (C) 2003 Mario Scalas - Copyright (C) 2003-2004 Alexander Dymo - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KDEVPROJECT_H -#define KDEVPROJECT_H - -#include "kdevplugin.h" -#include "domutil.h" - -#include -#include - -/** -@file kdevproject.h -KDevelop project interface. -*/ - -class TQTimer; - -/** -KDevelop project interface. -Plugins implementing the KDevProject interfaces are used to manage projects. - -Project can be considered as a way of grouping files (in text editors) or -as a way of providing support for a build system (like it is done in TDevelop IDE buildtools). -*/ -class KDevProject: public KDevPlugin -{ - Q_OBJECT - -public: - /**Constructs a project plugin. - @param info Important information about the plugin - plugin internal and generic - (GUI) name, description, a list of authors, etc. That information is used to show - plugin information in various places like "about application" dialog, plugin selector - dialog, etc. Plugin does not take ownership on info object, also its lifetime should - be equal to the lifetime of the plugin. - @param parent The parent object for the plugin. Parent object must implement @ref KDevApi - interface. Otherwise the plugin will not be constructed. - @param name The internal name which identifies the plugin.*/ - KDevProject(const KDevPluginInfo *info, TQObject *parent=0, const char *name=0); - /**Destructor.*/ - virtual ~KDevProject(); - - /**Options of the project plugin.*/ - enum Options { - UsesOtherBuildSystem = 0 /**/run/directoryradio == executable - * The directory where the executable is. - * if //run/directoryradio == build - * The build directory. - * if /kdevautoproject/run/directoryradio == custom - * The custom directory absolute path. - * Derived classes are supposed to explicitly call this implementation - */ - TQString defaultRunDirectory(const TQString& projectPluginName) const; - -private slots: - void buildFileMap(); - void slotBuildFileMap(); - void slotAddFilesToFileMap(const TQStringList & fileList ); - void slotRemoveFilesFromFileMap(const TQStringList & fileList ); - -signals: - /**Emitted when a new list of files has been added to the - project. Provided for convenience when many files were added. - @param fileList The file names relative to the project directory.*/ - void addedFilesToProject(const TQStringList& fileList); - - /**Emitted when a list of files has been removed from the project. - Provided for convenience when many files were removed. - @param fileList The file names relative to the project directory.*/ - void removedFilesFromProject(const TQStringList& fileList); - - /**Emitted when a list of files has changed in the project. - @param fileList The file names relative to the project directory.*/ - void changedFilesInProject(const TQStringList& fileList); - - /**Emitted when one compile related command (make, make install, make ...) ends sucessfuly. - Used to reparse the files after a sucessful compilation.*/ - void projectCompiled(); - - /**Emitted when the active directory of the project changes - * @param olddir The old active directory - * @param newdir The new active directory - */ - void activeDirectoryChanged( const TQString& olddir, const TQString& newdir ); - -private: - class Private; - Private *d; -}; - -#endif diff --git a/lib/interfaces/kdevprojectiface.cpp b/lib/interfaces/kdevprojectiface.cpp deleted file mode 100644 index 28d4501c..00000000 --- a/lib/interfaces/kdevprojectiface.cpp +++ /dev/null @@ -1,186 +0,0 @@ - - -/* This file is part of the KDE project - Copyright (C) 2005 Ian Reinhart Geiser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "kdevprojectiface.h" -#include "kdevproject.h" -#include "domutil.h" - -KDevProjectIface::KDevProjectIface(KDevProject *prj) - : TQObject(prj), DCOPObject("KDevProject"), m_prj(prj) -{ -} - - -KDevProjectIface::~KDevProjectIface() -{ -} - -void KDevProjectIface::openProject( const TQString & dirName, const TQString & projectName ) -{ - m_prj->openProject(dirName,projectName); -} - -void KDevProjectIface::closeProject( ) -{ - m_prj->closeProject(); -} - -uint KDevProjectIface::options( ) const -{ - return (uint)m_prj->options(); -} - -TQString KDevProjectIface::projectDirectory( ) const -{ - return m_prj->projectDirectory(); -} - -TQString KDevProjectIface::projectName( ) const -{ - return m_prj->projectName(); -} - -TQString KDevProjectIface::mainProgram() const -{ - return m_prj->mainProgram(); -} - -TQString KDevProjectIface::runDirectory( ) const -{ - return m_prj->runDirectory(); -} - -TQString KDevProjectIface::activeDirectory( ) const -{ - return m_prj->activeDirectory(); -} - -TQString KDevProjectIface::buildDirectory( ) const -{ - return m_prj->buildDirectory(); -} - -TQStringList KDevProjectIface::allFiles( ) const -{ - return m_prj->allFiles(); -} - -TQStringList KDevProjectIface::distFiles( ) const -{ - return m_prj->distFiles(); -} - -void KDevProjectIface::addFiles( const TQStringList & fileList ) -{ - m_prj->addFiles(fileList); -} - -void KDevProjectIface::addFile( const TQString & fileName ) -{ - m_prj->addFile(fileName); -} - -void KDevProjectIface::removeFiles( const TQStringList & fileList ) -{ - m_prj->removeFiles(fileList); -} - -void KDevProjectIface::removeFile( const TQString & fileName ) -{ - m_prj->removeFile(fileName); -} - -void KDevProjectIface::changedFiles( const TQStringList & fileList ) -{ - m_prj->changedFiles(fileList); -} - -void KDevProjectIface::changedFile( const TQString & fileName ) -{ - m_prj->changedFile(fileName); -} - -bool KDevProjectIface::isProjectFile( const TQString & absFileName ) -{ - return m_prj->isProjectFile(absFileName); -} - -TQString KDevProjectIface::relativeProjectFile( const TQString & absFileName ) -{ - return m_prj->relativeProjectFile(absFileName); -} - -TQStringList KDevProjectIface::symlinkProjectFiles( ) -{ - return m_prj->symlinkProjectFiles(); -} - -TQString KDevProjectIface::readEntry( const TQString & path, const TQString & defaultEntry ) -{ - return DomUtil::readEntry( *m_prj->projectDom(), path, defaultEntry); -} - -int KDevProjectIface::readIntEntry( const TQString & path, int defaultEntry ) -{ - return DomUtil::readIntEntry(*m_prj->projectDom(), path,defaultEntry); -} - -bool KDevProjectIface::readBoolEntry( const TQString & path, bool defaultEntry ) -{ - return DomUtil::readBoolEntry(*m_prj->projectDom(), path, defaultEntry); -} - -TQStringList KDevProjectIface::readListEntry( const TQString & path, const TQString & tag ) -{ - return DomUtil::readListEntry(*m_prj->projectDom(), path, tag); -} - -TQMap< TQString, TQString > KDevProjectIface::readMapEntry( const TQString & path ) -{ - return DomUtil::readMapEntry(*m_prj->projectDom(), path); -} - -void KDevProjectIface::writeEntry( const TQString & path, const TQString & value ) -{ - DomUtil::writeEntry(*m_prj->projectDom(), path, value); -} - -void KDevProjectIface::writeIntEntry( const TQString & path, int value ) -{ - DomUtil::writeIntEntry(*m_prj->projectDom(), path, value); -} - -void KDevProjectIface::writeBoolEntry( const TQString & path, bool value ) -{ - DomUtil::writeBoolEntry(*m_prj->projectDom(), path, value); -} - -void KDevProjectIface::writeListEntry( const TQString & path, const TQString & tag, const TQStringList & value ) -{ - DomUtil::writeListEntry(*m_prj->projectDom(), path, tag, value); -} - -void KDevProjectIface::writeMapEntry( const TQString & path, const TQMap< TQString, TQString > & map ) -{ - DomUtil::writeMapEntry(*m_prj->projectDom(), path, map); -} - -#include "kdevprojectiface.moc" diff --git a/lib/interfaces/kdevprojectiface.h b/lib/interfaces/kdevprojectiface.h deleted file mode 100644 index e30cd6cc..00000000 --- a/lib/interfaces/kdevprojectiface.h +++ /dev/null @@ -1,82 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2005 Ian Reinhart Geiser - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef KDEVPROJECTIFACE_H -#define KDEVPROJECTIFACE_H - -#include -#include -#include - -class KDevProject; - -/** -DCOP Interface for the @ref KDevProject object. - -@author KDevelop Authors -*/ -class KDevProjectIface : public TQObject, public DCOPObject -{ - Q_OBJECT -// - K_DCOP -public: - KDevProjectIface(KDevProject *prj); - - ~KDevProjectIface(); -k_dcop: - void openProject(const TQString &dirName, const TQString &projectName); - void closeProject(); - uint options() const; - TQString projectDirectory() const; - TQString projectName() const; - TQString mainProgram() const; - TQString runDirectory() const; - TQString activeDirectory() const; - TQString buildDirectory() const; - TQStringList allFiles() const; - TQStringList distFiles() const; - void addFiles(const TQStringList &fileList); - void addFile(const TQString &fileName); - void removeFiles(const TQStringList& fileList); - void removeFile(const TQString &fileName); - void changedFiles(const TQStringList &fileList); - void changedFile(const TQString &fileName); - bool isProjectFile(const TQString &absFileName); - TQString relativeProjectFile(const TQString &absFileName); - TQStringList symlinkProjectFiles(); - - // Project DOM access - TQString readEntry(const TQString &path, const TQString &defaultEntry = TQString()); - int readIntEntry(const TQString &path, int defaultEntry = 0); - bool readBoolEntry(const TQString &path, bool defaultEntry = false); - TQStringList readListEntry(const TQString &path, const TQString &tag); - TQMap readMapEntry(const TQString &path); - - void writeEntry(const TQString &path, const TQString &value); - void writeIntEntry(const TQString &path, int value); - void writeBoolEntry( const TQString &path, bool value); - void writeListEntry(const TQString &path, const TQString &tag, const TQStringList &value); - void writeMapEntry(const TQString& path, const TQMap &map); - - private: - KDevProject *m_prj; -}; - -#endif diff --git a/lib/interfaces/tdevapi.cpp b/lib/interfaces/tdevapi.cpp new file mode 100644 index 00000000..4f726107 --- /dev/null +++ b/lib/interfaces/tdevapi.cpp @@ -0,0 +1,93 @@ +/* This file is part of the KDE project + Copyright (C) 2000-2001 Bernd Gehrmann + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevapi.h" + +#include "tdevcoderepository.h" + +/////////////////////////////////////////////////////////////////////////////// +// class TDevApi::Private +/////////////////////////////////////////////////////////////////////////////// + +class TDevApi::Private +{ +public: + Private() + : m_projectDom(0), m_project(0), m_languageSupport(0), + m_codeRepository(0) + {} + + TQDomDocument *m_projectDom; + TDevProject *m_project; + TDevLanguageSupport *m_languageSupport; + TDevCodeRepository* m_codeRepository; +}; + +/////////////////////////////////////////////////////////////////////////////// +// class TDevApi +/////////////////////////////////////////////////////////////////////////////// + +TDevApi::TDevApi() +{ + d = new TDevApi::Private; + d->m_codeRepository = new TDevCodeRepository(); +} + +TDevApi::~TDevApi() +{ + delete d->m_codeRepository; + delete d; +} + +TDevProject *TDevApi::project() const +{ + return d->m_project; +} + +void TDevApi::setProject(TDevProject *project) +{ + d->m_project = project; +} + +TDevLanguageSupport *TDevApi::languageSupport() const +{ + return d->m_languageSupport; +} + +void TDevApi::setLanguageSupport(TDevLanguageSupport *languageSupport) +{ + d->m_languageSupport = languageSupport; +} + +TQDomDocument *TDevApi::projectDom() const +{ + return d->m_projectDom; +} + +void TDevApi::setProjectDom(TQDomDocument *dom) +{ + d->m_projectDom = dom; +} + +TDevCodeRepository *TDevApi::codeRepository() const +{ + return d->m_codeRepository; +} + +#include "tdevapi.moc" diff --git a/lib/interfaces/tdevapi.h b/lib/interfaces/tdevapi.h new file mode 100644 index 00000000..a2e38f7c --- /dev/null +++ b/lib/interfaces/tdevapi.h @@ -0,0 +1,104 @@ +/* This file is part of the KDE project + Copyright (C) 2000-2001 Bernd Gehrmann + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVAPI_H +#define TDEVAPI_H + +#include + +class TQStringList; +class TQDomDocument; +class TDevCore; +class TDevProject; +class TDevLanguageSupport; +class CodeModel; +class TDevPartController; +class TDevMainWindow; +class TDevCodeRepository; +class TDevPlugin; +class TDevPluginController; + +/** +@file tdevapi.h +KDevelop API interface. +*/ + +/** +The interface to KDevelop's core components. +Needs to be implemented in a shell. Developers do not need to use this +class because @ref TDevPlugin already provides API convenience methods. +*/ +class TDevApi: public TQObject +{ + Q_OBJECT + +public: + /**Constructor.*/ + TDevApi(); + + /**Destructor.*/ + virtual ~TDevApi(); + + /**@return A reference to the toplevel widget.*/ + virtual TDevMainWindow *mainWindow() const = 0; + + /**@return A reference to the part controller which is used to manipulate loaded KParts.*/ + virtual TDevPartController *partController() const = 0; + + /**@return A reference to the plugin controller which is used to manipulate loaded plugin.*/ + virtual TDevPluginController *pluginController() const = 0; + + /**@return A reference to the application core - an object which provides + basic functionalities for inter-parts communications / cooperation.*/ + virtual TDevCore *core() const = 0; + + /**@return A reference to the memory symbol store.*/ + virtual CodeModel *codeModel() const = 0; + + /**@return A reference to the DOM tree that represents the project file or 0 if no project is loaded.*/ + TQDomDocument *projectDom() const; + + /**Sets the Document Object Model for the current project. + @param dom The project DOM.*/ + void setProjectDom(TQDomDocument *dom); + + /**@return A reference to the current project component or 0 if no project is loaded.*/ + TDevProject *project() const; + + /**Sets the current project. + @param project The project plugin which becames the current project.*/ + void setProject(TDevProject *project); + + /**@return A reference to the language support component or 0 if no support available.*/ + TDevLanguageSupport *languageSupport() const; + + /**Sets the object charged of providing handling for the source files written in particular + language (languages support component). + @param languageSupport The language support plugin.*/ + void setLanguageSupport(TDevLanguageSupport *languageSupport); + + /**@return A reference to the code repository (accessor to persistent symbol stores).*/ + TDevCodeRepository *codeRepository() const; + +private: + class Private; + Private *d; +}; + +#endif diff --git a/lib/interfaces/tdevcoderepository.cpp b/lib/interfaces/tdevcoderepository.cpp new file mode 100644 index 00000000..f5716294 --- /dev/null +++ b/lib/interfaces/tdevcoderepository.cpp @@ -0,0 +1,71 @@ +/* This file is part of the KDE project + Copyright (C) 2003 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevcoderepository.h" + +struct TDevCodeRepositoryData +{ + Catalog* mainCatalog; + TQValueList catalogs; + + TDevCodeRepositoryData(): mainCatalog( 0 ) {} +}; + +TDevCodeRepository::TDevCodeRepository( ) + : d( new TDevCodeRepositoryData ) +{ +} + +TDevCodeRepository::~TDevCodeRepository( ) +{ + delete( d ); +} + +Catalog* TDevCodeRepository::mainCatalog() +{ + return d->mainCatalog; +} + +void TDevCodeRepository::setMainCatalog( Catalog * mainCatalog ) +{ + d->mainCatalog = mainCatalog; +} + +void TDevCodeRepository::registerCatalog( Catalog * catalog ) +{ + d->catalogs.append( catalog ); + emit catalogRegistered( catalog ); +} + +void TDevCodeRepository::unregisterCatalog( Catalog * catalog ) +{ + d->catalogs.remove( catalog ); + emit catalogUnregistered( catalog ); +} + +void TDevCodeRepository::touchCatalog( Catalog * catalog ) +{ + emit catalogChanged( catalog ); +} + +TQValueList< Catalog * > TDevCodeRepository::registeredCatalogs( ) +{ + return d->catalogs; +} + +#include "tdevcoderepository.moc" diff --git a/lib/interfaces/tdevcoderepository.h b/lib/interfaces/tdevcoderepository.h new file mode 100644 index 00000000..b87d66e8 --- /dev/null +++ b/lib/interfaces/tdevcoderepository.h @@ -0,0 +1,95 @@ +/* This file is part of the KDE project + Copyright (C) 2003 Roberto Raggi + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVCODEREPOSITORY_H +#define TDEVCODEREPOSITORY_H + +#include +#include + +/** +@file tdevcoderepository.h +Code repository - the persistent symbol store accessor. +*/ + +class TDevCodeRepositoryData; +class Catalog; + +/** +Code repository - the persistent symbol store accessor. +Symbols from parsed files can be saved to the persistent symbol store. +Persistence in this case means that symbol database is never loaded into memory +and works like a usual database which executes queries. + +Code repository consists from @ref Catalog objects that represent separate symbol +databases. Catalogs can be created/loaded/unloaded dynamically. +To find a symbol in the repository each catalog should be queried. + +Persistent symbol store is useful to keep information about code that +never or rarely changes. System libraries are perfect examples of such code. +Symbols from code contained in project files are better stored in memory +symbol store like @ref CodeModel. +*/ +class TDevCodeRepository : public TQObject +{ + Q_OBJECT + +public: + /**Constructor.*/ + TDevCodeRepository(); + /**Destructor.*/ + virtual ~TDevCodeRepository(); + + /**@return The main catalog. Each catalog can be marked is main + to provide easy access to it.*/ + Catalog* mainCatalog(); + /**Sets the main catalog. + @param mainCatalog The catalog to be marked as main.*/ + void setMainCatalog( Catalog* mainCatalog ); + + /**@return The list of registered catalogs.*/ + TQValueList registeredCatalogs(); + + /**Registers catalog in the repository. + @param catalog The catalog to register.*/ + void registerCatalog( Catalog* catalog ); + /**Unregisters catalog from the repository. + @param catalog The catalog to unregister.*/ + void unregisterCatalog( Catalog* catalog ); + /**Marks catalog as changed and emits @ref catalogChanged signal. + @param catalog The catalog to touch.*/ + void touchCatalog( Catalog* catalog ); + +signals: + /**Emitted when a new catalog is registered. + @param catalog The new catalog.*/ + void catalogRegistered( Catalog* catalog ); + + /**Emitted when a catalog in removed + @param catalog The catalog that was removed.*/ + void catalogUnregistered( Catalog* catalog ); + + /**Emitted when the contens of catalog is changed. + @param catalog Changed catalog.*/ + void catalogChanged( Catalog* catalog ); + +private: + TDevCodeRepositoryData* d; +}; + +#endif diff --git a/lib/interfaces/tdevcore.cpp b/lib/interfaces/tdevcore.cpp new file mode 100644 index 00000000..726bf2cb --- /dev/null +++ b/lib/interfaces/tdevcore.cpp @@ -0,0 +1,298 @@ +/* This file is part of the KDE project + Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2003 Mario Scalas + Copyright (C) 2003 Amilcar do Carmo Lucas + Copyright (C) 2003 Jens Dagerbo + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "TDevCoreIface.h" +#include "tdevcore.h" + +#include "urlutil.h" + +/////////////////////////////////////////////////////////////////////////////// +// class Context +/////////////////////////////////////////////////////////////////////////////// + +Context::Context() +{ +} + +Context::~Context() +{ +} + +bool Context::hasType( int aType ) const +{ + return aType == this->type(); +} + +/////////////////////////////////////////////////////////////////////////////// +// class EditorContext +/////////////////////////////////////////////////////////////////////////////// + +class EditorContext::Private +{ +public: + Private( const KURL &url, int line, int col, const TQString &linestr, + const TQString &wordstr ) + : m_url(url), m_line(line), m_col(col), + m_linestr(linestr), m_wordstr(wordstr) + { + } + + KURL m_url; + int m_line, m_col; + TQString m_linestr, m_wordstr; +}; + +EditorContext::EditorContext( const KURL &url, int line, int col, + const TQString &linestr, const TQString &wordstr ) + : Context(), d( new Private(url, line, col, linestr, wordstr) ) +{ +} + +EditorContext::~EditorContext() +{ + delete d; + d = 0; +} + +int EditorContext::type() const +{ + return Context::EditorContext; +} + +const KURL &EditorContext::url() const +{ + return d->m_url; +} + +int EditorContext::line() const +{ + return d->m_line; +} + +int EditorContext::col() const +{ + return d->m_col; +} + +TQString EditorContext::currentLine() const +{ + return d->m_linestr; +} + +TQString EditorContext::currentWord() const +{ + return d->m_wordstr; +} + +/////////////////////////////////////////////////////////////////////////////// +// class FileContext +/////////////////////////////////////////////////////////////////////////////// + +class FileContext::Private +{ +public: + Private( const KURL::List &someURLs ) : m_urls(someURLs) + { + if (m_urls.count() == 0) + { + m_fileName = "INVALID-FILENAME"; + m_isDirectory = false; // well, "true" should be ok too ... + } + else + { + m_fileName = m_urls[0].path(); + m_isDirectory = URLUtil::isDirectory( m_urls[0] ); + } + } + Private( const TQString &fileName, bool isDirectory ) + : m_fileName(fileName), m_isDirectory(isDirectory) + { + } + + KURL::List m_urls; + /// \FIXME the following data members should be removed, but first other + // parts should be modified to comply with this change. + TQString m_fileName; + bool m_isDirectory; +}; + +FileContext::FileContext( const KURL::List &someURLs ) + : Context(), d( new Private(someURLs) ) +{ +} + +FileContext::~FileContext() +{ + delete d; + d = 0; +} + +int FileContext::type() const +{ + return Context::FileContext; +} + +const KURL::List &FileContext::urls() const +{ + return d->m_urls; +} + +/////////////////////////////////////////////////////////////////////////////// +// class DocumentationContext +/////////////////////////////////////////////////////////////////////////////// + +class DocumentationContext::Private +{ +public: + Private( const TQString &url, const TQString &selection ) + : m_url(url), m_selection(selection) + { + } + + TQString m_url; + TQString m_selection; +}; + +DocumentationContext::DocumentationContext( const TQString &url, const TQString &selection ) + : Context(), d( new Private(url, selection) ) +{ +} + +DocumentationContext::DocumentationContext( const DocumentationContext &aContext ) + : Context(), d( 0 ) +{ + *this = aContext; +} + +DocumentationContext &DocumentationContext::operator=( const DocumentationContext &aContext) +{ + if (d) { + delete d; d = 0; + } + d = new Private( *aContext.d ); + return *this; +} + +DocumentationContext::~DocumentationContext() +{ + delete d; + d = 0; +} + +int DocumentationContext::type() const +{ + return Context::DocumentationContext; +} + +TQString DocumentationContext::url() const +{ + return d->m_url; +} + +TQString DocumentationContext::selection() const +{ + return d->m_selection; +} + +/////////////////////////////////////////////////////////////////////////////// +// class CodeModelItemContext +/////////////////////////////////////////////////////////////////////////////// + +class CodeModelItemContext::Private +{ +public: + Private( const CodeModelItem* item ) : m_item( item ) {} + + const CodeModelItem* m_item; +}; + +CodeModelItemContext::CodeModelItemContext( const CodeModelItem* item ) + : Context(), d( new Private(item) ) +{ +} + +CodeModelItemContext::~CodeModelItemContext() +{ + delete d; + d = 0; +} + +int CodeModelItemContext::type() const +{ + return Context::CodeModelItemContext; +} + +const CodeModelItem* CodeModelItemContext::item() const +{ + return d->m_item; +} + +/////////////////////////////////////////////////////////////////////////////// +// class ProjectModelItemContext +/////////////////////////////////////////////////////////////////////////////// + +class ProjectModelItemContext::Private +{ +public: + Private( const ProjectModelItem* item ) : m_item( item ) {} + + const ProjectModelItem* m_item; +}; + +ProjectModelItemContext::ProjectModelItemContext( const ProjectModelItem* item ) + : Context(), d( new Private(item) ) +{ +} + +ProjectModelItemContext::~ProjectModelItemContext() +{ + delete d; + d = 0; +} + +int ProjectModelItemContext::type() const +{ + return Context::ProjectModelItemContext; +} + +const ProjectModelItem* ProjectModelItemContext::item() const +{ + return d->m_item; +} + + +/////////////////////////////////////////////////////////////////////////////// +// class TDevCore +/////////////////////////////////////////////////////////////////////////////// + +TDevCore::TDevCore( TQObject *parent, const char *name ) + : TQObject( parent, name ) +{ + new TDevCoreIface(this); +} + +TDevCore::~TDevCore() +{ +} + +#include "tdevcore.moc" diff --git a/lib/interfaces/tdevcore.h b/lib/interfaces/tdevcore.h new file mode 100644 index 00000000..fadcdfde --- /dev/null +++ b/lib/interfaces/tdevcore.h @@ -0,0 +1,388 @@ +/* This file is part of the KDE project + Copyright (C) 2001-2002 Matthias Hoelzer-Kluepfel + Copyright (C) 2001-2002 Bernd Gehrmann + Copyright (C) 2001 Sandy Meier + Copyright (C) 2002 Daniel Engelschalt + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2003 Mario Scalas + Copyright (C) 2003 Harald Fernengel + Copyright (C) 2003 Hamish Rodda + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVCORE_H +#define TDEVCORE_H + +/** +@file tdevcore.h +The interface to the application core and context menu classes. +*/ + +#include +#include +#include + +#include + +class KDialogBase; +class TDevPlugin; +class CodeModelItem; +class ProjectModelItem; + +namespace KParts +{ + class Part; +} + +class TQStatusBar; +class TQPopupMenu; + +/** +Base class for every context. +Think of a Context-based class as "useful +info associated to a context menu". Several context menu can be defined, +each defining different information: because of these context menus being +used in many modules, they are defined here. + +When context menu with a certain "context" associated appears, KDevelop core +sends a notification signal and all plugins which receive this signal have +the ability to add own items into the menu. For example, VCS plugin could +add "commit" and "update" menu items to the context menu of a file. + +How to use context from a plugin: +-# Create a popup menu in context menu event handler: @code TDEPopupMenu menu(this); @endcode +-# Create a context: @code MyContext context(param). @endcode +-# Fill a context menu: @code core()->fillContextMenu(&menu, &context); @endcode +-# Show the popup menu: @code menu.exec(event->globalPos()); @endcode +. +In this example @em event is an object of TQContextMenuEvent class which you have access +to if you reimplement TQWidget::contextMenuEvent method. + +How to fill context menu from a plugin: +-# Create a @code contextMenu(TQPopupMenu *, const Context *) @endcode slot in your plugin class. +-# Connect TDevCore::contextMenu(TQPopupMenu *, const Context *) signal to that slot in +the constructor of your plugin:\n +@code +connect(core(), TQT_SIGNAL(contextMenu(TQPopupMenu *, const Context *)), + this, TQT_SLOT(contextMenu(TQPopupMenu *, const Context *))); +@endcode +-# Fill the menu in the slot you created, for example:\n +@code +if (context->hasType(Context::EditorContext)) +{ + const EditorContext *econtext = static_cast(context); + int id = popup->insertItem(i18n("My Menu Item 1"), this, TQT_SLOT(myMenuAction1())); + popup->setWhatsThis(id, i18n("What's this for my menu item 1")); +} +else if context->hasType(MyContext)) +{ + int id = popup->insertItem(... + ... +} +... +@endcode +*/ +class Context +{ +public: + /**Pre-defined context types. More may be added so it is possible to add custom + contexts. We reserve enum values until 1000 (yeah, it is one thousand ) + for tdevelop official context types.*/ + enum Type + { + EditorContext, /** + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevdesignerintegration.h" +#include "tdevdesignerintegrationiface.h" + +class TDevDesignerIntegration::TDevDesignerIntegrationPrivate { +public: + TDevDesignerIntegrationIface *m_iface; +}; + +TDevDesignerIntegration::TDevDesignerIntegration(TQObject *parent, const char *name) + : TQObject(parent, name) +{ + dptr = new TDevDesignerIntegrationPrivate(); + + dptr->m_iface = new TDevDesignerIntegrationIface(this); +} + +TDevDesignerIntegration::~TDevDesignerIntegration() +{ + delete dptr; +} + +#include "tdevdesignerintegration.moc" diff --git a/lib/interfaces/tdevdesignerintegration.h b/lib/interfaces/tdevdesignerintegration.h new file mode 100644 index 00000000..532d8b8b --- /dev/null +++ b/lib/interfaces/tdevdesignerintegration.h @@ -0,0 +1,98 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVDESIGNERINTEGRATION_H +#define TDEVDESIGNERINTEGRATION_H + +#include +#include +#include + +/** +@file tdevdesignerintegration.h +TDevelop designer integration interface. +*/ + +/** +TDevelop designer integration interface. +Designer integration object provides functionality which is used by integrated +into KDevelop GUI designers: +- adding/removing/editing functions (class methods); +- opening form implementation files; +- saving and loading designer integration settings. +. + +Designer integration is a layer between visual form (GUI) designer of any type +and the current language support. Usually designers create some kind of forms +and allow developers to define actions which are executed upon some GUI events +(for example, TQt Designer allows to define slots connected to GUI signals). +The actual code with action implementations needs to be written by hand in source +files. Designer integration captures such implementation requests and opens +necessary files at desired line numbers and adds (edits, removes) code for implementations. + +For example, TQt Designer integration should be able to create an subclass for a form +and reimplement slots defined in the form. +*/ +class TDevDesignerIntegration : public TQObject +{ +Q_OBJECT + +public: + /**Constructor. + @param parent Parent object. + @param name Internal name.*/ + TDevDesignerIntegration(TQObject *parent = 0, const char *name = 0); + /**Destructor.*/ + ~TDevDesignerIntegration(); + + /**Saves designer integration settings.*/ + virtual void saveSettings(TQDomDocument dom, TQString path) = 0; + /**Loads designer integration settings.*/ + virtual void loadSettings(TQDomDocument dom, TQString path) = 0; + +public slots: + /**Adds the implementation for a function. + @param formName The name of a GUI form. + @param function The function which needs to be implemented in the source.*/ + virtual void addFunction(const TQString &formName, KInterfaceDesigner::Function function) = 0; + + /**Removes the implementation of a function. + @param formName The name of a GUI form. + @param function The function which needs to be removed from the source.*/ + virtual void removeFunction(const TQString &formName, KInterfaceDesigner::Function function) = 0; + + /**Edites the implementation of a function. + @param formName The name of a GUI form. + @param oldFunction The function which needs to be edited from the source. + @param function The new function declaration.*/ + virtual void editFunction(const TQString &formName, KInterfaceDesigner::Function oldFunction, KInterfaceDesigner::Function function) = 0; + + /**Opens the function and jumps to the line number of its definition (declaration). + @param formName The name of a GUI form. + @param functionName The name of a function to find in the source.*/ + virtual void openFunction(const TQString &formName, const TQString &functionName) = 0; + + /**Opens the form source. + @param formName The name of a GUI form.*/ + virtual void openSource(const TQString &formName) = 0; + private: + class TDevDesignerIntegrationPrivate; + TDevDesignerIntegrationPrivate *dptr; +}; + +#endif diff --git a/lib/interfaces/tdevdesignerintegrationiface.cpp b/lib/interfaces/tdevdesignerintegrationiface.cpp new file mode 100644 index 00000000..bd4f349b --- /dev/null +++ b/lib/interfaces/tdevdesignerintegrationiface.cpp @@ -0,0 +1,63 @@ +/* This file is part of the KDE project + Copyright (C) 2005 Ian Reinhart Geiser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevdesignerintegrationiface.h" +#include +#include "tdevdesignerintegration.h" + +TDevDesignerIntegrationIface::TDevDesignerIntegrationIface(TDevDesignerIntegration *p) + : DCOPObject("GUIDesigner"), m_designer(p) +{ + //FIXME figure out what number our interface is... +} + + +TDevDesignerIntegrationIface::~TDevDesignerIntegrationIface() +{ +} + +void TDevDesignerIntegrationIface::addFunction( const TQString & formName, TQString returnType, TQString function, TQString specifier, TQString access, uint type ) +{ + KInterfaceDesigner::Function f = {returnType, function, specifier, access, (KInterfaceDesigner::FunctionType)type }; + m_designer->addFunction(formName, f); +} + +void TDevDesignerIntegrationIface::removeFunction( const TQString & formName, TQString returnType, TQString function, TQString specifier, TQString access, uint type ) +{ + KInterfaceDesigner::Function f = {returnType, function, specifier, access, (KInterfaceDesigner::FunctionType)type }; + m_designer->addFunction(formName, f); +} + +void TDevDesignerIntegrationIface::editFunction( const TQString & formName, TQString oldReturnType, TQString oldFunction, TQString oldSpecifier, TQString oldAccess, uint oldType, TQString returnType, TQString function, TQString specifier, TQString access, uint type ) +{ + KInterfaceDesigner::Function fold = {oldReturnType, oldFunction, oldSpecifier, oldAccess, (KInterfaceDesigner::FunctionType)oldType }; + KInterfaceDesigner::Function fnew = {returnType, function, specifier, access, (KInterfaceDesigner::FunctionType)type }; + m_designer->editFunction(formName,fold,fnew); +} + +void TDevDesignerIntegrationIface::openFunction( const TQString & formName, const TQString & functionName ) +{ + m_designer->openFunction(formName,functionName); +} + +void TDevDesignerIntegrationIface::openSource( const TQString & formName ) +{ + m_designer->openSource(formName); +} + + diff --git a/lib/interfaces/tdevdesignerintegrationiface.h b/lib/interfaces/tdevdesignerintegrationiface.h new file mode 100644 index 00000000..0dd6f8d1 --- /dev/null +++ b/lib/interfaces/tdevdesignerintegrationiface.h @@ -0,0 +1,49 @@ +/* I am drunk. + Copyright (C) 2005 Ian Reinhart Geiser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVDESIGNERINTEGRATIONIFACE_H +#define TDEVDESIGNERINTEGRATIONIFACE_H + +#include +class TDevDesignerIntegration; +/** +The dcop interface for GUI designers in KDevelop. + +@author KDevelop Authors +*/ +class TDevDesignerIntegrationIface : public DCOPObject +{ + K_DCOP +public: + TDevDesignerIntegrationIface(TDevDesignerIntegration *p); + + ~TDevDesignerIntegrationIface(); +k_dcop: + void addFunction(const TQString &formName, TQString returnType, TQString function,TQString specifier,TQString access,uint type); + void removeFunction(const TQString &formName, TQString returnType, TQString function,TQString specifier,TQString access,uint type); + void editFunction(const TQString &formName, TQString oldReturnType, TQString oldFunction, + TQString oldSpecifier,TQString oldAccess,uint oldType, + TQString returnType, TQString function,TQString specifier,TQString access,uint type); + void openFunction(const TQString &formName, const TQString &functionName); + void openSource(const TQString &formName); + + private: + TDevDesignerIntegration *m_designer; +}; + +#endif diff --git a/lib/interfaces/tdevgenericfactory.h b/lib/interfaces/tdevgenericfactory.h new file mode 100644 index 00000000..7fdbdb28 --- /dev/null +++ b/lib/interfaces/tdevgenericfactory.h @@ -0,0 +1,91 @@ +/* This file is part of the KDE project + * Copyright (C) 2003 Harald Fernengel + * Copyright (C) 2004 Alexander Dymo + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ +#include +#include + +/** +@file tdevgenericfactory.h +KDevelop generic plugin factory. +*/ + +/** +This class provides a generic implementation of a KLibFactory for +use with TDevelop plugins. +Usually it is convenient to use K_EXPORT_COMPONENT_FACTORY macro +to create factories for TDevelop plugins. For example, for DummyPlugin +the factory can be created (in dummyplugin.cpp file) as: +@code +typedef TDevGenericFactory DummyPluginFactory; +K_EXPORT_COMPONENT_FACTORY(libtdevdummyplugin, DummyPluginFactory( data ) ) +@endcode +Data should be a const static object. This way it complies with the requirements +for data objecs of TDevGenericFactory constructor. + +Important:
+There is no need to create @ref TDEAboutData objects. It is more useful to create +a static const @ref TDevPluginInfo object which can be used also in the constructor +of a plugin. + +For example, dummyplugin.cpp file could contain: +@code +#include + +static const TDevPluginInfo data("KDevDummyPlugin"); +typedef TDevGenericFactory DummyPluginFactory; +K_EXPORT_COMPONENT_FACTORY(libtdevdummyplugin, DummyPluginFactory( data ) ) + +DummyPlugin::DummyPlugin(TQObject *parent, const char *name, const TQStringList & ) + :TDevPlugin(&data, parent, name) +{ +} +@endcode + +In the example above the duplication of information is avoided as same @ref TDevPluginInfo +objects are used for plugin and for plugin factory. This is possible because @ref TDevPluginInfo +class has an operator to cast @ref TDevPluginInfo to @ref TDEAboutData. +*/ +template +class TDevGenericFactory: public KGenericFactory +{ +public: + /**Constructor. + @param data A reference to TDEAboutData with an information about the plugin. + Data should have: + - plugin name as an application name; + - untranslated plugin generic name as a product name; + - license type number. + . + data object should live as long as factory lives.*/ + TDevGenericFactory(TDEAboutData *data) + :KGenericFactory(data->appName()), aboutData(data) + { + } + + /**Creates an instance.*/ + TDEInstance *createInstance() + { + return new TDEInstance(aboutData); + } + +private: + TDEAboutData *aboutData; + +}; + diff --git a/lib/interfaces/tdevlanguagesupport.cpp b/lib/interfaces/tdevlanguagesupport.cpp new file mode 100644 index 00000000..d283a434 --- /dev/null +++ b/lib/interfaces/tdevlanguagesupport.cpp @@ -0,0 +1,166 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001-2002 Bernd Gehrmann + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 Alexander Dymo + Copyright (C) 2003 Amilcar do Carmo Lucas + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "codemodel.h" + +#include + +#include "tdevdesignerintegration.h" +#include "tdevlanguagesupport.h" + +TDevLanguageSupport::TDevLanguageSupport(const TDevPluginInfo *info, TQObject *parent, const char *name) + : TDevPlugin(info, parent, name ? name : "TDevLanguageSupport" ) +{ +} + +TDevLanguageSupport::~TDevLanguageSupport() +{ +} + +TDevLanguageSupport::Features TDevLanguageSupport::features() +{ + return Features(0); +} + +KMimeType::List TDevLanguageSupport::mimeTypes() +{ + return KMimeType::List(); +} + +TQString TDevLanguageSupport::formatTag( const Tag& /*tag*/ ) +{ + return TQString(); +} + +TQString TDevLanguageSupport::formatClassName(const TQString &name) +{ + return name; +} + +TQString TDevLanguageSupport::unformatClassName(const TQString &name) +{ + return name; +} + +bool TDevLanguageSupport::shouldSplitDocument(const KURL &url) +{ + return false; +} + +Qt::Orientation TDevLanguageSupport::splitOrientation() const +{ + return Qt::Vertical; +} + +void TDevLanguageSupport::addClass() +{ +} + +void TDevLanguageSupport::addMethod( ClassDom /*klass*/ ) +{ +} + +void TDevLanguageSupport::implementVirtualMethods( ClassDom /*klass*/ ) +{ +} + +void TDevLanguageSupport::addAttribute( ClassDom /*klass*/ ) +{ +} + +TQStringList TDevLanguageSupport::subclassWidget(const TQString& /*formName*/) +{ + return TQStringList(); +} + +TQStringList TDevLanguageSupport::updateWidget(const TQString& /*formName*/, const TQString& /*fileName*/) +{ + return TQStringList(); +} + +TQString TDevLanguageSupport::formatModelItem( const CodeModelItem *item, bool /*shortDescription*/ ) +{ + return item->name(); +} + +void TDevLanguageSupport::addFunction( DesignerType type, const TQString & formName, Function function ) +{ +// kdDebug() << "TDevLanguageSupport::addFunction: 1" << endl; + TDevDesignerIntegration *designerIntegration = designer(type); +// kdDebug() << "TDevLanguageSupport::addFunction: 2" << endl; + if (!designerIntegration) + { +// kdDebug() << "TDevLanguageSupport::addFunction: x" << endl; + return; + } +// kdDebug() << "TDevLanguageSupport::addFunction: 3" << endl; + designerIntegration->addFunction(formName, function); +// kdDebug() << "TDevLanguageSupport::addFunction: 4" << endl; +} + +void TDevLanguageSupport::editFunction( DesignerType type, const TQString & formName, Function oldFunction, Function function ) +{ + TDevDesignerIntegration *designerIntegration = designer(type); + if (!designerIntegration) + return; + designerIntegration->editFunction(formName, oldFunction, function); +} + +void TDevLanguageSupport::removeFunction( DesignerType type, const TQString & formName, Function function ) +{ + TDevDesignerIntegration *designerIntegration = designer(type); + if (!designerIntegration) + return; + designerIntegration->removeFunction(formName, function); +} + +TDevDesignerIntegration * TDevLanguageSupport::designer( DesignerType // type + ) +{ + return 0; +} + +void TDevLanguageSupport::openFunction( DesignerType type, const TQString & formName, const TQString & functionName ) +{ + TDevDesignerIntegration *designerIntegration = designer(type); + if (!designerIntegration) + return; + designerIntegration->openFunction(formName, functionName); +} + +void TDevLanguageSupport::createAccessMethods( ClassDom // theClass + , VariableDom // theVariable + ) +{ +} + +void TDevLanguageSupport::openSource( DesignerType type, const TQString & formName) +{ + TDevDesignerIntegration *designerIntegration = designer(type); + if (!designerIntegration) + return; + designerIntegration->openSource(formName); +} + +#include "tdevlanguagesupport.moc" diff --git a/lib/interfaces/tdevlanguagesupport.h b/lib/interfaces/tdevlanguagesupport.h new file mode 100644 index 00000000..a1778ff6 --- /dev/null +++ b/lib/interfaces/tdevlanguagesupport.h @@ -0,0 +1,261 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001-2002 Bernd Gehrmann + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 Amilcar do Carmo Lucas + Copyright (C) 2003-2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVLANGUAGESUPPORT_H +#define TDEVLANGUAGESUPPORT_H + +#include +#include +#include +#include "tdevplugin.h" +#include "codemodel.h" +#include + +/** +@file tdevlanguagesupport.h +Interface to programming language specific features. +*/ + +class Tag; +class TDevDesignerIntegration; + +using namespace KInterfaceDesigner; + +/** +KDevelop language support interface - the base class for all programming language support plugins. +Language support is used to load facilities specific to certain programming language. +Language supports are usually loaded among with a project. In this case project file defines +which language support to load. + +Language support plugin is a good place for: +- a language parser which fills memory and persistent symbol store +(see @ref CodeModel and @ref TDevCodeRepository); +- code wizards specific to a programming language (like new class wizard); +- GUI designer integration (see @ref TDevLanguageSupport::designer method +documentation and @ref TDevDesignerIntegration class documentation; +- symbol (class, function, etc.) name formatting to a human-readable convention (pretty +formatted name). +. +*/ +class TDevLanguageSupport: public TDevPlugin +{ + Q_OBJECT + + +public: + + /**Features supported by this language support.*/ + enum Features { + /*features of the language itself*/ + Classes=1 /**loadSettings(*project()->projectDom(), "kdevmylangsupport/designerintegration"); + saveDesignerToCache(type, des); + } + break; + } + return des; + @endcode + @ref ImplementationWidget and @ref TQtDesignerIntegration classes are available + from designerintegration support library. + @param type The type of the designer to integrate. + @return The pointer to designer integration of given type or 0.*/ + virtual TDevDesignerIntegration *designer(KInterfaceDesigner::DesignerType type); + +public slots: + /**Adds a function requested by a GUI designer. No need to reimplement this slot + unless you want to use specific implementation of TDevDesignerIntegration interface. + @param type The type of integrated designer. + @param formName The name of a GUI form. + @param function The function to implement (add).*/ + void addFunction(DesignerType type, const TQString &formName, Function function); + + /**Removes a function requested by a GUI designer. No need to reimplement this slot + unless you want to use specific implementation of TDevDesignerIntegration interface. + @param type The type of integrated designer. + @param formName The name of a GUI form. + @param function The function to remove.*/ + void removeFunction(DesignerType type, const TQString &formName, Function function); + + /**Edits a function requested by a GUI designer. No need to reimplement this slot + unless you want to use specific implementation of TDevDesignerIntegration interface. + @param type The type of integrated designer. + @param formName The name of a GUI form. + @param oldFunction The old function signature before editing. + @param function The new function signature after editing.*/ + void editFunction(DesignerType type, const TQString &formName, Function oldFunction, Function function); + + /**Opens a function requested by a GUI designer. No need to reimplement this slot + unless you want to use specific implementation of TDevDesignerIntegration interface. + @param type The type of integrated designer. + @param formName The name of a GUI form. + @param functionName The name of a function to seek in the code for.*/ + void openFunction(DesignerType type, const TQString &formName, const TQString &functionName); + + /**Opens a form source requested by a GUI designer. No need to reimplement this slot + unless you want to use specific implementation of TDevDesignerIntegration interface. + @param type The type of integrated designer. + @param formName The name of a GUI form.*/ + void openSource(DesignerType type, const TQString &formName); + +signals: + /**Emitted when the content of the memory symbol store has been modified.*/ + void updatedSourceInfo(); + + /**Emitted before removing the file from the memory symbol store.*/ + void aboutToRemoveSourceInfo(const TQString& fileName); + + /**Emitted when a file has been removed from the memory symbol store.*/ + void removedSourceInfo(const TQString& fileName); + + /**Emitted when a file has been added to the memory symbol store.*/ + void addedSourceInfo( const TQString& fileName ); + + /**Emitted when the language part changes the Split View orientation.*/ + void splitOrientationChanged( Qt::Orientation orientation ); +}; + +#endif diff --git a/lib/interfaces/tdevmainwindow.cpp b/lib/interfaces/tdevmainwindow.cpp new file mode 100644 index 00000000..e73250e9 --- /dev/null +++ b/lib/interfaces/tdevmainwindow.cpp @@ -0,0 +1,28 @@ +/* This file is part of the KDE project + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 John Firebaugh + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevmainwindow.h" + +#include +#include + +KStatusBar *TDevMainWindow::statusBar() +{ + return main()->statusBar(); +} diff --git a/lib/interfaces/tdevmainwindow.h b/lib/interfaces/tdevmainwindow.h new file mode 100644 index 00000000..83aef3b0 --- /dev/null +++ b/lib/interfaces/tdevmainwindow.h @@ -0,0 +1,101 @@ +/* This file is part of the KDE project + Copyright (C) 2003 F@lk Brettschneider + Copyright (C) 2003 John Firebaugh + Copyright (C) 2003 Amilcar do Carmo Lucas + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEV_MAINWINDOW_H +#define TDEV_MAINWINDOW_H + +#include + +class TQWidget; +class KStatusBar; +class TDEMainWindow; + +/** +@file tdevmainwindow.h +KDevelop main window interface. +*/ + +/** +KDevelop main window interface. +Provides methods to control the main window of an application. +*/ +class TDevMainWindow +{ +public: + /**Destroys the main window*/ + virtual ~TDevMainWindow() {} // must be virtual! + + /**Embeds a view of a part into the main window. + @param view The view to embed. Must be a KPart. + @param title The title of a view. + @param toolTip The tooltip of a view.*/ + virtual void embedPartView(TQWidget *view, const TQString &title, const TQString& toolTip = TQString()) = 0; + + /**Embeds a toolview at the left of the main window. + @param view The view to embed. Must be a KPart. + @param title The title of a view. + @param toolTip The tooltip of a view.*/ + virtual void embedSelectView(TQWidget *view, const TQString &title, const TQString &toolTip) = 0; + + /**Embeds a toolview at the bottom of the main window. + @param view The view to embed. Must be a KPart. + @param title The title of a view. + @param toolTip The tooltip of a view.*/ + virtual void embedOutputView(TQWidget *view, const TQString &title, const TQString &toolTip) = 0; + + /**Embeds a toolview at the right of the main window. + @param view The view to embed. Must be a KPart. + @param title The title of a view. + @param toolTip The tooltip of a view.*/ + virtual void embedSelectViewRight(TQWidget* view, const TQString& title, const TQString &toolTip) = 0; + + /**Removes a view from the main window. + @param view The view to remove.*/ + virtual void removeView(TQWidget *view) = 0; + + /**Shows or hides a view. + @param pView The view to show or hide. + @param bEnabled true if view should be shown, false it it is not.*/ + virtual void setViewAvailable(TQWidget *pView, bool bEnabled) = 0; + + /**Raises a view (shows it if it was minimized). + @param view The view to be raised.*/ + virtual void raiseView(TQWidget *view) = 0; + + /**Minimize a view. + @param view The view to be lowered.*/ + virtual void lowerView(TQWidget *view) = 0; + + /**Loads main window settings.*/ + virtual void loadSettings() = 0; + + /**Sets the current document's caption, if applicable. + @param caption the caption to set.*/ + virtual void setCurrentDocumentCaption( const TQString &caption ) = 0; + + /**@return TDEMainWindow object which actually represents the main window.*/ + virtual TDEMainWindow *main() = 0; + + /**@return KStatusBar object which actually represents the status bar in the main window.*/ + KStatusBar *statusBar(); +}; + +#endif diff --git a/lib/interfaces/tdevpartcontroller.cpp b/lib/interfaces/tdevpartcontroller.cpp new file mode 100644 index 00000000..e718ecf4 --- /dev/null +++ b/lib/interfaces/tdevpartcontroller.cpp @@ -0,0 +1,30 @@ +/* This file is part of the KDE project + Copyright (C) 2002 Matthias Hoelzer-Kluepfel + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "TDevPartControllerIface.h" +#include "tdevpartcontroller.h" +#include "katedocumentmanagerinterface.h" + +TDevPartController::TDevPartController(TQWidget *parent) + : KParts::PartManager(parent) +{ + new TDevPartControllerIface(this); + new KateDocumentManagerInterface(this); +} + +#include "tdevpartcontroller.moc" diff --git a/lib/interfaces/tdevpartcontroller.h b/lib/interfaces/tdevpartcontroller.h new file mode 100644 index 00000000..2bb593e6 --- /dev/null +++ b/lib/interfaces/tdevpartcontroller.h @@ -0,0 +1,176 @@ +/* This file is part of the KDE project + Copyright (C) 2002 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Bernd Gehrmann + Copyright (C) 2003 Roberto Raggi + Copyright (C) 2003 Hamish Rodda + Copyright (C) 2003 Harald Fernengel + Copyright (C) 2003 Jens Dagerbo + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEV_PARTCONTROLLER_H +#define TDEV_PARTCONTROLLER_H + +#include +#include +#include + +/** +@file tdevpartcontroller.h +KDevelop part controller interface. +*/ + +namespace KParts +{ + class ReadOnlyPart; +} + +/**Document state enum.*/ +enum DocumentState +{ + Clean, /** + Copyright (C) 2002 Matthias Hoelzer-Kluepfel + Copyright (C) 2002 Harald Fernengel + Copyright (C) 2002 F@lk Brettschneider + Copyright (C) 2003 Julian Rockey + Copyright (C) 2003 Roberto Raggi + Copyright (C) 2003 Jens Dagerbo + Copyright (C) 2003 Mario Scalas + Copyright (C) 2003-2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevplugin.h" + +#include "tdevapi.h" +#include "tdevcore.h" +#include "tdevplugininfo.h" +#include "tdevpartcontroller.h" +#include "tdevplugincontroller.h" + +#include +#include +#include + +#include +#include + +#include + +/////////////////////////////////////////////////////////////////////////////// +// struct TDevPlugin::Private +/////////////////////////////////////////////////////////////////////////////// + +struct TDevPlugin::Private +{ + const TDevPluginInfo *info; +}; + +/////////////////////////////////////////////////////////////////////////////// +// class TDevPlugin +/////////////////////////////////////////////////////////////////////////////// + +TDevPlugin::TDevPlugin(const TDevPluginInfo *info, TQObject *parent, const char *name) + :TQObject(parent, name), d(new Private) +{ + assert(parent->inherits( "TDevApi" )); + m_api = static_cast( parent ); + + actionCollection()->setHighlightingEnabled( true ); + + d->info = info; + TDEGlobal::iconLoader()->addAppDir("tdevelop"); +} + +TDevPlugin::~TDevPlugin() +{ + delete( d ); +} + +TDevMainWindow *TDevPlugin::mainWindow() +{ + return m_api->mainWindow(); +} + +TDevCore *TDevPlugin::core() const +{ + return m_api->core(); +} + +TDevProject *TDevPlugin::project() const +{ + return m_api->project(); +} + +CodeModel *TDevPlugin::codeModel() const +{ + return m_api->codeModel(); +} + +TQDomDocument *TDevPlugin::projectDom() const +{ + return m_api->projectDom(); +} + +TDevLanguageSupport *TDevPlugin::languageSupport() const +{ + return m_api->languageSupport(); +} + +TDevPartController *TDevPlugin::partController() const +{ + return m_api->partController(); +} + +TDevPluginController *TDevPlugin::pluginController() const +{ + return m_api->pluginController(); +} + +void TDevPlugin::restorePartialProjectSession(const TQDomElement* /*el*/) +{ + // there's still nothing to do in the base class +} + +void TDevPlugin::savePartialProjectSession(TQDomElement* /*el*/) +{ + // there's still nothing to do in the base class +} + +TDevCodeRepository * TDevPlugin::codeRepository() const +{ + return m_api->codeRepository(); +} + +TDevPlugin * TDevPlugin::extension_internal(const TQString &serviceType, const TQString &constraint) +{ + return m_api->pluginController()->extension(serviceType, constraint); +} + +const TDevPluginInfo *TDevPlugin::info() +{ + return d->info; +} + +#include "tdevplugin.moc" diff --git a/lib/interfaces/tdevplugin.h b/lib/interfaces/tdevplugin.h new file mode 100644 index 00000000..eaa66146 --- /dev/null +++ b/lib/interfaces/tdevplugin.h @@ -0,0 +1,201 @@ +/* This file is part of the KDE project + Copyright (C) 1999-2001 Bernd Gehrmann + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVPLUGIN_H +#define TDEVPLUGIN_H + +#include +#include +#include "tdevapi.h" + +class TDevCore; +class TDevProject; +class TDevVersionControl; +class TDevLanguageSupport; +class TDevPartController; +class TDevMainWindow; +class TDevCodeRepository; +class CodeModel; +class TDevPluginInfo; +class TQDomElement; + +/** +@file tdevplugin.h +TDevelop plugin interface. +*/ + +/**Current TDevelop plugin interface version. Interfaces declare plugin version to make sure +old source (or binary) incompatible plugins are not loaded. Increase this if +it is necessary that old plugins stop working.*/ +#define TDEVELOP_PLUGIN_VERSION 5 + +/** +The base class for all TDevelop plugins. +Plugin is a component which is loaded into TDevelop shell at startup or by request. +Each plugin should have corresponding .desktop file with a description. +.desktop file template looks like: +@code +[Desktop Entry] +Encoding=UTF-8 +Type=Service +Name= +GenericName= +Comment= +Icon= +X-TDevelop-Plugin-Version= +X-TDevelop-Plugin-Homepage= +X-TDevelop-Plugin-BugsEmailAddress= +X-TDevelop-Plugin-Copyright= +X-TDE-Library= +X-TDevelop-Version= +X-TDevelop-Scope= +X-TDevelop-Properties= +X-TDevelop-Args= +@endcode +Description of parameters in .desktop file: +- Name is a non-translatable name of a plugin, it is used in TDETrader queries +to search for a plugin (required); +- GenericName is a translatable name of a plugin, it is used to show +plugin names in GUI (required); +- Comment is a short description about the plugin (optional); +- Icon is a plugin icon (preferred); +- X-TDevelop-Plugin-Version is a version of a plugin (optional); +- X-TDevelop-Plugin-Homepage is a home page of a plugin (optional); +- X-TDevelop-Plugin-License is a license (optional). can be: GPL, LGPL, BSD, Artistic, +TQPL or Custom. If this property is not set, license is considered as unknown; +- X-TDevelop-Plugin-BugsEmailAddress is an email address for bug reports (optional); +- X-TDevelop-Plugin-Copyright is a copyright statement (optional); +- X-TDE-Library is a name of library which contains the plugin (required); +- X-TDevelop-Version is a version of TDevelop interfaces which is supported by the plugin (required); +- X-TDevelop-Scope is a scope of a plugin (see below for explanation) (required); +- X-TDevelop-Args is a list of additional arguments passed to plugins constructor (optional); +- X-TDevelop-Properties is a list of properties which this plugin supports, see @ref Profile class documentation for explanation (required to work with shells that support profiles). +. +Plugin scope can be either: +- Core +- Global +- Project +. +Global plugins are plugins which require only shell to be loaded and do not operate on @ref TDevProject interface and/or do not use project wide information.\n +Core plugins are global plugins which offer some important "core" functionality and thus +are not selectable by user in plugin configuration pages.\n +Project plugins require a project to be loaded and are usually loaded/unloaded among with the project. +If your plugin use @ref TDevProject interface and/or operate on project-related information then this is the project plugin. + +@sa TDevGenericFactory class documentation for an information about plugin instantiation +and writing factories for plugins. + +@sa TDevCore class documentation for an information about features which are available to plugins +from shell applications. +*/ +class TDevPlugin: public TQObject, public KXMLGUIClient +{ + Q_OBJECT + + +public: + /**Constructs a plugin. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + TDevPlugin(const TDevPluginInfo *info, TQObject *parent, const char *name = 0); + + /**Destructs a plugin.*/ + virtual ~TDevPlugin(); + + /**Provides an information about the plugin. + @return TDEAboutData object which was initialized in the constructor.*/ + const TDevPluginInfo* info(); + + /**@return A reference to the toplevel widget.*/ + TDevMainWindow *mainWindow(); + + /**@return A reference to the application core - an object which provides + basic functionalities for inter-parts communications / cooperation.*/ + TDevCore *core() const; + + /**@return A reference to the current project component or 0 if no project is loaded.*/ + TDevProject *project() const; + + /**@return A reference to the language support component or 0 if no support available.*/ + TDevLanguageSupport *languageSupport() const; + + /**@return A reference to the memory symbol store.*/ + CodeModel *codeModel() const; + + /**@return A reference to the DOM tree that represents the project file or 0 if no project is loaded.*/ + TQDomDocument *projectDom() const; + + /**@return A reference to the part controller which is used to manipulate loaded KParts.*/ + TDevPartController *partController() const; + + /**@return A reference to the plugin controller which is used to manipulate loaded plugin.*/ + virtual TDevPluginController *pluginController() const; + + /**@return A reference to the code repository (accessor to persistent symbol stores).*/ + TDevCodeRepository* codeRepository() const; + + /**Queries for the plugin which supports given service type (such plugins are called extensions in KDevelop). + All already loaded plugins will be queried and the first loaded one to support + the service type will be returned. Any plugin can be an extension, only "ServiceTypes=..." + entry is required in .desktop file for that plugin. + + Template argument is used as a type to cast the result to. This is done because extension + is usually derived from a certain base class and not directly from TDevPlugin. + @param serviceType The service type of an extension (like "TDevelop/SourceFormatter"). + @param constraint The constraint which is applied when quering for the service. This + constraint is a usual TDETrader constraint statement (like "[X-TDevelop-Foo]=='MyFoo'"). + @return A KDevelop extension plugin for given service type or 0 if no plugin supports it*/ + template + Extension *extension(const TQString &serviceType, const TQString &constraint = "") + { + return static_cast(extension_internal(serviceType, constraint)); + } + + /**Override this base class method to restore any settings which differs from project to project. + Data can be read from a certain subtree of the project session file. + During project loading, respectively project session (.kdevses) loading, + this method will be called to give a chance to adapt the plugin to + the newly loaded project. For instance, the debugger plugin might restore the + list of breakpoints from the previous debug session for the certain project. + @note Take attention to the difference to common not-project-related session stuff. + They belong to the application rc file (tdeveloprc) + @note Project session file is useful for settings which cannot be shared between + developers. If a setting should be shared, modify projectDom instead. + @param el The parent DOM element for plugins session settings.*/ + virtual void restorePartialProjectSession(const TQDomElement* el); + + /**Saves session settings. + @sa restorePartialProjectSession - this is the other way round, the same just for saving.*/ + virtual void savePartialProjectSession(TQDomElement* el); + +private: + TDevPlugin *extension_internal(const TQString &serviceType, const TQString &constraint = ""); + + TDevApi *m_api; + class Private; + Private *d; +}; + +#endif diff --git a/lib/interfaces/tdevplugincontroller.cpp b/lib/interfaces/tdevplugincontroller.cpp new file mode 100644 index 00000000..bf1eb5e7 --- /dev/null +++ b/lib/interfaces/tdevplugincontroller.cpp @@ -0,0 +1,49 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevplugincontroller.h" + +#include "tdevplugin.h" + +TDevPluginController::TDevPluginController() +{ +} + +TDETrader::OfferList TDevPluginController::query(const TQString &serviceType, + const TQString &constraint) +{ + return TDETrader::self()->query(serviceType, + TQString("%1 and [X-TDevelop-Version] == %2").arg(constraint).arg(TDEVELOP_PLUGIN_VERSION)); +} + +TDETrader::OfferList TDevPluginController::queryPlugins(const TQString &constraint) +{ + return query("TDevelop/Plugin", constraint); +} + +KURL::List TDevPluginController::profileResources(const TQString &/*nameFilter*/) +{ + return KURL::List(); +} + +KURL::List TDevPluginController::profileResourcesRecursive(const TQString &/*nameFilter*/) +{ + return KURL::List(); +} + +#include "tdevplugincontroller.moc" diff --git a/lib/interfaces/tdevplugincontroller.h b/lib/interfaces/tdevplugincontroller.h new file mode 100644 index 00000000..ee44764d --- /dev/null +++ b/lib/interfaces/tdevplugincontroller.h @@ -0,0 +1,119 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVPLUGINCONTROLLER_H +#define TDEVPLUGINCONTROLLER_H + +#include + +#include +#include + +/** +@file tdevplugincontroller.h +TDevelop plugin controller interface. +*/ + +class TDevPlugin; +class ProfileEngine; + +/** +The base class for TDevelop plugin controller. +Plugin controller is responsible for quering, loading and unloading available plugins. +*/ +class TDevPluginController: public TQObject +{ + Q_OBJECT + +public: + + /** + * Returns a uniquely specified plugin. If it isn't already loaded, it will be. + * Use with caution! See extension for parameter details. + */ + virtual TDevPlugin * loadPlugin( const TQString & serviceType, const TQString & constraint ) = 0; + + /** + * Unloads the plugin specified by @p plugin + * @param plugin The plugin desktopEntryName of the plugin to unload + */ + virtual void unloadPlugin( const TQString & plugin ) = 0; + + /**Unloads plugins specified by @p list. + @param list The list of plugin names to unload. plugin name corresponds + to the "Name" property in plugin .desktop file.*/ + virtual void unloadPlugins(TQStringList const &list) = 0; + + /**@return The list of currently loaded plugins.*/ + virtual const TQValueList loadedPlugins() = 0; + + /**Queries for the plugin which supports given service type. + All already loaded plugins will be queried and the first one to support the service type + will be returned. Any plugin can be an extension, only "ServiceTypes=..." entry is + required in .desktop file for that plugin. + @param serviceType The service type of an extension (like "TDevelop/SourceFormatter") + @param constraint The constraint which is applied when quering for the service. This + constraint is a usual TDETrader constraint statement (like "[X-TDevelop-Foo]=='MyFoo'"). + @return A KDevelop extension plugin for given service type or 0 if no plugin supports it*/ + virtual TDevPlugin *extension(const TQString &serviceType, const TQString &constraint = "") = 0; + + /**Queries KDevelop services. Version is checked automatically + by adding proper X-TDevelop-Version=N statement into the query. + @param serviceType The service type to query, for example "TDevelop/Plugin" or + "TDevelop/SourceFormatter." + @param constraint A constraint for the service. Do not include plugin version number - it + is done automatically. + @return The list of plugin offers.*/ + static TDETrader::OfferList query(const TQString &serviceType, const TQString &constraint); + + /**Queries TDevelop plugins. Works like + TDevPluginController::query with serviceType set to "TDevelop/Plugin". + @param constraint A constraint for the service. Do not include plugin version number - it + is done automatically. + @return The list of plugin offers.*/ + static TDETrader::OfferList queryPlugins(const TQString &constraint); + + /**Reimplement this function only if your shell supports plugin profiles. + @return The list of URLs to the profile resources (files) with given @p extension. + @param nameFilter Name filter for files. @see TQDir::setNameFilter documentation + for name filters syntax.*/ + virtual KURL::List profileResources(const TQString &nameFilter); + + /**Reimplement this function only if your shell supports plugin profiles. + @return The list of URLs to the resources (files) with given @p extension. + This list is obtained by a recursive search that process given profile + and all it's subprofiles. + @param nameFilter Name filter for files. @see TQDir::setNameFilter documentation + for name filters syntax.*/ + virtual KURL::List profileResourcesRecursive(const TQString &nameFilter); + + /** @return The current Profile Engine */ + virtual ProfileEngine &engine() = 0; + +signals: + /**Emitted when a plugin profile was changed (reloaded, other profile opened, etc.). + Should work only on shells with plugin profiles support.*/ + void profileChanged(); + +protected: + /**Constructor.*/ + TDevPluginController(); + +}; + +#endif diff --git a/lib/interfaces/tdevplugininfo.cpp b/lib/interfaces/tdevplugininfo.cpp new file mode 100644 index 00000000..2f607431 --- /dev/null +++ b/lib/interfaces/tdevplugininfo.cpp @@ -0,0 +1,181 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#include "tdevplugininfo.h" + +#include + +#include +#include + +#include "tdevplugincontroller.h" + +struct TDevPluginInfo::Private { + TQString m_pluginName; + TQString m_rawGenericName; + + TQString m_genericName; + TQString m_description; + TQString m_icon; + + TQString m_version; + int m_licenseType; + TQString m_copyrightStatement; + TQString m_homePageAddress; + TQString m_bugsEmailAddress; + + TQValueList m_authors; + TQValueList m_credits; + + TDEAboutData *m_data; +}; + + +TDevPluginInfo::TDevPluginInfo(const TQString &pluginName) + :d(new Private()) +{ + d->m_pluginName = pluginName; + + KService::Ptr offer = KService::serviceByDesktopName(pluginName); + if (offer != 0) + { + d->m_genericName = offer->genericName(); + d->m_icon = offer->icon(); + d->m_description = offer->comment(); + + d->m_rawGenericName = offer->untranslatedGenericName(); + + d->m_version = offer->property("X-TDevelop-Plugin-Version").toString(); + d->m_homePageAddress = offer->property("X-TDevelop-Plugin-Homepage").toString(); + d->m_bugsEmailAddress = offer->property("X-TDevelop-Plugin-BugsEmailAddress").toString(); + d->m_copyrightStatement = offer->property("X-TDevelop-Plugin-Copyright").toString(); + + TQString lic = offer->property("X-TDevelop-Plugin-License").toString(); + if (lic == "GPL") + d->m_licenseType = TDEAboutData::License_GPL; + else if (lic == "LGPL") + d->m_licenseType = TDEAboutData::License_LGPL; + else if (lic == "BSD") + d->m_licenseType = TDEAboutData::License_BSD; + else if (lic == "QPL") + d->m_licenseType = TDEAboutData::License_QPL; + else if (lic == "Artistic") + d->m_licenseType = TDEAboutData::License_Artistic; + else if (lic == "Custom") + d->m_licenseType = TDEAboutData::License_Custom; + else + d->m_licenseType = TDEAboutData::License_Unknown; + + d->m_data = new TDEAboutData(d->m_pluginName.ascii(), d->m_rawGenericName.ascii(), "1", 0, d->m_licenseType); + } + else + kdDebug() << "Unable to load information for plugin: " << pluginName + << ". Check if " << pluginName << ".desktop exists." << endl; +} + + +TDevPluginInfo::operator TDEAboutData *() const +{ + return d->m_data; +} + +TQString TDevPluginInfo::pluginName() const +{ + return d->m_pluginName; +} + +TQString TDevPluginInfo::genericName() const +{ + return d->m_genericName; +} + +TQString TDevPluginInfo::icon() const +{ + return d->m_icon; +} + +TQString TDevPluginInfo::description() const +{ + return d->m_description; +} + +TQString TDevPluginInfo::version() const +{ + return d->m_version; +} + +int TDevPluginInfo::licenseType() const +{ + return d->m_licenseType; +} + +TQString TDevPluginInfo::license() const +{ + TDevPluginInfo &info = *const_cast(this); +// return TDEAboutData(info).license(); + TDEAboutData *data = info; + return data->license(); +} + +TQString TDevPluginInfo::copyrightStatement() const +{ + return d->m_copyrightStatement; +} + +TQString TDevPluginInfo::homePageAddress() const +{ + return d->m_homePageAddress; +} + +TQString TDevPluginInfo::bugsEmailAddress() const +{ + return d->m_bugsEmailAddress; +} + +TQVariant TDevPluginInfo::property(const TQString &name) const +{ + TDETrader::OfferList offers = TDevPluginController::queryPlugins(TQString("Name='%1'").arg(d->m_pluginName)); + if (offers.count() == 1) + return offers.first()->property(name); + return TQVariant(); +} + +TQVariant TDevPluginInfo::operator [](const TQString &name) const +{ + return property(name); +} + +TQStringList TDevPluginInfo::propertyNames( ) const +{ + TDETrader::OfferList offers = TDevPluginController::queryPlugins(TQString("Name='%1'").arg(d->m_pluginName)); + if (offers.count() == 1) + return offers.first()->propertyNames(); + return TQStringList(); +} + +void TDevPluginInfo::addAuthor(const char *name, const char *task, + const char *emailAddress, const char *webAddress) +{ + d->m_authors.append(TDEAboutPerson(name, task, emailAddress, webAddress)); +} + +void TDevPluginInfo::addCredit(const char *name, const char *task, + const char *emailAddress, const char *webAddress) +{ + d->m_credits.append(TDEAboutPerson(name, task, emailAddress, webAddress)); +} diff --git a/lib/interfaces/tdevplugininfo.h b/lib/interfaces/tdevplugininfo.h new file mode 100644 index 00000000..419d61aa --- /dev/null +++ b/lib/interfaces/tdevplugininfo.h @@ -0,0 +1,111 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVPLUGININFO_H +#define TDEVPLUGININFO_H + +#include + +#include + +/** +@file tdevplugininfo.h +TDevelop plugin information container class. +*/ + +/** +Information about TDevelop plugin. +It uses plugin name to query plugin .desktop files and +retrieve most information. Names of authors and credits to other people +must be added manually using TDevPluginInfo::addAuthor and TDevPluginInfo::addCredit +methods. +@sa TDevPlugin class documentation for more information about .desktop files. +*/ +class TDevPluginInfo +{ +public: + /**Constructor. + @param pluginName A name of a plugin. Must be the same as the name of a .desktop file + and the same as the location of plugin resource files.*/ + TDevPluginInfo(const TQString &pluginName); + + /**Casts TDevPluginInfo to TDEAboutData. Uses TDevPluginInfo::pluginName as TDEAboutData::appName, + TDevPluginInfo::rawGenericName as TDEAboutData::programName TDevPluginInfo::licenseType as TDEAboutData::licenseType. Other parameters are ignored.*/ + operator TDEAboutData*() const; + + /**@return A name of a plugin (always untranslated).*/ + TQString pluginName() const; + /**@return A generic name of a plugin (translated). Use this in GUI. Information is taken from .desktop file.*/ + TQString genericName() const; + /**@return An icon name of a plugin. Information is taken from .desktop file.*/ + TQString icon() const; + /**@return A description of a plugin. Information is taken from .desktop file.*/ + TQString description() const; + /**@return A version of a plugin. Information is taken from .desktop file.*/ + TQString version() const; + /**@return A license type of a plugin. Information is taken from .desktop file.*/ + int licenseType() const; + /**@return A license text for known license types (GPL, LGPL, BSD, Artistic, TQPL).*/ + TQString license() const; + /**@return A copyright statement of a plugin. Information is taken from .desktop file.*/ + TQString copyrightStatement() const; + /**@return A home page of a plugin. Information is taken from .desktop file.*/ + TQString homePageAddress() const; + /**@return A email address for bugs of a plugin. Information is taken from .desktop file.*/ + TQString bugsEmailAddress() const; + + /**@param name The name of a property. + @return Any property value which exists in .desktop file.*/ + TQVariant property(const TQString &name) const; + /**@param name The name of a property. + @return Any property value which exists in .desktop file.*/ + TQVariant operator [] (const TQString &name) const; + /**@return A list of property names set in .desktop file.*/ + TQStringList propertyNames() const; + + /**@return A list of plugin authors.*/ + const TQValueList authors() const; + /**@return A list of other plugin contributors.*/ + const TQValueList credits() const; + + /**Adds an author to the list of authors. + You can call this function as many times you need. Each entry is appended to a list. + @param name The developer's name in UTF-8 encoding. + @param task What the person is responsible for. This text can contain newlines. It should be marked for translation like this: I18N_NOOP("Task description..."). Can be 0. + @param emailAddress An Email address where the person can be reached. Can be 0. + @param webAddress The person's homepage or a relevant link. Start the address with "http://". "http://some.domain" is correct, "some.domain" is not. Can be 0.*/ + void addAuthor(const char *name, const char *task, + const char *emailAddress = 0, const char *webAddress = 0); + /**Adds a contributor to the list of contributors. + You can call this function as many times you need. Each entry is appended to a list. + @param name The developer's name in UTF-8 encoding. + @param task What the person is responsible for. This text can contain newlines. It should be marked for translation like this: I18N_NOOP("Task description..."). Can be 0. + @param emailAddress An Email address where the person can be reached. Can be 0. + @param webAddress The person's homepage or a relevant link. Start the address with "http://". "http://some.domain" is correct, "some.domain" is not. Can be 0.*/ + void addCredit(const char *name, const char *task = 0, + const char *emailAddress = 0, const char *webAddress = 0); + +private: + /**Returns the untranslated generic name of a plugin as set in .desktop file.*/ + const char *rawGenericName() const; + + class Private; + Private *d; +}; + +#endif diff --git a/lib/interfaces/tdevproject.cpp b/lib/interfaces/tdevproject.cpp new file mode 100644 index 00000000..77136ca0 --- /dev/null +++ b/lib/interfaces/tdevproject.cpp @@ -0,0 +1,164 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2003 Jens Dagerbo + Copyright (C) 2003 Mario Scalas + Copyright (C) 2003-2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include + +#include "tdevproject.h" +#include +#include +#include +#include "tdevprojectiface.h" + +struct TDevProject::Private { + TQMap m_absToRel; + TQStringList m_symlinkList; + TQTimer *m_timer; + TDevProjectIface *m_iface; +}; + +TDevProject::TDevProject(const TDevPluginInfo *info, TQObject *parent, const char *name) + : TDevPlugin(info, parent, name), d(new TDevProject::Private()) +{ + connect( this, TQT_SIGNAL(addedFilesToProject(const TQStringList& )), this, TQT_SLOT(buildFileMap()) ); + connect( this, TQT_SIGNAL(removedFilesFromProject(const TQStringList& )), this, TQT_SLOT(buildFileMap()) ); + + connect( this, TQT_SIGNAL(addedFilesToProject(const TQStringList& )), this, TQT_SLOT(slotAddFilesToFileMap(const TQStringList& )) ); + connect( this, TQT_SIGNAL(removedFilesFromProject(const TQStringList& )), this, TQT_SLOT(slotRemoveFilesFromFileMap(const TQStringList& )) ); + + d->m_timer = new TQTimer(this); + connect(d->m_timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotBuildFileMap())); + d->m_iface = new TDevProjectIface(this); +} + +TDevProject::~TDevProject() +{ + d->m_timer->stop(); + delete d->m_iface; + delete d->m_timer; + delete d; +} + +void TDevProject::changedFile( const TQString & fileName ) +{ + TQStringList fileList; + fileList.append ( fileName ); + + emit changedFilesInProject( fileList ); + +} + +void TDevProject::changedFiles( const TQStringList & fileList ) +{ + emit changedFilesInProject( fileList ); +} + +TDevProject::Options TDevProject::options() const +{ + return (TDevProject::Options)0; +} + +bool TDevProject::isProjectFile( const TQString & absFileName ) +{ + return d->m_absToRel.contains( absFileName ); +} + +TQString TDevProject::relativeProjectFile( const TQString & absFileName ) +{ + if( isProjectFile(absFileName) ) + return d->m_absToRel[ absFileName ]; + return TQString(); +} + +void TDevProject::buildFileMap() +{ + d->m_timer->stop(); + d->m_timer->start(0, true); +} + +void TDevProject::slotBuildFileMap() +{ + kdDebug(9000) << k_funcinfo << endl; + + d->m_absToRel.clear(); + d->m_symlinkList.clear(); + const TQStringList fileList = allFiles(); + for( TQStringList::ConstIterator it=fileList.begin(); it!=fileList.end(); ++it ) + { + TQFileInfo fileInfo( projectDirectory() + "/" + *it ); + d->m_absToRel[ URLUtil::canonicalPath(fileInfo.absFilePath()) ] = *it; + + if ( URLUtil::canonicalPath( fileInfo.absFilePath() ) != fileInfo.absFilePath() ) + { + d->m_symlinkList << *it; + } + } +} + +void TDevProject::openProject( const TQString & /*dirName*/, const TQString & /*projectName*/ ) +{ + buildFileMap(); +} + +TQStringList TDevProject::symlinkProjectFiles( ) +{ + return d->m_symlinkList; +} + +TQString TDevProject::defaultRunDirectory(const TQString& projectPluginName) const +{ + return DomUtil::readEntry(*projectDom(), "/" + projectPluginName + "/run/globalcwd"); +} + +void TDevProject::slotAddFilesToFileMap( const TQStringList & fileList ) +{ + TQStringList::ConstIterator it = fileList.begin(); + while( it != fileList.end() ) + { + TQFileInfo fileInfo( projectDirectory() + "/" + *it ); + d->m_absToRel[ URLUtil::canonicalPath(fileInfo.absFilePath()) ] = *it; + + if ( URLUtil::canonicalPath( fileInfo.absFilePath() ) != fileInfo.absFilePath() ) + { + d->m_symlinkList << *it; + } + + ++it; + } +} + +void TDevProject::slotRemoveFilesFromFileMap( const TQStringList & fileList ) +{ + TQStringList::ConstIterator it = fileList.begin(); + while( it != fileList.end() ) + { + TQFileInfo fileInfo( projectDirectory() + "/" + *it ); + d->m_absToRel.remove( URLUtil::canonicalPath(fileInfo.absFilePath()) ); + + d->m_symlinkList.remove( *it ); + + ++it; + } +} + +#include "tdevproject.moc" diff --git a/lib/interfaces/tdevproject.h b/lib/interfaces/tdevproject.h new file mode 100644 index 00000000..fa320edf --- /dev/null +++ b/lib/interfaces/tdevproject.h @@ -0,0 +1,219 @@ +/* This file is part of the KDE project + Copyright (C) 2001 Matthias Hoelzer-Kluepfel + Copyright (C) 2001-2002 Bernd Gehrmann + Copyright (C) 2002-2003 Roberto Raggi + Copyright (C) 2002 Simon Hausmann + Copyright (C) 2003 Jens Dagerbo + Copyright (C) 2003 Mario Scalas + Copyright (C) 2003-2004 Alexander Dymo + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVPROJECT_H +#define TDEVPROJECT_H + +#include "tdevplugin.h" +#include "domutil.h" + +#include +#include + +/** +@file tdevproject.h +KDevelop project interface. +*/ + +class TQTimer; + +/** +KDevelop project interface. +Plugins implementing the TDevProject interfaces are used to manage projects. + +Project can be considered as a way of grouping files (in text editors) or +as a way of providing support for a build system (like it is done in TDevelop IDE buildtools). +*/ +class TDevProject: public TDevPlugin +{ + Q_OBJECT + +public: + /**Constructs a project plugin. + @param info Important information about the plugin - plugin internal and generic + (GUI) name, description, a list of authors, etc. That information is used to show + plugin information in various places like "about application" dialog, plugin selector + dialog, etc. Plugin does not take ownership on info object, also its lifetime should + be equal to the lifetime of the plugin. + @param parent The parent object for the plugin. Parent object must implement @ref TDevApi + interface. Otherwise the plugin will not be constructed. + @param name The internal name which identifies the plugin.*/ + TDevProject(const TDevPluginInfo *info, TQObject *parent=0, const char *name=0); + /**Destructor.*/ + virtual ~TDevProject(); + + /**Options of the project plugin.*/ + enum Options { + UsesOtherBuildSystem = 0 /**/run/directoryradio == executable + * The directory where the executable is. + * if //run/directoryradio == build + * The build directory. + * if /kdevautoproject/run/directoryradio == custom + * The custom directory absolute path. + * Derived classes are supposed to explicitly call this implementation + */ + TQString defaultRunDirectory(const TQString& projectPluginName) const; + +private slots: + void buildFileMap(); + void slotBuildFileMap(); + void slotAddFilesToFileMap(const TQStringList & fileList ); + void slotRemoveFilesFromFileMap(const TQStringList & fileList ); + +signals: + /**Emitted when a new list of files has been added to the + project. Provided for convenience when many files were added. + @param fileList The file names relative to the project directory.*/ + void addedFilesToProject(const TQStringList& fileList); + + /**Emitted when a list of files has been removed from the project. + Provided for convenience when many files were removed. + @param fileList The file names relative to the project directory.*/ + void removedFilesFromProject(const TQStringList& fileList); + + /**Emitted when a list of files has changed in the project. + @param fileList The file names relative to the project directory.*/ + void changedFilesInProject(const TQStringList& fileList); + + /**Emitted when one compile related command (make, make install, make ...) ends sucessfuly. + Used to reparse the files after a sucessful compilation.*/ + void projectCompiled(); + + /**Emitted when the active directory of the project changes + * @param olddir The old active directory + * @param newdir The new active directory + */ + void activeDirectoryChanged( const TQString& olddir, const TQString& newdir ); + +private: + class Private; + Private *d; +}; + +#endif diff --git a/lib/interfaces/tdevprojectiface.cpp b/lib/interfaces/tdevprojectiface.cpp new file mode 100644 index 00000000..625a4118 --- /dev/null +++ b/lib/interfaces/tdevprojectiface.cpp @@ -0,0 +1,186 @@ + + +/* This file is part of the KDE project + Copyright (C) 2005 Ian Reinhart Geiser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#include "tdevprojectiface.h" +#include "tdevproject.h" +#include "domutil.h" + +TDevProjectIface::TDevProjectIface(TDevProject *prj) + : TQObject(prj), DCOPObject("TDevProject"), m_prj(prj) +{ +} + + +TDevProjectIface::~TDevProjectIface() +{ +} + +void TDevProjectIface::openProject( const TQString & dirName, const TQString & projectName ) +{ + m_prj->openProject(dirName,projectName); +} + +void TDevProjectIface::closeProject( ) +{ + m_prj->closeProject(); +} + +uint TDevProjectIface::options( ) const +{ + return (uint)m_prj->options(); +} + +TQString TDevProjectIface::projectDirectory( ) const +{ + return m_prj->projectDirectory(); +} + +TQString TDevProjectIface::projectName( ) const +{ + return m_prj->projectName(); +} + +TQString TDevProjectIface::mainProgram() const +{ + return m_prj->mainProgram(); +} + +TQString TDevProjectIface::runDirectory( ) const +{ + return m_prj->runDirectory(); +} + +TQString TDevProjectIface::activeDirectory( ) const +{ + return m_prj->activeDirectory(); +} + +TQString TDevProjectIface::buildDirectory( ) const +{ + return m_prj->buildDirectory(); +} + +TQStringList TDevProjectIface::allFiles( ) const +{ + return m_prj->allFiles(); +} + +TQStringList TDevProjectIface::distFiles( ) const +{ + return m_prj->distFiles(); +} + +void TDevProjectIface::addFiles( const TQStringList & fileList ) +{ + m_prj->addFiles(fileList); +} + +void TDevProjectIface::addFile( const TQString & fileName ) +{ + m_prj->addFile(fileName); +} + +void TDevProjectIface::removeFiles( const TQStringList & fileList ) +{ + m_prj->removeFiles(fileList); +} + +void TDevProjectIface::removeFile( const TQString & fileName ) +{ + m_prj->removeFile(fileName); +} + +void TDevProjectIface::changedFiles( const TQStringList & fileList ) +{ + m_prj->changedFiles(fileList); +} + +void TDevProjectIface::changedFile( const TQString & fileName ) +{ + m_prj->changedFile(fileName); +} + +bool TDevProjectIface::isProjectFile( const TQString & absFileName ) +{ + return m_prj->isProjectFile(absFileName); +} + +TQString TDevProjectIface::relativeProjectFile( const TQString & absFileName ) +{ + return m_prj->relativeProjectFile(absFileName); +} + +TQStringList TDevProjectIface::symlinkProjectFiles( ) +{ + return m_prj->symlinkProjectFiles(); +} + +TQString TDevProjectIface::readEntry( const TQString & path, const TQString & defaultEntry ) +{ + return DomUtil::readEntry( *m_prj->projectDom(), path, defaultEntry); +} + +int TDevProjectIface::readIntEntry( const TQString & path, int defaultEntry ) +{ + return DomUtil::readIntEntry(*m_prj->projectDom(), path,defaultEntry); +} + +bool TDevProjectIface::readBoolEntry( const TQString & path, bool defaultEntry ) +{ + return DomUtil::readBoolEntry(*m_prj->projectDom(), path, defaultEntry); +} + +TQStringList TDevProjectIface::readListEntry( const TQString & path, const TQString & tag ) +{ + return DomUtil::readListEntry(*m_prj->projectDom(), path, tag); +} + +TQMap< TQString, TQString > TDevProjectIface::readMapEntry( const TQString & path ) +{ + return DomUtil::readMapEntry(*m_prj->projectDom(), path); +} + +void TDevProjectIface::writeEntry( const TQString & path, const TQString & value ) +{ + DomUtil::writeEntry(*m_prj->projectDom(), path, value); +} + +void TDevProjectIface::writeIntEntry( const TQString & path, int value ) +{ + DomUtil::writeIntEntry(*m_prj->projectDom(), path, value); +} + +void TDevProjectIface::writeBoolEntry( const TQString & path, bool value ) +{ + DomUtil::writeBoolEntry(*m_prj->projectDom(), path, value); +} + +void TDevProjectIface::writeListEntry( const TQString & path, const TQString & tag, const TQStringList & value ) +{ + DomUtil::writeListEntry(*m_prj->projectDom(), path, tag, value); +} + +void TDevProjectIface::writeMapEntry( const TQString & path, const TQMap< TQString, TQString > & map ) +{ + DomUtil::writeMapEntry(*m_prj->projectDom(), path, map); +} + +#include "tdevprojectiface.moc" diff --git a/lib/interfaces/tdevprojectiface.h b/lib/interfaces/tdevprojectiface.h new file mode 100644 index 00000000..c3e0ddd4 --- /dev/null +++ b/lib/interfaces/tdevprojectiface.h @@ -0,0 +1,82 @@ +/* This file is part of the KDE project + Copyright (C) 2005 Ian Reinhart Geiser + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ + +#ifndef TDEVPROJECTIFACE_H +#define TDEVPROJECTIFACE_H + +#include +#include +#include + +class TDevProject; + +/** +DCOP Interface for the @ref TDevProject object. + +@author KDevelop Authors +*/ +class TDevProjectIface : public TQObject, public DCOPObject +{ + Q_OBJECT +// + K_DCOP +public: + TDevProjectIface(TDevProject *prj); + + ~TDevProjectIface(); +k_dcop: + void openProject(const TQString &dirName, const TQString &projectName); + void closeProject(); + uint options() const; + TQString projectDirectory() const; + TQString projectName() const; + TQString mainProgram() const; + TQString runDirectory() const; + TQString activeDirectory() const; + TQString buildDirectory() const; + TQStringList allFiles() const; + TQStringList distFiles() const; + void addFiles(const TQStringList &fileList); + void addFile(const TQString &fileName); + void removeFiles(const TQStringList& fileList); + void removeFile(const TQString &fileName); + void changedFiles(const TQStringList &fileList); + void changedFile(const TQString &fileName); + bool isProjectFile(const TQString &absFileName); + TQString relativeProjectFile(const TQString &absFileName); + TQStringList symlinkProjectFiles(); + + // Project DOM access + TQString readEntry(const TQString &path, const TQString &defaultEntry = TQString()); + int readIntEntry(const TQString &path, int defaultEntry = 0); + bool readBoolEntry(const TQString &path, bool defaultEntry = false); + TQStringList readListEntry(const TQString &path, const TQString &tag); + TQMap readMapEntry(const TQString &path); + + void writeEntry(const TQString &path, const TQString &value); + void writeIntEntry(const TQString &path, int value); + void writeBoolEntry( const TQString &path, bool value); + void writeListEntry(const TQString &path, const TQString &tag, const TQStringList &value); + void writeMapEntry(const TQString& path, const TQMap &map); + + private: + TDevProject *m_prj; +}; + +#endif -- cgit v1.2.1