Remember dialog sizes

This applies to "About Dialog", "Ban List Options Dialog", "Download From URL Dialog", "IP Subnet
Whitelist Options Dialog", "Search Plugin Select Dialog", "Search Plugin Source Dialog",
"Statistics Dialog", "Speed Limit Dialog" and "Torrent Options Dialog".

Also unifies storing the dialog size under the key "Size".
This commit is contained in:
Chocobo1 2020-12-28 11:59:36 +08:00 committed by sledgehammer999
parent d7afad835e
commit c6d9ab6810
No known key found for this signature in database
GPG key ID: 6E4A2D025B7CC9A2
21 changed files with 95 additions and 31 deletions

View file

@ -36,9 +36,12 @@
#include "uithememanager.h"
#include "utils.h"
#define SETTINGS_KEY(name) "AboutDialog/" name
AboutDialog::AboutDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::AboutDialog)
, m_storeDialogSize(SETTINGS_KEY("Size"))
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
@ -107,11 +110,12 @@ AboutDialog::AboutDialog(QWidget *parent)
"The database is licensed under the Creative Commons Attribution 4.0 International License"));
m_ui->labelDBIP->setText(DBIPText);
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
show();
}
AboutDialog::~AboutDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,12 +30,14 @@
#include <QDialog>
#include "base/settingvalue.h"
namespace Ui
{
class AboutDialog;
}
class AboutDialog : public QDialog
class AboutDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(AboutDialog)
@ -46,4 +48,5 @@ public:
private:
Ui::AboutDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
};

View file

@ -38,11 +38,13 @@
#include "ui_banlistoptionsdialog.h"
#include "utils.h"
#define SETTINGS_KEY(name) "BanListOptionsDialog/" name
BanListOptionsDialog::BanListOptionsDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::BanListOptionsDialog)
, m_storeDialogSize(SETTINGS_KEY("Size"))
, m_model(new QStringListModel(BitTorrent::Session::instance()->bannedIPs(), this))
, m_modified(false)
{
m_ui->setupUi(this);
@ -54,11 +56,12 @@ BanListOptionsDialog::BanListOptionsDialog(QWidget *parent)
m_ui->bannedIPList->sortByColumn(0, Qt::AscendingOrder);
m_ui->buttonBanIP->setEnabled(false);
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
}
BanListOptionsDialog::~BanListOptionsDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,6 +30,8 @@
#include <QDialog>
#include "base/settingvalue.h"
class QSortFilterProxyModel;
class QStringListModel;
@ -38,13 +40,14 @@ namespace Ui
class BanListOptionsDialog;
}
class BanListOptionsDialog : public QDialog
class BanListOptionsDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(BanListOptionsDialog)
public:
explicit BanListOptionsDialog(QWidget *parent = nullptr);
~BanListOptionsDialog();
~BanListOptionsDialog() override;
private slots:
void on_buttonBox_accepted();
@ -54,7 +57,8 @@ private slots:
private:
Ui::BanListOptionsDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
QStringListModel *m_model;
QSortFilterProxyModel *m_sortFilter;
bool m_modified;
bool m_modified = false;
};

View file

@ -39,6 +39,8 @@
#include "ui_downloadfromurldialog.h"
#include "utils.h"
#define SETTINGS_KEY(name) "DownloadFromURLDialog/" name
namespace
{
bool isDownloadable(const QString &str)
@ -55,6 +57,7 @@ namespace
DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::DownloadFromURLDialog)
, m_storeDialogSize(SETTINGS_KEY("Size"))
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
@ -82,12 +85,13 @@ DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent)
}
m_ui->textUrls->setText(uniqueURLs.values().join('\n'));
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
show();
}
DownloadFromURLDialog::~DownloadFromURLDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,19 +30,21 @@
#include <QDialog>
#include "base/settingvalue.h"
namespace Ui
{
class DownloadFromURLDialog;
}
class DownloadFromURLDialog : public QDialog
class DownloadFromURLDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(DownloadFromURLDialog)
public:
explicit DownloadFromURLDialog(QWidget *parent);
~DownloadFromURLDialog();
~DownloadFromURLDialog() override;
signals:
void urlsReadyToBeDownloaded(const QStringList &torrentURLs);
@ -52,4 +54,5 @@ private slots:
private:
Ui::DownloadFromURLDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
};

View file

