X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FCollectionPlugin%2FCollectionPlugin_WidgetField.h;h=35d599dcaef579fcc0a799b422040e5815fe84a3;hb=aba18c686236b660d679c602c9e2c662c9eae95f;hp=14c25fb4b577cf871aec9c246efbb65ebb6f10d2;hpb=185923a92c76805bc1b410b0f655e214394a8573;p=modules%2Fshaper.git diff --git a/src/CollectionPlugin/CollectionPlugin_WidgetField.h b/src/CollectionPlugin/CollectionPlugin_WidgetField.h index 14c25fb4b..35d599dca 100644 --- a/src/CollectionPlugin/CollectionPlugin_WidgetField.h +++ b/src/CollectionPlugin/CollectionPlugin_WidgetField.h @@ -17,6 +17,7 @@ #include #include +#include class QWidget; @@ -30,6 +31,30 @@ class QPushButton; class QTableWidgetItem; class QLineEdit; + +class DataTableItemDelegate : public QStyledItemDelegate +{ + Q_OBJECT +public: + DataTableItemDelegate(ModelAPI_AttributeTables::ValueType theType); + + virtual QWidget* createEditor(QWidget* theParent, + const QStyleOptionViewItem & theOption, + const QModelIndex& theIndex) const; + + ModelAPI_AttributeTables::ValueType dataType() const { return myType; } + + void setDataType(ModelAPI_AttributeTables::ValueType theType) { myType = theType; } + +private slots: + void onEditItem(const QString& theText); + +private: + ModelAPI_AttributeTables::ValueType myType; +}; + + + /*! * \ingroup GUI * Represent a content of the property panel to show/modify parameters of a Field feature. @@ -51,7 +76,7 @@ public: /// Checks the widget validity. By default, it returns true. /// \param thePrs a selected presentation in the view /// \return a boolean value - virtual bool isValidSelection(const std::shared_ptr& theValue); + virtual bool isValidSelectionCustom(const std::shared_ptr& theValue); /// Returns true if the event is processed. virtual bool processEnter(); @@ -59,6 +84,13 @@ public: /// The methiod called when widget is deactivated virtual void deactivate(); + /// Set the given wrapped value to the current widget + /// This value should be processed in the widget according to the needs + /// \param theValues the wrapped selection values + /// \param theToValidate a validation of the values flag + virtual bool setSelection(QList>& theValues, + const bool theToValidate); + protected: /// Saves the internal parameters to the given feature /// \return True in success @@ -76,10 +108,12 @@ protected: /// \param theEvent an event virtual bool eventFilter(QObject* theObject, QEvent* theEvent); + //virtual void showEvent(QShowEvent* theEvent); -protected slots: - /// Slot which is called on selection event - virtual void onSelectionChanged(); + /// Return the attribute values wrapped in a list of viewer presentations + /// \return a list of viewer presentations, which contains an attribute result and + /// a shape. If the attribute do not uses the shape, it is empty + virtual QList> getAttributeSelection() const; private slots: /// Slot called on number of component changed @@ -119,6 +153,8 @@ private slots: /// \param theMax a maximal value void onRangeChanged(int theMin, int theMax); + void onColumnResize(int theIndex, int theOld, int theNew); + private: /// Clear existing tables void clearData(); @@ -148,6 +184,8 @@ private: /// \param theVal a value for the item QTableWidgetItem* createValueItem(ModelAPI_AttributeTables::Value& theVal) const; + QString getValueText(ModelAPI_AttributeTables::Value& theVal) const; + /// Return a value from the string /// \param theStrVal a string ModelAPI_AttributeTables::Value getValue(QString theStrVal) const; @@ -192,9 +230,11 @@ private: int myEditIndex; /// Stae of a table editing - bool myIsEditing; + bool myIsTabEdit; bool myActivation; + + DataTableItemDelegate* myDelegate; }; #endif \ No newline at end of file