Don't resize dialog with invalid sizes

This fixes wrong dialog sizes on first startup.
This commit is contained in:
Chocobo1 2022-06-02 20:41:42 +08:00
parent 3fd0241abb
commit fcf50820e8
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
21 changed files with 64 additions and 64 deletions

View file

@ -45,7 +45,6 @@
#include <QLocale>
#include <QNetworkCookie>
#include <QSettings>
#include <QSize>
#include <QTime>
#ifdef Q_OS_WIN
@ -1371,34 +1370,6 @@ void Preferences::setPropTrackerListState(const QByteArray &state)
#endif
}
QSize Preferences::getRssGeometrySize() const
{
return value<QSize>(u"RssFeedDownloader/geometrySize"_qs);
}
void Preferences::setRssGeometrySize(const QSize &geometry)
{
setValue(u"RssFeedDownloader/geometrySize"_qs, geometry);
}
QByteArray Preferences::getRssHSplitterSizes() const
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
return value<QByteArray>(u"GUI/Qt6/RSSFeedDownloader/HSplitterSizes"_qs);
#else
return value<QByteArray>(u"RssFeedDownloader/qt5/hsplitterSizes"_qs);
#endif
}
void Preferences::setRssHSplitterSizes(const QByteArray &sizes)
{
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
setValue(u"GUI/Qt6/RSSFeedDownloader/HSplitterSizes"_qs, sizes);
#else
setValue(u"RssFeedDownloader/qt5/hsplitterSizes"_qs, sizes);
#endif
}
QStringList Preferences::getRssOpenFolders() const
{
return value<QStringList>(u"GUI/RSSWidget/OpenedFolders"_qs);

View file

@ -38,7 +38,6 @@
class QDateTime;
class QNetworkCookie;
class QSize;
class QTime;
namespace Scheduler
@ -353,10 +352,6 @@ public:
void setPropVisible(bool visible);
QByteArray getPropTrackerListState() const;
void setPropTrackerListState(const QByteArray &state);
QSize getRssGeometrySize() const;
void setRssGeometrySize(const QSize &geometry);
QByteArray getRssHSplitterSizes() const;
void setRssHSplitterSizes(const QByteArray &sizes);
QStringList getRssOpenFolders() const;
void setRssOpenFolders(const QStringList &folders);
QByteArray getRssSideSplitterState() const;

View file

@ -112,7 +112,8 @@ AboutDialog::AboutDialog(QWidget *parent)
"The database is licensed under the Creative Commons Attribution 4.0 International License"));
m_ui->labelDBIP->setText(DBIPText);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
AboutDialog::~AboutDialog()

View file

@ -336,7 +336,9 @@ void AddNewTorrentDialog::setSavePathHistoryLength(const int value)
void AddNewTorrentDialog::loadState()
{
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
m_ui->splitter->restoreState(m_storeSplitterState);;
}

View file

@ -56,7 +56,8 @@ BanListOptionsDialog::BanListOptionsDialog(QWidget *parent)
m_ui->bannedIPList->sortByColumn(0, Qt::AscendingOrder);
m_ui->buttonBanIP->setEnabled(false);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
BanListOptionsDialog::~BanListOptionsDialog()

View file

@ -64,7 +64,9 @@ CookiesDialog::CookiesDialog(QWidget *parent)
m_cookiesModel->index(0, 0),
QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
m_ui->treeView->header()->restoreState(m_storeViewState);
}

View file

@ -92,7 +92,8 @@ DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent)
m_ui->textUrls->setText(text);
m_ui->textUrls->moveCursor(QTextCursor::End);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
DownloadFromURLDialog::~DownloadFromURLDialog()

View file

@ -60,7 +60,8 @@ IPSubnetWhitelistOptionsDialog::IPSubnetWhitelistOptionsDialog(QWidget *parent)
m_ui->whitelistedIPSubnetList->sortByColumn(0, Qt::AscendingOrder);
m_ui->buttonWhitelistIPSubnet->setEnabled(false);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
IPSubnetWhitelistOptionsDialog::~IPSubnetWhitelistOptionsDialog()

View file

