Back to index

salome-gui  6.5.0
SALOME_PYQT_DataObjectLight.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // This library is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU Lesser General Public
00005 // License as published by the Free Software Foundation; either
00006 // version 2.1 of the License.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00016 //
00017 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00018 //
00019 
00020 //  Author : Roman NIKOLAEV, Open CASCADE S.A.S. (roman.nikolaev@opencascade.com)
00021 //  Date   : 22/06/2007
00022 //
00023 #include "SALOME_PYQT_DataObjectLight.h"
00024 #include <LightApp_Application.h>
00025 #include <SUIT_Session.h>
00026 #include <utilities.h>
00027 #include <SUIT_ResourceMgr.h>
00028 
00029 
00030 #include <CAM_DataModel.h>
00031 #include <CAM_Module.h>
00032 
00033 
00039 static int _ID = 0;
00040 
00041 //=================================================================================
00042 // function : SALOME_PYQT_DataObjectLight()
00043 // purpose  : constructor
00044 //=================================================================================
00045 SALOME_PYQT_DataObjectLight::SALOME_PYQT_DataObjectLight ( SUIT_DataObject* parent )
00046   : CAM_DataObject(parent),
00047     LightApp_DataObject( parent )
00048 
00049 {
00050   _ID++;
00051   myEntry = QString("PYLIGHT_OBJ_%1").arg(_ID);
00052 }
00053 
00054 //=================================================================================
00055 // function : SALOME_PYQT_DataObjectLight()
00056 // purpose  : destructor
00057 //=================================================================================
00058 SALOME_PYQT_DataObjectLight::~SALOME_PYQT_DataObjectLight()
00059 {
00060   
00061 }
00062 
00063 //=================================================================================
00064 // function : SALOME_PYQT_DataObjectLight::entry()
00065 // purpose  : return entry of object
00066 //=================================================================================
00067 QString SALOME_PYQT_DataObjectLight::entry() const
00068 {
00069   return myEntry;
00070 }
00071 
00072 //=================================================================================
00073 // function : SALOME_PYQT_DataObjectLight::refEntry()
00074 // purpose  : return entry of the data object referenced by this one (if any)
00075 //=================================================================================
00076 QString SALOME_PYQT_DataObjectLight::refEntry() const
00077 {
00078   return myRefEntry;
00079 }
00080 
00081 //=================================================================================
00082 // function : SALOME_PYQT_DataObjectLight::setRefEntry()
00083 // purpose  : sets entry of the data object referenced by this one
00084 //=================================================================================
00085 void SALOME_PYQT_DataObjectLight::setRefEntry( const QString& refEntry )
00086 {
00087   myRefEntry = refEntry;
00088 }
00089 
00090 //=================================================================================
00091 // function : SALOME_PYQT_DataObjectLight::name()
00092 // purpose  : return name of object
00093 //=================================================================================
00094 QString SALOME_PYQT_DataObjectLight::name() const
00095 {
00096   return myName;
00097 }
00098 
00099 //=================================================================================
00100 // function : SALOME_PYQT_DataObjectLight::icon()
00101 // purpose  : return icon of object
00102 //=================================================================================
00103 QPixmap SALOME_PYQT_DataObjectLight::icon(const int index) const
00104 {
00105   if(index == NameId)
00106     return myIcon;
00107   else
00108     return LightApp_DataObject::icon( index );
00109 }
00110 
00111 
00112 //=================================================================================
00113 // function : SALOME_PYQT_DataObjectLight::toolTip()
00114 // purpose  : return toolTip of object
00115 //=================================================================================
00116 QString SALOME_PYQT_DataObjectLight::toolTip(const int index) const
00117 {
00118   return myToolTip;
00119 }
00120 
00121 //=================================================================================
00122 // function : SALOME_PYQT_DataObjectLight::toolTip()
00123 // purpose  : return toolTip of object
00124 //=================================================================================
00125 QColor SALOME_PYQT_DataObjectLight::color( const ColorRole role, const int id ) const
00126 {
00127   QColor c;
00128 
00129   switch ( role )
00130   {
00131   case Text:
00132   case Foreground:
00133     if ( !isReference() )
00134       c = myColor;
00135     break;
00136 
00137   default:
00138     break;
00139   }
00140 
00141   // Issue 21379: LightApp_DataObject::color() defines colors for valid references
00142   if ( !c.isValid() )
00143     c = LightApp_DataObject::color( role, id );
00144 
00145   return c;
00146 }
00147 
00148 bool SALOME_PYQT_DataObjectLight::setName(const QString& name)
00149 {
00150   myName = name;
00151   return true;
00152 }
00153 
00154 void SALOME_PYQT_DataObjectLight::setIcon(const QString& iconname)
00155 {
00156   if(!iconname.isEmpty()) {
00157     LightApp_Application* anApp = dynamic_cast<LightApp_Application*>( SUIT_Session::session()->activeApplication() );
00158     if(anApp) {
00159       QString modulename = anApp->activeModule()->name();
00160       if(!modulename.isEmpty())
00161         {
00162           myIcon = SUIT_Session::session()->resourceMgr()->loadPixmap(modulename,
00163                                                                       QObject::tr(iconname.toLatin1()));
00164         }
00165     }
00166   }
00167 }
00168 
00169 void SALOME_PYQT_DataObjectLight::setToolTip(const QString& tooltip)
00170 {
00171   myToolTip = tooltip;
00172 }
00173 
00174 void SALOME_PYQT_DataObjectLight::setColor(const QColor& color)
00175 {
00176   myColor = color;
00177 }