From 88fe94bd6a65be032d183785f672e69d2d50c487 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 11 Mar 2022 13:40:58 +0800 Subject: [PATCH] Remove obsoleted functions from Utils::Gui namespace `widget` parameter is kept for now to avoid major disruption for other PR. Also add comments for loading svg images. PR #16613. --- src/gui/aboutdialog.cpp | 2 +- src/gui/addnewtorrentdialog.cpp | 2 +- src/gui/autoexpandabledialog.cpp | 2 +- src/gui/banlistoptionsdialog.cpp | 2 +- src/gui/cookiesdialog.cpp | 2 +- src/gui/deletionconfirmationdialog.cpp | 2 - src/gui/downloadfromurldialog.cpp | 2 +- src/gui/ipsubnetwhitelistoptionsdialog.cpp | 2 +- src/gui/mainwindow.cpp | 2 +- src/gui/optionsdialog.cpp | 5 +-- src/gui/previewselectdialog.cpp | 2 +- src/gui/properties/propertieswidget.cpp | 4 +- src/gui/rss/automatedrssdownloader.cpp | 4 +- src/gui/search/pluginselectdialog.cpp | 2 +- src/gui/search/pluginsourcedialog.cpp | 2 +- src/gui/shutdownconfirmdialog.cpp | 2 - src/gui/speedlimitdialog.cpp | 2 +- src/gui/statsdialog.cpp | 2 +- src/gui/torrentcreatordialog.cpp | 2 +- src/gui/torrentoptionsdialog.cpp | 2 +- src/gui/trackerentriesdialog.cpp | 2 +- src/gui/utils.cpp | 47 +++++++++------------- src/gui/utils.h | 12 +----- src/gui/watchedfolderoptionsdialog.cpp | 2 +- 24 files changed, 45 insertions(+), 65 deletions(-) diff --git a/src/gui/aboutdialog.cpp b/src/gui/aboutdialog.cpp index e0388f990..cc6801390 100644 --- a/src/gui/aboutdialog.cpp +++ b/src/gui/aboutdialog.cpp @@ -113,7 +113,7 @@ 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, m_storeDialogSize); + resize(m_storeDialogSize); show(); } diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index 57f270baa..3b0572453 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -305,7 +305,7 @@ void AddNewTorrentDialog::setSavePathHistoryLength(const int value) void AddNewTorrentDialog::loadState() { - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); m_ui->splitter->restoreState(m_storeSplitterState);; } diff --git a/src/gui/autoexpandabledialog.cpp b/src/gui/autoexpandabledialog.cpp index 715581353..3978eb96b 100644 --- a/src/gui/autoexpandabledialog.cpp +++ b/src/gui/autoexpandabledialog.cpp @@ -101,6 +101,6 @@ void AutoExpandableDialog::showEvent(QShowEvent *e) if (wd > width()) { QSize size = {width() - m_ui->verticalLayout->sizeHint().width() + wd, height()}; - Utils::Gui::resize(this, size); + resize(size); } } diff --git a/src/gui/banlistoptionsdialog.cpp b/src/gui/banlistoptionsdialog.cpp index 095a69b03..f8078bd65 100644 --- a/src/gui/banlistoptionsdialog.cpp +++ b/src/gui/banlistoptionsdialog.cpp @@ -56,7 +56,7 @@ BanListOptionsDialog::BanListOptionsDialog(QWidget *parent) m_ui->bannedIPList->sortByColumn(0, Qt::AscendingOrder); m_ui->buttonBanIP->setEnabled(false); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } BanListOptionsDialog::~BanListOptionsDialog() diff --git a/src/gui/cookiesdialog.cpp b/src/gui/cookiesdialog.cpp index a65958db1..15d780e24 100644 --- a/src/gui/cookiesdialog.cpp +++ b/src/gui/cookiesdialog.cpp @@ -64,7 +64,7 @@ CookiesDialog::CookiesDialog(QWidget *parent) m_cookiesModel->index(0, 0), QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); m_ui->treeView->header()->restoreState(m_storeViewState); } diff --git a/src/gui/deletionconfirmationdialog.cpp b/src/gui/deletionconfirmationdialog.cpp index d0b860c7f..431b245dc 100644 --- a/src/gui/deletionconfirmationdialog.cpp +++ b/src/gui/deletionconfirmationdialog.cpp @@ -55,8 +55,6 @@ DeletionConfirmationDialog::DeletionConfirmationDialog(QWidget *parent, const in m_ui->checkPermDelete->setChecked(defaultDeleteFiles || Preferences::instance()->deleteTorrentFilesAsDefault()); connect(m_ui->checkPermDelete, &QCheckBox::clicked, this, &DeletionConfirmationDialog::updateRememberButtonState); m_ui->buttonBox->button(QDialogButtonBox::Cancel)->setFocus(); - - Utils::Gui::resize(this); } DeletionConfirmationDialog::~DeletionConfirmationDialog() diff --git a/src/gui/downloadfromurldialog.cpp b/src/gui/downloadfromurldialog.cpp index bfcdb4c5a..08859f0e4 100644 --- a/src/gui/downloadfromurldialog.cpp +++ b/src/gui/downloadfromurldialog.cpp @@ -94,7 +94,7 @@ DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent) m_ui->textUrls->setText(text); m_ui->textUrls->moveCursor(QTextCursor::End); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); show(); } diff --git a/src/gui/ipsubnetwhitelistoptionsdialog.cpp b/src/gui/ipsubnetwhitelistoptionsdialog.cpp index 1e74317e0..4df2a0f0e 100644 --- a/src/gui/ipsubnetwhitelistoptionsdialog.cpp +++ b/src/gui/ipsubnetwhitelistoptionsdialog.cpp @@ -60,7 +60,7 @@ IPSubnetWhitelistOptionsDialog::IPSubnetWhitelistOptionsDialog(QWidget *parent) m_ui->whitelistedIPSubnetList->sortByColumn(0, Qt::AscendingOrder); m_ui->buttonWhitelistIPSubnet->setEnabled(false); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } IPSubnetWhitelistOptionsDialog::~IPSubnetWhitelistOptionsDialog() diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index f29a7ef68..ca966a76b 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -209,7 +209,7 @@ MainWindow::MainWindow(QWidget *parent) // Name filter m_searchFilter = new LineEdit(this); m_searchFilter->setPlaceholderText(tr("Filter torrent names...")); - m_searchFilter->setFixedWidth(Utils::Gui::scaledSize(this, 200)); + m_searchFilter->setFixedWidth(200); m_searchFilter->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_searchFilter, &QWidget::customContextMenuRequested, this, &MainWindow::showFilterContextMenu); m_searchFilterAction = m_ui->toolBar->insertWidget(m_ui->actionLock, m_searchFilter); diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index 7fb413dc8..b189056bf 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -575,7 +575,7 @@ OptionsDialog::OptionsDialog(QWidget *parent) m_ui->tabSelection->setCurrentRow(m_storeLastViewedPage); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); show(); // Have to be called after show(), because splitter width needed loadSplitterState(); @@ -639,8 +639,7 @@ void OptionsDialog::changePage(QListWidgetItem *current, QListWidgetItem *previo void OptionsDialog::loadSplitterState() { // width has been modified, use height as width reference instead - const int width = Utils::Gui::scaledSize(this - , (m_ui->tabSelection->item(TAB_UI)->sizeHint().height() * 2)); + const int width = m_ui->tabSelection->item(TAB_UI)->sizeHint().height() * 2; const QStringList defaultSizes = {QString::number(width), QString::number(m_ui->hsplitter->width() - width)}; QList splitterSizes; diff --git a/src/gui/previewselectdialog.cpp b/src/gui/previewselectdialog.cpp index d02b20189..7329d870d 100644 --- a/src/gui/previewselectdialog.cpp +++ b/src/gui/previewselectdialog.cpp @@ -173,7 +173,7 @@ void PreviewSelectDialog::saveWindowState() void PreviewSelectDialog::loadWindowState() { // Restore dialog size - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); // Restore TreeView Header state if (!m_storeTreeHeaderState.get().isEmpty()) diff --git a/src/gui/properties/propertieswidget.cpp b/src/gui/properties/propertieswidget.cpp index eb51be0ae..acd5428be 100644 --- a/src/gui/properties/propertieswidget.cpp +++ b/src/gui/properties/propertieswidget.cpp @@ -94,7 +94,7 @@ PropertiesWidget::PropertiesWidget(QWidget *parent) // Torrent content filtering m_contentFilterLine = new LineEdit(this); m_contentFilterLine->setPlaceholderText(tr("Filter files...")); - m_contentFilterLine->setFixedWidth(Utils::Gui::scaledSize(this, 300)); + m_contentFilterLine->setFixedWidth(300); connect(m_contentFilterLine, &LineEdit::textChanged, this, &PropertiesWidget::filterText); m_ui->contentFilterLayout->insertWidget(3, m_contentFilterLine); @@ -117,7 +117,7 @@ PropertiesWidget::PropertiesWidget(QWidget *parent) connect(m_ui->filesList->header(), &QHeaderView::sortIndicatorChanged, this, &PropertiesWidget::saveSettings); // set bar height relative to screen dpi - const int barHeight = Utils::Gui::scaledSize(this, 18); + const int barHeight = 18; // Downloaded pieces progress bar m_ui->tempProgressBarArea->setVisible(false); diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index 7f7df276e..7607910bd 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -160,8 +160,8 @@ AutomatedRssDownloader::~AutomatedRssDownloader() void AutomatedRssDownloader::loadSettings() { - const Preferences *const pref = Preferences::instance(); - Utils::Gui::resize(this, pref->getRssGeometrySize()); + const auto *pref = Preferences::instance(); + resize(pref->getRssGeometrySize()); m_ui->hsplitter->restoreState(pref->getRssHSplitterSizes()); } diff --git a/src/gui/search/pluginselectdialog.cpp b/src/gui/search/pluginselectdialog.cpp index 0f1e1ea06..878ccb26a 100644 --- a/src/gui/search/pluginselectdialog.cpp +++ b/src/gui/search/pluginselectdialog.cpp @@ -88,7 +88,7 @@ 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, m_storeDialogSize); + resize(m_storeDialogSize); show(); } diff --git a/src/gui/search/pluginsourcedialog.cpp b/src/gui/search/pluginsourcedialog.cpp index 35eef656e..d65e6cf1f 100644 --- a/src/gui/search/pluginsourcedialog.cpp +++ b/src/gui/search/pluginsourcedialog.cpp @@ -41,7 +41,7 @@ PluginSourceDialog::PluginSourceDialog(QWidget *parent) m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); show(); } diff --git a/src/gui/shutdownconfirmdialog.cpp b/src/gui/shutdownconfirmdialog.cpp index 0a2e28676..878d7342b 100644 --- a/src/gui/shutdownconfirmdialog.cpp +++ b/src/gui/shutdownconfirmdialog.cpp @@ -66,8 +66,6 @@ ShutdownConfirmDialog::ShutdownConfirmDialog(QWidget *parent, const ShutdownDial m_timer.setInterval(1000); // 1sec connect(&m_timer, &QTimer::timeout, this, &ShutdownConfirmDialog::updateSeconds); - - Utils::Gui::resize(this); } ShutdownConfirmDialog::~ShutdownConfirmDialog() diff --git a/src/gui/speedlimitdialog.cpp b/src/gui/speedlimitdialog.cpp index 93435a66b..a277f59fa 100644 --- a/src/gui/speedlimitdialog.cpp +++ b/src/gui/speedlimitdialog.cpp @@ -108,7 +108,7 @@ SpeedLimitDialog::SpeedLimitDialog(QWidget *parent) connect(m_ui->spinAltDownloadLimit, qOverload(&QSpinBox::valueChanged) , this, [this](const int value) { updateSliderValue(m_ui->sliderAltDownloadLimit, value); }); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } SpeedLimitDialog::~SpeedLimitDialog() diff --git a/src/gui/statsdialog.cpp b/src/gui/statsdialog.cpp index faf256480..a595b5ac6 100644 --- a/src/gui/statsdialog.cpp +++ b/src/gui/statsdialog.cpp @@ -60,7 +60,7 @@ StatsDialog::StatsDialog(QWidget *parent) m_ui->labelCacheHits->hide(); #endif - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); show(); } diff --git a/src/gui/torrentcreatordialog.cpp b/src/gui/torrentcreatordialog.cpp index 6af508b41..9d9327173 100644 --- a/src/gui/torrentcreatordialog.cpp +++ b/src/gui/torrentcreatordialog.cpp @@ -344,5 +344,5 @@ void TorrentCreatorDialog::loadSettings() m_ui->txtComment->setPlainText(m_storeComments); m_ui->lineEditSource->setText(m_storeSource); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } diff --git a/src/gui/torrentoptionsdialog.cpp b/src/gui/torrentoptionsdialog.cpp index e0673d4a0..43cac7a96 100644 --- a/src/gui/torrentoptionsdialog.cpp +++ b/src/gui/torrentoptionsdialog.cpp @@ -390,7 +390,7 @@ TorrentOptionsDialog::TorrentOptionsDialog(QWidget *parent, const QVectorbuttonGroup, &QButtonGroup::idClicked, this, &TorrentOptionsDialog::handleRatioTypeChanged); - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } TorrentOptionsDialog::~TorrentOptionsDialog() diff --git a/src/gui/trackerentriesdialog.cpp b/src/gui/trackerentriesdialog.cpp index a685449a4..0ac23c49b 100644 --- a/src/gui/trackerentriesdialog.cpp +++ b/src/gui/trackerentriesdialog.cpp @@ -110,5 +110,5 @@ void TrackerEntriesDialog::saveSettings() void TrackerEntriesDialog::loadSettings() { - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } diff --git a/src/gui/utils.cpp b/src/gui/utils.cpp index 979b80aeb..e2eab7456 100644 --- a/src/gui/utils.cpp +++ b/src/gui/utils.cpp @@ -35,7 +35,6 @@ #include #include -#include #include #include #include @@ -52,47 +51,41 @@ #include "base/utils/fs.h" #include "base/utils/version.h" -void Utils::Gui::resize(QWidget *widget, const QSize &newSize) -{ - if (newSize.isValid()) - widget->resize(newSize); - else // depends on screen DPI - widget->resize(widget->size() * screenScalingFactor(widget)); -} - -qreal Utils::Gui::screenScalingFactor(const QWidget *widget) -{ - Q_UNUSED(widget); - return 1; -} - QPixmap Utils::Gui::scaledPixmap(const QIcon &icon, const QWidget *widget, const int height) { + Q_UNUSED(widget); // TODO: remove it Q_ASSERT(height > 0); - const int scaledHeight = height * Utils::Gui::screenScalingFactor(widget); - return icon.pixmap(scaledHeight); + + return icon.pixmap(height); } QPixmap Utils::Gui::scaledPixmap(const Path &path, const QWidget *widget, const int height) { + Q_UNUSED(widget); + Q_ASSERT(height >= 0); + const QPixmap pixmap {path.data()}; - const int scaledHeight = ((height > 0) ? height : pixmap.height()) * Utils::Gui::screenScalingFactor(widget); - return pixmap.scaledToHeight(scaledHeight, Qt::SmoothTransformation); + return (height == 0) ? pixmap : pixmap.scaledToHeight(height, Qt::SmoothTransformation); } -QPixmap Utils::Gui::scaledPixmapSvg(const Path &path, const QWidget *widget, const int baseHeight) +QPixmap Utils::Gui::scaledPixmapSvg(const Path &path, const QWidget *widget, const int height) { - const int scaledHeight = baseHeight * Utils::Gui::screenScalingFactor(widget); - const QString normalizedKey = path.data() + '@' + QString::number(scaledHeight); + // (workaround) svg images require the use of `QIcon()` to load and scale losslessly, + // otherwise other image classes will convert it to pixmap first and follow-up scaling will become lossy. + + Q_UNUSED(widget); + Q_ASSERT(height > 0); + + const QString cacheKey = path.data() + u'@' + QString::number(height); - QPixmap pm; + QPixmap pixmap; QPixmapCache cache; - if (!cache.find(normalizedKey, &pm)) + if (!cache.find(cacheKey, &pixmap)) { - pm = QIcon(path.data()).pixmap(scaledHeight); - cache.insert(normalizedKey, pm); + pixmap = QIcon(path.data()).pixmap(height); + cache.insert(cacheKey, pixmap); } - return pm; + return pixmap; } QSize Utils::Gui::smallIconSize(const QWidget *widget) diff --git a/src/gui/utils.h b/src/gui/utils.h index 472627817..0b803df82 100644 --- a/src/gui/utils.h +++ b/src/gui/utils.h @@ -39,18 +39,10 @@ class QWidget; namespace Utils::Gui { - void resize(QWidget *widget, const QSize &newSize = {}); - qreal screenScalingFactor(const QWidget *widget); - - template - T scaledSize(const QWidget *widget, const T &size) - { - return (size * screenScalingFactor(widget)); - } - QPixmap scaledPixmap(const QIcon &icon, const QWidget *widget, int height); QPixmap scaledPixmap(const Path &path, const QWidget *widget, int height = 0); - QPixmap scaledPixmapSvg(const Path &path, const QWidget *widget, int baseHeight); + QPixmap scaledPixmapSvg(const Path &path, const QWidget *widget, int height); + QSize smallIconSize(const QWidget *widget = nullptr); QSize mediumIconSize(const QWidget *widget = nullptr); QSize largeIconSize(const QWidget *widget = nullptr); diff --git a/src/gui/watchedfolderoptionsdialog.cpp b/src/gui/watchedfolderoptionsdialog.cpp index fe949174d..a32620c43 100644 --- a/src/gui/watchedfolderoptionsdialog.cpp +++ b/src/gui/watchedfolderoptionsdialog.cpp @@ -125,7 +125,7 @@ TorrentFilesWatcher::WatchedFolderOptions WatchedFolderOptionsDialog::watchedFol void WatchedFolderOptionsDialog::loadState() { - Utils::Gui::resize(this, m_storeDialogSize); + resize(m_storeDialogSize); } void WatchedFolderOptionsDialog::saveState()