I have tried QDesktopWidget but with no luck. Here is the code of the DLL file

The mouseHookPlugin_global.h looks like

Qt Code:
  1. #ifndef MOUSEHOOKPLUGIN_GLOBAL_H
  2. #define MOUSEHOOKPLUGIN_GLOBAL_H
  3.  
  4. #include <QtCore/qglobal.h>
  5.  
  6. #if defined(MOUSEHOOKPLUGIN_LIBRARY)
  7. # define MOUSEHOOKPLUGINSHARED_EXPORT Q_DECL_EXPORT
  8. #else
  9. # define MOUSEHOOKPLUGINSHARED_EXPORT Q_DECL_IMPORT
  10. #endif
  11.  
  12. #ifdef Q_OS_WIN
  13. #define MY_EXPORT __declspec(dllexport)
  14. #else
  15. #define MY_EXPORT
  16. #endif
  17.  
  18. #endif // MOUSEHOOKPLUGIN_GLOBAL_H
To copy to clipboard, switch view to plain text mode 

The header file looks like

Qt Code:
  1. #ifndef MOUSEHOOKPLUGIN_H
  2. #define MOUSEHOOKPLUGIN_H
  3.  
  4. #include <QString>
  5. #include <QMenu>
  6. #include <QDesktopWidget>
  7. #include <QTimer>
  8. #include <QMouseEvent>
  9.  
  10. #include "mouseHookPlugin_global.h"
  11.  
  12. extern "C"
  13. {
  14. MY_EXPORT void initializePlugin(QString, QString, QMenu*);
  15. MY_EXPORT void uninitializePlugin();
  16. }
  17.  
  18. class MOUSEHOOKPLUGINSHARED_EXPORT MouseHookPlugin : public QDesktopWidget
  19. {
  20. Q_OBJECT
  21. public:
  22. MouseHookPlugin();
  23. ~MouseHookPlugin();
  24.  
  25. void mouseDoubleClickEvent(QMouseEvent *);
  26.  
  27. public slots:
  28. void slotShowMenu();
  29. void slotInitializePlugin(QString, QString, QMenu*);
  30. void slotUninitializePlugin();
  31.  
  32. //void slotTimerTicks();
  33.  
  34. private:
  35. QString appPath;
  36. QString setPath;
  37. QMenu* ruMenu;
  38. };
  39.  
  40. #endif // MOUSEHOOKPLUGIN_H
To copy to clipboard, switch view to plain text mode 

and the cpp file looks like

Qt Code:
  1. #include "mousehookplugin.h"
  2.  
  3. namespace
  4. {
  5. MouseHookPlugin *mhp;
  6. }
  7.  
  8. void initializePlugin(QString ap, QString sp, QMenu* ru)
  9. {
  10. mhp = new MouseHookPlugin();
  11. mhp->slotInitializePlugin(ap,sp,ru);
  12. }
  13.  
  14. void uninitializePlugin()
  15. {
  16. mhp->slotUninitializePlugin();
  17. delete mhp;
  18. }
  19.  
  20. MouseHookPlugin::MouseHookPlugin()
  21. {
  22. ruMenu = NULL;
  23. }
  24.  
  25. MouseHookPlugin::~MouseHookPlugin()
  26. {
  27.  
  28. }
  29.  
  30. void MouseHookPlugin::mouseDoubleClickEvent(QMouseEvent *e)
  31. {
  32. if(e->button() == Qt::LeftButton)
  33. qDebug(QString("Mouse double clicked...").toAscii());
  34. }
  35.  
  36. void MouseHookPlugin::slotShowMenu()
  37. {
  38. if(ruMenu)
  39. {
  40. QMenu *pMenu = ruMenu->actions()[1]->menu();
  41. if(pMenu)
  42. {
  43. pMenu->popup(QCursor::pos());
  44. pMenu->activateWindow();
  45. }
  46. }
  47. }
  48.  
  49. void MouseHookPlugin::slotInitializePlugin(QString ap, QString sp, QMenu* ru)
  50. {
  51. appPath = ap;
  52. setPath = sp;
  53. ruMenu = ru;
  54.  
  55. qDebug(QString("Initialization completed...").toAscii());
  56. }
  57.  
  58. void MouseHookPlugin::slotUninitializePlugin()
  59. {
  60. qDebug(QString("Uninitialization completed...").toAscii());
  61. }
To copy to clipboard, switch view to plain text mode 

I am not getting any double clicks, local or global. Am I missing something?