1 // Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 #include "HYDROGUI_SetColorOp.h"
25 #include "HYDROGUI_ColorDlg.h"
26 #include "HYDROGUI_DataModel.h"
27 #include "HYDROGUI_Module.h"
28 #include "HYDROGUI_Tool.h"
29 #include "HYDROGUI_UpdateFlags.h"
31 #include <LightApp_Application.h>
32 #include <LightApp_UpdateFlags.h>
34 #include <SUIT_Desktop.h>
36 HYDROGUI_SetColorOp::HYDROGUI_SetColorOp( HYDROGUI_Module* theModule )
37 : HYDROGUI_Operation( theModule ),
40 setName( tr( "SET_COLOR" ) );
43 HYDROGUI_SetColorOp::~HYDROGUI_SetColorOp()
47 void HYDROGUI_SetColorOp::startOperation()
49 HYDROGUI_Operation::startOperation();
51 // Get the selected object
52 myEditedObject = Handle(HYDROData_Object)::DownCast( HYDROGUI_Tool::GetSelectedObject( module() ) );
54 if( !myEditedObject.IsNull() ) {
55 // Get colors from the object
56 QColor aFillingColor = myEditedObject->GetFillingColor();
57 QColor aBorderColor = myEditedObject->GetBorderColor();
59 // Create color dialog
60 myColorDlg = new HYDROGUI_ColorDlg( module()->getApp()->desktop() );
61 myColorDlg->setModal( true );
62 myColorDlg->setWindowTitle( getName() );
64 // Set colors from the object
65 myColorDlg->setFillingColor( aFillingColor );
66 myColorDlg->setBorderColor( aBorderColor );
68 // Connect the dialog to operation slots
69 connect( myColorDlg, SIGNAL( accepted() ), this, SLOT( onApply() ) );
70 connect( myColorDlg, SIGNAL( rejected() ), this, SLOT( onCancel() ) );
77 bool HYDROGUI_SetColorOp::processApply( int& theUpdateFlags,
78 QString& theErrorMsg )
82 if ( myColorDlg && myEditedObject ) {
83 QColor aFillingColor = myColorDlg->getFillingColor();
84 QColor aBorderColor = myColorDlg->getBorderColor();
86 myEditedObject->SetFillingColor( aFillingColor );
87 myEditedObject->SetBorderColor( aBorderColor );
89 theUpdateFlags = UF_Model | UF_OCCViewer | UF_OCC_Forced;