summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--muse2/ChangeLog6
-rw-r--r--muse2/muse/app.cpp16
-rw-r--r--muse2/muse/widgets/popupmenu.cpp8
-rw-r--r--muse2/muse/widgets/popupmenu.h10
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);