annotate view/PaneStack.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents c5970f7af886
children
rev   line source
lbajardsilogic@0 1
lbajardsilogic@0 2 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 3
lbajardsilogic@0 4 /*
lbajardsilogic@0 5 Sonic Visualiser
lbajardsilogic@0 6 An audio file viewer and annotation editor.
lbajardsilogic@0 7 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 8 This file copyright 2006 Chris Cannam and QMUL.
lbajardsilogic@0 9
lbajardsilogic@0 10 This program is free software; you can redistribute it and/or
lbajardsilogic@0 11 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 12 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 13 License, or (at your option) any later version. See the file
lbajardsilogic@0 14 COPYING included with this distribution for more information.
lbajardsilogic@0 15 */
lbajardsilogic@0 16
lbajardsilogic@0 17 #include "PaneStack.h"
lbajardsilogic@0 18
lbajardsilogic@0 19 #include "Pane.h"
lbajardsilogic@0 20 #include "widgets/PropertyStack.h"
lbajardsilogic@0 21 #include "layer/Layer.h"
lbajardsilogic@0 22 #include "ViewManager.h"
lbajardsilogic@0 23
lbajardsilogic@0 24 #include <QApplication>
lbajardsilogic@0 25 #include <QHBoxLayout>
lbajardsilogic@0 26 #include <QPainter>
lbajardsilogic@0 27 #include <QPalette>
lbajardsilogic@0 28 #include <QLabel>
lbajardsilogic@0 29 #include <QSplitter>
lbajardsilogic@0 30 #include <QStackedWidget>
benoitrigolleau@102 31 #include <QStyle>
lbajardsilogic@0 32
lbajardsilogic@0 33 #include <iostream>
lbajardsilogic@0 34
lbajardsilogic@0 35 //#define DEBUG_PANE_STACK 1
lbajardsilogic@0 36
lbajardsilogic@0 37 PaneStack::PaneStack(QWidget *parent, ViewManager *viewManager) :
lbajardsilogic@0 38 QFrame(parent),
lbajardsilogic@0 39 m_currentPane(0),
lbajardsilogic@0 40 m_splitter(new QSplitter),
lbajardsilogic@0 41 m_propertyStackStack(new QStackedWidget),
lbajardsilogic@204 42 m_viewManager(viewManager)
lbajardsilogic@0 43 {
lbajardsilogic@0 44 QHBoxLayout *layout = new QHBoxLayout;
lbajardsilogic@0 45 layout->setMargin(0);
lbajardsilogic@0 46 layout->setSpacing(0);
lbajardsilogic@0 47
lbajardsilogic@0 48 m_splitter->setOrientation(Qt::Vertical);
lbajardsilogic@0 49 m_splitter->setOpaqueResize(false);
lbajardsilogic@0 50
lbajardsilogic@0 51 layout->addWidget(m_splitter);
lbajardsilogic@0 52 layout->setStretchFactor(m_splitter, 1);
lbajardsilogic@0 53 layout->addWidget(m_propertyStackStack);
lbajardsilogic@0 54 m_propertyStackStack->hide();
lbajardsilogic@0 55
lbajardsilogic@0 56 setLayout(layout);
lbajardsilogic@0 57 }
lbajardsilogic@0 58
lbajardsilogic@0 59 Pane *
lbajardsilogic@0 60 PaneStack::addPane(bool suppressPropertyBox)
lbajardsilogic@0 61 {
lbajardsilogic@0 62 QFrame *frame = new QFrame;
lbajardsilogic@0 63 QHBoxLayout *layout = new QHBoxLayout;
lbajardsilogic@0 64 layout->setMargin(0);
lbajardsilogic@0 65 layout->setSpacing(2);
lbajardsilogic@0 66
lbajardsilogic@0 67 QLabel *currentIndicator = new QLabel(frame);
lbajardsilogic@0 68 currentIndicator->setFixedWidth(QPainter(this).fontMetrics().width("x"));
lbajardsilogic@0 69 layout->addWidget(currentIndicator);
lbajardsilogic@0 70 layout->setStretchFactor(currentIndicator, 1);
lbajardsilogic@0 71 currentIndicator->setScaledContents(true);
lbajardsilogic@0 72
lbajardsilogic@0 73 Pane *pane = new Pane(frame);
lbajardsilogic@0 74 pane->setViewManager(m_viewManager);
lbajardsilogic@0 75 layout->addWidget(pane);
lbajardsilogic@0 76 layout->setStretchFactor(pane, 10);
lbajardsilogic@0 77
lbajardsilogic@0 78 PaneRec rec;
lbajardsilogic@0 79 rec.pane = pane;
lbajardsilogic@13 80 rec.propertyStack = 0;
lbajardsilogic@0 81 rec.currentIndicator = currentIndicator;
lbajardsilogic@0 82 rec.frame = frame;
lbajardsilogic@0 83 rec.layout = layout;
lbajardsilogic@0 84 m_panes.push_back(rec);
lbajardsilogic@0 85
benoitrigolleau@102 86 //for the panel's border
benoitrigolleau@102 87 frame->setFrameStyle(QFrame::Box | QFrame::Raised);
benoitrigolleau@102 88 frame->setLineWidth(0);
benoitrigolleau@102 89
benoitrigolleau@102 90 frame->setLayout(layout);
lbajardsilogic@0 91 m_splitter->addWidget(frame);
lbajardsilogic@0 92
lbajardsilogic@101 93 resizePane();
lbajardsilogic@101 94
lbajardsilogic@0 95 connect(pane, SIGNAL(propertyContainerAdded(PropertyContainer *)),
lbajardsilogic@0 96 this, SLOT(propertyContainerAdded(PropertyContainer *)));
lbajardsilogic@0 97 connect(pane, SIGNAL(propertyContainerRemoved(PropertyContainer *)),
lbajardsilogic@0 98 this, SLOT(propertyContainerRemoved(PropertyContainer *)));
lbajardsilogic@0 99 connect(pane, SIGNAL(paneInteractedWith()),
lbajardsilogic@0 100 this, SLOT(paneInteractedWith()));
lbajardsilogic@0 101 connect(pane, SIGNAL(rightButtonMenuRequested(QPoint)),
lbajardsilogic@0 102 this, SLOT(rightButtonMenuRequested(QPoint)));
lbajardsilogic@0 103
lbajardsilogic@0 104 if (!m_currentPane) {
lbajardsilogic@0 105 setCurrentPane(pane);
lbajardsilogic@0 106 }
benoitrigolleau@66 107 emit newPaneAdded(pane);
lbajardsilogic@0 108 return pane;
lbajardsilogic@0 109 }
lbajardsilogic@0 110
lbajardsilogic@0 111 void
lbajardsilogic@0 112 PaneStack::setPropertyStackMinWidth(int mw)
lbajardsilogic@0 113 {
lbajardsilogic@0 114 for (std::vector<PaneRec>::iterator i = m_panes.begin();
lbajardsilogic@0 115 i != m_panes.end(); ++i) {
lbajardsilogic@0 116 i->propertyStack->setMinimumWidth(mw);
lbajardsilogic@0 117 }
lbajardsilogic@0 118 m_propertyStackMinWidth = mw;
lbajardsilogic@0 119 }
lbajardsilogic@0 120
lbajardsilogic@0 121 Pane *
lbajardsilogic@0 122 PaneStack::getPane(int n)
lbajardsilogic@0 123 {
lbajardsilogic@0 124 return m_panes[n].pane;
lbajardsilogic@0 125 }
lbajardsilogic@0 126
lbajardsilogic@0 127 Pane *
lbajardsilogic@0 128 PaneStack::getHiddenPane(int n)
lbajardsilogic@0 129 {
lbajardsilogic@0 130 return m_hiddenPanes[n].pane;
lbajardsilogic@0 131 }
lbajardsilogic@0 132
lbajardsilogic@0 133 void
lbajardsilogic@0 134 PaneStack::deletePane(Pane *pane)
lbajardsilogic@0 135 {
lbajardsilogic@0 136 std::vector<PaneRec>::iterator i;
lbajardsilogic@0 137 bool found = false;
lbajardsilogic@0 138
lbajardsilogic@0 139 for (i = m_panes.begin(); i != m_panes.end(); ++i) {
lbajardsilogic@0 140 if (i->pane == pane) {
lbajardsilogic@0 141 m_panes.erase(i);
lbajardsilogic@0 142 found = true;
lbajardsilogic@0 143 break;
lbajardsilogic@0 144 }
lbajardsilogic@0 145 }
lbajardsilogic@0 146
lbajardsilogic@0 147 if (!found) {
lbajardsilogic@0 148
lbajardsilogic@0 149 for (i = m_hiddenPanes.begin(); i != m_hiddenPanes.end(); ++i) {
lbajardsilogic@0 150 if (i->pane == pane) {
lbajardsilogic@0 151 m_hiddenPanes.erase(i);
lbajardsilogic@0 152 found = true;
lbajardsilogic@0 153 break;
lbajardsilogic@0 154 }
lbajardsilogic@0 155 }
lbajardsilogic@0 156
lbajardsilogic@0 157 if (!found) {
lbajardsilogic@0 158 std::cerr << "WARNING: PaneStack::deletePane(" << pane << "): Pane not found in visible or hidden panes, not deleting" << std::endl;
lbajardsilogic@0 159 return;
lbajardsilogic@0 160 }
lbajardsilogic@0 161 }
lbajardsilogic@0 162
lbajardsilogic@0 163 delete pane->parent();
lbajardsilogic@0 164
lbajardsilogic@0 165 if (m_currentPane == pane) {
lbajardsilogic@0 166 if (m_panes.size() > 0) {
lbajardsilogic@0 167 setCurrentPane(m_panes[0].pane);
lbajardsilogic@0 168 } else {
lbajardsilogic@0 169 setCurrentPane(0);
lbajardsilogic@0 170 }
lbajardsilogic@0 171 }
benoitrigolleau@66 172 emit paneDeleted(pane);
lbajardsilogic@0 173 }
lbajardsilogic@0 174
lbajardsilogic@0 175 int
lbajardsilogic@0 176 PaneStack::getPaneCount() const
lbajardsilogic@0 177 {
lbajardsilogic@0 178 return m_panes.size();
lbajardsilogic@0 179 }
lbajardsilogic@0 180
lbajardsilogic@0 181 int
lbajardsilogic@0 182 PaneStack::getHiddenPaneCount() const
lbajardsilogic@0 183 {
lbajardsilogic@0 184 return m_hiddenPanes.size();
lbajardsilogic@0 185 }
lbajardsilogic@0 186
lbajardsilogic@0 187 void
lbajardsilogic@0 188 PaneStack::hidePane(Pane *pane)
lbajardsilogic@0 189 {
lbajardsilogic@0 190 std::vector<PaneRec>::iterator i = m_panes.begin();
lbajardsilogic@0 191
lbajardsilogic@0 192 while (i != m_panes.end()) {
lbajardsilogic@0 193 if (i->pane == pane) {
lbajardsilogic@0 194
lbajardsilogic@0 195 m_hiddenPanes.push_back(*i);
lbajardsilogic@0 196 m_panes.erase(i);
lbajardsilogic@0 197
lbajardsilogic@0 198 QWidget *pw = dynamic_cast<QWidget *>(pane->parent());
lbajardsilogic@0 199 if (pw) pw->hide();
lbajardsilogic@0 200
lbajardsilogic@0 201 if (m_currentPane == pane) {
lbajardsilogic@0 202 if (m_panes.size() > 0) {
lbajardsilogic@0 203 setCurrentPane(m_panes[0].pane);
lbajardsilogic@0 204 } else {
lbajardsilogic@0 205 setCurrentPane(0);
lbajardsilogic@0 206 }
lbajardsilogic@0 207 }
lbajardsilogic@0 208
lbajardsilogic@0 209 return;
lbajardsilogic@0 210 }
lbajardsilogic@0 211 ++i;
lbajardsilogic@0 212 }
lbajardsilogic@0 213
lbajardsilogic@0 214 std::cerr << "WARNING: PaneStack::hidePane(" << pane << "): Pane not found in visible panes" << std::endl;
lbajardsilogic@0 215 }
lbajardsilogic@0 216
lbajardsilogic@0 217 void
lbajardsilogic@0 218 PaneStack::showPane(Pane *pane)
lbajardsilogic@0 219 {
lbajardsilogic@0 220 std::vector<PaneRec>::iterator i = m_hiddenPanes.begin();
lbajardsilogic@0 221
lbajardsilogic@0 222 while (i != m_hiddenPanes.end()) {
lbajardsilogic@0 223 if (i->pane == pane) {
lbajardsilogic@0 224 m_panes.push_back(*i);
lbajardsilogic@0 225 m_hiddenPanes.erase(i);
lbajardsilogic@0 226 QWidget *pw = dynamic_cast<QWidget *>(pane->parent());
lbajardsilogic@0 227 if (pw) pw->show();
lbajardsilogic@0 228
lbajardsilogic@0 229 //!!! update current pane
lbajardsilogic@0 230
lbajardsilogic@0 231 return;
lbajardsilogic@0 232 }
lbajardsilogic@0 233 ++i;
lbajardsilogic@0 234 }
lbajardsilogic@0 235
lbajardsilogic@0 236 std::cerr << "WARNING: PaneStack::showPane(" << pane << "): Pane not found in hidden panes" << std::endl;
lbajardsilogic@0 237 }
lbajardsilogic@0 238
lbajardsilogic@0 239 void
lbajardsilogic@0 240 PaneStack::setCurrentPane(Pane *pane) // may be null
lbajardsilogic@0 241 {
lbajardsilogic@0 242 if (m_currentPane == pane) return;
lbajardsilogic@0 243
lbajardsilogic@0 244 std::vector<PaneRec>::iterator i = m_panes.begin();
lbajardsilogic@0 245
lbajardsilogic@0 246 // We used to do this by setting the foreground and background
lbajardsilogic@0 247 // role, but it seems the background role is ignored and the
lbajardsilogic@0 248 // background drawn transparent in Qt 4.1 -- I can't quite see why
lbajardsilogic@0 249
lbajardsilogic@0 250 QPixmap selectedMap(1, 1);
lbajardsilogic@0 251 selectedMap.fill(QApplication::palette().color(QPalette::Foreground));
lbajardsilogic@0 252
lbajardsilogic@0 253 QPixmap unselectedMap(1, 1);
lbajardsilogic@0 254 unselectedMap.fill(QApplication::palette().color(QPalette::Background));
lbajardsilogic@0 255
lbajardsilogic@0 256 bool found = false;
lbajardsilogic@0 257
lbajardsilogic@0 258 while (i != m_panes.end()) {
lbajardsilogic@0 259 if (i->pane == pane) {
lbajardsilogic@0 260 i->currentIndicator->setPixmap(selectedMap);
lbajardsilogic@204 261 m_propertyStackStack->setCurrentWidget(i->propertyStack);
lbajardsilogic@204 262 found = true;
benoitrigolleau@102 263
benoitrigolleau@102 264 QFrame* frame = (QFrame*) (i->pane->parentWidget());
benoitrigolleau@102 265 if(frame!=0){
benoitrigolleau@102 266 frame->setLineWidth(2);
benoitrigolleau@102 267 }
benoitrigolleau@102 268
lbajardsilogic@0 269 } else {
lbajardsilogic@0 270 i->currentIndicator->setPixmap(unselectedMap);
benoitrigolleau@102 271 QFrame* frame = (QFrame*) (i->pane->parentWidget());
benoitrigolleau@102 272 if(frame!=0){
benoitrigolleau@102 273 frame->setLineWidth(0);
benoitrigolleau@102 274 }
lbajardsilogic@0 275 }
lbajardsilogic@0 276 ++i;
lbajardsilogic@0 277 }
lbajardsilogic@0 278
lbajardsilogic@0 279 if (found || pane == 0) {
benoitrigolleau@102 280 m_currentPane = pane;
benoitrigolleau@102 281 emit currentPaneChanged(m_currentPane);
lbajardsilogic@0 282 } else {
lbajardsilogic@0 283 std::cerr << "WARNING: PaneStack::setCurrentPane(" << pane << "): pane is not a visible pane in this stack" << std::endl;
lbajardsilogic@0 284 }
lbajardsilogic@0 285 }
lbajardsilogic@0 286
lbajardsilogic@0 287 void
lbajardsilogic@0 288 PaneStack::setCurrentLayer(Pane *pane, Layer *layer) // may be null
lbajardsilogic@0 289 {
lbajardsilogic@0 290 setCurrentPane(pane);
lbajardsilogic@0 291
lbajardsilogic@0 292 if (m_currentPane) {
lbajardsilogic@0 293
lbajardsilogic@0 294 std::vector<PaneRec>::iterator i = m_panes.begin();
lbajardsilogic@0 295
lbajardsilogic@0 296 while (i != m_panes.end()) {
lbajardsilogic@0 297
lbajardsilogic@0 298 if (i->pane == pane) {
lbajardsilogic@0 299 PropertyStack *stack = dynamic_cast<PropertyStack *>
lbajardsilogic@0 300 (i->propertyStack);
lbajardsilogic@0 301 if (stack) {
lbajardsilogic@0 302 if (stack->containsContainer(layer)) {
lbajardsilogic@0 303 stack->setCurrentIndex(stack->getContainerIndex(layer));
lbajardsilogic@0 304 emit currentLayerChanged(pane, layer);
lbajardsilogic@0 305 } else {
lbajardsilogic@0 306 stack->setCurrentIndex
lbajardsilogic@0 307 (stack->getContainerIndex
lbajardsilogic@0 308 (pane->getPropertyContainer(0)));
lbajardsilogic@0 309 emit currentLayerChanged(pane, 0);
lbajardsilogic@0 310 }
lbajardsilogic@0 311 }
lbajardsilogic@0 312 break;
lbajardsilogic@0 313 }
lbajardsilogic@0 314 ++i;
lbajardsilogic@0 315 }
lbajardsilogic@0 316 }
lbajardsilogic@0 317 }
lbajardsilogic@0 318
lbajardsilogic@0 319 Pane *
lbajardsilogic@0 320 PaneStack::getCurrentPane()
lbajardsilogic@0 321 {
lbajardsilogic@0 322 return m_currentPane;
lbajardsilogic@0 323 }
lbajardsilogic@0 324
lbajardsilogic@0 325 void
lbajardsilogic@0 326 PaneStack::propertyContainerAdded(PropertyContainer *)
lbajardsilogic@0 327 {
lbajardsilogic@0 328 sizePropertyStacks();
lbajardsilogic@0 329 }
lbajardsilogic@0 330
lbajardsilogic@0 331 void
lbajardsilogic@0 332 PaneStack::propertyContainerRemoved(PropertyContainer *)
lbajardsilogic@0 333 {
lbajardsilogic@0 334 sizePropertyStacks();
lbajardsilogic@0 335 }
lbajardsilogic@0 336
lbajardsilogic@0 337 void
lbajardsilogic@0 338 PaneStack::propertyContainerSelected(View *client, PropertyContainer *pc)
lbajardsilogic@0 339 {
lbajardsilogic@0 340 std::vector<PaneRec>::iterator i = m_panes.begin();
lbajardsilogic@0 341
lbajardsilogic@0 342 while (i != m_panes.end()) {
lbajardsilogic@0 343 PropertyStack *stack = dynamic_cast<PropertyStack *>(i->propertyStack);
lbajardsilogic@0 344 if (stack &&
lbajardsilogic@0 345 stack->getClient() == client &&
lbajardsilogic@0 346 stack->containsContainer(pc)) {
lbajardsilogic@0 347 setCurrentPane(i->pane);
lbajardsilogic@0 348 break;
lbajardsilogic@0 349 }
lbajardsilogic@0 350 ++i;
lbajardsilogic@0 351 }
lbajardsilogic@0 352
lbajardsilogic@0 353 Layer *layer = dynamic_cast<Layer *>(pc);
lbajardsilogic@0 354 if (layer) emit currentLayerChanged(m_currentPane, layer);
lbajardsilogic@0 355 else emit currentLayerChanged(m_currentPane, 0);
lbajardsilogic@0 356 }
lbajardsilogic@0 357
lbajardsilogic@0 358 void
lbajardsilogic@0 359 PaneStack::viewSelected(View *v)
lbajardsilogic@0 360 {
lbajardsilogic@0 361 Pane *p = dynamic_cast<Pane *>(v);
lbajardsilogic@0 362 if (p) setCurrentPane(p);
lbajardsilogic@0 363 }
lbajardsilogic@0 364
lbajardsilogic@0 365 void
lbajardsilogic@0 366 PaneStack::paneInteractedWith()
lbajardsilogic@0 367 {
lbajardsilogic@0 368 Pane *pane = dynamic_cast<Pane *>(sender());
lbajardsilogic@0 369 if (!pane) return;
lbajardsilogic@0 370 setCurrentPane(pane);
lbajardsilogic@0 371 }
lbajardsilogic@0 372
lbajardsilogic@0 373 void
lbajardsilogic@0 374 PaneStack::rightButtonMenuRequested(QPoint position)
lbajardsilogic@0 375 {
lbajardsilogic@0 376 Pane *pane = dynamic_cast<Pane *>(sender());
lbajardsilogic@0 377 if (!pane) return;
lbajardsilogic@0 378 emit rightButtonMenuRequested(pane, position);
lbajardsilogic@0 379 }
lbajardsilogic@0 380
lbajardsilogic@0 381 void
lbajardsilogic@0 382 PaneStack::sizePropertyStacks()
lbajardsilogic@0 383 {
lbajardsilogic@0 384 int maxMinWidth = 0;
lbajardsilogic@0 385
lbajardsilogic@0 386 if (m_propertyStackMinWidth > 0) maxMinWidth = m_propertyStackMinWidth;
lbajardsilogic@0 387
lbajardsilogic@0 388 for (size_t i = 0; i < m_panes.size(); ++i) {
lbajardsilogic@0 389 if (!m_panes[i].propertyStack) continue;
lbajardsilogic@0 390 #ifdef DEBUG_PANE_STACK
lbajardsilogic@0 391 std::cerr << "PaneStack::sizePropertyStacks: " << i << ": min "
lbajardsilogic@0 392 << m_panes[i].propertyStack->minimumSizeHint().width() << ", hint "
lbajardsilogic@0 393 << m_panes[i].propertyStack->sizeHint().width() << ", current "
lbajardsilogic@0 394 << m_panes[i].propertyStack->width() << std::endl;
lbajardsilogic@0 395 #endif
lbajardsilogic@0 396
lbajardsilogic@0 397 if (m_panes[i].propertyStack->sizeHint().width() > maxMinWidth) {
lbajardsilogic@0 398 maxMinWidth = m_panes[i].propertyStack->sizeHint().width();
lbajardsilogic@0 399 }
lbajardsilogic@0 400 }
lbajardsilogic@0 401
lbajardsilogic@0 402 #ifdef DEBUG_PANE_STACK
lbajardsilogic@0 403 std::cerr << "PaneStack::sizePropertyStacks: max min width " << maxMinWidth << std::endl;
lbajardsilogic@0 404 #endif
lbajardsilogic@0 405
lbajardsilogic@0 406 //#ifdef Q_WS_MAC
lbajardsilogic@0 407 // This is necessary to compensate for cb->setMinimumSize(10, 10)
lbajardsilogic@0 408 // in PropertyBox in the Mac version (to avoid a mysterious crash)
lbajardsilogic@0 409 // ... no longer necessary with qt4.2
lbajardsilogic@0 410 // int setWidth = maxMinWidth * 3 / 2;
lbajardsilogic@0 411 //#else
lbajardsilogic@0 412 int setWidth = maxMinWidth;
lbajardsilogic@0 413 //#endif
lbajardsilogic@0 414
lbajardsilogic@0 415 m_propertyStackStack->setMaximumWidth(setWidth + 10);
lbajardsilogic@0 416
lbajardsilogic@0 417 for (size_t i = 0; i < m_panes.size(); ++i) {
lbajardsilogic@0 418 if (!m_panes[i].propertyStack) continue;
lbajardsilogic@0 419 m_panes[i].propertyStack->setMinimumWidth(setWidth);
lbajardsilogic@0 420 }
lbajardsilogic@0 421
lbajardsilogic@0 422 emit propertyStacksResized();
lbajardsilogic@0 423 }
lbajardsilogic@0 424
lbajardsilogic@101 425 void PaneStack::resizePane()
lbajardsilogic@101 426 {
lbajardsilogic@101 427 int totalSize = m_splitter->size().height();
lbajardsilogic@101 428 int nbPane = getPaneCount();
lbajardsilogic@0 429
lbajardsilogic@101 430 if (nbPane == 0)
lbajardsilogic@101 431 return;
lbajardsilogic@101 432
lbajardsilogic@101 433 QList<int> newSizes;
lbajardsilogic@101 434
lbajardsilogic@101 435 for (int i = 0; i< nbPane; i++)
lbajardsilogic@101 436 {
lbajardsilogic@101 437 newSizes.push_back(totalSize/nbPane);
lbajardsilogic@101 438 }
lbajardsilogic@101 439
lbajardsilogic@101 440 m_splitter->setSizes(newSizes);
lbajardsilogic@101 441 }