summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--muse2/muse/mixer/amixer.cpp57
-rw-r--r--muse2/muse/mixer/amixer.h3
2 files changed, 49 insertions, 11 deletions
diff --git a/muse2/muse/mixer/amixer.cpp b/muse2/muse/mixer/amixer.cpp
index 140dca3b..ca805f35 100644
--- a/muse2/muse/mixer/amixer.cpp
+++ b/muse2/muse/mixer/amixer.cpp
@@ -166,6 +166,23 @@ void AudioMixerApp::clear()
}
//---------------------------------------------------------
+// computeWidth
+//---------------------------------------------------------
+int AudioMixerApp::computeWidth()
+{
+ int w = 0;
+ StripList::iterator si = stripList.begin();
+ for (; si != stripList.end(); ++si) {
+ //w += (*si)->width();
+ //w += (*si)->frameGeometry().width();
+ Strip* s = *si;
+ //w += s->width() + 2 * (s->frameWidth() + s->lineWidth() + s->midLineWidth());
+ w += s->width() + 2 * s->frameWidth();
+ }
+ return w;
+}
+
+//---------------------------------------------------------
// updateMixer
//---------------------------------------------------------
@@ -210,10 +227,24 @@ void AudioMixerApp::updateMixer(UpdateAction action)
delete *ssi;
stripList.erase(ssi);
}
- ///setMaximumWidth((STRIP_WIDTH + 10) * stripList.size() + __WIDTH_COMPENSATION); // 10 REMOVE Tim
- // Added by Tim. p3.3.7
- ///if (stripList.size() < 8)
- /// view->setMinimumWidth(stripList.size() * (STRIP_WIDTH + 10) + __WIDTH_COMPENSATION); // 10 REMOVE Tim
+
+ // TODO: See help Qt4 "Window Geometry"
+ // "On X11, a window does not have a frame until the window manager decorates it.
+ // This happens asynchronously at some point in time after calling QWidget::show()
+ // and the first paint event the window receives, or it does not happen at all.
+ // " ...you cannot make any safe assumption about the decoration frame your window will get."
+ // "X11 provides no standard or easy way to get the frame geometry once the window is decorated.
+ // Qt solves this problem with nifty heuristics and clever code that works on a wide range of
+ // window managers that exist today..."
+ //
+ // I think I may be seeing these issues here...
+ //
+ //setMaximumWidth(STRIP_WIDTH * stripList.size() + __WIDTH_COMPENSATION);
+/// int w = computeWidth();
+/// setMaximumWidth(w);
+/// if (stripList.size() < 8)
+ // view->setMinimumWidth(stripList.size() * STRIP_WIDTH + __WIDTH_COMPENSATION);
+/// view->setMinimumWidth(w);
return;
}
@@ -257,9 +288,12 @@ void AudioMixerApp::updateMixer(UpdateAction action)
addStrip(*i, idx++);
}
- ///setMaximumWidth((STRIP_WIDTH + 10) * stripList.size() + __WIDTH_COMPENSATION); // 10 REMOVE Tim
- ///if (stripList.size() < 8)
- /// view->setMinimumWidth(stripList.size() * (STRIP_WIDTH + 10) + __WIDTH_COMPENSATION); // 10 REMOVE Tim
+ //setMaximumWidth(STRIP_WIDTH * stripList.size() + __WIDTH_COMPENSATION);
+/// int w = computeWidth();
+/// setMaximumWidth(w);
+/// if (stripList.size() < 8)
+ // view->setMinimumWidth(stripList.size() * STRIP_WIDTH + __WIDTH_COMPENSATION);
+/// view->setMinimumWidth(w);
return;
}
@@ -342,9 +376,12 @@ void AudioMixerApp::updateMixer(UpdateAction action)
addStrip(*i, idx++);
}
- ///setMaximumWidth((STRIP_WIDTH + 10) * idx + __WIDTH_COMPENSATION); // 10 REMOVE Tim
- ///if (idx < 8)
- /// view->setMinimumWidth(idx * (STRIP_WIDTH + 10) + __WIDTH_COMPENSATION); // 10 REMOVE Tim
+ //setMaximumWidth(STRIP_WIDTH * idx + __WIDTH_COMPENSATION);
+/// int w = computeWidth();
+/// setMaximumWidth(w);
+/// if (idx < 8)
+ // view->setMinimumWidth(idx * STRIP_WIDTH + __WIDTH_COMPENSATION);
+/// view->setMinimumWidth(w);
}
//---------------------------------------------------------
diff --git a/muse2/muse/mixer/amixer.h b/muse2/muse/mixer/amixer.h
index 334b7d93..abe38626 100644
--- a/muse2/muse/mixer/amixer.h
+++ b/muse2/muse/mixer/amixer.h
@@ -86,7 +86,8 @@ class AudioMixerApp : public QMainWindow {
NO_UPDATE, UPDATE_ALL, UPDATE_MIDI, STRIP_INSERTED, STRIP_REMOVED
};
void updateMixer(UpdateAction);
-
+ int computeWidth();
+
signals:
void closed();