? Doxyfile
Index: kapplication.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdecore/kapplication.cpp,v
retrieving revision 1.564
diff -u -3 -p -r1.564 kapplication.cpp
--- kapplication.cpp	6 Feb 2003 17:34:58 -0000	1.564
+++ kapplication.cpp	15 Feb 2003 03:45:41 -0000
@@ -43,6 +43,7 @@
 #include <qpixmapcache.h>
 #include <qtooltip.h>
 #include <qstylefactory.h>
+#include <qmetaobject.h>
 #ifndef QT_NO_SQL
 #include <qsqlpropertymap.h>
 #endif
@@ -1518,6 +1519,24 @@ bool KApplication::x11EventFilter( XEven
 }
 #endif
 
+void KApplication::invokeEditSlot( const char *slotName, const char *slot )
+{
+  QObject *object = focusWidget();
+  
+  if( !object || !slotName || !slot )
+    return;
+  
+  QMetaObject *meta = object->metaObject();
+  QStrList l = meta->slotNames(true);
+  
+  if( l.find( slotName ) == -1 )
+    return;
+  
+  connect( this, SIGNAL( editSignal() ), object, slot );
+  emit editSignal();
+  disconnect( this, SIGNAL( editSignal() ), object, slot );
+}
+
 void KApplication::addKipcEventMask(int id)
 {
     if (id >= 32)
@@ -1982,6 +2001,31 @@ void KApplication::invokeBrowser( const 
       kdWarning() << "Could not launch browser:\n" << error << endl;
       return;
    }
+}
+
+void KApplication::cut()
+{
+  invokeEditSlot( "cut()", SLOT( cut() ) );
+}
+
+void KApplication::copy()
+{
+  invokeEditSlot( "copy()", SLOT( copy() ) );
+}
+
+void KApplication::paste()
+{
+  invokeEditSlot( "paste()", SLOT( paste() ) );
+}
+
+void KApplication::clear()
+{
+  invokeEditSlot( "clear()", SLOT( clear() ) );
+}
+
+void KApplication::selectAll()
+{
+  invokeEditSlot( "selectAll()", SLOT( selectAll() ) );
 }
 
 QCString
Index: kapplication.h
===================================================================
RCS file: /home/kde/kdelibs/kdecore/kapplication.h,v
retrieving revision 1.281
diff -u -3 -p -r1.281 kapplication.h
--- kapplication.h	7 Feb 2003 13:26:28 -0000	1.281
+++ kapplication.h	15 Feb 2003 03:45:41 -0000
@@ -468,6 +468,12 @@ public slots:
    */
   void invokeBrowser( const QString &url );
 
+  void cut();
+  void copy();
+  void paste();
+  void clear();
+  void selectAll();
+
 public:
   /**
    * Returns the DCOP name of the service launcher. This will be something like
@@ -912,6 +918,8 @@ protected:
   static KApplication *KApp;
   int pArgc;
 
+  void invokeEditSlot( const char *slotName, const char *slot );
+
 private slots:
   void dcopFailure(const QString &);
   void dcopBlockUserInput( bool );
@@ -940,6 +948,7 @@ private:
   void dcopAutoRegistration();
   void dcopClientPostInit();
   void initUrlActionRestrictions();
+
 public:
   /**
    * @internal
@@ -1098,6 +1107,8 @@ signals:
       this state.
    */
   void shutDown();
+
+  void editSignal();
 
 private:
   void propagateSettings(SettingsCategory category);
