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

View File

@ -91,6 +91,11 @@ void FeedMessageViewer::saveSize() {
// Store offsets of splitters. // Store offsets of splitters.
settings->setValue(GROUP(GUI), GUI::SplitterFeeds, toVariant(m_feedSplitter->sizes())); 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()) { if (!settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) {
settings->setValue(GROUP(GUI), settings->setValue(GROUP(GUI),
GUI::SplitterMessagesHorizontal, GUI::SplitterMessagesHorizontal,
@ -116,15 +121,12 @@ void FeedMessageViewer::loadSize() {
m_feedSplitter->setSizes(toList<int>(settings->value(GROUP(GUI), m_feedSplitter->setSizes(toList<int>(settings->value(GROUP(GUI),
SETTING(GUI::SplitterFeeds)))); SETTING(GUI::SplitterFeeds))));
if (!settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) { if (settings->value(GROUP(GUI), SETTING(GUI::SplitterMessagesIsVertical)).toBool()) {
switchMessageSplitterOrientation(false);
m_messageSplitter->setSizes(toList<int>(settings->value(GROUP(GUI),
SETTING(GUI::SplitterMessagesHorizontal))));
}
else {
m_messageSplitter->setSizes(toList<int>(settings->value(GROUP(GUI), m_messageSplitter->setSizes(toList<int>(settings->value(GROUP(GUI),
SETTING(GUI::SplitterMessagesVertical)))); SETTING(GUI::SplitterMessagesVertical))));
}
else {
switchMessageSplitterOrientation(false);
} }
QString settings_msg_header = settings->value(GROUP(GUI), SETTING(GUI::MessageViewState)).toString(); 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) { 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 (m_messageSplitter->orientation() == Qt::Orientation::Vertical) {
if (save_settings) { if (save_settings) {
qApp->settings()->setValue(GROUP(GUI), qApp->settings()->setValue(GROUP(GUI),
@ -172,6 +182,12 @@ void FeedMessageViewer::switchMessageSplitterOrientation(bool save_settings) {
SETTING(GUI::SplitterMessagesVertical)))); 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), qApp->settings()->setValue(GROUP(GUI),
GUI::SplitterMessagesIsVertical, GUI::SplitterMessagesIsVertical,
m_messageSplitter->orientation() == Qt::Orientation::Vertical); m_messageSplitter->orientation() == Qt::Orientation::Vertical);