diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-06-27 15:33:43 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-06-27 20:57:10 +0800 |
commit | 8678e2d57c6e456952dc2d75857f60b0129ed0ff (patch) | |
tree | 09908a1f39c3e380932751fd12da3b370de1026f /qt-ui/maintab.cpp | |
parent | 937fef819a8d1a4b9a7f643f19317fe460457a14 (diff) | |
download | subsurface-8678e2d57c6e456952dc2d75857f60b0129ed0ff.tar.gz |
Better positioning of the plus sign icons in the Equip. tab
There are a couple of problems with said icons:
- When the Equip. tab is first seen, no relative event is monitored
so that the correct position is updated and the icons are positioned.
To solve that we connect the signal MainTab::currentChanged(int)
and call MainTab::equipmentPlusUpdate().
- When the info-profile QSplitter resizes with a snap towards/from
the edges of the main window, no resize handler is called such as
MainTab::resizeEvent().
A solution is to monitor the resize of the info-profile splitter
with MainWindow::on_infoProfileSplitter_splitterMoved() and again
call MainTab::equipmentPlusUpdate()
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/maintab.cpp')
-rw-r--r-- | qt-ui/maintab.cpp | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp index c6b49da39..843724374 100644 --- a/qt-ui/maintab.cpp +++ b/qt-ui/maintab.cpp @@ -90,28 +90,39 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent), ui->weights->horizontalHeader()->setResizeMode (WeightModel::REMOVE , QHeaderView::Fixed); ui->weights->verticalHeader()->setDefaultSectionSize( metrics.height() +8 ); ui->weights->setItemDelegateForColumn(WeightModel::TYPE, new WSInfoDelegate()); + + connect(this, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); initialUiSetup(); } // We need to manually position the 'plus' on cylinder and weight. void MainTab::resizeEvent(QResizeEvent* event) { - if (ui->cylindersGroup->isVisible()) - addCylinder->setGeometry(ui->cylindersGroup->contentsRect().width() - 30, 2, 24,24); - - if (ui->weightGroup->isVisible()) - addWeight->setGeometry(ui->weightGroup->contentsRect().width() - 30, 2, 24,24); - + equipmentPlusUpdate(); QTabWidget::resizeEvent(event); } void MainTab::showEvent(QShowEvent* event) { QTabWidget::showEvent(event); - addCylinder->setGeometry(ui->cylindersGroup->contentsRect().width() - 30, 2, 24,24); - addWeight->setGeometry(ui->weightGroup->contentsRect().width() - 30, 2, 24,24); + equipmentPlusUpdate(); +} + +void MainTab::tabChanged(int idx) +{ + /* if the current tab has become of index 1 (i.e. the equipment tab) call update + * for the plus signs */ + if (idx == 1) + equipmentPlusUpdate(); } +void MainTab::equipmentPlusUpdate() +{ + if (ui->cylindersGroup->isVisible()) + addCylinder->setGeometry(ui->cylindersGroup->contentsRect().width() - 30, 2, 24,24); + if (ui->weightGroup->isVisible()) + addWeight->setGeometry(ui->weightGroup->contentsRect().width() - 30, 2, 24,24); +} bool MainTab::eventFilter(QObject* object, QEvent* event) { |