mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-11 15:27:54 +00:00
Merge pull request #17765 from Chocobo1/filterbar
Fix 'Filter Sidebar' size restored incorrectly
This commit is contained in:
commit
caa30e41d8
@ -219,8 +219,8 @@ MainWindow::MainWindow(IGUIApplication *app, const State initialState)
|
||||
tr("Transfers"));
|
||||
|
||||
connect(m_searchFilter, &LineEdit::textChanged, m_transferListWidget, &TransferListWidget::applyNameFilter);
|
||||
connect(hSplitter, &QSplitter::splitterMoved, this, &MainWindow::writeSettings);
|
||||
connect(m_splitter, &QSplitter::splitterMoved, this, &MainWindow::writeSplitterSettings);
|
||||
connect(hSplitter, &QSplitter::splitterMoved, this, &MainWindow::saveSettings);
|
||||
connect(m_splitter, &QSplitter::splitterMoved, this, &MainWindow::saveSplitterSettings);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersChanged, m_propertiesWidget, &PropertiesWidget::loadTrackers);
|
||||
|
||||
#ifdef Q_OS_MACOS
|
||||
@ -357,7 +357,7 @@ MainWindow::MainWindow(IGUIApplication *app, const State initialState)
|
||||
m_ui->actionAutoShutdownDisabled->setChecked(true);
|
||||
|
||||
// Load Window state and sizes
|
||||
readSettings();
|
||||
loadSettings();
|
||||
|
||||
app->desktopIntegration()->setMenu(createDesktopIntegrationMenu());
|
||||
#ifndef Q_OS_MACOS
|
||||
@ -739,23 +739,26 @@ void MainWindow::tabChanged(int newTab)
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::writeSettings()
|
||||
void MainWindow::saveSettings() const
|
||||
{
|
||||
Preferences *const pref = Preferences::instance();
|
||||
auto *pref = Preferences::instance();
|
||||
pref->setMainGeometry(saveGeometry());
|
||||
m_propertiesWidget->saveSettings();
|
||||
}
|
||||
|
||||
void MainWindow::writeSplitterSettings()
|
||||
void MainWindow::saveSplitterSettings() const
|
||||
{
|
||||
Q_ASSERT(m_splitter->widget(0) == m_transferListFiltersWidget);
|
||||
Preferences *const pref = Preferences::instance();
|
||||
if (!m_transferListFiltersWidget)
|
||||
return;
|
||||
|
||||
auto *pref = Preferences::instance();
|
||||
pref->setFiltersSidebarWidth(m_splitter->sizes()[0]);
|
||||
}
|
||||
|
||||
void MainWindow::cleanup()
|
||||
{
|
||||
writeSettings();
|
||||
saveSettings();
|
||||
saveSplitterSettings();
|
||||
|
||||
// delete RSSWidget explicitly to avoid crash in
|
||||
// handleRSSUnreadCountUpdated() at application shutdown
|
||||
@ -775,12 +778,15 @@ void MainWindow::cleanup()
|
||||
delete w;
|
||||
}
|
||||
|
||||
void MainWindow::readSettings()
|
||||
void MainWindow::loadSettings()
|
||||
{
|
||||
const Preferences *const pref = Preferences::instance();
|
||||
const QByteArray mainGeo = pref->getMainGeometry();
|
||||
if (!mainGeo.isEmpty() && restoreGeometry(mainGeo))
|
||||
const auto *pref = Preferences::instance();
|
||||
|
||||
if (const QByteArray mainGeo = pref->getMainGeometry();
|
||||
!mainGeo.isEmpty() && restoreGeometry(mainGeo))
|
||||
{
|
||||
m_posInitialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::desktopNotificationClicked()
|
||||
@ -1377,27 +1383,27 @@ void MainWindow::showStatusBar(bool show)
|
||||
|
||||
void MainWindow::showFiltersSidebar(const bool show)
|
||||
{
|
||||
Preferences *const pref = Preferences::instance();
|
||||
|
||||
if (show && !m_transferListFiltersWidget)
|
||||
{
|
||||
const int width = pref->getFiltersSidebarWidth();
|
||||
m_transferListFiltersWidget = new TransferListFiltersWidget(m_splitter, m_transferListWidget, isDownloadTrackerFavicon());
|
||||
m_splitter->insertWidget(0, m_transferListFiltersWidget);
|
||||
m_splitter->setCollapsible(0, true);
|
||||
m_splitter->setSizes({width, (m_splitter->width() - width)});
|
||||
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersAdded, m_transferListFiltersWidget, &TransferListFiltersWidget::addTrackers);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersRemoved, m_transferListFiltersWidget, &TransferListFiltersWidget::removeTrackers);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackersChanged, m_transferListFiltersWidget, &TransferListFiltersWidget::refreshTrackers);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerlessStateChanged, m_transferListFiltersWidget, &TransferListFiltersWidget::changeTrackerless);
|
||||
connect(BitTorrent::Session::instance(), &BitTorrent::Session::trackerEntriesUpdated, m_transferListFiltersWidget, &TransferListFiltersWidget::trackerEntriesUpdated);
|
||||
|
||||
m_splitter->insertWidget(0, m_transferListFiltersWidget);
|
||||
m_splitter->setCollapsible(0, true);
|
||||
// From https://doc.qt.io/qt-5/qsplitter.html#setSizes:
|
||||
// Instead, any additional/missing space is distributed amongst the widgets
|
||||
// according to the relative weight of the sizes.
|
||||
m_splitter->setStretchFactor(0, 0);
|
||||
m_splitter->setStretchFactor(1, 1);
|
||||
m_splitter->setSizes({Preferences::instance()->getFiltersSidebarWidth()});
|
||||
}
|
||||
else if (!show && m_transferListFiltersWidget)
|
||||
{
|
||||
Q_ASSERT(m_splitter->widget(0) == m_transferListFiltersWidget);
|
||||
|
||||
pref->setFiltersSidebarWidth(m_splitter->sizes()[0]);
|
||||
saveSplitterSettings();
|
||||
delete m_transferListFiltersWidget;
|
||||
m_transferListFiltersWidget = nullptr;
|
||||
}
|
||||
|
@ -110,9 +110,9 @@ public:
|
||||
private slots:
|
||||
void showFilterContextMenu();
|
||||
void desktopNotificationClicked();
|
||||
void writeSettings();
|
||||
void writeSplitterSettings();
|
||||
void readSettings();
|
||||
void saveSettings() const;
|
||||
void loadSettings();
|
||||
void saveSplitterSettings() const;
|
||||
void tabChanged(int newTab);
|
||||
bool defineUILockPassword();
|
||||
void clearUILockPassword();
|
||||
|
@ -44,6 +44,8 @@
|
||||
class QCheckBox;
|
||||
class QResizeEvent;
|
||||
|
||||
class CategoryFilterWidget;
|
||||
class TagFilterWidget;
|
||||
class TransferListWidget;
|
||||
|
||||
namespace Net
|
||||
@ -163,9 +165,6 @@ private:
|
||||
bool m_downloadTrackerFavicon;
|
||||
};
|
||||
|
||||
class CategoryFilterWidget;
|
||||
class TagFilterWidget;
|
||||
|
||||
class TransferListFiltersWidget final : public QFrame
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -791,7 +791,7 @@
|
||||
<label for="bypass_auth_subnet_whitelist_checkbox">QBT_TR(Bypass authentication for clients in whitelisted IP subnets)QBT_TR[CONTEXT=OptionsDialog]</label>
|
||||
</div>
|
||||
<div class="formRow" style="padding-left: 30px; padding-top: 5px;">
|
||||
<textarea id="bypass_auth_subnet_whitelist_textarea" rows="5" cols="48" placeholder="Example: 172.17.32.0/24, fdff:ffff:c8::/40"></textarea>
|
||||
<textarea id="bypass_auth_subnet_whitelist_textarea" rows="5" cols="48" placeholder="QBT_TR(Example: 172.17.32.0/24, fdff:ffff:c8::/40)QBT_TR[CONTEXT=OptionsDialog]"></textarea>
|
||||
</div>
|
||||
<table>
|
||||
<tr>
|
||||
|
Loading…
Reference in New Issue
Block a user