• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • KDevelop Documentation Part Interfaces Library
 

KDevelop Documentation Part Interfaces Library

  • parts
  • documentation
  • interfaces
kdevdocumentationplugin.h
1/* This file is part of the KDE project
2 Copyright (C) 2004 by Alexander Dymo <cloudtemple@mksat.net>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19#ifndef KDEV_DOC_PLUGIN_H
20#define KDEV_DOC_PLUGIN_H
21
22#include <tqmap.h>
23#include <tqvaluelist.h>
24#include <tqpair.h>
25
26#include <tdelistbox.h>
27#include <tdelistview.h>
28#include <kurl.h>
29#include <tdefile.h>
30
31#define CACHE_VERSION "3"
32
35class DocumentationItem: public TDEListViewItem
36{
37public:
39 enum Type {
40 Collection ,
41 Catalog ,
42 Book ,
43 Document
44 };
45
46 DocumentationItem(Type type, TDEListView *parent, const TQString &name);
47 DocumentationItem(Type type, TDEListView *parent, TDEListViewItem *after, const TQString &name);
48 DocumentationItem(Type type, TDEListViewItem *parent, const TQString &name);
49 DocumentationItem(Type type, TDEListViewItem *parent, TDEListViewItem *after, const TQString &name);
50
51 virtual void setURL(const KURL &url) { m_url = url; }
52 virtual KURL url() const { return m_url; }
53
54 Type type() const { return m_type; }
55
56 void setType(Type t) {
57 if(t != m_type) {
58 m_type = t;
59 init();
60 }
61 }
62private:
63 void init();
64
65 KURL m_url;
66 Type m_type;
67};
68
69class DocumentationPlugin;
70
72class DocumentationCatalogItem: public DocumentationItem
73{
74public:
75 DocumentationCatalogItem(DocumentationPlugin* plugin, TDEListView *parent, TDEListViewItem *after, const TQString &name);
76 DocumentationCatalogItem(DocumentationPlugin* plugin, DocumentationItem *parent, const TQString &name);
77 virtual ~DocumentationCatalogItem();
78
79 DocumentationPlugin* plugin() const { return m_plugin; }
80
81 virtual void setOpen(bool o);
82 void load();
83
84 virtual bool isProjectDocumentationItem() const { return m_isProjectDocumentationItem; }
85 virtual void setProjectDocumentationItem(bool b) { m_isProjectDocumentationItem = b; }
86
87 virtual TQString cacheVersion() const { return ""; }
88
89protected:
90 virtual void activate();
91
92private:
93 DocumentationPlugin* m_plugin;
94 bool isLoaded;
95 bool isActivated;
96 bool m_isProjectDocumentationItem;
97};
98
99class IndexBox;
100
103class IndexItemProto
104{
105public:
106 IndexItemProto(DocumentationPlugin *plugin, DocumentationCatalogItem *catalog, IndexBox *listbox,
107 const TQString &text, const TQString &description);
108 ~IndexItemProto();
109
110 void addURL(const KURL &url) { m_url = url; }
111 KURL url() const { return m_url; }
112 TQString text() const { return m_text; }
113 TQString description() const { return m_description; }
114
115private:
116 KURL m_url;
117 IndexBox *m_listbox;
118 TQString m_text;
119 TQString m_description;
120};
121
123class IndexItem: public TQListBoxText {
124public:
125 typedef TQPair<TQString, KURL> URL;
126 typedef TQValueList<URL> List;
127
128 IndexItem(IndexBox *listbox, const TQString &text);
129
130 List urls() const;
131
132private:
133 IndexBox *m_listbox;
134};
135
137class IndexBox: public TDEListBox{
138public:
139 IndexBox(TQWidget *parent = 0, const char *name = 0);
140
141 virtual void addIndexItem(IndexItemProto *item);
142 virtual void removeIndexItem(IndexItemProto *item);
143 virtual void fill();
144 virtual void refill();
145 virtual void setDirty(bool dirty);
146// virtual void refill(TQValueList<IndexItemProto*> &items);
147
148private:
149 TQMap<TQString, TQValueList<IndexItemProto*> > items;
150 friend class IndexItem;
151
152 bool m_dirty;
153};
154
155class TQPainter;
156class TQColorGroup;
157class TQFontMetrics;
158class DocumentationPlugin;
159
161class ConfigurationItem: public TQCheckListItem
162{
163public:
164 ConfigurationItem(TQListView *parent, DocumentationPlugin * plugin, const TQString &title, const TQString &url,
165 bool indexPossible, bool fullTextSearchPossible);
166
167 virtual TQString title() const { return m_title; }
168 virtual void setTitle(const TQString title) { setText(3, m_title = title); }
169 virtual TQString url() const { return m_url; }
170 virtual void setURL(const TQString url) { setText(4, m_url = url); }
171
172 virtual bool isChanged() const { return m_title == m_origTitle; }
173 virtual TQString origTitle() const {return m_origTitle; }
174
175 virtual void paintCell(TQPainter *p, const TQColorGroup &cg, int column, int width, int align);
176 virtual int width(const TQFontMetrics &fm, const TQListView *lv, int c) const;
177
178 bool contents() const { return m_contents; }
179 void setContents(bool contents) { m_contents = contents; }
180 bool index() const { return m_index; }
181 void setIndex(bool index) { m_index = index; }
182 bool fullTextSearch() const { return m_fullTextSearch; }
183 void setFullTextSearch(bool fullTextSearch) { m_fullTextSearch = fullTextSearch; }
184
185 bool indexPossible() const { return m_indexPossible; }
186 bool fullTextSearchPossible() const { return m_fullTextSearchPossible; }
187
188 DocumentationPlugin * docPlugin() { return m_docPlugin; }
189
190private:
191 TQString m_title;
192 TQString m_url;
193 TQString m_origTitle;
194
195 bool m_contents;
196 bool m_index;
197 bool m_fullTextSearch;
198
199 bool m_indexPossible;
200 bool m_fullTextSearchPossible;
201
202 DocumentationPlugin * m_docPlugin;
203};
204
205
206class ProjectDocumentationPlugin;
207
217class DocumentationPlugin: public TQObject
218{
219 TQ_OBJECT
220
221public:
223 enum Capability { Index=1 ,
224 FullTextSearch=2 ,
225 ProjectDocumentation=8 ,
226 ProjectUserManual=16 };
227
228 enum ProjectDocType { APIDocs, UserManual };
229
236 DocumentationPlugin(TDEConfig *pluginConfig, TQObject *parent =0, const char *name =0);
237 virtual ~DocumentationPlugin();
238
240 virtual TQString pluginName() const = 0;
241
244 virtual DocumentationCatalogItem *createCatalog(TDEListView *contents, TDEListViewItem *after, const TQString &title, const TQString &url) = 0;
245
249 virtual void init(TDEListView *contents);
256 virtual void reinit(TDEListView *contents, IndexBox *index, TQStringList restrictions);
260 virtual void autoSetup();
262 virtual void autoSetupPlugin() = 0;
263
267 virtual bool catalogEnabled(const TQString &name) const;
269 virtual void setCatalogEnabled(const TQString &name, bool e);
270
274 virtual bool needRefreshIndex(DocumentationCatalogItem *item) = 0;
278 virtual bool indexEnabled(DocumentationCatalogItem *item) const;
280 virtual void setIndexEnabled(DocumentationCatalogItem *item, bool e);
286 virtual void createIndex(IndexBox *index, DocumentationCatalogItem *item) = 0;
287
291 virtual void createTOC(DocumentationCatalogItem *item) = 0;
295 virtual void setCatalogURL(DocumentationCatalogItem *item) = 0;
296 virtual TQStringList fullTextSearchLocations() = 0;
297
299 virtual void loadCatalogConfiguration(TDEListView *configurationView);
303 virtual void saveCatalogConfiguration(TDEListView *configurationView);
305 virtual void addCatalogConfiguration(TDEListView *configurationView,
306 const TQString &title, const TQString &url);
308 virtual void editCatalogConfiguration(ConfigurationItem *configurationItem,
309 const TQString &title, const TQString &url);
311 virtual void deleteCatalogConfiguration(const ConfigurationItem *const configurationItem);
312
314 virtual TQPair<KFile::Mode, TQString> catalogLocatorProps() = 0;
316 virtual TQString catalogTitle(const TQString &url) = 0;
317
319 virtual void clear();
320
322 bool hasCapability(Capability cap) const { return m_capabilities & cap; }
323
326 void setDirtyIndex(bool dirty) { m_indexCreated = dirty; }
327
331 virtual void cacheIndex(DocumentationCatalogItem *item);
335 virtual bool loadCachedIndex(IndexBox *index, DocumentationCatalogItem *item);
336
339 virtual ProjectDocumentationPlugin *projectDocumentationPlugin(ProjectDocType /* type */) { return 0; }
340
341public slots:
345 virtual void createIndex(IndexBox *index);
346
347protected:
349 TQValueList<DocumentationCatalogItem*> catalogs;
351 TQMap<TQString, DocumentationCatalogItem*> namedCatalogs;
353 TQMap<DocumentationCatalogItem*, TQValueList<IndexItemProto*> > indexes;
354
356 void setCapabilities(int caps) { m_capabilities = caps; }
358 virtual void clearCatalogIndex(DocumentationCatalogItem *item);
360 void loadIndex(IndexBox *index, DocumentationCatalogItem *item);
361
363 TDEListViewItem* findCatalogPosition(const TQString &key, const TDEListView *contents) const;
364
367 TQStringList deletedConfigurationItems;
368
370 TDEConfig *config;
371
372private:
374 virtual void addCatalog(DocumentationCatalogItem *item);
376 virtual void clearCatalog(DocumentationCatalogItem *item);
377
378 int m_capabilities;
379 bool m_indexCreated;
380
381
382friend class IndexItemProto;
383friend class DocumentationCatalogItem;
384};
385
386
392class ProjectDocumentationPlugin: public TQObject {
393 TQ_OBJECT
394
395public:
396 ProjectDocumentationPlugin(DocumentationPlugin *docPlugin, DocumentationPlugin::ProjectDocType type);
397 virtual ~ProjectDocumentationPlugin();
398
400 virtual void init(TDEListView *contents, IndexBox *index, const TQString &url);
402 virtual void deinit();
403
404 TQString pluginName() const;
405 TQString catalogURL() const;
406
407public slots:
409 virtual void reinit();
410
411protected:
413 TDEListViewItem* findCatalogPosition(const TQString &key, const TDEListView *contents) const;
414
415 DocumentationPlugin *m_docPlugin;
416 DocumentationCatalogItem *m_catalog;
417
418private:
419 DocumentationPlugin::ProjectDocType m_type;
420
421 class KDirWatch *m_watch;
422 class TDEListView *m_contents;
423 class IndexBox *m_index;
424 TQString m_url;
425};
426
427#endif
ConfigurationItem
Documentation configuration item.
Definition kdevdocumentationplugin.h:162
DocumentationCatalogItem
Documentation catalog list item.
Definition kdevdocumentationplugin.h:73
DocumentationCatalogItem::activate
virtual void activate()
should return a short string that identifies the version of the catalog
Definition kdevdocumentationplugin.cpp:129
DocumentationItem
Documentation list item.
Definition kdevdocumentationplugin.h:36
DocumentationItem::Type
Type
Type of documentation which is represented by this item.
Definition kdevdocumentationplugin.h:39
DocumentationItem::Catalog
@ Catalog
Catalog - a term which defines a document or a group of documents.
Definition kdevdocumentationplugin.h:41
DocumentationItem::Book
@ Book
Book - a document with nested documents.
Definition kdevdocumentationplugin.h:42
DocumentationItem::Document
@ Document
Document.
Definition kdevdocumentationplugin.h:43
DocumentationItem::Collection
@ Collection
Collection - a collection of catalogs, folder with catalogs.
Definition kdevdocumentationplugin.h:40
DocumentationPlugin
Documentation Plugin Interface.
Definition kdevdocumentationplugin.h:218
DocumentationPlugin::saveCatalogConfiguration
virtual void saveCatalogConfiguration(TDEListView *configurationView)
Saves catalog configuration basing on configurationView and deletedConfigurationItems contents.
Definition kdevdocumentationplugin.cpp:545
DocumentationPlugin::indexEnabled
virtual bool indexEnabled(DocumentationCatalogItem *item) const
Indicates if an index is enabled for given catalog.
Definition kdevdocumentationplugin.cpp:604
DocumentationPlugin::catalogTitle
virtual TQString catalogTitle(const TQString &url)=0
Returns a title of catalog defined by an url parameter.
DocumentationPlugin::loadCatalogConfiguration
virtual void loadCatalogConfiguration(TDEListView *configurationView)
Loads catalog configuration and fills configurationView with ConfigurationItem objects.
Definition kdevdocumentationplugin.cpp:520
DocumentationPlugin::loadIndex
void loadIndex(IndexBox *index, DocumentationCatalogItem *item)
Loads index from cache or creates and caches it if does not exist.
Definition kdevdocumentationplugin.cpp:422
DocumentationPlugin::setCapabilities
void setCapabilities(int caps)
Sets capabilities of documentation plugin.
Definition kdevdocumentationplugin.h:356
DocumentationPlugin::setIndexEnabled
virtual void setIndexEnabled(DocumentationCatalogItem *item, bool e)
Enables or disables index for documentation catalog.
Definition kdevdocumentationplugin.cpp:596
DocumentationPlugin::indexes
TQMap< DocumentationCatalogItem *, TQValueList< IndexItemProto * > > indexes
A map of indices of loaded documentation catalogs.
Definition kdevdocumentationplugin.h:353
DocumentationPlugin::deletedConfigurationItems
TQStringList deletedConfigurationItems
Stores items deleted from configuration.
Definition kdevdocumentationplugin.h:367
DocumentationPlugin::setCatalogEnabled
virtual void setCatalogEnabled(const TQString &name, bool e)
Enables or disables documentation catalog.
Definition kdevdocumentationplugin.cpp:622
DocumentationPlugin::setCatalogURL
virtual void setCatalogURL(DocumentationCatalogItem *item)=0
Sets the URL to the catalog.
DocumentationPlugin::cacheIndex
virtual void cacheIndex(DocumentationCatalogItem *item)
Caches index for documentation catalog.
Definition kdevdocumentationplugin.cpp:322
DocumentationPlugin::projectDocumentationPlugin
virtual ProjectDocumentationPlugin * projectDocumentationPlugin(ProjectDocType)
Returns associated project documentation plugin.
Definition kdevdocumentationplugin.h:339
DocumentationPlugin::createCatalog
virtual DocumentationCatalogItem * createCatalog(TDEListView *contents, TDEListViewItem *after, const TQString &title, const TQString &url)=0
Creates documentation catalog with given title and url.
DocumentationPlugin::catalogs
TQValueList< DocumentationCatalogItem * > catalogs
A list of loaded documentation catalogs.
Definition kdevdocumentationplugin.h:349
DocumentationPlugin::hasCapability
bool hasCapability(Capability cap) const
Checks if documentation plugin has given capability.
Definition kdevdocumentationplugin.h:322
DocumentationPlugin::editCatalogConfiguration
virtual void editCatalogConfiguration(ConfigurationItem *configurationItem, const TQString &title, const TQString &url)
Edits catalog configuration.
Definition kdevdocumentationplugin.cpp:399
DocumentationPlugin::clearCatalogIndex
virtual void clearCatalogIndex(DocumentationCatalogItem *item)
Clears index of given catalog.
Definition kdevdocumentationplugin.cpp:411
DocumentationPlugin::setDirtyIndex
void setDirtyIndex(bool dirty)
Sets dirty flag for all indices.
Definition kdevdocumentationplugin.h:326
DocumentationPlugin::ProjectDocType
ProjectDocType
Possible project documentation types.
Definition kdevdocumentationplugin.h:228
DocumentationPlugin::pluginName
virtual TQString pluginName() const =0
Returns the i18n name of the plugin.
DocumentationPlugin::catalogEnabled
virtual bool catalogEnabled(const TQString &name) const
Indicates if a catalog with specified name is enabled.
Definition kdevdocumentationplugin.cpp:613
DocumentationPlugin::createTOC
virtual void createTOC(DocumentationCatalogItem *item)=0
Creates a table of contents for given catalog.
DocumentationPlugin::catalogLocatorProps
virtual TQPair< KFile::Mode, TQString > catalogLocatorProps()=0
Returns a mode and a filter for catalog locator dialogs.
DocumentationPlugin::loadCachedIndex
virtual bool loadCachedIndex(IndexBox *index, DocumentationCatalogItem *item)
Loads index from the cache.
Definition kdevdocumentationplugin.cpp:347
DocumentationPlugin::namedCatalogs
TQMap< TQString, DocumentationCatalogItem * > namedCatalogs
A map of names of loaded documentation catalogs.
Definition kdevdocumentationplugin.h:351
DocumentationPlugin::clear
virtual void clear()
Clears documentation catalogs and indices.
Definition kdevdocumentationplugin.cpp:267
DocumentationPlugin::init
virtual void init(TDEListView *contents)
Initialize a list of catalogs.
Definition kdevdocumentationplugin.cpp:447
DocumentationPlugin::Capability
Capability
Capability of documentation plugin.
Definition kdevdocumentationplugin.h:223
DocumentationPlugin::ProjectDocumentation
@ ProjectDocumentation
plugin can handle project API documentation
Definition kdevdocumentationplugin.h:225
DocumentationPlugin::ProjectUserManual
@ ProjectUserManual
plugin can handle project user manual
Definition kdevdocumentationplugin.h:226
DocumentationPlugin::Index
@ Index
index can be built for catalogs
Definition kdevdocumentationplugin.h:223
DocumentationPlugin::FullTextSearch
@ FullTextSearch
full text search is possible in catalog locations
Definition kdevdocumentationplugin.h:224
DocumentationPlugin::createIndex
virtual void createIndex(IndexBox *index, DocumentationCatalogItem *item)=0
Builds index for given catalog.
DocumentationPlugin::autoSetup
virtual void autoSetup()
Initializes plugin configuration.
Definition kdevdocumentationplugin.cpp:255
DocumentationPlugin::deleteCatalogConfiguration
virtual void deleteCatalogConfiguration(const ConfigurationItem *const configurationItem)
Removes catalog from configuration.
Definition kdevdocumentationplugin.cpp:406
DocumentationPlugin::reinit
virtual void reinit(TDEListView *contents, IndexBox *index, TQStringList restrictions)
Reloads a list of catalogs.
Definition kdevdocumentationplugin.cpp:467
DocumentationPlugin::addCatalogConfiguration
virtual void addCatalogConfiguration(TDEListView *configurationView, const TQString &title, const TQString &url)
Adds new catalog to a configuration.
Definition kdevdocumentationplugin.cpp:392
DocumentationPlugin::DocumentationPlugin
DocumentationPlugin(TDEConfig *pluginConfig, TQObject *parent=0, const char *name=0)
Constructor.
Definition kdevdocumentationplugin.cpp:246
DocumentationPlugin::autoSetupPlugin
virtual void autoSetupPlugin()=0
Plugin specific automatic setup code.
DocumentationPlugin::findCatalogPosition
TDEListViewItem * findCatalogPosition(const TQString &key, const TDEListView *contents) const
Find catalog insert position to maintain a sorted order.
Definition kdevdocumentationplugin.cpp:432
DocumentationPlugin::config
TDEConfig * config
Configuration object used by a plugin.
Definition kdevdocumentationplugin.h:370
DocumentationPlugin::needRefreshIndex
virtual bool needRefreshIndex(DocumentationCatalogItem *item)=0
Indicates if an index of given catalog should be rebuilt.
IndexBox
Documentation index view.
Definition kdevdocumentationplugin.h:137
IndexItemProto
Prototype of index item.
Definition kdevdocumentationplugin.h:104
ProjectDocumentationPlugin
Project documentation plugin.
Definition kdevdocumentationplugin.h:392
ProjectDocumentationPlugin::init
virtual void init(TDEListView *contents, IndexBox *index, const TQString &url)
Initializes project documentation plugin - creates documentation catalog.
Definition kdevdocumentationplugin.cpp:712
ProjectDocumentationPlugin::deinit
virtual void deinit()
Deinitializes project documentation plugin - removes documentation catalog.
Definition kdevdocumentationplugin.cpp:738
ProjectDocumentationPlugin::findCatalogPosition
TDEListViewItem * findCatalogPosition(const TQString &key, const TDEListView *contents) const
Find catalog insert position to maintain a sorted order.
Definition kdevdocumentationplugin.cpp:697
ProjectDocumentationPlugin::reinit
virtual void reinit()
Performs reinitialization if project documentation has changed (after building api documentation).
Definition kdevdocumentationplugin.cpp:731

KDevelop Documentation Part Interfaces Library

Skip menu "KDevelop Documentation Part Interfaces Library"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members

KDevelop Documentation Part Interfaces Library

Skip menu "KDevelop Documentation Part Interfaces Library"
  • buildtools
  •   lib
  •     base
  •     parsers
  •       autotools
  •       qmake
  •     widgets
  •   api
  • languages
  •   lib
  •     debugger
  •     designer_integration
  •     interfaces
  • lib
  •   catalog
  •   interfaces
  •     extensions
  •     external
  •     extras
  •   util
  •   widgets
  •     propeditor
  • parts
  •   documentation
  •     interfaces
  • src
  •   profileengine
  •     lib
Generated for KDevelop Documentation Part Interfaces Library by doxygen 1.15.0
This website is maintained by Timothy Pearson.