X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FStdMeshersGUI%2FStdMeshersGUI_CartesianParamCreator.cxx;h=4cdd2b92ef943cb9fc99d28cd705adf41e9dbc60;hp=10885eef28f8fa93afdb863057ef309cbf1ba0fd;hb=16f2bac719908c2252dedc5e8e8158473a76835a;hpb=60a4f927ca78723556b2bfe2e7afca9b646790aa diff --git a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx index 10885eef2..4cdd2b92e 100644 --- a/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI_CartesianParamCreator.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 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 @@ -6,7 +6,7 @@ // 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -58,6 +58,7 @@ #include #include #include +#include #include #include #include @@ -677,6 +678,22 @@ namespace dirs[( iOk+2 ) % 3] = dirs[ iOk ] ^ dirs[ ( iOk+1 ) % 3 ]; dirs[( iOk+1 ) % 3] = dirs[ ( iOk+2 ) % 3 ] ^ dirs[ iOk ]; } + + //================================================================================ + /*! + * \brief Returns a minimal width of a SpinBox depending on a precision type + */ + //================================================================================ + + int getMinWidth( const char* precisionType ) + { + int nb = SMESHGUI::resourceMgr()->integerValue( "SMESH", precisionType, -3 ); + QString s; + s.fill('0', qAbs(nb)+7 ); + QLineEdit le; + QFontMetrics metrics( le.font() ); + return metrics.width( s ); + } } //================================================================================ @@ -858,7 +875,9 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame() axisLbl[2] = new QLabel( tr( "AXIS_Z"), axesDirGrp ); QLabel* dLbl[3]; myAxisBtnGrp = new QButtonGroup( axesDirGrp ); - SMESHGUI_SpinBox** spins[3] = { &myXDirSpin[0], &myYDirSpin[0], &myZDirSpin[0] }; + // get spin width + const char * const precisionType = "len_tol_precision"; + int minWidth = getMinWidth( precisionType ); for ( int i = 0; i < 3; ++i ) { QPushButton* axisBtn = new QPushButton( QIcon(aPix), "", axesDirGrp ); @@ -867,9 +886,12 @@ QFrame* StdMeshersGUI_CartesianParamCreator::buildFrame() myXDirSpin[i] = new SMESHGUI_SpinBox( axesDirGrp ); myYDirSpin[i] = new SMESHGUI_SpinBox( axesDirGrp ); myZDirSpin[i] = new SMESHGUI_SpinBox( axesDirGrp ); - myXDirSpin[i]->RangeStepAndValidator( -1, 1, 0.1, "len_tol_precision" ); - myYDirSpin[i]->RangeStepAndValidator( -1, 1, 0.1, "len_tol_precision" ); - myZDirSpin[i]->RangeStepAndValidator( -1, 1, 0.1, "len_tol_precision" ); + myXDirSpin[i]->RangeStepAndValidator( -1, 1, 0.1, precisionType ); + myYDirSpin[i]->RangeStepAndValidator( -1, 1, 0.1, precisionType ); + myZDirSpin[i]->RangeStepAndValidator( -1, 1, 0.1, precisionType ); + myXDirSpin[i]->setMinimumWidth( minWidth ); + myYDirSpin[i]->setMinimumWidth( minWidth ); + myZDirSpin[i]->setMinimumWidth( minWidth ); dLbl[0] = new QLabel( tr("SMESH_DX"), axesDirGrp ); dLbl[1] = new QLabel( tr("SMESH_DY"), axesDirGrp ); dLbl[2] = new QLabel( tr("SMESH_DZ"), axesDirGrp );