#include <QList>
#include <QStringList>
+#include <QStyledItemDelegate>
class QWidget;
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.
/// 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<ModuleBase_ViewerPrs>& theValue);
+ virtual bool isValidSelectionCustom(const std::shared_ptr<ModuleBase_ViewerPrs>& theValue);
/// Returns true if the event is processed.
virtual bool processEnter();
/// 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<std::shared_ptr<ModuleBase_ViewerPrs>>& theValues,
+ const bool theToValidate);
+
protected:
/// Saves the internal parameters to the given feature
/// \return True in success
/// \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<std::shared_ptr<ModuleBase_ViewerPrs>> getAttributeSelection() const;
private slots:
/// Slot called on number of component changed
/// \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();
/// \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;
int myEditIndex;
/// Stae of a table editing
- bool myIsEditing;
+ bool myIsTabEdit;
bool myActivation;
+
+ DataTableItemDelegate* myDelegate;
};
#endif
\ No newline at end of file