@@ -10,15 +10,15 @@ QWidget *WorkbenchPage::createWorkbench()
1010 root->setContentsMargins (0 , 0 , 0 , 0 );
1111 root->setSpacing (10 );
1212
13- auto *sideScroll = new ScrollArea (workbench);
14- sideScroll ->setFixedWidth (SidePanelWidth);
15- sideScroll ->setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff);
16- if (sideScroll ->horizontalFluentScrollBar ()) {
17- sideScroll ->horizontalFluentScrollBar ()->setForceHidden (true );
13+ m_sideScroll = new ScrollArea (workbench);
14+ m_sideScroll ->setFixedWidth (SidePanelWidth);
15+ m_sideScroll ->setHorizontalScrollBarPolicy (Qt::ScrollBarAlwaysOff);
16+ if (m_sideScroll ->horizontalFluentScrollBar ()) {
17+ m_sideScroll ->horizontalFluentScrollBar ()->setForceHidden (true );
1818 }
1919
20- auto *sidePanel = new QWidget (sideScroll );
21- auto *sideLayout = new QVBoxLayout (sidePanel );
20+ m_sidePanel = new QWidget (m_sideScroll );
21+ auto *sideLayout = new QVBoxLayout (m_sidePanel );
2222 sideLayout->setContentsMargins (0 , 0 , 0 , 0 );
2323 sideLayout->setSpacing (10 );
2424 sideLayout->addWidget (createConnectionSection ());
@@ -29,8 +29,9 @@ QWidget *WorkbenchPage::createWorkbench()
2929 sideLayout->addWidget (createMacroSection ());
3030 sideLayout->addWidget (createFileSendSection ());
3131 sideLayout->addStretch (1 );
32- sideScroll->setWidget (sidePanel);
33- sideScroll->setWidgetResizable (true );
32+ m_sideScroll->setWidget (m_sidePanel);
33+ m_sideScroll->setWidgetResizable (true );
34+ installSidePanelWheelFilters (m_sidePanel);
3435
3536 auto *terminalPanel = new QWidget (workbench);
3637 auto *terminalLayout = new QVBoxLayout (terminalPanel);
@@ -39,11 +40,24 @@ QWidget *WorkbenchPage::createWorkbench()
3940 terminalLayout->addWidget (createTerminalSection (), 1 );
4041 terminalLayout->addWidget (createSendSection ());
4142
42- root->addWidget (sideScroll );
43+ root->addWidget (m_sideScroll );
4344 root->addWidget (terminalPanel, 1 );
4445 return workbench;
4546}
4647
48+ void WorkbenchPage::installSidePanelWheelFilters (QWidget *root)
49+ {
50+ if (!root) {
51+ return ;
52+ }
53+
54+ root->installEventFilter (this );
55+ const auto widgets = root->findChildren <QWidget *>();
56+ for (QWidget *widget : widgets) {
57+ widget->installEventFilter (this );
58+ }
59+ }
60+
4761QWidget *WorkbenchPage::createCheckRow (const QStringList &labels, const QList<CheckBox **> &targets, QWidget *parent)
4862{
4963 auto *rowWidget = new QWidget (parent);
0 commit comments