From fc6d844a92d50242b9efaca08bb8bf5412710704 Mon Sep 17 00:00:00 2001 From: Steffen Baranowsky Date: Tue, 13 Jun 2017 12:31:21 +0200 Subject: [PATCH] saves the correct subwindow size when it is hidden (#3589) * saves the correct subwindow size when it is hidden * remove invisible size from saveWidgetState() --- include/MainWindow.h | 2 +- src/gui/MainWindow.cpp | 8 ++++---- src/gui/editors/AutomationEditor.cpp | 2 +- src/gui/editors/BBEditor.cpp | 2 +- src/gui/editors/PianoRoll.cpp | 2 +- src/gui/editors/SongEditor.cpp | 2 +- src/gui/widgets/ControllerRackView.cpp | 2 +- src/gui/widgets/ProjectNotes.cpp | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/MainWindow.h b/include/MainWindow.h index 603dd1d29..41fc06d5d 100644 --- a/include/MainWindow.h +++ b/include/MainWindow.h @@ -142,7 +142,7 @@ public: return m_keyMods.m_alt; } - static void saveWidgetState( QWidget * _w, QDomElement & _de, QSize const & sizeIfInvisible = QSize(0, 0) ); + static void saveWidgetState( QWidget * _w, QDomElement & _de ); static void restoreWidgetState( QWidget * _w, const QDomElement & _de ); public slots: diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index ddd2faacf..8c2898da3 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -734,7 +734,7 @@ void MainWindow::clearKeyModifiers() -void MainWindow::saveWidgetState( QWidget * _w, QDomElement & _de, QSize const & sizeIfInvisible ) +void MainWindow::saveWidgetState( QWidget * _w, QDomElement & _de ) { // If our widget is the main content of a window (e.g. piano roll, FxMixer, etc), // we really care about the position of the *window* - not the position of the widget within its window @@ -757,7 +757,7 @@ void MainWindow::saveWidgetState( QWidget * _w, QDomElement & _de, QSize const & _de.setAttribute( "x", normalGeom.x() ); _de.setAttribute( "y", normalGeom.y() ); - QSize sizeToStore = visible ? normalGeom.size() : sizeIfInvisible; + QSize sizeToStore = normalGeom.size(); _de.setAttribute( "width", sizeToStore.width() ); _de.setAttribute( "height", sizeToStore.height() ); } @@ -769,8 +769,8 @@ void MainWindow::restoreWidgetState( QWidget * _w, const QDomElement & _de ) { QRect r( qMax( 1, _de.attribute( "x" ).toInt() ), qMax( 1, _de.attribute( "y" ).toInt() ), - qMax( 100, _de.attribute( "width" ).toInt() ), - qMax( 100, _de.attribute( "height" ).toInt() ) ); + qMax( _w->sizeHint().width(), _de.attribute( "width" ).toInt() ), + qMax( _w->minimumHeight(), _de.attribute( "height" ).toInt() ) ); if( _de.hasAttribute( "visible" ) && !r.isNull() ) { // If our widget is the main content of a window (e.g. piano roll, FxMixer, etc), diff --git a/src/gui/editors/AutomationEditor.cpp b/src/gui/editors/AutomationEditor.cpp index 29958d886..1e94c1b50 100644 --- a/src/gui/editors/AutomationEditor.cpp +++ b/src/gui/editors/AutomationEditor.cpp @@ -239,7 +239,7 @@ void AutomationEditor::setCurrentPattern(AutomationPattern * new_pattern ) void AutomationEditor::saveSettings(QDomDocument & doc, QDomElement & dom_parent) { - MainWindow::saveWidgetState(parentWidget(), dom_parent, QSize( 640, 400 )); + MainWindow::saveWidgetState( parentWidget(), dom_parent ); } diff --git a/src/gui/editors/BBEditor.cpp b/src/gui/editors/BBEditor.cpp index 50ff0c1e3..699ff2524 100644 --- a/src/gui/editors/BBEditor.cpp +++ b/src/gui/editors/BBEditor.cpp @@ -237,7 +237,7 @@ void BBTrackContainerView::removeBBView(int bb) void BBTrackContainerView::saveSettings(QDomDocument& doc, QDomElement& element) { - MainWindow::saveWidgetState(parentWidget(), element, QSize( 640, 400 ) ); + MainWindow::saveWidgetState( parentWidget(), element ); } void BBTrackContainerView::loadSettings(const QDomElement& element) diff --git a/src/gui/editors/PianoRoll.cpp b/src/gui/editors/PianoRoll.cpp index 080369d8c..9b65c6847 100644 --- a/src/gui/editors/PianoRoll.cpp +++ b/src/gui/editors/PianoRoll.cpp @@ -4392,7 +4392,7 @@ void PianoRollWindow::reset() void PianoRollWindow::saveSettings( QDomDocument & doc, QDomElement & de ) { - MainWindow::saveWidgetState( this, de, QSize( 640, 480 ) ); + MainWindow::saveWidgetState( this, de ); } diff --git a/src/gui/editors/SongEditor.cpp b/src/gui/editors/SongEditor.cpp index ed0491e20..cf561f179 100644 --- a/src/gui/editors/SongEditor.cpp +++ b/src/gui/editors/SongEditor.cpp @@ -262,7 +262,7 @@ SongEditor::~SongEditor() void SongEditor::saveSettings( QDomDocument& doc, QDomElement& element ) { - MainWindow::saveWidgetState(parentWidget(), element, QSize( 640, 400 )); + MainWindow::saveWidgetState( parentWidget(), element ); } void SongEditor::loadSettings( const QDomElement& element ) diff --git a/src/gui/widgets/ControllerRackView.cpp b/src/gui/widgets/ControllerRackView.cpp index cf1cf3c83..79e1bafa0 100644 --- a/src/gui/widgets/ControllerRackView.cpp +++ b/src/gui/widgets/ControllerRackView.cpp @@ -102,7 +102,7 @@ ControllerRackView::~ControllerRackView() void ControllerRackView::saveSettings( QDomDocument & _doc, QDomElement & _this ) { - MainWindow::saveWidgetState( this, _this, QSize( 400, 300) ); + MainWindow::saveWidgetState( this, _this ); } diff --git a/src/gui/widgets/ProjectNotes.cpp b/src/gui/widgets/ProjectNotes.cpp index 4e23349ad..d8d6636c4 100644 --- a/src/gui/widgets/ProjectNotes.cpp +++ b/src/gui/widgets/ProjectNotes.cpp @@ -438,7 +438,7 @@ void ProjectNotes::alignmentChanged( int _a ) void ProjectNotes::saveSettings( QDomDocument & _doc, QDomElement & _this ) { - MainWindow::saveWidgetState( this, _this, QSize( 640, 400 ) ); + MainWindow::saveWidgetState( this, _this ); QDomCDATASection ds = _doc.createCDATASection( m_edit->toHtml() ); _this.appendChild( ds );