]> SALOME platform Git repositories - modules/gui.git/blob - src/SUIT/SUIT_PopupClient.cxx
Salome HOME
5f79a5352c5096dbcd358beee877bb1cfccf13ca
[modules/gui.git] / src / SUIT / SUIT_PopupClient.cxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 #include "SUIT_PopupClient.h"
23
24 /*! constructor. initialize mySignal.*/
25 SUIT_PopupClient::SUIT_PopupClient()
26 : mySignal( 0 )
27 {
28 }
29
30 /*! destructor. delete mySignal*/
31 SUIT_PopupClient::~SUIT_PopupClient()
32 {
33   delete mySignal;
34 }
35
36 /*!
37   Connect popup request.
38 */
39 bool SUIT_PopupClient::connectPopupRequest( QObject* reciever, const char* slot )
40 {
41   if ( !reciever || !slot )
42     return false;
43   if ( !mySignal )
44     mySignal = new Signal();
45   return QObject::connect( mySignal, SIGNAL( contextMenuRequest( SUIT_PopupClient*, QContextMenuEvent* ) ),
46                            reciever, slot );
47 }
48
49 /*!
50   Disconnect popup request.
51 */
52 bool SUIT_PopupClient::disconnectPopupRequest( QObject* reciever, const char* slot )
53 {
54   if ( !reciever || !slot || !mySignal )
55     return false;
56   return QObject::disconnect( mySignal, SIGNAL( contextMenuRequest( SUIT_PopupClient*, QContextMenuEvent* ) ),
57                               reciever, slot );
58 }
59
60 /*!
61   Send signal on context menu request.
62 */
63 void SUIT_PopupClient::contextMenuRequest( QContextMenuEvent* e )
64 {
65   if ( mySignal )
66     mySignal->sendSignal( this, e );
67 }
68
69 /*!
70  *  \class SUIT_PopupClient::Signal
71  * Descr: invoke signal which is connected to reciever in SUIT_PopupClient
72  */
73
74 /*! constructor*/
75 SUIT_PopupClient::Signal::Signal()
76 : QObject( 0 )
77 {
78 }
79
80 /*! destructor. do nothing*/
81 SUIT_PopupClient::Signal::~Signal()
82 {}
83
84 /*! Send signal to \a client on context menu request \a e.
85  */
86 void SUIT_PopupClient::Signal::sendSignal( SUIT_PopupClient* client, QContextMenuEvent* e )
87 {
88   emit contextMenuRequest( client, e );
89 }