diff --git a/qcd_utils/pult/cdgraphics.cpp b/qcd_utils/pult/cdgraphics.cpp index aeedc62..f1fe2be 100644 --- a/qcd_utils/pult/cdgraphics.cpp +++ b/qcd_utils/pult/cdgraphics.cpp @@ -104,6 +104,15 @@ Graphic * CDGraphics::viewportGraphic(QObject * o) const { } +GDockWidget * CDGraphics::graphicDock(Graphic * o) const { + if (!o) return 0; + foreach (GDockWidget * d, docks) + if (d->widget() == o) + return d; + return 0; +} + + void CDGraphics::addGraphic() { Graphic * g = new Graphic(); g->setGraphicsCount(0); @@ -133,7 +142,8 @@ void CDGraphics::removeGraphic() { void CDGraphics::addXToGraphic(const QString & xp, Graphic * g) { qDebug() << "addGraphic" << xp << g; - if (xp.isEmpty() || !g) return; + GDockWidget * d = graphicDock(g); + if (xp.isEmpty() || !g || !d) return; CDType & t(X[CDCore::stringToPath(Q2PIString(xp))]); int gind = g->graphicsCount(); g->setGraphicsCount(gind + 1); diff --git a/qcd_utils/pult/cdgraphics.h b/qcd_utils/pult/cdgraphics.h index f174c8f..6d70b62 100644 --- a/qcd_utils/pult/cdgraphics.h +++ b/qcd_utils/pult/cdgraphics.h @@ -14,6 +14,7 @@ class GDockWidget: public QDockWidget { Q_OBJECT public: GDockWidget(QString title = QString(), QMainWindow * p = 0); +private: void contextMenuEvent(QContextMenuEvent * e); QMenu * menu; QList dactions; @@ -37,6 +38,7 @@ public: private: bool eventFilter(QObject * o, QEvent * e); Graphic * viewportGraphic(QObject * o) const; + GDockWidget * graphicDock(Graphic * o) const; void addXToGraphic(const QString & xp, Graphic * g); void addGraphic();