PIValueTreeEdit::Permissions feature
add designer plugin for PIValueTreeEdit
This commit is contained in:
@@ -40,7 +40,10 @@ class PIValueTreeEditArray;
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT PIValueTreeEdit: public QWidget {
|
||||
Q_OBJECT
|
||||
Q_ENUMS(Grouping)
|
||||
Q_PROPERTY(Grouping grouping READ grouping WRITE setGrouping)
|
||||
Q_PROPERTY(bool fullEditMode READ isFullEditMode WRITE setFullEditMode)
|
||||
Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
|
||||
Q_PROPERTY(Permissions permissions READ permissions WRITE setPermissions)
|
||||
|
||||
public:
|
||||
PIValueTreeEdit(QWidget * parent = nullptr);
|
||||
@@ -51,17 +54,46 @@ public:
|
||||
Groups,
|
||||
Tabs
|
||||
};
|
||||
Q_ENUM(Grouping)
|
||||
|
||||
enum Permission {
|
||||
AddValue = 0x1,
|
||||
AddGroup = 0x2,
|
||||
AddArray = 0x4,
|
||||
ChangeHidden = 0x8,
|
||||
ChangeLabel = 0x10,
|
||||
ChangeReadOnly = 0x20,
|
||||
ChangeComment = 0x40,
|
||||
ChangeType = 0x80,
|
||||
ChangeGrouping = 0x100,
|
||||
CanCut = 0x200,
|
||||
CanCopy = 0x400,
|
||||
CanPaste = 0x800,
|
||||
CanRename = 0x1000,
|
||||
CanRemove = 0x2000,
|
||||
CanReorder = 0x4000,
|
||||
PermissionsAll = 0xFFFFFFFF
|
||||
};
|
||||
Q_ENUM(Permission)
|
||||
Q_DECLARE_FLAGS(Permissions, Permission)
|
||||
Q_FLAG(Permissions)
|
||||
|
||||
void setValue(const PIValueTree & v);
|
||||
PIValueTree value() const;
|
||||
|
||||
Grouping grouping() const { return cur_grouping; }
|
||||
void setGrouping(Grouping g);
|
||||
|
||||
bool isFullEditMode() const { return is_full_edit; }
|
||||
void setFullEditMode(bool yes);
|
||||
|
||||
bool isReadOnly() const { return m_read_only; }
|
||||
void setReadOnly(bool yes);
|
||||
|
||||
Permissions permissions() const { return perm; }
|
||||
void setPermissions(Permissions p);
|
||||
void setPermission(Permission p, bool on);
|
||||
|
||||
void setAllowedNamesFunction(std::function<PIStringList()> f) { allowed_names = f; }
|
||||
void setValueForNameFunction(std::function<PIVariant(PIString)> f) { value_by_name = f; }
|
||||
|
||||
@@ -81,6 +113,7 @@ private:
|
||||
void removeAll();
|
||||
void build();
|
||||
void applyValues() const;
|
||||
void applyPermissions();
|
||||
void actionRename(QToolButton * button, const PIString & vn);
|
||||
void actionRemove(QToolButton * button, const PIString & vn);
|
||||
void actionChange(QToolButton * button, const PIString & vn);
|
||||
@@ -145,10 +178,11 @@ private:
|
||||
PIMap<PIString, PIVariantEdit *> value_edits;
|
||||
PIMap<PIString, PIValueTreeEdit *> tree_edits;
|
||||
PIMap<PIString, QLabel *> comm_labels, label_labels;
|
||||
QTabWidget * tab_widget = nullptr;
|
||||
QTabWidget * tab_widget = nullptr;
|
||||
Ui::PIValueTreeEditArray * ui_array = nullptr;
|
||||
GridWidgets * grid = nullptr;
|
||||
Grouping cur_grouping = Groups;
|
||||
GridWidgets * grid = nullptr;
|
||||
Grouping cur_grouping = Groups;
|
||||
Permissions perm = PermissionsAll;
|
||||
mutable PIValueTree source, current;
|
||||
bool is_full_edit = false, m_read_only = false;
|
||||
std::function<PIStringList()> allowed_names;
|
||||
|
||||
Reference in New Issue
Block a user