]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
*** empty log message *** PARAVIEW_SETTINGS_13052010
authorvsv <vsv@opencascade.com>
Thu, 13 May 2010 08:11:18 +0000 (08:11 +0000)
committervsv <vsv@opencascade.com>
Thu, 13 May 2010 08:11:18 +0000 (08:11 +0000)
src/Qtx/QtxPagePrefMgr.cxx
src/Qtx/QtxPagePrefMgr.h
src/SUIT/SUIT_PreferenceMgr.cxx
src/SUIT/SUIT_PreferenceMgr.h

index 6fb5b4359cac1de3aef4de10d114ff4f423fc848..df939b8bd09efd33c03f1668c91054fa3174f556 100644 (file)
@@ -3909,3 +3909,81 @@ void QtxPagePrefDateTimeItem::updateDateTime()
 
   myDateTime->setDisplayFormat( dispFmt );
 }
+
+
+
+/*!
+  \brief Constructor.
+
+  Creates preference item of user defined widget. The item widget has to be inherited from 
+  QtxUserDefinedContent class. An instance of this class has to be installed into the item
+  with help of setContent method. Methods optionValue and setOptionValue use pointer on the 
+  content widget an qint64 value.
+
+  \param parent parent preference item
+*/
+QtxUserDefinedItem::QtxUserDefinedItem( QtxPreferenceItem* parent )
+  : QtxPageNamedPrefItem(QString(), parent), myContent(0)
+{
+}
+  
+/*!
+  \brief Lets to Store preferences for content instance
+  \sa retrieve()
+*/
+void QtxUserDefinedItem::store()
+{
+  if (myContent) {
+    myContent->store( resourceMgr(), preferenceMgr());
+  }
+}
+
+/*!
+  \brief Lets to Retrieve preferences for content instance
+  \sa store()
+*/
+void QtxUserDefinedItem::retrieve()
+{
+  if (myContent) {
+    myContent->retrieve( resourceMgr(), preferenceMgr());
+  }
+}
+
+/*!
+ * \brief Returns option value
+ * \param theName is a string "content"
+ * \return pointer on QtxUserDefinedContent class instance as a qint64 value
+ */
+QVariant QtxUserDefinedItem::optionValue( const QString& theName ) const
+{
+  if ( theName == "content" )
+    return (qint64) myContent;
+  else
+    return QtxPreferenceItem::optionValue( theName );
+}
+
+/*!
+ * \brief Sets option value
+ * \param theName is a string "content" 
+ * \param theVal is a pointer on QtxUserDefinedContent class instance represented as qint64 value
+ */
+void QtxUserDefinedItem::setOptionValue( const QString& theName, const QVariant& theVal)
+{
+  if ( theName == "content" ) {
+    if ( theVal.canConvert( QVariant::ULongLong ) ) {
+      setContent( (QtxUserDefinedContent*)theVal.toULongLong() );
+    }
+  } else
+    QtxPreferenceItem::setOptionValue( theName, theVal );
+}
+  
+/*!
+ * \brief Defines content of the property item as a Widget which has to be inherited from 
+ * QtxUserDefinedContent class.
+ * \param theContent is an QtxUserDefinedContent class instance.
+ */
+void QtxUserDefinedItem::setContent( QtxUserDefinedContent* theContent ) 
+{ 
+  myContent = theContent; 
+  setControl(myContent);
+}
index bbc634240be4c838ddb99d975b646b2939f1888f..f0c532458d69a06d0ca48bc63571b37d9b1343f6 100644 (file)
@@ -664,4 +664,33 @@ private:
   QDateTimeEdit*   myDateTime;
 };
 
+
+class QtxUserDefinedContent: public QWidget
+{
+ public:
+  QtxUserDefinedContent(QWidget* parent = 0, Qt::WindowFlags f = 0 ):QWidget(parent, f) {};
+  virtual void store(QtxResourceMgr* theRes, QtxPreferenceMgr* thePref) = 0;
+  virtual void retrieve(QtxResourceMgr* theRes, QtxPreferenceMgr* thePref) = 0;
+};
+
+
+class QTX_EXPORT QtxUserDefinedItem : public QtxPageNamedPrefItem
+{
+public:
+  QtxUserDefinedItem( QtxPreferenceItem* parent );
+
+  void setContent( QtxUserDefinedContent* theContent );
+
+  virtual void store();
+  virtual void retrieve();
+
+protected:
+  virtual QVariant optionValue( const QString& theName ) const;
+  virtual void     setOptionValue( const QString& theName, const QVariant& theVal );
+
+private:
+  QtxUserDefinedContent* myContent;
+};
+
+
 #endif
index 512fdafa0b6a09a589ca3ba0b6f5a457e57a24d7..ac1c801b2d04aafc628a432022fdb6706eb44eaf 100644 (file)
@@ -150,6 +150,9 @@ int SUIT_PreferenceMgr::addItem( const QString& title, const int pId,
   case DirList:
     item = new QtxPagePrefPathListItem( Qtx::PT_Directory, title, parent, sect, param );
     break;
+  case UserDefined:
+    item = new QtxUserDefinedItem(parent);
+    break;
   }
 
   return item ? item->id() : -1;
index f6987252f134e3e5ba3546e712761589b022cf5b..bf4c61fe1f7ef9c395b5a58c43b7e30618fc19a2 100644 (file)
@@ -39,7 +39,8 @@ class SUIT_EXPORT SUIT_PreferenceMgr : public QtxPagePrefMgr
 public:
   typedef enum { Auto, Space, Bool, Color, String, Selector,
                  DblSpin, IntSpin, Double, Integer,
-                 GroupBox, Tab, Frame, Font, DirList, File } PrefItemType;
+                 GroupBox, Tab, Frame, Font, DirList, File, 
+                 UserDefined = 1000 } PrefItemType;
 
 public:
   SUIT_PreferenceMgr( QtxResourceMgr*, QWidget* = 0 );