]> SALOME platform Git repositories - modules/gui.git/blob - src/SUIT/SUIT_PopupClient.cxx
Salome HOME
8714bfe647e83e75b01a52e4b48026ef9739d394
[modules/gui.git] / src / SUIT / SUIT_PopupClient.cxx
1 #include "SUIT_PopupClient.h"
2
3 #include <qevent.h>
4
5 /*! constructor. initialize mySignal.*/
6 SUIT_PopupClient::SUIT_PopupClient()
7 : mySignal( 0 )
8 {
9 }
10
11 /*! destructor. delete mySignal*/
12 SUIT_PopupClient::~SUIT_PopupClient()
13 {
14   delete mySignal;
15 }
16
17 bool SUIT_PopupClient::connectPopupRequest( QObject* reciever, const char* slot )
18 {
19   if ( !reciever || !slot )
20     return false;
21   if ( !mySignal )
22     mySignal = new Signal();
23   return QObject::connect( mySignal, SIGNAL( contextMenuRequest( SUIT_PopupClient*, QContextMenuEvent* ) ),
24                            reciever, slot );
25 }
26
27 bool SUIT_PopupClient::disconnectPopupRequest( QObject* reciever, const char* slot )
28 {
29   if ( !reciever || !slot || !mySignal )
30     return false;
31   return QObject::disconnect( mySignal, SIGNAL( contextMenuRequest( SUIT_PopupClient*, QContextMenuEvent* ) ),
32                               reciever, slot );
33 }
34
35 void SUIT_PopupClient::contextMenuRequest( QContextMenuEvent* e )
36 {
37   if ( mySignal )
38     mySignal->sendSignal( this, e );
39 }
40
41 /*
42   Class: SUIT_PopupClient::Signal [internal]
43   Descr: invoke signal which is connected to reciever in SUIT_PopupClient
44 */
45
46 /*! constructor*/
47 SUIT_PopupClient::Signal::Signal()
48 : QObject( 0 )
49 {
50 }
51
52 /*! destructor. do nothing*/
53 SUIT_PopupClient::Signal::~Signal()
54 {}
55
56 void SUIT_PopupClient::Signal::sendSignal( SUIT_PopupClient* client, QContextMenuEvent* e )
57 {
58   emit contextMenuRequest( client, e );
59 }