From c0cf8683409dfb74cae82e4b2adcd457a3e1d2b6 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Sun, 25 Dec 2011 14:20:33 +0000 Subject: ctrlcanvas now reacts properly on ALT-left/right part changes --- muse2/muse/ctrl/ctrlcanvas.cpp | 7 +++++++ muse2/muse/ctrl/ctrlcanvas.h | 1 + muse2/muse/ctrl/ctrledit.cpp | 5 +++++ muse2/muse/ctrl/ctrledit.h | 1 + muse2/muse/midiedit/dcanvas.cpp | 1 + muse2/muse/midiedit/drumedit.cpp | 1 + muse2/muse/midiedit/prcanvas.cpp | 1 + muse2/muse/midiedit/scoreedit.cpp | 23 ++++++++++++++++++++--- muse2/muse/widgets/canvas.h | 4 +++- 9 files changed, 40 insertions(+), 4 deletions(-) diff --git a/muse2/muse/ctrl/ctrlcanvas.cpp b/muse2/muse/ctrl/ctrlcanvas.cpp index 9896de9a..ddecdbf6 100644 --- a/muse2/muse/ctrl/ctrlcanvas.cpp +++ b/muse2/muse/ctrl/ctrlcanvas.cpp @@ -2041,4 +2041,11 @@ void CtrlCanvas::setCurDrumPitch(int instrument) //songChanged(-1); } +void CtrlCanvas::curPartHasChanged(MusECore::Part*) +{ + setCurTrackAndPart(); + setCurDrumPitch(editor->curDrumInstrument()); + songChanged(SC_EVENT_MODIFIED); +} + } // namespace MusEGui diff --git a/muse2/muse/ctrl/ctrlcanvas.h b/muse2/muse/ctrl/ctrlcanvas.h index 1fcaf1d8..50b71bbe 100644 --- a/muse2/muse/ctrl/ctrlcanvas.h +++ b/muse2/muse/ctrl/ctrlcanvas.h @@ -188,6 +188,7 @@ class CtrlCanvas : public MusEGui::View { void setTool(int t); void setPos(int, unsigned, bool adjustScrollbar); void setController(int ctrl); + void curPartHasChanged(MusECore::Part*); signals: void followEvent(int); diff --git a/muse2/muse/ctrl/ctrledit.cpp b/muse2/muse/ctrl/ctrledit.cpp index 5ce6a7bb..5fbdecaf 100644 --- a/muse2/muse/ctrl/ctrledit.cpp +++ b/muse2/muse/ctrl/ctrledit.cpp @@ -182,4 +182,9 @@ void CtrlEdit::setController(const QString& name) } } +void CtrlEdit::curPartHasChanged(MusECore::Part* p) +{ + canvas->curPartHasChanged(p); +} + } // namespace MusEGui diff --git a/muse2/muse/ctrl/ctrledit.h b/muse2/muse/ctrl/ctrledit.h index 1f7a67a9..a0a941cc 100644 --- a/muse2/muse/ctrl/ctrledit.h +++ b/muse2/muse/ctrl/ctrledit.h @@ -60,6 +60,7 @@ class CtrlEdit : public QWidget { void setXMag(int val) { canvas->setXMag(val); } void setCanvasWidth(int w); void setController(int /*n*/); + void curPartHasChanged(MusECore::Part*); signals: void timeChanged(unsigned); diff --git a/muse2/muse/midiedit/dcanvas.cpp b/muse2/muse/midiedit/dcanvas.cpp index bc8bbdb0..bdf16b6e 100644 --- a/muse2/muse/midiedit/dcanvas.cpp +++ b/muse2/muse/midiedit/dcanvas.cpp @@ -1155,6 +1155,7 @@ void DrumCanvas::modifySelected(NoteInfo::ValType type, int delta) void DrumCanvas::curPartChanged() { + EventCanvas::curPartChanged(); editor->setWindowTitle(getCaption()); } diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp index 7adab525..4015bbc1 100644 --- a/muse2/muse/midiedit/drumedit.cpp +++ b/muse2/muse/midiedit/drumedit.cpp @@ -1076,6 +1076,7 @@ CtrlEdit* DrumEdit::addCtrl() connect(tools2, SIGNAL(toolChanged(int)), ctrlEdit, SLOT(setTool(int))); connect(dlist, SIGNAL(curDrumInstrumentChanged(int)), SLOT(setCurDrumInstrument(int))); connect(dlist, SIGNAL(curDrumInstrumentChanged(int)), canvas, SLOT(setCurDrumInstrument(int))); + connect(canvas, SIGNAL(curPartHasChanged(MusECore::Part*)), ctrlEdit, SLOT(curPartHasChanged(MusECore::Part*))); //printf("DrumEdit::addCtrl curDrumInstrument:%d\n", dlist->getSelectedInstrument()); diff --git a/muse2/muse/midiedit/prcanvas.cpp b/muse2/muse/midiedit/prcanvas.cpp index 2c32a1cf..fe7f6979 100644 --- a/muse2/muse/midiedit/prcanvas.cpp +++ b/muse2/muse/midiedit/prcanvas.cpp @@ -1081,6 +1081,7 @@ void PianoCanvas::itemMoved(const MusEGui::CItem* item, const QPoint& pos) void PianoCanvas::curPartChanged() { + EventCanvas::curPartChanged(); editor->setWindowTitle(getCaption()); } diff --git a/muse2/muse/midiedit/scoreedit.cpp b/muse2/muse/midiedit/scoreedit.cpp index ff1893ce..2d544c90 100644 --- a/muse2/muse/midiedit/scoreedit.cpp +++ b/muse2/muse/midiedit/scoreedit.cpp @@ -4655,6 +4655,20 @@ void ScoreCanvas::add_new_parts(const std::map< MusECore::Part*, std::set o drum editor: channel-stuff * o clearly state in the changelog: when having multiple drumeditors open, diff --git a/muse2/muse/widgets/canvas.h b/muse2/muse/widgets/canvas.h index 38024feb..2ab4820c 100644 --- a/muse2/muse/widgets/canvas.h +++ b/muse2/muse/widgets/canvas.h @@ -172,7 +172,7 @@ class Canvas : public View { virtual void itemPressed(const CItem*) {} virtual void itemReleased(const CItem*, const QPoint&) {} virtual void itemMoved(const CItem*, const QPoint&) {} - virtual void curPartChanged() {} + virtual void curPartChanged() { emit curPartHasChanged(curPart); } public slots: void setTool(int t); @@ -188,6 +188,8 @@ class Canvas : public View { void horizontalScrollNoLimit(unsigned); void horizontalZoomIn(); void horizontalZoomOut(); + void curPartHasChanged(MusECore::Part*); + public: Canvas(QWidget* parent, int sx, int sy, const char* name = 0); virtual ~Canvas(); -- cgit v1.2.3