@ -38,10 +38,12 @@
#include "ui_ipsubnetwhitelistoptionsdialog.h"
#include "utils.h"
#define SETTINGS_KEY(name) "IPSubnetWhitelistOptionsDialog/" name
IPSubnetWhitelistOptionsDialog::IPSubnetWhitelistOptionsDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::IPSubnetWhitelistOptionsDialog)
, m_modified(false)
, m_storeDialogSize(SETTINGS_KEY("Size"))
{
m_ui->setupUi(this);
@ -58,11 +60,12 @@ IPSubnetWhitelistOptionsDialog::IPSubnetWhitelistOptionsDialog(QWidget *parent)
m_ui->whitelistedIPSubnetList->sortByColumn(0, Qt::AscendingOrder);
m_ui->buttonWhitelistIPSubnet->setEnabled(false);
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
}
IPSubnetWhitelistOptionsDialog::~IPSubnetWhitelistOptionsDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,6 +30,8 @@
#include <QDialog>
#include "base/settingvalue.h"
class QSortFilterProxyModel;
class QStringListModel;
@ -38,14 +40,14 @@ namespace Ui
class IPSubnetWhitelistOptionsDialog;
}
class IPSubnetWhitelistOptionsDialog : public QDialog
class IPSubnetWhitelistOptionsDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(IPSubnetWhitelistOptionsDialog)
public:
explicit IPSubnetWhitelistOptionsDialog(QWidget *parent = nullptr);
~IPSubnetWhitelistOptionsDialog();
~IPSubnetWhitelistOptionsDialog() override;
private slots:
void on_buttonBox_accepted();
@ -55,7 +57,9 @@ private slots:
private:
Ui::IPSubnetWhitelistOptionsDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
QStringListModel *m_model;
QSortFilterProxyModel *m_sortFilter;
bool m_modified;
bool m_modified = false;
};

View file

@ -51,7 +51,7 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, const BitTorrent::Torr
: QDialog(parent)
, m_ui(new Ui::PreviewSelectDialog)
, m_torrent(torrent)
, m_storeDialogSize(SETTINGS_KEY("Dimension"))
, m_storeDialogSize(SETTINGS_KEY("Size"))
, m_storeTreeHeaderState(SETTINGS_KEY("HeaderState"))
{
m_ui->setupUi(this);

View file

@ -49,6 +49,8 @@
#include "searchwidget.h"
#include "ui_pluginselectdialog.h"
#define SETTINGS_KEY(name) "SearchPluginSelectDialog/" name
enum PluginColumns
{
PLUGIN_NAME,
@ -60,10 +62,9 @@ enum PluginColumns
PluginSelectDialog::PluginSelectDialog(SearchPluginManager *pluginManager, QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::PluginSelectDialog())
, m_ui(new Ui::PluginSelectDialog)
, m_storeDialogSize(SETTINGS_KEY("Size"))
, m_pluginManager(pluginManager)
, m_asyncOps(0)
, m_pendingUpdates(0)
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
@ -94,12 +95,13 @@ PluginSelectDialog::PluginSelectDialog(SearchPluginManager *pluginManager, QWidg
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFinished, this, &PluginSelectDialog::checkForUpdatesFinished);
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFailed, this, &PluginSelectDialog::checkForUpdatesFailed);
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
show();
}
PluginSelectDialog::~PluginSelectDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -33,6 +33,7 @@
#include <QStringList>
#include "base/search/searchpluginmanager.h"
#include "base/settingvalue.h"
class QDropEvent;
class QTreeWidgetItem;
@ -91,8 +92,9 @@ private:
void finishPluginUpdate();
Ui::PluginSelectDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
SearchPluginManager *m_pluginManager;
QStringList m_updatedPlugins;
int m_asyncOps;
int m_pendingUpdates;
int m_asyncOps = 0;
int m_pendingUpdates = 0;
};

View file

@ -31,19 +31,23 @@
#include "gui/utils.h"
#include "ui_pluginsourcedialog.h"
#define SETTINGS_KEY(name) "SearchPluginSourceDialog/" name
PluginSourceDialog::PluginSourceDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::PluginSourceDialog())
, m_ui(new Ui::PluginSourceDialog)
, m_storeDialogSize(SETTINGS_KEY("Size"))
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
show();
}
PluginSourceDialog::~PluginSourceDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,18 +30,21 @@
#include <QDialog>
#include "base/settingvalue.h"
namespace Ui
{
class PluginSourceDialog;
}
class PluginSourceDialog : public QDialog
class PluginSourceDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(PluginSourceDialog)
public:
explicit PluginSourceDialog(QWidget *parent = nullptr);
~PluginSourceDialog();
~PluginSourceDialog() override;
signals:
void askForUrl();
@ -53,4 +56,5 @@ private slots:
private:
Ui::PluginSourceDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
};

View file

