QSplitter has rendering problems on os x
authorDiane Trout <diane@caltech.edu>
Tue, 4 Apr 2006 03:36:02 +0000 (03:36 +0000)
committerDiane Trout <diane@caltech.edu>
Tue, 4 Apr 2006 03:36:02 +0000 (03:36 +0000)
QSplitter and QGlWidget don't get along that well on OS X. when toggling
the maximize state bits of the splitter are left in the opengl canvas.

Replacing the splitter with just a simple QHBoxLayout is much less
problematics, though of course it doesn't let the user hide the sidebars.

qui/seqbrowser/SequenceBrowserWidget.cpp
qui/seqbrowser/SequenceBrowserWidget.hpp

index 8e71957369ea4d7cba2bb05715cffae680c9ea4f..5e629a7e6de3147de56932493176a44fe0772544 100644 (file)
 using namespace std;
 
 SequenceBrowserWidget::SequenceBrowserWidget(QWidget *parent)
-  : QSplitter(parent),
+  : QWidget(parent),
     scrollable_browser(parent)
 {
-  setOrientation(Qt::Horizontal);
-
-  addWidget(&left_sidebar);
-  addWidget(&scrollable_browser);
-  addWidget(&right_sidebar);
+  QHBoxLayout *hlayout = new QHBoxLayout;
+  hlayout->addWidget(&left_sidebar, 0);
+  hlayout->addWidget(&scrollable_browser, 1);
+  hlayout->addWidget(&right_sidebar, 0);
+  setLayout(hlayout);
 
   // update position values when something in the SequenceBrowser changes
   connect(&scrollable_browser.browser(), SIGNAL(viewportChanged()),
@@ -135,8 +135,7 @@ void SequenceBrowserWidget::promptSaveBrowserPixmap()
   //Image Save Dialog
   ImageSaveDialog imageSaveDialog(&scrollable_browser.browser(), this);
   imageSaveDialog.setSize(size.width(), size.height());
-  int result = imageSaveDialog.exec();
-  cout << "Result: " << result << "\n";
+  imageSaveDialog.exec();
 }
 
 double SequenceBrowserWidget::zoom()
@@ -165,5 +164,6 @@ void SequenceBrowserWidget::setZoom(double z)
 
 void SequenceBrowserWidget::update()
 {
+  QWidget::update();
   scrollable_browser.browser().update();
 }
index 306e3f8d5e9974b721a3bdfe7d9650e6fca6cbaa..09a0b4800de26fd9252df762cc5cea3ec2ab1723 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <vector>
 
-#include <QSplitter>
+#include <QWidget>
 
 #include "alg/sequence.hpp"
 #include "alg/glsequence.hpp"
@@ -11,7 +11,7 @@
 #include "qui/seqbrowser/SequenceBrowserSidebar.hpp"
 
 //! the master widget that makes a useful Sequence Browser
-class SequenceBrowserWidget : public QSplitter
+class SequenceBrowserWidget : public QWidget 
 {
   Q_OBJECT