#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include namespace Ui { class MainWindow; } class Shape { public: virtual void readXmlShape (QXmlStreamReader & r) { } protected: }; class Ellipse : public QGraphicsEllipseItem, public Shape { public: virtual void readXmlShape (QXmlStreamReader & r); virtual void writeXmlShape (QXmlStreamWriter & r); protected: virtual void dragEnterEvent (QGraphicsSceneDragDropEvent *event) override; virtual void dropEvent (QGraphicsSceneDragDropEvent *event) override; public: Ellipse (); }; class Rectangle : public QGraphicsRectItem, public Shape { public: virtual void readXmlShape (QXmlStreamReader & r); virtual void writeXmlShape (QXmlStreamWriter & r); protected: virtual void dragEnterEvent (QGraphicsSceneDragDropEvent *event) override; virtual void dropEvent (QGraphicsSceneDragDropEvent *event) override; public: Rectangle (); }; class ColorButton : public QToolButton { private: QColor color; public: ColorButton (QColor c); protected: virtual void mousePressEvent(QMouseEvent *event) override; }; class TreeItem : public QTreeWidgetItem { public: QGraphicsItem * obj; TreeItem () : obj (nullptr) { } }; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_action_Quit_triggered(); void on_action_Run_triggered(); void on_treeWidget_itemClicked(QTreeWidgetItem *item, int column); void on_actionSave_triggered(); void on_actionOpen_triggered(); private: Ui::MainWindow *ui; void showText(int line, QString name, QString value); void showColor(int line, QString name, QColor value); void showNumber(int line, QString name, int value); void readXml (QXmlStreamReader & r); void writeXml (QXmlStreamWriter &w); }; #endif // MAINWINDOW_H