From 97a2927e036b484408d493dfb80150fc2b88f1c2 Mon Sep 17 00:00:00 2001 From: "Tim E. Real" Date: Sat, 16 Oct 2010 08:03:59 +0000 Subject: See ChangeLog --- muse2/ChangeLog | 6 ++++++ muse2/muse/app.cpp | 16 ++++++++++++++-- muse2/muse/widgets/popupmenu.cpp | 8 ++++++++ muse2/muse/widgets/popupmenu.h | 10 +++++----- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/muse2/ChangeLog b/muse2/ChangeLog index dc967e0f..d31e0086 100644 --- a/muse2/ChangeLog +++ b/muse2/ChangeLog @@ -1,3 +1,9 @@ +16.10.2010 + * Fixed: Routing and popup menus should work now. Sorry, no 'stay-open' menus for now. (T356) + - p4.0.1 Reverted back to regular non-overloaded Q3PopupMenu behaviour (self-extinguishing) for PopupMenu class. + - Removed "gRoutingMenuMap.clear()" and "gRoutingPopupMenuMaster = 0" from MusE::routingPopupMenuAboutToHide(). + Instead, added protection from non-visible menu in MusE::updateRouteMenus(). + * Tested: Pianoroll, drums open but toolbars are very messed up. Marker, transport, bigtime, all others seem OK. 15.10.2010 * Feature: Unified Jack midi devices in midi ports list. Can be both input and output, just like ALSA devices. (T356) - Marked as p3.3.55 diff --git a/muse2/muse/app.cpp b/muse2/muse/app.cpp index 8aa558c0..761df24e 100644 --- a/muse2/muse/app.cpp +++ b/muse2/muse/app.cpp @@ -2028,6 +2028,13 @@ void MusE::updateRouteMenus(Track* track, QObject* master) // p3.3.50 if(pup->count() == 0) return; + // p4.0.1 Protection since reverting to regular (self-extinguishing) menu behaviour here in muse2. + if(!pup->isVisible()) + { + //printf("MusE::updateRouteMenus menu is not visible\n"); + return; + } + //AudioTrack* t = (AudioTrack*)track; RouteList* rl = gIsOutRoutingPopupMenu ? track->outRoutes() : track->inRoutes(); @@ -2475,8 +2482,13 @@ void MusE::routingPopupMenuAboutToHide() //PopupMenu* pup = muse->getRoutingPopupMenu(); //pup->disconnect(); //pup->clear(); - gRoutingMenuMap.clear(); - gRoutingPopupMenuMaster = 0; + + // p4.0.1 Removed. IIRC These lines were not strictly necessary in muse-1, + // and here in muse-2 we reverted back to regular Q3PopupMenu behaviour for now, + // which is self-extinguishing, so these lines cannot be enabled - + // gRoutingPopupMenuMaster and gRoutingMenuMap are required for routingPopupMenuActivated(). + //gRoutingMenuMap.clear(); + //gRoutingPopupMenuMaster = 0; } //--------------------------------------------------------- diff --git a/muse2/muse/widgets/popupmenu.cpp b/muse2/muse/widgets/popupmenu.cpp index 05eb64f6..59951375 100644 --- a/muse2/muse/widgets/popupmenu.cpp +++ b/muse2/muse/widgets/popupmenu.cpp @@ -20,6 +20,7 @@ //========================================================= + // MusE: want no menu bar here. Can't use, not needed for now anyway. #define QT_NO_MENUBAR #define QT_NO_WHATSTHIS @@ -37,6 +38,7 @@ #include "popupmenu.h" + // used to provide ONE single-shot timer //static QTimer * singleSingleShot = 0; //static bool preventAnimation = FALSE; @@ -123,6 +125,10 @@ PopupMenu::~PopupMenu() //popup->clear(); } + + +#if 0 // p4.0.1 + void PopupMenu::menuDelPopup(Q3PopupMenu *popup) { //printf("PopupMenu::menuDelPopup deleting popup...\n"); @@ -435,6 +441,8 @@ void PopupMenu::mouseReleaseEvent(QMouseEvent *e) +#endif // p4.0.1 + diff --git a/muse2/muse/widgets/popupmenu.h b/muse2/muse/widgets/popupmenu.h index 138e45e1..bea30f1d 100644 --- a/muse2/muse/widgets/popupmenu.h +++ b/muse2/muse/widgets/popupmenu.h @@ -76,18 +76,18 @@ class PopupMenu : public Q3PopupMenu //virtual void setFirstItemActive(); //void hideAllPopups(); //void hidePopups(); - bool tryMenuBar(QMouseEvent *); +/// bool tryMenuBar(QMouseEvent *); //bool tryMouseEvent(QPopupMenu *, QMouseEvent *); - bool tryMouseEvent(PopupMenu *, QMouseEvent *); +/// bool tryMouseEvent(PopupMenu *, QMouseEvent *); //void byeMenuBar(); - void actSig(int, bool = FALSE); - virtual void menuDelPopup(Q3PopupMenu *); +/// void actSig(int, bool = FALSE); +/// virtual void menuDelPopup(Q3PopupMenu *); protected: //int actItem; //void mousePressEvent(QMouseEvent *); - void mouseReleaseEvent(QMouseEvent *); +/// void mouseReleaseEvent(QMouseEvent *); public: PopupMenu(QWidget* parent=0, const char* name=0); -- cgit v1.2.3