From 134da9ef870fcf063fd5abe292ec9aca7f387f60 2017-06-19 13:33:54 From: mperrinel Date: 2017-06-19 13:33:54 Subject: [PATCH] Add lambda in VIsualizationWidget to fix the bug of the corner widget button size Modify the property of the QFrame to ensure the box around the zone widget to be visible --- diff --git a/gui/src/Visualization/VisualizationWidget.cpp b/gui/src/Visualization/VisualizationWidget.cpp index 3ca7b00..c780ec8 100644 --- a/gui/src/Visualization/VisualizationWidget.cpp +++ b/gui/src/Visualization/VisualizationWidget.cpp @@ -18,24 +18,36 @@ VisualizationWidget::VisualizationWidget(QWidget *parent) auto addTabViewButton = new QToolButton{ui->tabWidget}; addTabViewButton->setText(tr("Add View")); addTabViewButton->setCursor(Qt::ArrowCursor); - addTabViewButton->setAutoRaise(true); ui->tabWidget->setCornerWidget(addTabViewButton, Qt::TopRightCorner); - auto width = ui->tabWidget->cornerWidget()->width(); - auto height = ui->tabWidget->cornerWidget()->height(); - addTabViewButton->setMinimumHeight(height); - addTabViewButton->setMinimumWidth(width); - ui->tabWidget->setMinimumHeight(height); - ui->tabWidget->setMinimumWidth(width); - - auto addTabView = [&]() { + + auto enableMinimunCornerWidgetSize = [this](bool enable) { + + auto tabViewCornerWidget = ui->tabWidget->cornerWidget(); + auto width = enable ? tabViewCornerWidget->width() : 0; + auto height = enable ? tabViewCornerWidget->height() : 0; + tabViewCornerWidget->setMinimumHeight(height); + tabViewCornerWidget->setMinimumWidth(width); + ui->tabWidget->setMinimumHeight(height); + ui->tabWidget->setMinimumWidth(width); + }; + + auto addTabView = [this, enableMinimunCornerWidgetSize]() { auto index = ui->tabWidget->addTab(new VisualizationTabWidget(ui->tabWidget), QString("View %1").arg(ui->tabWidget->count() + 1)); + if (ui->tabWidget->count() > 0) { + enableMinimunCornerWidgetSize(false); + } qCInfo(LOG_VisualizationWidget()) << tr("add the tab of index %1").arg(index); }; - auto removeTabView = [&](int index) { + auto removeTabView = [this, enableMinimunCornerWidgetSize](int index) { + if (ui->tabWidget->count() == 1) { + enableMinimunCornerWidgetSize(true); + } + ui->tabWidget->removeTab(index); qCInfo(LOG_VisualizationWidget()) << tr("remove the tab of index %1").arg(index); + }; ui->tabWidget->setTabsClosable(true); diff --git a/gui/ui/Visualization/VisualizationZoneWidget.ui b/gui/ui/Visualization/VisualizationZoneWidget.ui index fa0dae3..fc42eb5 100644 --- a/gui/ui/Visualization/VisualizationZoneWidget.ui +++ b/gui/ui/Visualization/VisualizationZoneWidget.ui @@ -14,14 +14,32 @@ Form + + 3 + + + 0 + + + 0 + + + 0 + + + 0 + - QFrame::StyledPanel + QFrame::Box QFrame::Raised + + 1 +