X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_Preferences_ColorDlg.cxx;h=543931c3f31917cbde088ecb220c4b00c6c1f352;hb=8931be9b66b01e46697768ec35876c3bc4528358;hp=85311c6b70492fef6f1ae5b7e6689c16260e7cde;hpb=9357f5c87098aff2b95b754d69f66c76d2df9c24;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx index 85311c6b7..543931c3f 100644 --- a/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_Preferences_ColorDlg.cxx @@ -1,23 +1,23 @@ -// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // SMESH SMESHGUI : GUI for SMESH component @@ -33,8 +33,12 @@ // SALOME GUI includes #include +#include +#include +#include #include #include +#include #include // Qt includes @@ -45,6 +49,7 @@ #include #include #include +#include #define SPACING 6 #define MARGIN 11 @@ -75,15 +80,17 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul ButtonGroup1Layout->setSpacing( SPACING ); ButtonGroup1Layout->setMargin( MARGIN ); - QLabel* TextLabel_Fill = new QLabel( tr( "Fill" ), ButtonGroup1 ); - btnFillColor = new QtxColorButton( ButtonGroup1 ); + QLabel* TextLabel_Fill = new QLabel( tr( "Surface color" ), ButtonGroup1 ); - QLabel* TextLabel_BackFace = new QLabel( tr( "Back Face" ), ButtonGroup1 ); - btnBackFaceColor = new QtxColorButton( ButtonGroup1 ); + toolSurfColor = new QtxBiColorTool(ButtonGroup1); + toolSurfColor->setText("Back surface color"); - QLabel* TextLabel_Outine = new QLabel( tr( "Outline" ), ButtonGroup1 ); + QLabel* TextLabel_Outline = new QLabel( tr( "Outline color" ), ButtonGroup1 ); btnOutlineColor = new QtxColorButton( ButtonGroup1 ); + QLabel* TextLabel_Wireframe = new QLabel( tr( "Wireframe color" ), ButtonGroup1 ); + btnWireframeColor = new QtxColorButton( ButtonGroup1 ); + QLabel* TextLabel_0DElements_Color = new QLabel( tr( "0D elements" ), ButtonGroup1 ); btn0DElementsColor = new QtxColorButton( ButtonGroup1 ); @@ -112,15 +119,19 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul SpinBox_Shrink->setButtonSymbols( QSpinBox::PlusMinus ); ButtonGroup1Layout->addWidget( TextLabel_Fill, 0, 0 ); - ButtonGroup1Layout->addWidget( btnFillColor, 0, 1 ); - ButtonGroup1Layout->addWidget( TextLabel_BackFace, 0, 2 ); - ButtonGroup1Layout->addWidget( btnBackFaceColor, 0, 3 ); - ButtonGroup1Layout->addWidget( TextLabel_Outine, 1, 0 ); + ButtonGroup1Layout->addWidget( toolSurfColor, 0, 1, 1, 3 ); + + ButtonGroup1Layout->addWidget( TextLabel_Outline, 1, 0 ); ButtonGroup1Layout->addWidget( btnOutlineColor, 1, 1 ); - ButtonGroup1Layout->addWidget( TextLabel_0DElements_Color, 1, 2 ); - ButtonGroup1Layout->addWidget( btn0DElementsColor, 1, 3 ); - ButtonGroup1Layout->addWidget( TextLabel_0DElements_Size, 2, 0 ); - ButtonGroup1Layout->addWidget( SpinBox_0DElements_Size, 2, 1 ); + ButtonGroup1Layout->addWidget( TextLabel_Wireframe, 1, 2 ); + ButtonGroup1Layout->addWidget( btnWireframeColor, 1, 3 ); + + ButtonGroup1Layout->addWidget( TextLabel_0DElements_Color, 2, 0 ); + ButtonGroup1Layout->addWidget( btn0DElementsColor, 2, 1 ); + + ButtonGroup1Layout->addWidget( TextLabel_0DElements_Size, 2, 2 ); + ButtonGroup1Layout->addWidget( SpinBox_0DElements_Size, 2, 3 ); + ButtonGroup1Layout->addWidget( TextLabel_Width, 3, 0 ); ButtonGroup1Layout->addWidget( SpinBox_Width, 3, 1 ); ButtonGroup1Layout->addWidget( TextLabel_ShrinkCoeff, 3, 2 ); @@ -173,6 +184,23 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul ButtonGroup3Layout->addWidget( SpinBox_Orientation_Scale, 0, 3 ); ButtonGroup3Layout->addWidget( CheckBox_Orientation_3DVectors, 1, 0, 1, 4 ); + // ------------------------------- + QGroupBox* ButtonGroup4 = new QGroupBox( tr( "Selection" ), this ); + QGridLayout* ButtonGroup4Layout = new QGridLayout( ButtonGroup4 ); + ButtonGroup3Layout->setSpacing( SPACING ); + ButtonGroup3Layout->setMargin( MARGIN ); + + QLabel* TextLabel_Selection_Color = new QLabel( tr( "Selection color" ), ButtonGroup4 ); + btnSelectionColor = new QtxColorButton( ButtonGroup4 ); + + QLabel* TextLabel_Preselection_Color = new QLabel( tr( "Pre-selection color" ), ButtonGroup4 ); + btnPreselectionColor = new QtxColorButton( ButtonGroup4 ); + + ButtonGroup4Layout->addWidget( TextLabel_Selection_Color, 0, 0 ); + ButtonGroup4Layout->addWidget( btnSelectionColor, 0, 1 ); + ButtonGroup4Layout->addWidget( TextLabel_Preselection_Color, 0, 2 ); + ButtonGroup4Layout->addWidget( btnPreselectionColor, 0, 3 ); + // ------------------------------- QGroupBox* GroupButtons = new QGroupBox( this ); QHBoxLayout* GroupButtonsLayout = new QHBoxLayout( GroupButtons ); @@ -186,23 +214,33 @@ SMESHGUI_Preferences_ColorDlg::SMESHGUI_Preferences_ColorDlg( SMESHGUI* theModul QPushButton* buttonCancel = new QPushButton( tr( "&Cancel" ), GroupButtons ); buttonCancel->setAutoDefault( true ); + QPushButton* buttonHelp = new QPushButton( tr( "&Help" ), GroupButtons ); + buttonHelp->setAutoDefault( true ); + GroupButtonsLayout->addWidget( buttonOk ); GroupButtonsLayout->addSpacing( 10 ); GroupButtonsLayout->addStretch(); GroupButtonsLayout->addWidget( buttonCancel ); + GroupButtonsLayout->addWidget( buttonHelp ); // ------------------------------- topLayout->addWidget( ButtonGroup1 ); topLayout->addWidget( ButtonGroup2 ); topLayout->addWidget( ButtonGroup3 ); + // rnv: Selection and preselection colors are defined only in the Preferences + // topLayout->addWidget( ButtonGroup4 ); + ButtonGroup4->hide(); topLayout->addWidget( GroupButtons ); // ------------------------------- mySMESHGUI->SetActiveDialogBox( this ); + myHelpFileName = "colors_size_page.html"; + /* signals and slots connections */ connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ); + connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) ); connect( mySMESHGUI, SIGNAL ( SignalDeactivateActiveDialog() ), this, SLOT( DeactivateActiveDialog() ) ); @@ -239,6 +277,30 @@ void SMESHGUI_Preferences_ColorDlg::ClickOnCancel() reject(); } +//================================================================================= +// function : ClickOnHelp() +// purpose : +//================================================================================= +void SMESHGUI_Preferences_ColorDlg::ClickOnHelp() +{ + LightApp_Application* app = (LightApp_Application*)(SUIT_Session::session()->activeApplication()); + if (app) + app->onHelpContextModule(mySMESHGUI ? app->moduleName(mySMESHGUI->moduleName()) : QString(""), myHelpFileName); + else { + QString platform; +#ifdef WIN32 + platform = "winapplication"; +#else + platform = "application"; +#endif + SUIT_MessageBox::warning(this, tr("WRN_WARNING"), + tr("EXTERNAL_BROWSER_CANNOT_SHOW_PAGE"). + arg(app->resourceMgr()->stringValue("ExternalBrowser", + platform)). + arg(myHelpFileName)); + } +} + //================================================================================= // function : DeactivateActiveDialog() // purpose : @@ -273,12 +335,14 @@ void SMESHGUI_Preferences_ColorDlg::ActivateThisDialog() void SMESHGUI_Preferences_ColorDlg::SetColor( int type, const QColor& color ) { switch ( type ) { - case 1 : btnFillColor->setColor( color ); break; // fill - case 2 : btnOutlineColor->setColor( color ); break; // outline - case 3 : btnNodeColor->setColor( color ); break; // node - case 4 : btnBackFaceColor->setColor( color ); break; // back face - case 5 : btn0DElementsColor->setColor( color ); break; // 0d elements - case 6 : btnOrientationColor->setColor( color ); break; // orientation of faces + case 1 : toolSurfColor->setMainColor( color ); break; // fill + case 2 : btnWireframeColor->setColor( color ); break; // wireframe + case 3 : btnNodeColor->setColor( color ); break; // node + case 4 : btnOutlineColor->setColor( color ); break; // outline + case 5 : btn0DElementsColor->setColor( color ); break; // 0d elements + case 6 : btnOrientationColor->setColor( color ); break; // orientation of faces + case 7 : btnSelectionColor->setColor( color ); break; // selection color + case 8 : btnPreselectionColor->setColor( color ); break; // pre-selection color default: break; } } @@ -291,12 +355,15 @@ QColor SMESHGUI_Preferences_ColorDlg::GetColor( int type ) { QColor color; switch ( type ) { - case 1 : color = btnFillColor->color(); break; // fill - case 2 : color = btnOutlineColor->color(); break; // outline - case 3 : color = btnNodeColor->color(); break; // node - case 4 : color = btnBackFaceColor->color(); break; // back face - case 5 : color = btn0DElementsColor->color(); break; // 0d elements - case 6 : color = btnOrientationColor->color(); break; // orientation of faces + case 1 : color = toolSurfColor->mainColor(); break; // fill + case 2 : color = btnWireframeColor->color(); break; // outline + case 3 : color = btnNodeColor->color(); break; // node + case 4 : color = btnOutlineColor->color(); break; // node + case 5 : color = btn0DElementsColor->color(); break; // 0d elements + case 6 : color = btnOrientationColor->color(); break; // orientation of faces + case 7 : color = btnSelectionColor->color(); break; // selection color + case 8 : color = btnPreselectionColor->color(); break; // pre-selection color + default: break; } return color; @@ -447,3 +514,36 @@ int SMESHGUI_Preferences_ColorDlg::getCustomMarkerID() const { return MarkerWidget->getCustomMarkerID(); } + +//================================================================================= +// function : SetDeltaBrightness(int) +// purpose : +//================================================================================= +void SMESHGUI_Preferences_ColorDlg::SetDeltaBrightness(int delta) +{ + toolSurfColor->setDelta(delta); +} +//================================================================================= +// function : GetDeltaBrightness() +// purpose : +//================================================================================= +int SMESHGUI_Preferences_ColorDlg::GetDeltaBrightness() +{ + return toolSurfColor->delta(); +} + +//================================================================================= +// function : keyPressEvent() +// purpose : +//================================================================================= +void SMESHGUI_Preferences_ColorDlg::keyPressEvent( QKeyEvent* e ) +{ + QDialog::keyPressEvent( e ); + if ( e->isAccepted() ) + return; + + if ( e->key() == Qt::Key_F1 ) { + e->accept(); + ClickOnHelp(); + } +}