From: Guillaume L. <gla...@te...> - 2002-02-18 10:46:40
|
On Monday 18 February 2002 11:29, Chris Cannam wrote: > you haven't got the right name in scope. (F'rinstance, the > track editor and segment tools can't communicate directly with > one another because they don't know anything about each other.) That's not a problem. All it takes is a "3rd party" which knows about both and therefore can establish the connection. > Is this not true? Can you give an example from the RG code of > somewhere where signals have been connected in a way that could > be simplified with the above knowledge? RosegardenGUIView has the following signals : void setGUIPositionPointer(Rosegarden::timeT); void setGUIPlayPosition(Rosegarden::timeT); void setGUILoop(Rosegarden::timeT, Rosegarden::timeT); which were used only to re-emit signals from BarButtons : connect(m_barButtons, SIGNAL(setPointerPosition(Rosegarden::timeT)), this, SIGNAL(setGUIPositionPointer(Rosegarden::timeT))); connect(m_barButtons, SIGNAL(setPlayPosition(Rosegarden::timeT)), this, SIGNAL(setGUIPlayPosition(Rosegarden::timeT))); connect(m_barButtons, SIGNAL(setLoop(Rosegarden::timeT, Rosegarden::timeT)), this, SIGNAL(setGUILoop(Rosegarden::timeT, Rosegarden::timeT))); I replaced these by connect(m_trackEditor->getBarButtons(), SIGNAL(setPointerPosition(Rosegarden::timeT)), parent, SLOT(setPointerPosition(Rosegarden::timeT))); connect(m_trackEditor->getBarButtons(), SIGNAL(setPlayPosition(Rosegarden::timeT)), parent, SLOT(setPlayPosition(Rosegarden::timeT))); connect(m_trackEditor->getBarButtons(), SIGNAL(setLoop(Rosegarden::timeT, Rosegarden::timeT)), parent, SLOT(setLoop(Rosegarden::timeT, Rosegarden::timeT))); 'parent' being the QWidget passed to the RosegardenGUIView ctor. I believe there are other similar cases. -- Guillaume http://www.telegraph-road.org |