@ -35,6 +35,8 @@
#include "uithememanager.h"
#include "utils.h"
#define SETTINGS_KEY(name) "SpeedLimitDialog/" name
namespace
{
void updateSliderValue(QSlider *slider, const int value)
@ -48,6 +50,7 @@ namespace
SpeedLimitDialog::SpeedLimitDialog(QWidget *parent)
: QDialog {parent}
, m_ui {new Ui::SpeedLimitDialog}
, m_storeDialogSize {SETTINGS_KEY("Size")}
{
m_ui->setupUi(this);
@ -103,11 +106,12 @@ SpeedLimitDialog::SpeedLimitDialog(QWidget *parent)
connect(m_ui->spinAltDownloadLimit, qOverload<int>(&QSpinBox::valueChanged)
, this, [this](const int value) { updateSliderValue(m_ui->sliderAltDownloadLimit, value); });
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
}
SpeedLimitDialog::~SpeedLimitDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,6 +30,8 @@
#include <QDialog>
#include "base/settingvalue.h"
namespace Ui
{
class SpeedLimitDialog;
@ -38,6 +40,7 @@ namespace Ui
class SpeedLimitDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(SpeedLimitDialog)
public:
explicit SpeedLimitDialog(QWidget *parent);
@ -48,6 +51,7 @@ public slots:
private:
Ui::SpeedLimitDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
struct
{
int uploadSpeedLimit;

View file

@ -40,9 +40,12 @@
#include "ui_statsdialog.h"
#include "utils.h"
#define SETTINGS_KEY(name) "StatisticsDialog/" name
StatsDialog::StatsDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::StatsDialog)
, m_storeDialogSize(SETTINGS_KEY("Size"))
{
m_ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
@ -57,12 +60,13 @@ StatsDialog::StatsDialog(QWidget *parent)
m_ui->labelCacheHits->hide();
#endif
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
show();
}
StatsDialog::~StatsDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,6 +30,8 @@
#include <QDialog>
#include "base/settingvalue.h"
namespace Ui
{
class StatsDialog;
@ -38,6 +40,7 @@ namespace Ui
class StatsDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(StatsDialog)
public:
explicit StatsDialog(QWidget *parent);
@ -48,4 +51,5 @@ private slots:
private:
Ui::StatsDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
};

View file

@ -48,7 +48,7 @@ TorrentCreatorDialog::TorrentCreatorDialog(QWidget *parent, const QString &defau
: QDialog(parent)
, m_ui(new Ui::TorrentCreatorDialog)
, m_creatorThread(new BitTorrent::TorrentCreatorThread(this))
, m_storeDialogSize(SETTINGS_KEY("Dimension"))
, m_storeDialogSize(SETTINGS_KEY("Size"))
, m_storePieceSize(SETTINGS_KEY("PieceSize"))
, m_storePrivateTorrent(SETTINGS_KEY("PrivateTorrent"))
, m_storeStartSeeding(SETTINGS_KEY("StartSeeding"))

View file

@ -39,6 +39,8 @@
#include "ui_torrentoptionsdialog.h"
#include "utils.h"
#define SETTINGS_KEY(name) "TorrentOptionsDialog/" name
namespace
{
const int MIXED_SHARE_LIMITS = -9;
@ -54,6 +56,7 @@ namespace
TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTorrent::TorrentHandle *> &torrents)
: QDialog {parent}
, m_ui {new Ui::TorrentOptionsDialog}
, m_storeDialogSize {SETTINGS_KEY("Size")}
{
m_ui->setupUi(this);
@ -265,11 +268,12 @@ TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVector<BitTor
, this, &TorrentOptionsDialog::handleRatioTypeChanged);
#endif
Utils::Gui::resize(this);
Utils::Gui::resize(this, m_storeDialogSize);
}
TorrentOptionsDialog::~TorrentOptionsDialog()
{
m_storeDialogSize = size();
delete m_ui;
}

View file

@ -30,6 +30,8 @@
#include <QDialog>
#include "base/settingvalue.h"
namespace BitTorrent
{
class InfoHash;
@ -44,6 +46,7 @@ namespace Ui
class TorrentOptionsDialog final : public QDialog
{
Q_OBJECT
Q_DISABLE_COPY(TorrentOptionsDialog)
public:
explicit TorrentOptionsDialog(QWidget *parent, const QVector<BitTorrent::TorrentHandle *> &torrents);
@ -64,6 +67,7 @@ private:
QVector<BitTorrent::InfoHash> m_torrentHashes;
Ui::TorrentOptionsDialog *m_ui;
SettingValue<QSize> m_storeDialogSize;
struct
{
qreal ratio;

View file

@ -42,7 +42,7 @@
TrackerEntriesDialog::TrackerEntriesDialog(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::TrackerEntriesDialog)
, m_storeDialogSize(SETTINGS_KEY("Dimension"))
, m_storeDialogSize(SETTINGS_KEY("Size"))
{
m_ui->setupUi(this);