@ -572,10 +572,8 @@ OptionsDialog::OptionsDialog(QWidget *parent)
m_ui->tabSelection->setCurrentRow(m_storeLastViewedPage);
resize(m_storeDialogSize);
// Have to be called after show(), because splitter width needed
loadSplitterState();
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
void OptionsDialog::initializeLanguageCombo()
@ -646,6 +644,13 @@ void OptionsDialog::loadSplitterState()
m_ui->hsplitter->setSizes(splitterSizes);
}
void OptionsDialog::showEvent(QShowEvent *e)
{
QDialog::showEvent(e);
loadSplitterState();
}
void OptionsDialog::saveOptions()
{
auto *pref = Preferences::instance();

View file

@ -115,6 +115,8 @@ private slots:
void webUIHttpsKeyChanged(const Path &path, ShowError showError);
private:
void showEvent(QShowEvent *e) override;
// Methods
void saveOptions();
void loadOptions();

View file

@ -173,13 +173,12 @@ void PreviewSelectDialog::saveWindowState()
void PreviewSelectDialog::loadWindowState()
{
// Restore dialog size
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
// Restore TreeView Header state
if (!m_storeTreeHeaderState.get().isEmpty())
{
m_headerStateInitialized = m_ui->previewList->header()->restoreState(m_storeTreeHeaderState);
}
if (const QByteArray treeHeaderState = m_storeTreeHeaderState; !treeHeaderState.isEmpty())
m_headerStateInitialized = m_ui->previewList->header()->restoreState(treeHeaderState);
}
void PreviewSelectDialog::showEvent(QShowEvent *event)

View file

@ -29,6 +29,7 @@
#include "automatedrssdownloader.h"
#include <QtGlobal>
#include <QCursor>
#include <QFileDialog>
#include <QMenu>
@ -41,7 +42,6 @@
#include "base/bittorrent/session.h"
#include "base/global.h"
#include "base/path.h"
#include "base/preferences.h"
#include "base/rss/rss_article.h"
#include "base/rss/rss_autodownloader.h"
#include "base/rss/rss_feed.h"
@ -65,6 +65,13 @@ AutomatedRssDownloader::AutomatedRssDownloader(QWidget *parent)
, m_formatFilterLegacy(u"%1 (*%2)"_qs.arg(tr("Rules (legacy)"), EXT_LEGACY))
, m_ui(new Ui::AutomatedRssDownloader)
, m_currentRuleItem(nullptr)
, m_storeDialogSize {u"RssFeedDownloader/geometrySize"_qs}
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
, m_storeHSplitterSize {u"GUI/Qt6/RSSFeedDownloader/HSplitterSizes"_qs}
#else
, m_storeHSplitterSize {u"RssFeedDownloader/qt5/hsplitterSizes"_qs}
#endif
{
m_ui->setupUi(this);
// Icons
@ -160,16 +167,17 @@ AutomatedRssDownloader::~AutomatedRssDownloader()
void AutomatedRssDownloader::loadSettings()
{
const auto *pref = Preferences::instance();
resize(pref->getRssGeometrySize());
m_ui->hsplitter->restoreState(pref->getRssHSplitterSizes());
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
if (const QByteArray hSplitterSize = m_storeHSplitterSize; !hSplitterSize.isEmpty())
m_ui->hsplitter->restoreState(hSplitterSize);
}
void AutomatedRssDownloader::saveSettings()
{
Preferences *const pref = Preferences::instance();
pref->setRssGeometrySize(size());
pref->setRssHSplitterSizes(m_ui->hsplitter->saveState());
m_storeDialogSize = size();
m_storeHSplitterSize = m_ui->hsplitter->saveState();
}
void AutomatedRssDownloader::createRuleItem(const RSS::AutoDownloadRule &rule)

View file

@ -36,6 +36,7 @@
#include <QSet>
#include "base/rss/rss_autodownloadrule.h"
#include "base/settingvalue.h"
class QListWidgetItem;
class QRegularExpression;
@ -106,4 +107,7 @@ private:
RSS::AutoDownloadRule m_currentRule;
QHash<QString, QListWidgetItem *> m_itemsByRuleName;
QRegularExpression *m_episodeRegex;
SettingValue<QSize> m_storeDialogSize;
SettingValue<QByteArray> m_storeHSplitterSize;
};

View file

@ -87,7 +87,8 @@ PluginSelectDialog::PluginSelectDialog(SearchPluginManager *pluginManager, QWidg
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFinished, this, &PluginSelectDialog::checkForUpdatesFinished);
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFailed, this, &PluginSelectDialog::checkForUpdatesFailed);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
PluginSelectDialog::~PluginSelectDialog()

View file

@ -40,7 +40,8 @@ PluginSourceDialog::PluginSourceDialog(QWidget *parent)
{
m_ui->setupUi(this);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
PluginSourceDialog::~PluginSourceDialog()

View file

@ -108,7 +108,8 @@ SpeedLimitDialog::SpeedLimitDialog(QWidget *parent)
connect(m_ui->spinAltDownloadLimit, qOverload<int>(&QSpinBox::valueChanged)
, this, [this](const int value) { updateSliderValue(m_ui->sliderAltDownloadLimit, value); });
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
SpeedLimitDialog::~SpeedLimitDialog()

View file

@ -60,7 +60,8 @@ StatsDialog::StatsDialog(QWidget *parent)
m_ui->labelCacheHits->hide();
#endif
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
StatsDialog::~StatsDialog()

View file

@ -340,5 +340,6 @@ void TorrentCreatorDialog::loadSettings()
m_ui->txtComment->setPlainText(m_storeComments);
m_ui->lineEditSource->setText(m_storeSource);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}

View file

@ -390,7 +390,8 @@ TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTor
connect(m_ui->buttonGroup, &QButtonGroup::idClicked, this, &TorrentOptionsDialog::handleRatioTypeChanged);
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
TorrentOptionsDialog::~TorrentOptionsDialog()

View file

@ -110,5 +110,6 @@ void TrackerEntriesDialog::saveSettings()
void TrackerEntriesDialog::loadSettings()
{
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}

View file

@ -125,7 +125,8 @@ TorrentFilesWatcher::WatchedFolderOptions WatchedFolderOptionsDialog::watchedFol
void WatchedFolderOptionsDialog::loadState()
{
resize(m_storeDialogSize);
if (const QSize dialogSize = m_storeDialogSize; dialogSize.isValid())
resize(dialogSize);
}
void WatchedFolderOptionsDialog::saveState()