#ifndef CDGRAPHICS_H #define CDGRAPHICS_H #include #include #include #include "ui_cdgraphics.h" #include "qcd_graphic.h" #include namespace CDUtils { class CDType; class CDSection; QStringList getList(const PIVector > & x_list); PIVector > setList(const QStringList & l); } class QMainWindow; class Graphic; class GDockWidget: public QDockWidget { Q_OBJECT public: GDockWidget(QString title = QString(), QMainWindow * p = 0); void addX(const CDUtils::CDType & t); void drawX(const PIMap > & data); QByteArray save() const; void load(QByteArray ba); void changedGlobal(); CDGraphicWidget * graphic; private: bool eventFilter(QObject * o, QEvent * e); void contextMenuEvent(QContextMenuEvent * e); CDGraphicWidget * viewportGraphic(QObject * o) const; QMenu * menu, * menu_x; QList dactions; QMainWindow * da; PIVector > x_list; private slots: void rename(); void removeX(); signals: void removeRequest(); }; class CDGraphics : public QWidget, public Ui::CDGraphics { Q_OBJECT public: explicit CDGraphics(QWidget *parent = 0); ~CDGraphics(); void reset(); QByteArray save() const; void load(QByteArray ba); private: GDockWidget * graphicDock(Graphic * o) const; void addXToGraphic(const QString & xp, Graphic * g); void addGraphic(); QList docks; QMainWindow * da; public slots: void receivedX(); void changedGlobal(); private slots: void removeGraphic(); void on_buttonAdd_clicked(); void on_buttonClear_clicked(); void on_buttonRemoveAll_clicked(); signals: }; #endif // CDGRAPHICS_H