From 4a081c191443013ab4319095afda01ff8a92b6ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Tue, 22 May 2018 14:22:49 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@381 a8b55f48-bf90-11e4-a774-851b48703e85 --- qcd_utils/pult/cdgraphics.cpp | 12 +++++++++++- qcd_utils/pult/cdgraphics.h | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) 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();