From: <ted...@us...> - 2011-12-19 00:36:50
|
Revision: 12728 http://rosegarden.svn.sourceforge.net/rosegarden/?rev=12728&view=rev Author: tedfelix Date: 2011-12-19 00:36:44 +0000 (Mon, 19 Dec 2011) Log Message: ----------- No functional changes. Mainly comments and dead code removal. Also one build warning fixed. Modified Paths: -------------- trunk/rosegarden/src/gui/editors/segment/TrackEditor.cpp trunk/rosegarden/src/gui/editors/segment/TrackEditor.h Modified: trunk/rosegarden/src/gui/editors/segment/TrackEditor.cpp =================================================================== --- trunk/rosegarden/src/gui/editors/segment/TrackEditor.cpp 2011-12-17 20:02:56 UTC (rev 12727) +++ trunk/rosegarden/src/gui/editors/segment/TrackEditor.cpp 2011-12-19 00:36:44 UTC (rev 12728) @@ -317,8 +317,9 @@ connect(m_compositionView->horizontalScrollBar(), SIGNAL(sliderMoved(int)), m_chordNameRuler, SLOT(slotScrollHoriz(int))); - connect(this, SIGNAL(needUpdate()), - m_compositionView, SLOT(slotUpdateSegmentsDrawBuffer())); + // Was only emitted from dead code. + //connect(this, SIGNAL(needUpdate()), + // m_compositionView, SLOT(slotUpdateSegmentsDrawBuffer())); connect(m_compositionView->getModel(), SIGNAL(selectedSegments(const SegmentSelection &)), @@ -416,21 +417,57 @@ void TrackEditor::paintEvent(QPaintEvent* e) { -// RG_DEBUG << "TrackEditor::paintEvent" << endl; +#if 0 + RG_DEBUG << "TrackEditor::paintEvent()"; + static QTime t; + RG_DEBUG << " elapsed: " << t.restart(); + QRect wr = rect(); + RG_DEBUG << " widget rect: (" << wr.x() << "," << wr.y() << ") - (" << wr.right() << "," << wr.bottom() << ")"; + QRect r = e->rect(); + RG_DEBUG << " pe rect: (" << r.x() << "," << r.y() << ") - (" << r.right() << "," << r.bottom() << ")"; + QVector<QRect> rects = e->region().rects(); + for (unsigned i = 0; i < (unsigned)rects.size(); ++i) { + QRect &s = rects[i]; + RG_DEBUG << " pe region rect #" << i+1 << " (" << s.x() << "," << s.y() << ") - (" << s.right() << "," << s.bottom() << ")"; + } +#endif + // ??? If we are asked to paint, we should paint. It shouldn't matter + // whether anything has changed. This may be here as a way to stop the + // endless loop that would otherwise be created by the + // m_compositionView->updateContents() call inside this "if". if (isCompositionModified()) { - RG_DEBUG << "TrackEditor::paintEvent: Composition modified" << endl; + //RG_DEBUG << "TrackEditor::paintEvent: Composition modified"; - //!!! These calls from within a paintEvent look ugly + // !!! These calls from within a paintEvent look ugly + // ??? Need to investigate each of these calls and see if we can + // implement them in a more appropriate way. Some are causing + // serious CPU issues. None belong here. + slotReadjustCanvasSize(); - m_trackButtons->slotUpdateTracks(); + + // ??? This is the biggest source of CPU usage when recording. + // Essentially, the track buttons are being asked to update + // themselves every 20ms when MIDI is coming in. Even if + // there is no change to the Composition that is relevant to the + // track buttons. + m_trackButtons->slotUpdateTracks(); + m_compositionView->clearSegmentRectsCache(true); - + + // ??? This is directly contrary to the advice in the Qt docs. This + // is asking a child QWidget to paint itself. From the Qt docs for + // QWidget::paintEvent(): + // "Generally, you should refrain from calling update() or + // repaint() inside a paintEvent(). For example, calling + // update() or repaint() on children inside a paintevent() + // results in undefined behavior; the child may or may not get + // a paint event." m_compositionView->updateContents(); - -// m_compositionView->update(); + //m_compositionView->update(); + Composition &composition = m_doc->getComposition(); if (composition.getNbSegments() == 0) { @@ -481,6 +518,8 @@ addCommandToHistory(command); } +#if 0 +// Dead Code. void TrackEditor::slotSegmentOrderChanged(int section, int fromIdx, int toIdx) { RG_DEBUG << QString("TrackEditor::segmentOrderChanged(section : %1, from %2, to %3)") @@ -489,9 +528,10 @@ //!!! how do we get here? need to involve a command emit needUpdate(); } +#endif void -TrackEditor::slotCanvasScrolled(int x, int y) +TrackEditor::slotCanvasScrolled(int x, int /*y*/) { // update the pointer position if the user is dragging it from the loop ruler if ((m_topStandardRuler && m_topStandardRuler->getLoopRuler() && Modified: trunk/rosegarden/src/gui/editors/segment/TrackEditor.h =================================================================== --- trunk/rosegarden/src/gui/editors/segment/TrackEditor.h 2011-12-17 20:02:56 UTC (rev 12727) +++ trunk/rosegarden/src/gui/editors/segment/TrackEditor.h 2011-12-19 00:36:44 UTC (rev 12728) @@ -54,9 +54,12 @@ * Global widget for segment edition. * * Shows a global overview of the composition, and lets the user - * manipulate the segments + * manipulate the segments. * + * An object of this class is created and owned by RosegardenMainViewWidget. + * * @see CompositionView + * @see RosegardenMainViewWidget::getTrackEditor() */ class TrackEditor : public QWidget { @@ -154,7 +157,8 @@ void slotToggleTracking(); protected slots: - void slotSegmentOrderChanged(int section, int fromIdx, int toIdx); + // Dead Code. +// void slotSegmentOrderChanged(int section, int fromIdx, int toIdx); void slotTrackButtonsWidthChanged(); @@ -168,7 +172,8 @@ * * @see CompositionView::update() */ - void needUpdate(); + // Dead Code. +// void needUpdate(); /** * sent back to RosegardenGUI @@ -196,10 +201,10 @@ protected: + // QWidget overrides. virtual void dragEnterEvent(QDragEnterEvent *event); virtual void dropEvent(QDropEvent*); virtual void dragMoveEvent(QDragMoveEvent *); - virtual void paintEvent(QPaintEvent* e); void init(QWidget *); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |