00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#include <qwidget.h>
00025
00026
#include <kaction.h>
00027
#include <kapplication.h>
00028
#include <kdebug.h>
00029
#include <kgenericfactory.h>
00030
#include <kiconloader.h>
00031
#include <kparts/componentfactory.h>
00032
#include <kstandarddirs.h>
00033
#include <dcopclient.h>
00034
00035
#include "core.h"
00036
#include "summarywidget.h"
00037
00038
#include "kmail_plugin.h"
00039
00040
typedef KGenericFactory<KMailPlugin, Kontact::Core> KMailPluginFactory;
00041 K_EXPORT_COMPONENT_FACTORY( libkontact_kmailplugin,
00042 KMailPluginFactory(
"kontact_kmailplugin" ) )
00043
00044 KMailPlugin::KMailPlugin(Kontact::
Core *core, const
char *, const QStringList& )
00045 : Kontact::Plugin( core, core, "kmail" ),
00046 mStub( 0 )
00047 {
00048 setInstance( KMailPluginFactory::instance() );
00049
00050 insertNewAction(
new KAction( i18n(
"New Mail" ), BarIcon(
"mail_new" ),
00051 0,
this, SLOT( slotNewMail() ), actionCollection(),
00052
"new_mail" ) );
00053
00054 mUniqueAppWatcher =
new Kontact::UniqueAppWatcher(
00055
new Kontact::UniqueAppHandlerFactory<KMailUniqueAppHandler>(),
this );
00056 }
00057
00058
00059
void KMailPlugin::slotNewMail()
00060 {
00061 (
void) part();
00062 Q_ASSERT( mStub );
00063
if ( mStub )
00064 mStub->openComposer(
"",
"",
"",
"",
"",
false, KURL() );
00065 }
00066
00067 KMailPlugin::~KMailPlugin()
00068 {
00069 }
00070
00071
bool KMailPlugin::createDCOPInterface(
const QString& serviceType )
00072 {
00073
if ( serviceType ==
"DCOP/ResourceBackend/IMAP" ) {
00074
if ( part() )
00075
return true;
00076 }
00077
00078
return false;
00079 }
00080
00081 QString KMailPlugin::tipFile()
const
00082
{
00083 QString file = ::locate(
"data",
"kmail/tips");
00084
return file;
00085 }
00086
00087 KParts::Part* KMailPlugin::createPart()
00088 {
00089 KParts::Part *part = loadPart();
00090
if ( !part )
return 0;
00091
00092 mStub =
new KMailIface_stub( dcopClient(),
"kmail",
"KMailIface" );
00093
return part;
00094 }
00095
00096 QStringList KMailPlugin::invisibleToolbarActions()
const
00097
{
00098
return QStringList(
"new_message" );
00099 }
00100
00101
bool KMailPlugin::isRunningStandalone()
00102 {
00103
return mUniqueAppWatcher->isRunningStandalone();
00104 }
00105
00106
Kontact::Summary *KMailPlugin::createSummaryWidget( QWidget *parent )
00107 {
00108
return new SummaryWidget(
this, parent );
00109 }
00110
00112
00113
#include "../../../kmail/kmail_options.h"
00114
void KMailUniqueAppHandler::loadCommandLineOptions()
00115 {
00116 KCmdLineArgs::addCmdLineOptions( kmail_options );
00117 }
00118
00119
int KMailUniqueAppHandler::newInstance()
00120 {
00121
00122 (
void)plugin()->part();
00123 DCOPRef kmail(
"kmail",
"KMailIface" );
00124 DCOPReply reply = kmail.call(
"handleCommandLine",
false );
00125
if ( reply.isValid() ) {
00126
bool handled = reply;
00127
00128
if ( !handled )
00129
return Kontact::UniqueAppHandler::newInstance();
00130 }
00131
return 0;
00132 }
00133
00134
#include "kmail_plugin.moc"