Skip to content

Commit 772fa46

Browse files
committed
Plugins::FtpServer: add focus in event
1 parent 47e8485 commit 772fa46

4 files changed

Lines changed: 44 additions & 4 deletions

File tree

App/Client/ViewSplitterContainer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ CViewSplitterContainer::CViewSplitterContainer(QWidget *pView, CParameterApp *pP
2222
m_pTab->installEventFilter(this);
2323

2424
SetVisibleTab(true);
25-
m_pTab->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
25+
m_pTab->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
2626
if(m_pView) {
2727
m_pView->show();
2828
m_pTab->setWindowTitle(m_pView->windowTitle());

Plugins/FtpServer/FrmMain.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ CFrmMain::CFrmMain(COperateFtpServer *pOperate, QWidget *parent)
1414
bool check = false;
1515
ui->setupUi(this);
1616

17+
ui->tvConnect->installEventFilter(this);
1718
ui->tvConnect->setModel(&m_ModelConnect);
1819
//ui->tvConnect->verticalHeader()->hide();
1920
ui->tvConnect->setSelectionMode(QAbstractItemView::MultiSelection);
@@ -35,6 +36,7 @@ CFrmMain::CFrmMain(COperateFtpServer *pOperate, QWidget *parent)
3536
#endif
3637
QHeaderView::Interactive);
3738

39+
Q_ASSERT(pOperate);
3840
check = connect(ui->tvConnect, SIGNAL(customContextMenuRequested(const QPoint &)),
3941
this, SLOT(slotContextMenuRequested(const QPoint&)));
4042
Q_ASSERT(check);
@@ -56,6 +58,10 @@ CFrmMain::CFrmMain(COperateFtpServer *pOperate, QWidget *parent)
5658
});
5759
Q_ASSERT(check);
5860
slotConnectCount(0, 0, 0);
61+
62+
check = connect(this, &CFrmMain::sigViewerFocusIn,
63+
pOperate, &COperate::sigViewerFocusIn);
64+
Q_ASSERT(check);
5965
}
6066

6167
CFrmMain::~CFrmMain()
@@ -115,3 +121,23 @@ void CFrmMain::slotContextMenuRequested(const QPoint& pos)
115121
QPoint p = ui->tvConnect->mapToGlobal(pos);
116122
m.exec(p);
117123
}
124+
125+
void CFrmMain::focusInEvent(QFocusEvent *event)
126+
{
127+
emit sigViewerFocusIn(this);
128+
}
129+
130+
bool CFrmMain::eventFilter(QObject *watched, QEvent *event)
131+
{
132+
switch(event->type()){
133+
case QEvent::FocusIn: {
134+
emit sigViewerFocusIn(this);
135+
event->accept();
136+
return true;
137+
}
138+
default:
139+
break;
140+
}
141+
142+
return QWidget::eventFilter(watched, event);
143+
}

Plugins/FtpServer/FrmMain.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,19 @@ private Q_SLOTS:
2828
private:
2929
Ui::CFrmMain *ui;
3030
QStandardItemModel m_ModelConnect;
31+
32+
Q_SIGNALS:
33+
/*!
34+
* \~chinese 视图获得焦点
35+
* \~english The view is focus
36+
* \param pView
37+
*/
38+
void sigViewerFocusIn(QWidget* pView);
39+
protected:
40+
virtual void focusInEvent(QFocusEvent *event) override;
41+
42+
// QObject interface
43+
public:
44+
virtual bool eventFilter(QObject *watched, QEvent *event) override;
3145
};
3246

Plugins/WakeOnLan/FrmWakeOnLan.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,11 @@ bool CFrmWakeOnLan::eventFilter(QObject *watched, QEvent *event)
107107
{
108108
//qDebug(log) << Q_FUNC_INFO << event;
109109
emit sigViewerFocusIn(this);
110-
return false;
110+
return true;
111111
}
112112
default:
113-
return false;
113+
break;
114114
}
115115
}
116-
return false;
116+
return QWidget::eventFilter(watched, event);
117117
}

0 commit comments

Comments
 (0)