kontact

karm_plugin.cpp

00001 /*
00002     This file is part of Kontact.
00003 
00004     Copyright (c) 2004 Tobias Koenig <tokoe@kde.org>
00005     adapted for karm 2005 by Thorsten Staerk <kde@staerk.de>
00006 
00007     This program is free software; you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation; either version 2 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program; if not, write to the Free Software
00019     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00020 
00021     As a special exception, permission is given to link this program
00022     with any edition of Qt, and distribute the resulting executable,
00023     without including the source code for Qt in the source distribution.
00024 */
00025 
00026 #include <kgenericfactory.h>
00027 #include <kparts/componentfactory.h>
00028 
00029 #include "core.h"
00030 #include "plugin.h"
00031 
00032 #include "karm_plugin.h"
00033 #include "karmdcopiface_stub.h"
00034 
00035 typedef KGenericFactory<KarmPlugin, Kontact::Core> KarmPluginFactory;
00036 K_EXPORT_COMPONENT_FACTORY( libkontact_karm,
00037                             KarmPluginFactory( "kontact_karm" ) )
00038 
00039 KarmPlugin::KarmPlugin( Kontact::Core *core, const char *, const QStringList& )
00040   : Kontact::Plugin( core, core, "KArm" )
00041 {
00042   setInstance( KarmPluginFactory::instance() );
00043   (void)dcopClient();
00044   insertNewAction( new KAction( i18n( "New Task" ), "karm",
00045                    CTRL+SHIFT+Key_W, this, SLOT( newTask() ), actionCollection(),
00046                    "new_task" ) );
00047 }
00048 
00049 KarmPlugin::~KarmPlugin()
00050 {
00051 }
00052 
00053 KParts::ReadOnlyPart* KarmPlugin::createPart()
00054 {
00055   KParts::ReadOnlyPart * part = loadPart();
00056   if ( !part ) return 0;
00057 
00058   // this calls a DCOP interface from karm via the lib KarmDCOPIface_stub that is generated automatically
00059   mStub = new KarmDCOPIface_stub( dcopClient(), "KArm",
00060                                       "KarmDCOPIface" );
00061 
00062   return part;
00063 }
00064 
00065 void KarmPlugin::newTask()
00066 {
00067   kdDebug() << "Entering newTask" << endl;
00068   mStub->addTask("New Task");
00069 }
00070 
00071 #include "karm_plugin.moc"
KDE Home | KDE Accessibility Home | Description of Access Keys