PIValueTreeEdit File and Dir support

This commit is contained in:
2022-12-19 14:29:42 +03:00
parent dfba7f1510
commit dc2419dcad
8 changed files with 363 additions and 62 deletions

View File

@@ -26,6 +26,7 @@
#include <QComboBox>
#include <QDateEdit>
#include <QDoubleSpinBox>
#include <QMenu>
#include <QSpinBox>
#include <QTimeEdit>
#include <clineedit.h>
@@ -64,6 +65,7 @@ public:
PIVariant value() const override { return widget->value(); }
PIVariantMap attributes() const override;
static PIVariantMap defaultAttributes();
void retranslate();
private:
void applyAttributes(const PIVariantMap & a) override;
@@ -85,6 +87,7 @@ public:
PIVariant value() const override { return widget->value(); }
PIVariantMap attributes() const override;
static PIVariantMap defaultAttributes();
void retranslate();
private:
void applyAttributes(const PIVariantMap & a) override;
@@ -206,6 +209,71 @@ private:
};
class QAD_PIQT_UTILS_EXPORT NetworkAddress: public PIVariantEditorBase {
Q_OBJECT
public:
NetworkAddress();
void setValue(const PIVariant & v) override;
PIVariant value() const override;
PIVariantMap attributes() const override;
static PIVariantMap defaultAttributes();
private:
void applyAttributes(const PIVariantMap & a) override;
QLineEdit * widget;
bool has_port = true;
};
class QAD_PIQT_UTILS_EXPORT FileBase: public PIVariantEditorBase {
Q_OBJECT
public:
FileBase();
PIVariantMap attributes() const override;
static PIVariantMap defaultAttributes();
protected:
void applyAttributes(const PIVariantMap & a) override;
void setFullEditMode(bool on) override;
void createMenu();
CLineEdit * widget;
QWidget * sel_widget;
QWidget * edit_widget;
QMenu edit_menu;
QAction *act_abs = nullptr, *act_save = nullptr;
bool is_dir = false, is_abs = false, is_save = false;
PIString filter;
};
class QAD_PIQT_UTILS_EXPORT File: public FileBase {
Q_OBJECT
public:
File(): FileBase() {
is_dir = false;
createMenu();
}
void setValue(const PIVariant & v) override;
PIVariant value() const override;
};
class QAD_PIQT_UTILS_EXPORT Dir: public FileBase {
Q_OBJECT
public:
Dir(): FileBase() {
is_dir = true;
createMenu();
}
void setValue(const PIVariant & v) override;
PIVariant value() const override;
};
}; // namespace PIVariantEditors