25#include "knode_plugin.h" 
   29#include <tdeapplication.h> 
   30#include <tdeparts/componentfactory.h> 
   31#include <kgenericfactory.h> 
   32#include <tdeapplication.h> 
   34#include <kiconloader.h> 
   37#include <dcopclient.h> 
   42typedef KGenericFactory<KNodePlugin, Kontact::Core> KNodePluginFactory;
 
   43K_EXPORT_COMPONENT_FACTORY( libkontact_knodeplugin,
 
   44                            KNodePluginFactory( 
"kontact_knodeplugin" ) )
 
   47KNodePlugin::KNodePlugin( Kontact::Core *core, const 
char *, const TQStringList& )
 
   48  : Kontact::Plugin( core, core, "knode" ), mStub(0)
 
   50  setInstance( KNodePluginFactory::instance() );
 
   52  insertNewAction( 
new TDEAction( i18n( 
"New Article..." ), 
"mail-message-new", CTRL+SHIFT+Key_A,
 
   53                   this, TQ_SLOT( slotPostArticle() ), actionCollection(), 
"post_article" ) );
 
   59KNodePlugin::~KNodePlugin()
 
   63bool KNodePlugin::createDCOPInterface( 
const TQString&  )
 
   68bool KNodePlugin::isRunningStandalone()
 
   70  return mUniqueAppWatcher->isRunningStandalone();
 
   73TQStringList KNodePlugin::invisibleToolbarActions()
 const 
   75  return TQStringList( 
"article_postNew" );
 
   78void KNodePlugin::slotPostArticle()
 
   86KParts::ReadOnlyPart* KNodePlugin::createPart()
 
   88  KParts::ReadOnlyPart *part = loadPart();
 
   89  if ( !part ) 
return 0;
 
   91  mStub = 
new KNodeIface_stub( dcopClient(), 
"knode", 
"KNodeIface" );
 
   97#include "../../../knode/knode_options.h" 
   98void KNodeUniqueAppHandler::loadCommandLineOptions()
 
  100    TDECmdLineArgs::addCmdLineOptions( knode_options );
 
  103int KNodeUniqueAppHandler::newInstance()
 
  106    (void)plugin()->part();
 
  107    DCOPRef knode( 
"knode", 
"KNodeIface" );
 
  108    DCOPReply reply = knode.call( 
"handleCommandLine" );
 
  110    if ( reply.isValid() ) {
 
  111        bool handled = reply;
 
  112        kdDebug(5602) << k_funcinfo << 
"handled=" << handled << endl;
 
  123#include "knode_plugin.moc" 
Used by UniqueAppWatcher below, to create the above UniqueAppHandler object when necessary.
 
virtual int newInstance()
We can't use k_dcop and dcopidl here, because the data passed to newInstance can't be expressed in te...
 
If the standalone application is running by itself, we need to watch for when the user closes it,...