2018-06-15 02:03:59 +08:00
|
|
|
#ifndef DESIGNWIDGET_H
|
|
|
|
#define DESIGNWIDGET_H
|
|
|
|
|
|
|
|
#include <QTreeWidget>
|
|
|
|
#include "nextpnr.h"
|
|
|
|
#include "qtpropertymanager.h"
|
|
|
|
#include "qttreepropertybrowser.h"
|
|
|
|
#include "qtvariantproperty.h"
|
|
|
|
|
2018-06-22 19:10:27 +08:00
|
|
|
NEXTPNR_NAMESPACE_BEGIN
|
2018-06-15 02:03:59 +08:00
|
|
|
|
|
|
|
class DesignWidget : public QWidget
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2018-06-18 20:06:37 +08:00
|
|
|
explicit DesignWidget(Context *ctx, QWidget *parent = 0);
|
2018-06-15 02:03:59 +08:00
|
|
|
~DesignWidget();
|
2018-06-18 20:06:37 +08:00
|
|
|
Context *getContext() { return ctx; }
|
2018-06-15 02:03:59 +08:00
|
|
|
|
|
|
|
private:
|
|
|
|
void addProperty(QtVariantProperty *property, const QString &id);
|
|
|
|
void clearProperties();
|
|
|
|
|
2018-06-15 17:10:11 +08:00
|
|
|
Q_SIGNALS:
|
|
|
|
void info(std::string text);
|
|
|
|
|
2018-06-15 02:03:59 +08:00
|
|
|
private Q_SLOTS:
|
|
|
|
void prepareMenu(const QPoint &pos);
|
|
|
|
void onItemClicked(QTreeWidgetItem *item, int);
|
2018-06-15 17:10:11 +08:00
|
|
|
void selectObject();
|
2018-06-15 02:03:59 +08:00
|
|
|
|
|
|
|
private:
|
2018-06-18 20:06:37 +08:00
|
|
|
Context *ctx;
|
2018-06-15 02:03:59 +08:00
|
|
|
|
|
|
|
QTreeWidget *treeWidget;
|
|
|
|
|
|
|
|
QtVariantPropertyManager *variantManager;
|
|
|
|
QtVariantEditorFactory *variantFactory;
|
|
|
|
QtTreePropertyBrowser *propertyEditor;
|
|
|
|
QTreeWidgetItem *itemContextMenu;
|
|
|
|
|
|
|
|
QMap<QtProperty *, QString> propertyToId;
|
|
|
|
QMap<QString, QtVariantProperty *> idToProperty;
|
|
|
|
};
|
|
|
|
|
2018-06-22 19:10:27 +08:00
|
|
|
NEXTPNR_NAMESPACE_END
|
|
|
|
|
2018-06-15 02:03:59 +08:00
|
|
|
#endif // DESIGNWIDGET_H
|