From 00ce22c8f4f84668ed86e448f89c018815ee9ab0 Mon Sep 17 00:00:00 2001
From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 10 Aug 2010 07:09:02 +0000
Subject: [PATCH] fix problem with initialising the size of fixed-size panel
 widgets

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2638 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 .../gui/src/panels/panel_bar_widget_holder.cc | 35 +++++++++----------
 modules/gui/src/panels/splitter_panel_bar.cc  |  5 +--
 modules/gui/src/remote_loader.cc              |  6 ++--
 3 files changed, 22 insertions(+), 24 deletions(-)

diff --git a/modules/gui/src/panels/panel_bar_widget_holder.cc b/modules/gui/src/panels/panel_bar_widget_holder.cc
index 0bc7dbd71..4f098355e 100644
--- a/modules/gui/src/panels/panel_bar_widget_holder.cc
+++ b/modules/gui/src/panels/panel_bar_widget_holder.cc
@@ -49,33 +49,31 @@
 namespace ost { namespace gui {
 
 
-PanelBarWidgetHolder::PanelBarWidgetHolder(Widget* widget,Qt::Orientation orientation,
-                                         QWidget* parent):
+PanelBarWidgetHolder::PanelBarWidgetHolder(Widget* widget, Qt::Orientation orientation,
+                                           QWidget* parent):
   QWidget(parent), toolbar_(new QToolBar(parent)),
   widget_(widget), label_(NULL)
 {
   this->SetupToolBar();
   QVBoxLayout* v_layout=new QVBoxLayout(this);
   this->setLayout(v_layout);
+  widget->setVisible(true);  
   v_layout->setMargin(0);
   v_layout->setSpacing(0);    
-  v_layout->addWidget(toolbar_, 1);
-  v_layout->addWidget(widget, 100);
+  v_layout->addWidget(toolbar_, 0);
+  v_layout->addWidget(widget, 1);
 
-  this->setSizePolicy(widget->sizePolicy());
+  this->setSizePolicy(widget->sizePolicy());  
   if(orientation == Qt::Horizontal){
     if(this->sizePolicy().horizontalPolicy()==QSizePolicy::Fixed){
-      this->setMinimumWidth(widget->minimumWidth());
-      this->setMinimumWidth(widget->maximumWidth());
-    }
-    else if(this->sizePolicy().verticalPolicy()==QSizePolicy::Fixed){
+      this->setFixedWidth(widget->minimumWidth());
+    } else if (this->sizePolicy().verticalPolicy()==QSizePolicy::Fixed) {
       v_layout->addStretch(1);
     }
   }
   if(orientation == Qt::Vertical){
-    if(this->sizePolicy().verticalPolicy()==QSizePolicy::Fixed){
-      this->setMinimumHeight(toolbar_->height()+widget->minimumHeight());
-      this->setMaximumHeight(toolbar_->height()+widget->maximumHeight());
+    if(this->sizePolicy().verticalPolicy()==QSizePolicy::Fixed) {
+      this->setFixedHeight(this->sizeHint().height());
     }
   }
 
@@ -104,14 +102,13 @@ void PanelBarWidgetHolder::SetupToolBar()
   toolbar_->setContentsMargins(0, 0, 0, 0);
   toolbar_->setToolButtonStyle(Qt::ToolButtonIconOnly);
   toolbar_->setIconSize(QSize(16,16));
-  if(!actions.isEmpty()){
-    for(int i = 0;i<actions.size();i++){
-      toolbar_->addAction(actions[i]);
-    }
-  }
+  for (int i=0; i<actions.size();i++) {
+    toolbar_->addAction(actions[i]);
+  }  
   QAction* delete_me=toolbar_->addAction(" x ");
   delete_me->setToolTip("Close "+ label_->text());
-  delete_me->setIcon(QIcon(icon_path.absolutePath()+QDir::separator()+QString("close_icon.png")));
+  delete_me->setIcon(QIcon(icon_path.absolutePath()+QDir::separator()+
+                           QString("close_icon.png")));
   connect(delete_me, SIGNAL(triggered()), this, SLOT(Remove()));
 }
 
@@ -125,7 +122,7 @@ void PanelBarWidgetHolder::SetWidget(Widget* widget)
   QBoxLayout* l=dynamic_cast<QBoxLayout*>(layout());
   assert(l);
   l->removeWidget(widget_);
-  l->addWidget(widget, 100);
+  l->addWidget(widget, 1);
   QString class_name=widget->metaObject()->className();
   WidgetRegistry* wf=WidgetRegistry::Instance();
   label_->setText(wf->GetFullName(class_name));
diff --git a/modules/gui/src/panels/splitter_panel_bar.cc b/modules/gui/src/panels/splitter_panel_bar.cc
index 65476dcc3..480d9780e 100644
--- a/modules/gui/src/panels/splitter_panel_bar.cc
+++ b/modules/gui/src/panels/splitter_panel_bar.cc
@@ -80,7 +80,7 @@ void SplitterPanelBar::WidgetMoved(Widget* widget, int index){
     wh->setVisible(false);
     wh->setParent(NULL);
   }
-  PanelBarWidgetHolder* side_bar_widget_holder = new PanelBarWidgetHolder(widget,splitter_->orientation(),this->GetPanelBar());
+  PanelBarWidgetHolder* side_bar_widget_holder=new PanelBarWidgetHolder(widget,splitter_->orientation(),this->GetPanelBar());
   widget_holders_.insert(index,side_bar_widget_holder);
   splitter_->insertWidget(index, widget_holders_.at(index));
   if(pos>=0 && pos<sizes_.size() && index>=0 && index<sizes_.size()){
@@ -92,7 +92,8 @@ void SplitterPanelBar::WidgetMoved(Widget* widget, int index){
 }
 
 
-QString SplitterPanelBar::GetName(){
+QString SplitterPanelBar::GetName()
+{
   return "Splitter Mode";
 }
 
diff --git a/modules/gui/src/remote_loader.cc b/modules/gui/src/remote_loader.cc
index 76bc8a5ce..42342e3d5 100644
--- a/modules/gui/src/remote_loader.cc
+++ b/modules/gui/src/remote_loader.cc
@@ -41,6 +41,7 @@ RemoteLoader::RemoteLoader(QWidget* parent):
   button_ = new QToolButton(this);
   button_->setAttribute(Qt::WA_MacSmallSize);
   progress_bar_ = new QProgressBar(this);
+  progress_bar_->setAttribute(Qt::WA_MacSmallSize);
   progress_bar_->setVisible(false);
   progress_bar_->setRange(0,0);
 
@@ -51,8 +52,6 @@ RemoteLoader::RemoteLoader(QWidget* parent):
   l->setMargin(3);
   l->setSpacing(2);
 
-  this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
-  this->setFixedHeight(progress_bar_->height());
   connect(button_, SIGNAL(clicked()), this,
           SLOT(Clicked()));
 
@@ -71,10 +70,11 @@ RemoteLoader::RemoteLoader(QWidget* parent):
   select_url_action->setIcon(QIcon(icon_path.absolutePath()+QDir::separator()+
                                    QString("site_icon.png")));
   action_list_.append(select_url_action);
-
   connect(select_url_action, SIGNAL(triggered(bool)), this, SLOT(UrlClick()));
   this->BuildMenu();
   this->RenameButton();
+  this->setFixedHeight(button_->height());
+  this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);  
 }
 
 void RemoteLoader::UrlClick()
-- 
GitLab