diff main/MainWindow.cpp @ 159:c07759e19346

* Fix Zoom to Fit and the scroll area (though I'd prefer scrollbar on the left)
author Chris Cannam
date Mon, 02 Jul 2007 18:57:32 +0000
parents d8ec67a6e3c7
children 10700f059548
line wrap: on
line diff
--- a/main/MainWindow.cpp	Mon Jul 02 14:58:34 2007 +0000
+++ b/main/MainWindow.cpp	Mon Jul 02 18:57:32 2007 +0000
@@ -161,11 +161,16 @@
     QScrollArea *scroll = new QScrollArea(frame);
     scroll->setWidgetResizable(true);
     scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
-
-    QFrame *subframe = new QFrame;
-    scroll->setWidget(subframe);
-
-    m_paneStack = new PaneStack(subframe, m_viewManager);
+    scroll->setFrameShape(QFrame::NoFrame);
+
+//    QFrame *subframe = new QFrame;
+//    scroll->setWidget(subframe);
+
+//    QGridLayout *sublayout = new QGridLayout;
+//    subframe->setLayout(sublayout);
+
+//    m_paneStack = new PaneStack(subframe, m_viewManager);
+    m_paneStack = new PaneStack(scroll, m_viewManager);
     connect(m_paneStack, SIGNAL(currentPaneChanged(Pane *)),
 	    this, SLOT(currentPaneChanged(Pane *)));
     connect(m_paneStack, SIGNAL(currentLayerChanged(Pane *, Layer *)),
@@ -177,6 +182,9 @@
     connect(m_paneStack, SIGNAL(contextHelpChanged(const QString &)),
             this, SLOT(contextHelpChanged(const QString &)));
 
+//    sublayout->addWidget(m_paneStack, 0, 0);
+    scroll->setWidget(m_paneStack);
+
     m_overview = new Overview(frame);
     m_overview->setViewManager(m_viewManager);
     m_overview->setFixedHeight(40);
@@ -256,7 +264,7 @@
     settings.endGroup();
 
     layout->setSpacing(4);
-    layout->addWidget(m_paneStack, 0, 0, 1, 5);
+    layout->addWidget(scroll, 0, 0, 1, 5);
     layout->addWidget(m_overview, 1, 0);
     layout->addWidget(m_fader, 1, 1);
     layout->addWidget(m_playSpeed, 1, 2);
@@ -3224,15 +3232,16 @@
     size_t start = model->getStartFrame();
     size_t end = model->getEndFrame();
     size_t pixels = currentPane->width();
-    std::cerr << "pixels " << pixels << " -> ";
+
     size_t sw = currentPane->getVerticalScaleWidth();
     if (pixels > sw * 2) pixels -= sw * 2;
     else pixels = 1;
-    std::cerr << pixels << " (sw = " << sw << ")";
+    if (pixels > 4) pixels -= 4;
+
     size_t zoomLevel = (end - start) / pixels;
 
     currentPane->setZoomLevel(zoomLevel);
-    currentPane->setStartFrame(start);
+    currentPane->setCentreFrame((start + end) / 2);
 }
 
 void