kontact
akregator_plugin.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <qwidget.h>
00026
00027 #include <dcopclient.h>
00028 #include <dcopref.h>
00029 #include <kaboutdata.h>
00030 #include <kaction.h>
00031 #include <kapplication.h>
00032 #include <kcmdlineargs.h>
00033 #include <kdebug.h>
00034 #include <kgenericfactory.h>
00035 #include <kiconloader.h>
00036 #include <kmessagebox.h>
00037 #include <kparts/componentfactory.h>
00038
00039 #include <core.h>
00040 #include <plugin.h>
00041
00042 #include <akregator_options.h>
00043 #include <akregator_part.h>
00044 #include "akregator_plugin.h"
00045 namespace AkregatorPart {
00046
00047 typedef KGenericFactory<AkregatorPart::Plugin, Kontact::Core > PluginFactory;
00048 K_EXPORT_COMPONENT_FACTORY( libkontact_akregator,
00049 PluginFactory( "kontact_akregator" ) )
00050
00051 Plugin::Plugin( Kontact::Core *core, const char *, const QStringList& )
00052 : Kontact::Plugin( core, core, "akregator" ), m_stub(0)
00053 {
00054
00055 setInstance( PluginFactory::instance() );
00056
00057 insertNewAction( new KAction( i18n( "New Feed..." ), "bookmark_add", CTRL+SHIFT+Key_F, this, SLOT( addFeed() ), actionCollection(), "feed_new" ) );
00058
00059 m_uniqueAppWatcher = new Kontact::UniqueAppWatcher(
00060 new Kontact::UniqueAppHandlerFactory<AkregatorPart::UniqueAppHandler>(), this );
00061 }
00062
00063 Plugin::~Plugin()
00064 {
00065 }
00066
00067 bool Plugin::isRunningStandalone()
00068 {
00069 return m_uniqueAppWatcher->isRunningStandalone();
00070 }
00071
00072 QStringList Plugin::invisibleToolbarActions() const
00073 {
00074 return QStringList( "file_new_contact" );
00075 }
00076
00077
00078 Akregator::AkregatorPartIface_stub *Plugin::interface()
00079 {
00080 if ( !m_stub ) {
00081 part();
00082 }
00083
00084 Q_ASSERT( m_stub );
00085 return m_stub;
00086 }
00087
00088
00089 MyBasePart* Plugin::createPart()
00090 {
00091 MyBasePart* p = loadPart();
00092
00093 connect(p, SIGNAL(showPart()), this, SLOT(showPart()));
00094 m_stub = new Akregator::AkregatorPartIface_stub( dcopClient(), "akregator", "AkregatorIface" );
00095 m_stub->openStandardFeedList();
00096 return p;
00097 }
00098
00099
00100 void Plugin::showPart()
00101 {
00102 core()->selectPlugin(this);
00103 }
00104
00105 void Plugin::addFeed()
00106 {
00107 interface()->addFeed();
00108 }
00109
00110 QStringList Plugin::configModules() const
00111 {
00112 QStringList modules;
00113 modules << "PIM/akregator.desktop";
00114 return modules;
00115 }
00116
00117 void Plugin::readProperties( KConfig *config )
00118 {
00119 if ( part() ) {
00120 Akregator::Part *myPart = static_cast<Akregator::Part*>( part() );
00121 myPart->readProperties( config );
00122 }
00123 }
00124
00125 void Plugin::saveProperties( KConfig *config )
00126 {
00127 if ( part() ) {
00128 Akregator::Part *myPart = static_cast<Akregator::Part*>( part() );
00129 myPart->saveProperties( config );
00130 }
00131 }
00132
00133 void UniqueAppHandler::loadCommandLineOptions()
00134 {
00135 KCmdLineArgs::addCmdLineOptions( Akregator::akregator_options );
00136 }
00137
00138 int UniqueAppHandler::newInstance()
00139 {
00140 kdDebug(5602) << k_funcinfo << endl;
00141
00142 (void)plugin()->part();
00143 DCOPRef akr( "akregator", "AkregatorIface" );
00144
00145
00146
00147
00148
00149 return Kontact::UniqueAppHandler::newInstance();
00150
00151
00152 }
00153
00154 }
00155 #include "akregator_plugin.moc"
|