possibly fix problems with changing layout when message previewer is actually hidden

This commit is contained in:
Martin Rotter 2021-10-15 08:13:39 +02:00
parent ef4f99bb77
commit 28edff70a7
2 changed files with 24 additions and 8 deletions

View File

@ -26,7 +26,7 @@
<url type="donation">https://github.com/sponsors/martinrotter</url>
<content_rating type="oars-1.1" />
<releases>
<release version="4.0.3" date="2021-10-13"/>
<release version="4.0.3" date="2021-10-15"/>
</releases>
<content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute>

View File

@ -91,6 +91,11 @@ void FeedMessageViewer::saveSize() {
// Store offsets of splitters.
settings->setValue(GROUP(GUI), GUI::SplitterFeeds, toVariant(m_feedSplitter->sizes()));
// We need to display message previewer so that it "has" some dimensions
// so that they can be saved.
m_messagesBrowser->show();
qApp->processEvents();
if (!settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) {
settings->setValue(GROUP(GUI),
GUI::SplitterMessagesHorizontal,
@ -116,15 +121,12 @@ void FeedMessageViewer::loadSize() {
m_feedSplitter->setSizes(toList<int>(settings->value(GROUP(GUI),
SETTING(GUI::SplitterFeeds))));
if (!settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) {
switchMessageSplitterOrientation(false);
m_messageSplitter->setSizes(toList<int>(settings->value(GROUP(GUI),
SETTING(GUI::SplitterMessagesHorizontal))));
}
else {
if (settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) {
m_messageSplitter->setSizes(toList<int>(settings->value(GROUP(GUI),
SETTING(GUI::SplitterMessagesVertical))));
}
else {
switchMessageSplitterOrientation(false);
}
QString settings_msg_header = settings->value(GROUP(GUI), SETTING(GUI::MessageViewState)).toString();
@ -149,6 +151,14 @@ bool FeedMessageViewer::areListHeadersEnabled() const {
}
void FeedMessageViewer::switchMessageSplitterOrientation(bool save_settings) {
bool preview_visible = m_messagesBrowser->isVisible();
if (!preview_visible && save_settings) {
// Must be visible to get correct dimensions to be saved.
m_messagesBrowser->show();
qApp->processEvents();
}
if (m_messageSplitter->orientation() == Qt::Orientation::Vertical) {
if (save_settings) {
qApp->settings()->setValue(GROUP(GUI),
@ -172,6 +182,12 @@ void FeedMessageViewer::switchMessageSplitterOrientation(bool save_settings) {
SETTING(GUI::SplitterMessagesVertical))));
}
if (!preview_visible && save_settings) {
// Must be visible to get correct dimensions to be saved.
m_messagesBrowser->hide();
qApp->processEvents();
}
qApp->settings()->setValue(GROUP(GUI),
GUI::SplitterMessagesIsVertical,
m_messageSplitter->orientation() == Qt::Orientation::Vertical);