-
Notifications
You must be signed in to change notification settings - Fork 10
/
editgroupdialog.cpp
101 lines (93 loc) · 3.23 KB
/
editgroupdialog.cpp
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include "editgroupdialog.h"
#include "ui_editgroupdialog.h"
#include<QDebug>
#include<qfiledialog.h>
EditGroupDialog::EditGroupDialog(QWidget *parent,FtpSqlConnection *sqlConnection,FtpGroup ftpgroup) :
QDialog(parent),
ui(new Ui::EditGroupDialog)
{
ui->setupUi(this);
this->sqlConnection=sqlConnection;
this->ftpgroup=ftpgroup;
//因为是修改,界面应该显示原来的数据
ui->groupname->setText(ftpgroup.getName());
ui->path->setText(ftpgroup.getPath());
user_standardItemModel=new QStandardItemModel(this);
showUserListInGroup();//显示用户列表
connect(ui->confirm,SIGNAL(clicked()),this,SLOT(confirm()));
connect(ui->cancel,SIGNAL(clicked()),this,SLOT(cancel()));
connect(ui->deleteuser,SIGNAL(clicked()),this,SLOT(deleteuser()));
connect(ui->findpath,&QPushButton::clicked,this,&EditGroupDialog::findfile);
//点击用户列表的信号与槽
connect(ui->user_list,SIGNAL(clicked(const QModelIndex&)),this,SLOT(user_list_item_click(const QModelIndex&)));
}
EditGroupDialog::~EditGroupDialog()
{
delete ui;
}
void EditGroupDialog::confirm(){
QString groupname=ui->groupname->text();
if(sqlConnection->hasGroupByName(groupname)&&QString::compare(groupname,ftpgroup.getName())!=0){
// ui->groupname->setText(ftpgroup.getName());
QMessageBox::warning(this,"错误","用户组名已存在!");
}
else{
//将修改后的值保存至当前对象
ftpgroup.setName(ui->groupname->text());
ftpgroup.setPath(ui->path->text());
if(sqlConnection->updateGroupBasic(ftpgroup)){
emit refresh();
cancel();
}
}
}
/*
* 显示用户列表(在当前用户组中的)
*/
void EditGroupDialog::showUserListInGroup(){
QList<QMap<QString,QString>> list=sqlConnection->listUserNamesInGroup(ftpgroup.getId());
qDebug()<<list.size();
for(int i=0;i<list.size();i++){
qDebug()<<list.at(i)["id"]<<list.at(i)["name"];
}
user_standardItemModel->clear();
for(int i=0;i<list.size();i++){
user_standardItemModel->appendRow(new QStandardItem(list.at(i)["name"]));
}
ui->user_list->setModel(user_standardItemModel);
}
/*
* 点击用户列表触发的槽函数
*/
void EditGroupDialog::user_list_item_click(const QModelIndex &index){
//显示删除用户可见
ui->deleteuser->setEnabled(true);
//创建选中的用户对象
ftpUser=sqlConnection->queryUserByName(index.data().toString());
}
/*
* 删除用户组中的用户
*/
void EditGroupDialog::deleteuser(){
//这样子的话,用户的选定的用户组就不存在了,修改这个对象对应的属性
ftpUser.setFtpGroup(0);//用户选的组就恢复了默认
if(!sqlConnection->updateUserBasic(ftpUser)){//更新数据库
QMessageBox::warning(this,"错误","修改失败!");
}else{ //刷新用户界面
ui->deleteuser->setEnabled(false);
showUserListInGroup();
emit refresh();
}
}
void EditGroupDialog::refresh_user(){
showUserListInGroup();
}
void EditGroupDialog::cancel(){
this->close();
}
void EditGroupDialog::findfile(){
QString path=QFileDialog::getExistingDirectory(this,"选取",".");
if(!path.isEmpty()){
ui->path->setText(path);
}
}