mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Remove the flicker issue and the resize issue.
The flicker was caused by removing all widgets (and thus setting the size of the splitter to zero) and then re-adding them. I've added four QStackedWdigets that have a consistent size and the only thing I do now is to set the corresponding widget to visible without removing / readding anything, and thus, not messing with the sizes. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
7b46a8fddf
commit
9b547e6c71
2 changed files with 24 additions and 24 deletions
|
@ -1516,6 +1516,18 @@ void MainWindow::checkForUndoAndRedo()
|
|||
void MainWindow::registerApplicationState(const QByteArray& state, QWidget *topLeft, QWidget *bottomLeft, QWidget *topRight, QWidget *bottomRight)
|
||||
{
|
||||
applicationState[state] = WidgetForBorder(topLeft, bottomLeft, topRight, bottomRight);
|
||||
if (ui.topLeft->indexOf(topLeft) == -1) {
|
||||
ui.topLeft->addWidget(topLeft);
|
||||
}
|
||||
if (ui.topRight->indexOf(topRight) == -1) {
|
||||
ui.topRight->addWidget(topRight);
|
||||
}
|
||||
if (ui.bottomLeft->indexOf(bottomLeft) == -1) {
|
||||
ui.bottomLeft->addWidget(bottomLeft);
|
||||
}
|
||||
if(ui.bottomRight->indexOf(bottomRight) == -1) {
|
||||
ui.bottomRight->addWidget(bottomRight);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::setApplicationState(const QByteArray& state) {
|
||||
|
@ -1526,24 +1538,8 @@ void MainWindow::setApplicationState(const QByteArray& state) {
|
|||
return;
|
||||
|
||||
currentApplicationState = state;
|
||||
QList<int> topSize = ui.topSplitter->sizes();
|
||||
QList<int> bottomSize = ui.bottomSplitter->sizes();
|
||||
|
||||
// yes, index is zero both times. please don't change it.
|
||||
if (ui.topSplitter->count() >= 2) {
|
||||
ui.topSplitter->widget(0)->setParent(NULL);
|
||||
ui.topSplitter->widget(0)->setParent(NULL);
|
||||
}
|
||||
if (ui.bottomSplitter->count() >= 2) {
|
||||
ui.bottomSplitter->widget(0)->setParent(NULL);
|
||||
ui.bottomSplitter->widget(0)->setParent(NULL);
|
||||
}
|
||||
|
||||
WidgetForBorder curr = applicationState[state];
|
||||
ui.topSplitter->addWidget(curr.topLeft);
|
||||
ui.topSplitter->addWidget(curr.topRight);
|
||||
ui.bottomSplitter->addWidget(curr.bottomLeft);
|
||||
ui.bottomSplitter->addWidget(curr.bottomRight);
|
||||
ui.topSplitter->setSizes(topSize);
|
||||
ui.bottomSplitter->setSizes(bottomSize);
|
||||
ui.topLeft->setCurrentWidget( applicationState[state].topLeft);
|
||||
ui.bottomLeft->setCurrentWidget( applicationState[state].bottomLeft);
|
||||
ui.topRight->setCurrentWidget( applicationState[state].topRight);
|
||||
ui.bottomRight->setCurrentWidget( applicationState[state].bottomRight);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue