-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
44 lines (38 loc) · 1.25 KB
/
mainwindow.cpp
File metadata and controls
44 lines (38 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"fileexplorer.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
sessionTab=ui->sessionTab;
connect(sessionTab,&QTabWidget::tabCloseRequested,this,&MainWindow::closeSession);//点击tab的叉叉时请求关闭连接和tab
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_loginButton_clicked()
{
dialog=new LoginDialog(this);
connect(dialog,&LoginDialog::LoginSuccess,this,&MainWindow::newSession);
dialog->exec();
//sessionTab->removeTab(1);
}
void MainWindow::newSession(ClientCore* client){
FileExplorer* explorer=new FileExplorer(this);
explorer->bindClient(client);
sessionTab->addTab(explorer,client->getHostName());
dialog->deleteLater();
}
void MainWindow::closeSession(int index){
//关闭连接和tab页。
FileExplorer* fileExplorer=qobject_cast<FileExplorer*>(sessionTab->widget(index));
connect(fileExplorer,&FileExplorer::sessionClosed,[this,index,fileExplorer]{
qDebug()<<"close tab:"<<index;
sessionTab->removeTab(index);
fileExplorer->deleteLater();
});
fileExplorer->closeSession();
}