• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeui
 

tdeui

  • tdeui
kxmlguifactory.cpp
1 /* This file is part of the KDE libraries
2  Copyright (C) 1999,2000 Simon Hausmann <hausmann@kde.org>
3  Copyright (C) 2000 Kurt Granroth <granroth@kde.org>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #include "kxmlguifactory.h"
22 #include "kxmlguifactory_p.h"
23 #include "kxmlguiclient.h"
24 #include "kxmlguibuilder.h"
25 
26 #include <assert.h>
27 
28 #include <tqdir.h>
29 #include <tqfile.h>
30 #include <tqtextstream.h>
31 #include <tqwidget.h>
32 #include <tqdatetime.h>
33 #include <tqvariant.h>
34 
35 #include <tdeaction.h>
36 #include <kdebug.h>
37 #include <kinstance.h>
38 #include <tdeglobal.h>
39 #include <tdeshortcut.h>
40 #include <kstandarddirs.h>
41 #include <kkeydialog.h>
42 
43 using namespace KXMLGUI;
44 
45 /*
46  * TODO: - make more use of TQValueList instead of QPtrList
47  */
48 
49 class KXMLGUIFactoryPrivate : public BuildState
50 {
51 public:
52  KXMLGUIFactoryPrivate()
53  {
54  static const TQString &defaultMergingName = TDEGlobal::staticQString( "<default>" );
55  static const TQString &actionList = TDEGlobal::staticQString( "actionlist" );
56  static const TQString &name = TDEGlobal::staticQString( "name" );
57 
58  m_rootNode = new ContainerNode( 0L, TQString::null, 0L );
59  m_defaultMergingName = defaultMergingName;
60  tagActionList = actionList;
61  attrName = name;
62  }
63  ~KXMLGUIFactoryPrivate()
64  {
65  delete m_rootNode;
66  }
67 
68  void pushState()
69  {
70  m_stateStack.push( *this );
71  }
72 
73  void popState()
74  {
75  BuildState::operator=( m_stateStack.pop() );
76  }
77 
78  ContainerNode *m_rootNode;
79 
80  TQString m_defaultMergingName;
81 
82  /*
83  * Contains the container which is searched for in ::container .
84  */
85  TQString m_containerName;
86 
87  /*
88  * List of all clients
89  */
90  TQPtrList<KXMLGUIClient> m_clients;
91 
92  TQString tagActionList;
93 
94  TQString attrName;
95 
96  BuildStateStack m_stateStack;
97 };
98 
99 TQString KXMLGUIFactory::readConfigFile( const TQString &filename, const TDEInstance *instance )
100 {
101  return readConfigFile( filename, false, instance );
102 }
103 
104 TQString KXMLGUIFactory::readConfigFile( const TQString &filename, bool never_null, const TDEInstance *_instance )
105 {
106  const TDEInstance *instance = _instance ? _instance : TDEGlobal::instance();
107  TQString xml_file;
108 
109  if (!TQDir::isRelativePath(filename))
110  xml_file = filename;
111  else
112  {
113  xml_file = locate("data", TQString::fromLatin1(instance->instanceName() + '/' ) + filename);
114  if ( !TQFile::exists( xml_file ) )
115  xml_file = locate( "data", filename );
116  }
117 
118  TQFile file( xml_file );
119  if ( !file.open( IO_ReadOnly ) )
120  {
121  kdError(240) << "No such XML file " << filename << endl;
122  if ( never_null )
123  return TQString::fromLatin1( "<!DOCTYPE kpartgui>\n<kpartgui name=\"empty\">\n</kpartgui>" );
124  else
125  return TQString::null;
126  }
127 
128 #if TQT_VERSION <= 0x030302
129  // Work around bug in TQString::fromUtf8 (which calls strlen).
130  TQByteArray buffer(file.size() + 1);
131  buffer = file.readAll();
132  if(!buffer.isEmpty())
133  buffer[ buffer.size() - 1 ] = '\0';
134  else
135  return TQString::null;
136 #else
137  TQByteArray buffer(file.readAll());
138 #endif
139  return TQString::fromUtf8(buffer.data(), buffer.size());
140 }
141 
142 bool KXMLGUIFactory::saveConfigFile( const TQDomDocument& doc,
143  const TQString& filename, const TDEInstance *_instance )
144 {
145  const TDEInstance *instance = _instance ? _instance : TDEGlobal::instance();
146  TQString xml_file(filename);
147 
148  if (TQDir::isRelativePath(xml_file))
149  xml_file = locateLocal("data", TQString::fromLatin1( instance->instanceName() + '/' )
150  + filename);
151 
152  TQFile file( xml_file );
153  if ( !file.open( IO_WriteOnly ) )
154  {
155  kdError(240) << "Could not write to " << filename << endl;
156  return false;
157  }
158 
159  // write out our document
160  TQTextStream ts(&file);
161  ts.setEncoding( TQTextStream::UnicodeUTF8 );
162  ts << doc;
163 
164  file.close();
165  return true;
166 }
167 
168 TQString KXMLGUIFactory::documentToXML( const TQDomDocument& doc )
169 {
170  TQString str;
171  TQTextStream ts(&str, IO_WriteOnly);
172  ts.setEncoding( TQTextStream::UnicodeUTF8 );
173  ts << doc;
174  return str;
175 }
176 
177 TQString KXMLGUIFactory::elementToXML( const TQDomElement& elem )
178 {
179  TQString str;
180  TQTextStream ts(&str, IO_WriteOnly);
181  ts.setEncoding( TQTextStream::UnicodeUTF8 );
182  ts << elem;
183  return str;
184 }
185 
186 void KXMLGUIFactory::removeDOMComments( TQDomNode &node )
187 {
188  TQDomNode n = node.firstChild();
189  while ( !n.isNull() )
190  {
191  if ( n.nodeType() == TQDomNode::CommentNode )
192  {
193  TQDomNode tmp = n;
194  n = n.nextSibling();
195  node.removeChild( tmp );
196  }
197  else
198  {
199  TQDomNode tmp = n;
200  n = n.nextSibling();
201  removeDOMComments( tmp );
202  }
203  }
204 }
205 
206 KXMLGUIFactory::KXMLGUIFactory( KXMLGUIBuilder *builder, TQObject *parent, const char *name )
207  : TQObject( parent, name )
208 {
209  d = new KXMLGUIFactoryPrivate;
210  d->builder = builder;
211  d->guiClient = 0;
212  if ( d->builder )
213  {
214  d->builderContainerTags = d->builder->containerTags();
215  d->builderCustomTags = d->builder->customTags();
216  }
217 }
218 
219 KXMLGUIFactory::~KXMLGUIFactory()
220 {
221  delete d;
222 }
223 
224 void KXMLGUIFactory::addClient( KXMLGUIClient *client )
225 {
226  kdDebug(1002) << "KXMLGUIFactory::addClient( " << client << " )" << endl; // ellis
227  static const TQString &actionPropElementName = TDEGlobal::staticQString( "ActionProperties" );
228 
229  if ( client->factory() ) {
230  if ( client->factory() == this )
231  return;
232  else
233  client->factory()->removeClient( client ); //just in case someone does stupid things ;-)
234  }
235 
236  d->pushState();
237 
238 // TQTime dt; dt.start();
239 
240  d->guiClient = client;
241 
242  // add this client to our client list
243  if ( !d->m_clients.containsRef( client ) )
244  d->m_clients.append( client );
245  else
246  kdDebug(1002) << "XMLGUI client already added " << client << endl;
247 
248  // Tell the client that plugging in is process and
249  // let it know what builder widget its mainwindow shortcuts
250  // should be attached to.
251  client->beginXMLPlug( d->builder->widget() );
252 
253  // try to use the build document for building the client's GUI, as the build document
254  // contains the correct container state information (like toolbar positions, sizes, etc.) .
255  // if there is non available, then use the "real" document.
256  TQDomDocument doc = client->xmlguiBuildDocument();
257  if ( doc.documentElement().isNull() )
258  doc = client->domDocument();
259 
260  TQDomElement docElement = doc.documentElement();
261 
262  d->m_rootNode->index = -1;
263 
264  // cache some variables
265 
266  d->clientName = docElement.attribute( d->attrName );
267  d->clientBuilder = client->clientBuilder();
268 
269  if ( d->clientBuilder )
270  {
271  d->clientBuilderContainerTags = d->clientBuilder->containerTags();
272  d->clientBuilderCustomTags = d->clientBuilder->customTags();
273  }
274  else
275  {
276  d->clientBuilderContainerTags.clear();
277  d->clientBuilderCustomTags.clear();
278  }
279 
280  // process a possibly existing actionproperties section
281 
282  TQDomElement actionPropElement = docElement.namedItem( actionPropElementName ).toElement();
283  if ( actionPropElement.isNull() )
284  actionPropElement = docElement.namedItem( actionPropElementName.lower() ).toElement();
285 
286  if ( !actionPropElement.isNull() )
287  applyActionProperties( actionPropElement );
288 
289  BuildHelper( *d, d->m_rootNode ).build( docElement );
290 
291  // let the client know that we built its GUI.
292  client->setFactory( this );
293 
294  // call the finalizeGUI method, to fix up the positions of toolbars for example.
295  // ### FIXME : obey client builder
296  // --- Well, toolbars have a bool "positioned", so it doesn't really matter,
297  // if we call positionYourself on all of them each time. (David)
298  d->builder->finalizeGUI( d->guiClient );
299 
300  // reset some variables, for safety
301  d->BuildState::reset();
302 
303  client->endXMLPlug();
304 
305  d->popState();
306 
307  emit clientAdded( client );
308 
309  // build child clients
310  if ( client->childClients()->count() > 0 )
311  {
312  const TQPtrList<KXMLGUIClient> *children = client->childClients();
313  TQPtrListIterator<KXMLGUIClient> childIt( *children );
314  for (; childIt.current(); ++childIt )
315  addClient( childIt.current() );
316  }
317 
318 // kdDebug() << "addClient took " << dt.elapsed() << endl;
319 }
320 
321 void KXMLGUIFactory::removeClient( KXMLGUIClient *client )
322 {
323  kdDebug(1002) << "KXMLGUIFactory::removeClient( " << client << " )" << endl; // ellis
324 
325  // don't try to remove the client's GUI if we didn't build it
326  if ( !client || client->factory() != this )
327  return;
328 
329  // remove this client from our client list
330  d->m_clients.removeRef( client );
331 
332  // remove child clients first
333  if ( client->childClients()->count() > 0 )
334  {
335  const TQPtrList<KXMLGUIClient> *children = client->childClients();
336  TQPtrListIterator<KXMLGUIClient> childIt( *children );
337  childIt.toLast();
338  for (; childIt.current(); --childIt )
339  removeClient( childIt.current() );
340  }
341 
342  kdDebug(1002) << "KXMLGUIFactory::removeServant, calling removeRecursive" << endl;
343 
344  d->pushState();
345 
346  // cache some variables
347 
348  d->guiClient = client;
349  d->clientName = client->domDocument().documentElement().attribute( d->attrName );
350  d->clientBuilder = client->clientBuilder();
351 
352  client->setFactory( 0L );
353 
354  // if we don't have a build document for that client, yet, then create one by
355  // cloning the original document, so that saving container information in the
356  // DOM tree does not touch the original document.
357  TQDomDocument doc = client->xmlguiBuildDocument();
358  if ( doc.documentElement().isNull() )
359  {
360  doc = client->domDocument().cloneNode( true ).toDocument();
361  client->setXMLGUIBuildDocument( doc );
362  }
363 
364  d->m_rootNode->destruct( doc.documentElement(), *d );
365 
366  d->builder->finalizeGUI( d->guiClient ); //JoWenn
367 
368  // reset some variables
369  d->BuildState::reset();
370 
371  // This will destruct the TDEAccel object built around the given widget.
372  client->prepareXMLUnplug( d->builder->widget() );
373 
374  d->popState();
375 
376  emit clientRemoved( client );
377 }
378 
379 TQPtrList<KXMLGUIClient> KXMLGUIFactory::clients() const
380 {
381  return d->m_clients;
382 }
383 
384 TQWidget *KXMLGUIFactory::container( const TQString &containerName, KXMLGUIClient *client,
385  bool useTagName )
386 {
387  d->pushState();
388  d->m_containerName = containerName;
389  d->guiClient = client;
390 
391  TQWidget *result = findRecursive( d->m_rootNode, useTagName );
392 
393  d->guiClient = 0L;
394  d->m_containerName = TQString::null;
395 
396  d->popState();
397 
398  return result;
399 }
400 
401 TQPtrList<TQWidget> KXMLGUIFactory::containers( const TQString &tagName )
402 {
403  return findRecursive( d->m_rootNode, tagName );
404 }
405 
406 void KXMLGUIFactory::reset()
407 {
408  d->m_rootNode->reset();
409 
410  d->m_rootNode->clearChildren();
411 }
412 
413 void KXMLGUIFactory::resetContainer( const TQString &containerName, bool useTagName )
414 {
415  if ( containerName.isEmpty() )
416  return;
417 
418  ContainerNode *container = d->m_rootNode->findContainer( containerName, useTagName );
419 
420  if ( !container )
421  return;
422 
423  ContainerNode *parent = container->parent;
424  if ( !parent )
425  return;
426 
427  // resetInternal( container );
428 
429  parent->removeChild( container );
430 }
431 
432 TQWidget *KXMLGUIFactory::findRecursive( KXMLGUI::ContainerNode *node, bool tag )
433 {
434  if ( ( ( !tag && node->name == d->m_containerName ) ||
435  ( tag && node->tagName == d->m_containerName ) ) &&
436  ( !d->guiClient || node->client == d->guiClient ) )
437  return node->container;
438 
439  TQPtrListIterator<ContainerNode> it( node->children );
440  for (; it.current(); ++it )
441  {
442  TQWidget *cont = findRecursive( it.current(), tag );
443  if ( cont )
444  return cont;
445  }
446 
447  return 0L;
448 }
449 
450 TQPtrList<TQWidget> KXMLGUIFactory::findRecursive( KXMLGUI::ContainerNode *node,
451  const TQString &tagName )
452 {
453  TQPtrList<TQWidget> res;
454 
455  if ( node->tagName == tagName.lower() )
456  res.append( node->container );
457 
458  TQPtrListIterator<KXMLGUI::ContainerNode> it( node->children );
459  for (; it.current(); ++it )
460  {
461  TQPtrList<TQWidget> lst = findRecursive( it.current(), tagName );
462  TQPtrListIterator<TQWidget> wit( lst );
463  for (; wit.current(); ++wit )
464  res.append( wit.current() );
465  }
466 
467  return res;
468 }
469 
470 void KXMLGUIFactory::plugActionList( KXMLGUIClient *client, const TQString &name,
471  const TQPtrList<TDEAction> &actionList )
472 {
473  d->pushState();
474  d->guiClient = client;
475  d->actionListName = name;
476  d->actionList = actionList;
477  d->clientName = client->domDocument().documentElement().attribute( d->attrName );
478 
479  d->m_rootNode->plugActionList( *d );
480 
481  d->BuildState::reset();
482  d->popState();
483 }
484 
485 void KXMLGUIFactory::unplugActionList( KXMLGUIClient *client, const TQString &name )
486 {
487  d->pushState();
488  d->guiClient = client;
489  d->actionListName = name;
490  d->clientName = client->domDocument().documentElement().attribute( d->attrName );
491 
492  d->m_rootNode->unplugActionList( *d );
493 
494  d->BuildState::reset();
495  d->popState();
496 }
497 
498 void KXMLGUIFactory::applyActionProperties( const TQDomElement &actionPropElement )
499 {
500  static const TQString &tagAction = TDEGlobal::staticQString( "action" );
501 
502  for (TQDomNode n = actionPropElement.firstChild();
503  !n.isNull(); n = n.nextSibling() )
504  {
505  TQDomElement e = n.toElement();
506  if ( e.tagName().lower() != tagAction )
507  continue;
508 
509  TDEAction *action = d->guiClient->action( e );
510  if ( !action )
511  continue;
512 
513  configureAction( action, e.attributes() );
514  }
515 }
516 
517 void KXMLGUIFactory::configureAction( TDEAction *action, const TQDomNamedNodeMap &attributes )
518 {
519  for ( uint i = 0; i < attributes.length(); i++ )
520  {
521  TQDomAttr attr = attributes.item( i ).toAttr();
522  if ( attr.isNull() )
523  continue;
524 
525  configureAction( action, attr );
526  }
527 }
528 
529 void KXMLGUIFactory::configureAction( TDEAction *action, const TQDomAttr &attribute )
530 {
531  static const TQString &attrShortcut = TDEGlobal::staticQString( "shortcut" );
532 
533  TQString attrName = attribute.name();
534  // If the attribute is a deprecated "accel", change to "shortcut".
535  if ( attrName.lower() == "accel" )
536  attrName = attrShortcut;
537 
538  TQVariant propertyValue;
539 
540  TQVariant::Type propertyType = action->property( attrName.latin1() ).type();
541 
542  if ( propertyType == TQVariant::Int )
543  propertyValue = TQVariant( attribute.value().toInt() );
544  else if ( propertyType == TQVariant::UInt )
545  propertyValue = TQVariant( attribute.value().toUInt() );
546  else
547  propertyValue = TQVariant( attribute.value() );
548 
549  action->setProperty( attrName.latin1(), propertyValue );
550 }
551 
552 
553 int KXMLGUIFactory::configureShortcuts(bool bAllowLetterShortcuts , bool bSaveSettings )
554 {
555  KKeyDialog dlg( bAllowLetterShortcuts, dynamic_cast<TQWidget*>(parent()) );
556  TQPtrListIterator<KXMLGUIClient> it( d->m_clients );
557  KXMLGUIClient *client;
558  while( (client=it.current()) !=0 )
559  {
560  ++it;
561  if(!client->xmlFile().isEmpty())
562  dlg.insert( client->actionCollection() );
563  }
564  return dlg.configure(bSaveSettings);
565 }
566 
567 TQDomElement KXMLGUIFactory::actionPropertiesElement( TQDomDocument& doc )
568 {
569  const TQString tagActionProp = TQString::fromLatin1("ActionProperties");
570  // first, lets see if we have existing properties
571  TQDomElement elem;
572  TQDomNode it = doc.documentElement().firstChild();
573  for( ; !it.isNull(); it = it.nextSibling() ) {
574  TQDomElement e = it.toElement();
575  if( e.tagName() == tagActionProp ) {
576  elem = e;
577  break;
578  }
579  }
580 
581  // if there was none, create one
582  if( elem.isNull() ) {
583  elem = doc.createElement( tagActionProp );
584  doc.documentElement().appendChild( elem );
585  }
586  return elem;
587 }
588 
589 TQDomElement KXMLGUIFactory::findActionByName( TQDomElement& elem, const TQString& sName, bool create )
590 {
591  static const TQString& attrName = TDEGlobal::staticQString( "name" );
592  static const TQString& tagAction = TDEGlobal::staticQString( "Action" );
593  for( TQDomNode it = elem.firstChild(); !it.isNull(); it = it.nextSibling() ) {
594  TQDomElement e = it.toElement();
595  if( e.attribute( attrName ) == sName )
596  return e;
597  }
598 
599  if( create ) {
600  TQDomElement act_elem = elem.ownerDocument().createElement( tagAction );
601  act_elem.setAttribute( attrName, sName );
602  elem.appendChild( act_elem );
603  return act_elem;
604  }
605  return TQDomElement();
606 }
607 
608 void KXMLGUIFactory::virtual_hook( int, void* )
609 { /*BASE::virtual_hook( id, data );*/ }
610 
611 #include "kxmlguifactory.moc"
KKeyDialog
Dialog for configuration of TDEActionCollection, TDEAccel, and TDEGlobalAccel.
Definition: kkeydialog.h:275
KKeyDialog::configure
bool configure(bool bSaveSettings=true)
Run the dialog and call commitChanges() if bSaveSettings is true.
Definition: kkeydialog.cpp:1130
KKeyDialog::insert
bool insert(TDEActionCollection *)
Insert an action collection, i.e.
Definition: kkeydialog.cpp:1120
KXMLGUIBuilder
Abstract interface for a "GUI builder", used by the GUIFactory This interface is implemented by TDEMa...
Definition: kxmlguibuilder.h:40
KXMLGUIClient
A KXMLGUIClient can be used with KXMLGUIFactory to create a GUI from actions and an XML document,...
Definition: kxmlguiclient.h:44
KXMLGUIClient::xmlFile
virtual TQString xmlFile() const
This will return the name of the XML file as set by setXMLFile().
Definition: kxmlguiclient.cpp:133
KXMLGUIClient::xmlguiBuildDocument
TQDomDocument xmlguiBuildDocument() const
Definition: kxmlguiclient.cpp:545
KXMLGUIClient::setXMLGUIBuildDocument
void setXMLGUIBuildDocument(const TQDomDocument &doc)
Definition: kxmlguiclient.cpp:540
KXMLGUIClient::endXMLPlug
void endXMLPlug()
Definition: kxmlguiclient.cpp:934
KXMLGUIClient::factory
KXMLGUIFactory * factory() const
Retrieves a pointer to the KXMLGUIFactory this client is associated with (will return 0L if the clien...
Definition: kxmlguiclient.cpp:555
KXMLGUIClient::prepareXMLUnplug
void prepareXMLUnplug(TQWidget *)
Definition: kxmlguiclient.cpp:942
KXMLGUIClient::beginXMLPlug
void beginXMLPlug(TQWidget *)
Definition: kxmlguiclient.cpp:926
KXMLGUIClient::setFactory
void setFactory(KXMLGUIFactory *factory)
This method is called by the KXMLGUIFactory as soon as the client is added to the KXMLGUIFactory's GU...
Definition: kxmlguiclient.cpp:550
KXMLGUIClient::clientBuilder
KXMLGUIBuilder * clientBuilder() const
Retrieves the client's GUI builder or 0L if no client specific builder has been assigned via setClien...
Definition: kxmlguiclient.cpp:600
KXMLGUIClient::childClients
const TQPtrList< KXMLGUIClient > * childClients()
Retrieves a list of all child clients.
Definition: kxmlguiclient.cpp:588
KXMLGUIClient::actionCollection
virtual TDEActionCollection * actionCollection() const
Retrieves the entire action collection for the GUI client.
Definition: kxmlguiclient.cpp:107
KXMLGUIClient::domDocument
virtual TQDomDocument domDocument() const
Definition: kxmlguiclient.cpp:128
KXMLGUIFactory::findActionByName
static TQDomElement findActionByName(TQDomElement &elem, const TQString &sName, bool create)
Definition: kxmlguifactory.cpp:589
KXMLGUIFactory::~KXMLGUIFactory
~KXMLGUIFactory()
Destructor.
Definition: kxmlguifactory.cpp:219
KXMLGUIFactory::removeClient
void removeClient(KXMLGUIClient *client)
Removes the GUI described by the client, by unplugging all provided actions and removing all owned co...
Definition: kxmlguifactory.cpp:321
KXMLGUIFactory::addClient
void addClient(KXMLGUIClient *client)
Creates the GUI described by the TQDomDocument of the client, using the client's actions,...
Definition: kxmlguifactory.cpp:224
KXMLGUIFactory::resetContainer
void resetContainer(const TQString &containerName, bool useTagName=false)
Use this method to free all memory allocated by the KXMLGUIFactory for a specific container,...
Definition: kxmlguifactory.cpp:413
KXMLGUIFactory::clients
TQPtrList< KXMLGUIClient > clients() const
Returns a list of all clients currently added to this factory.
Definition: kxmlguifactory.cpp:379
KXMLGUIFactory::configureShortcuts
int configureShortcuts(bool bAllowLetterShortcuts=true, bool bSaveSettings=true)
Show a standard configure shortcut for every action in this factory.
Definition: kxmlguifactory.cpp:553
KXMLGUIFactory::reset
void reset()
Use this method to free all memory allocated by the KXMLGUIFactory.
Definition: kxmlguifactory.cpp:406
KXMLGUIFactory::container
TQWidget * container(const TQString &containerName, KXMLGUIClient *client, bool useTagName=false)
Use this method to get access to a container widget with the name specified with containerName and wh...
Definition: kxmlguifactory.cpp:384
KXMLGUIFactory::actionPropertiesElement
static TQDomElement actionPropertiesElement(TQDomDocument &doc)
Definition: kxmlguifactory.cpp:567
KXMLGUIFactory::removeDOMComments
static void removeDOMComments(TQDomNode &node)
Removes all TQDomComment objects from the specified node and all its children.
Definition: kxmlguifactory.cpp:186
KXMLGUIFactory::KXMLGUIFactory
KXMLGUIFactory(KXMLGUIBuilder *builder, TQObject *parent=0, const char *name=0)
Constructs a KXMLGUIFactory.
Definition: kxmlguifactory.cpp:206
TDEAction
Class to encapsulate user-driven action or event.
Definition: tdeaction.h:203
TDEGlobal::instance
static TDEInstance * instance()
TDEGlobal::staticQString
static const TQString & staticQString(const char *str)
TDEInstance
TDEInstance::instanceName
TQCString instanceName() const
endl
kndbgstream & endl(kndbgstream &s)
kdError
kdbgstream kdError(int area=0)
kdDebug
kdbgstream kdDebug(int area=0)
locate
TQString locate(const char *type, const TQString &filename, const TDEInstance *instance=TDEGlobal::instance())
locateLocal
TQString locateLocal(const char *type, const TQString &filename, const TDEInstance *instance=TDEGlobal::instance())
KNotifyClient::instance
TDEInstance * instance()
TDEStdAccel::name
TQString name(StdAccel id)
TDEStdAccel::action
TQString action(StdAccel id)

tdeui

Skip menu "tdeui"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeui

Skip menu "tdeui"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeui by doxygen 1.9.1
This website is maintained by Timothy Pearson.