#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "emb.h" #include "nextpnr.h" #include "qtpropertymanager.h" #include "qttreepropertybrowser.h" #include "qtvariantproperty.h" #include #include #include #include // FIXME USING_NEXTPNR_NAMESPACE namespace Ui { class MainWindow; } class PythonTab : public QWidget { Q_OBJECT public: explicit PythonTab(QWidget *parent = 0); private: int executePython(std::string command); private Q_SLOTS: void editLineReturnPressed(); private: QPlainTextEdit *plainTextEdit; QLineEdit *lineEdit; emb::stdout_write_type write; }; class InfoTab : public QWidget { Q_OBJECT public: explicit InfoTab(QWidget *parent = 0); void info(std::string str); private: QPlainTextEdit *plainTextEdit; }; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(Design *design, QWidget *parent = 0); ~MainWindow(); Design *getDesign() { return design; } private: void addProperty(QtVariantProperty *property, const QString &id); private Q_SLOTS: void prepareMenu(const QPoint &pos); void selectObject(); void onItemClicked(QTreeWidgetItem *item, int); private: Ui::MainWindow *ui; Design *design; QtVariantPropertyManager *variantManager; QtVariantEditorFactory *variantFactory; QtTreePropertyBrowser *propertyEditor; QTreeWidgetItem *itemContextMenu; QMap propertyToId; QMap idToProperty; QTabWidget *tabWidget; InfoTab *info; }; #endif // MAINWINDOW_H