#include "myplugin.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // using namespace std; /* ----------------------------------------------------------------------- */ KAboutData aboutData ("myplugin", "myplugin", ki18n("MyPlugin"), "0.1.2"); K_PLUGIN_FACTORY (MyPluginFactory, registerPlugin (); ) K_EXPORT_PLUGIN (MyPluginFactory (aboutData)) /* ----------------------------------------------------------------------- */ class MyViewFactory : public KDevelop::IToolViewFactory { public: virtual QWidget * create (QWidget * parent = 0) { // std::cout << std::endl; // std::cout << " **** create MyView **** " << std::endl; // std::cout << std::endl; return new MyView (m_plugin, parent); } virtual Qt::DockWidgetArea defaultPosition() { return Qt::BottomDockWidgetArea; } virtual QString id() const { return "org.kdevelop.MyPlugin"; } private: MyPlugin * m_plugin; public: MyViewFactory (MyPlugin * plugin) : m_plugin (plugin) { } }; /* ----------------------------------------------------------------------- */ MyPlugin::MyPlugin (QObject *parent, const QVariantList & args) : KDevelop::IPlugin (MyPluginFactory::componentData(), parent) { Q_UNUSED(args) setXMLFile ("myplugin.rc"); std::cerr << std::endl; std::cerr << " **** MY PLUGIN **** " << std::endl; std::cerr << std::endl; m_view_factory = new MyViewFactory (this); core()->uiController()->addToolView ("MyPlugin", m_view_factory); // std::cout << " **** addToolView **** " << std::endl; KActionCollection* actions = actionCollection (); KAction *action = actions->addAction ("myplugin_run"); action->setText (i18n ("My Plugin Run")); action->setShortcut (Qt::CTRL | Qt::ALT | Qt::Key_1); connect (action, SIGNAL (triggered (bool)), this, SLOT (run ())); } MyPlugin::~MyPlugin() { } void MyPlugin::unload() { core()->uiController()->removeToolView (m_view_factory); } void MyPlugin::run () { std::cerr << std::endl; std::cerr << " **** MYPLUGIN RUN **** " << std::endl; std::cerr << std::endl; kDebug () << " ---- MYPLUGIN RUN --- "; } /* ----------------------------------------------------------------------- */ MyView::MyView (MyPlugin *plugin, QWidget* parent) : QWidget (parent) { setObjectName (i18n( "MyPlugin")); setWhatsThis (i18n ("MyPlugin

" "This window contains an view.

" ) ); setWindowIcon (KIcon ("tux")); setWindowTitle (i18n ("MyPlugin" ) ); new QPushButton ("My Plugin", this); } /* ----------------------------------------------------------------------- */ /* Required items in .desktop */ /* [Desktop Entry] Type=Service ServiceTypes=KDevelop/Plugin X-KDE-Library=myplugin X-KDE-PluginInfo-Name=myplugin X-KDevelop-Version=8 X-KDevelop-Category=Global X-KDevelop-Mode=GUI */ /* ----------------------------------------------------------------------- */ #include "myplugin.moc"