🐞 fix(应用关闭): 修复关闭应用阻塞问题

卸载ftp之前不重置标志位防止读取当前进程阻塞
This commit is contained in:
huheng@kylinos.cn 2023-06-05 17:46:31 +08:00
parent dc9cbb2575
commit 99c45cf614
3 changed files with 68 additions and 65 deletions

View File

@ -65,6 +65,7 @@ void ConnectivityManager::startCommand(QString common)
void ConnectivityManager::killProcess(const char *cmd)
{
outLog(QString("start killProcess") + QString(cmd));
FILE *fp = popen(cmd, "r");
if (fp == NULL) {
outLog("command fail !");
@ -78,6 +79,8 @@ void ConnectivityManager::killProcess(const char *cmd)
QString item(buf);
memset(buf, '\0', sizeof(buf));
outLog(item);
if (item.isEmpty()) {
continue;
}

View File

@ -326,8 +326,8 @@ void MainWindow::deleterService()
m_activityDbusInterface = nullptr;
}
if (m_dbusInterface != nullptr) {
qInfo() << "kill all server!";
deInitDisc();
qInfo() << "kill all server!";
if (m_dbusInterface->isValid()) {
m_dbusInterface->call("killServerPortProcess");
m_dbusInterface->call("killConnectivity");
@ -748,6 +748,7 @@ void MainWindow::discInit()
void MainWindow::deInitDisc()
{
qInfo() << "deInitDisc!";
if (m_discovery != nullptr) {
m_discovery->stopDiscovery();
m_discovery->deleteLater();
@ -1103,7 +1104,6 @@ void MainWindow::slotDisconnect()
m_url.clear();
clearConnectionInfo();
m_isDbusOperation = false;
m_isMountFtp = false;
m_isPcSearchInfo = false;
m_searchLoadNum = 0;
m_reconnectAddress.clear();

View File

@ -86,16 +86,16 @@ private:
~MainWindow();
enum WinIndex {
WinHomePage = 0, // 首页
WinConnect, // 连接页面
WinConnected, // 已连接页面
WinHomePage = 0, // 首页
WinConnect, // 连接页面
WinConnected, // 已连接页面
};
enum TYPE {
None = 0,
Mobile, // 手机连接
Search, // 搜索
Pctopc, // Pc连接
Mobile, // 手机连接
Search, // 搜索
Pctopc, // Pc连接
};
void initService();
@ -202,69 +202,69 @@ public Q_SLOTS:
private:
quint32 m_winId = 0;
ConnectionService *m_connectionService = nullptr; // 连接服务
KDiscovery::Discovery *m_discovery = nullptr; // 搜索手机设备信息
FtpManager *m_ftpClient = nullptr; // ftp服务器
DeviceManage *m_deviceManage = nullptr; // 连接手机投屏
UsbManage *m_usbManage = nullptr; // 监听USB插拔信号
WifiManager *m_wifiManager = nullptr; // 监听wifi信号
QThread *m_wifiManagerThread = nullptr; // 另起线程监听wifi信号
FileSyncManage *m_fileSyncManage = nullptr; // 文件同步
SearchServer *m_searchServer = nullptr; // 文件搜索
QThread *m_searchThread = nullptr; // 文件搜索线程
FtpServer *m_ftpServer = nullptr; // ftp服务器
PcScreenManage *m_pcScreen = nullptr; // PC投屏
QDBusInterface *m_dbusInterface = nullptr; // 挂载ftpdubs
DirManager *m_dirManager = nullptr; // 本地用户目录信息管理
TableModeListener *m_tableModeListener = nullptr; // 平板模式切换
QDBusInterface *m_activityDbusInterface = nullptr; // 防止熄屏
QTimer *m_timer = nullptr; // 连接加载定时器,连接超时处理
ConnectionService *m_connectionService = nullptr; // 连接服务
KDiscovery::Discovery *m_discovery = nullptr; // 搜索手机设备信息
FtpManager *m_ftpClient = nullptr; // ftp服务器
DeviceManage *m_deviceManage = nullptr; // 连接手机投屏
UsbManage *m_usbManage = nullptr; // 监听USB插拔信号
WifiManager *m_wifiManager = nullptr; // 监听wifi信号
QThread *m_wifiManagerThread = nullptr; // 另起线程监听wifi信号
FileSyncManage *m_fileSyncManage = nullptr; // 文件同步
SearchServer *m_searchServer = nullptr; // 文件搜索
QThread *m_searchThread = nullptr; // 文件搜索线程
FtpServer *m_ftpServer = nullptr; // ftp服务器
PcScreenManage *m_pcScreen = nullptr; // PC投屏
QDBusInterface *m_dbusInterface = nullptr; // 挂载ftpdubs
DirManager *m_dirManager = nullptr; // 本地用户目录信息管理
TableModeListener *m_tableModeListener = nullptr; // 平板模式切换
QDBusInterface *m_activityDbusInterface = nullptr; // 防止熄屏
QTimer *m_timer = nullptr; // 连接加载定时器,连接超时处理
// disc
QProcess *m_discServer = nullptr;
QProcess *m_discClient = nullptr;
QGSettings *m_fontData = nullptr; // 字体变化
QGSettings *m_fontData = nullptr; // 字体变化
Titlebar *m_titlebar = nullptr; // 标题栏
HomePage *m_homepage = nullptr; // 首页
ConnectInterface *m_connectInterfaceWin = nullptr; // 连接界面
ConnectedWin *m_connectedWin = nullptr; // 已连接界面
QStackedWidget *m_mainStackedWin = nullptr; // 主界面切换堆栈窗口
FileManageWin *m_fileManageWin = nullptr; // 文件管理title
AndroidHomePage *m_androidHomePage = nullptr; // 安卓文件管理首页
MultiMediaWin *m_multiMediaWin = nullptr; // QQ | 微信文件首页
FileView *m_fileView = nullptr; // 文件信息列表
kdk::KAboutDialog *m_aboutWindow = nullptr; // 关于窗口
TransmissionDialog *m_transmissionDialog = nullptr; // 传输进度窗口
MessageDialog *m_messageBox = nullptr; // 请求提示框
SuspendTabBar *m_suspendTabBar = nullptr; // 投屏控制
kdk::KBallonTip *m_tipWin; // 消息提示
LoadDialog *m_loadDialog = nullptr; // 加载等待
Titlebar *m_titlebar = nullptr; // 标题栏
HomePage *m_homepage = nullptr; // 首页
ConnectInterface *m_connectInterfaceWin = nullptr; // 连接界面
ConnectedWin *m_connectedWin = nullptr; // 已连接界面
QStackedWidget *m_mainStackedWin = nullptr; // 主界面切换堆栈窗口
FileManageWin *m_fileManageWin = nullptr; // 文件管理title
AndroidHomePage *m_androidHomePage = nullptr; // 安卓文件管理首页
MultiMediaWin *m_multiMediaWin = nullptr; // QQ | 微信文件首页
FileView *m_fileView = nullptr; // 文件信息列表
kdk::KAboutDialog *m_aboutWindow = nullptr; // 关于窗口
TransmissionDialog *m_transmissionDialog = nullptr; // 传输进度窗口
MessageDialog *m_messageBox = nullptr; // 请求提示框
SuspendTabBar *m_suspendTabBar = nullptr; // 投屏控制
kdk::KBallonTip *m_tipWin; // 消息提示
LoadDialog *m_loadDialog = nullptr; // 加载等待
bool m_isConnect = false; // 当前是否连接
FileSyncManage::FileType m_downFileType = FileSyncManage::FileType::FileNum; // 当前下载类型
FileSyncManage::FileKey m_fileKey = FileSyncManage::FileKey::Default; // 当前文件同步类型
QUrl m_url; // 服务器地址
ConnectionService::ConnectionInfo m_connectInfo; // 当前连接设备信息
bool m_isDbusOperation = false; // 当前操作是否为dbus调用
bool m_isMountFtp = false; // 是否挂载ftp
QString m_wifiIp = ""; // 本机IP
bool m_isServerConnect = false; // 服务是否连接
QString m_uploadPath = ""; // 当前上传路径
bool m_isPcSearchInfo = false; // 是否为PC数据库文件
int m_searchLoadNum = 0; // 搜索数据加载次数
QString m_reconnectAddress = ""; // 重连ip
quint32 m_inhibitValue = 0; // 熄屏参数
PublicAttributes::Model m_model = PublicAttributes::Model::PcModel; // 当前模式
double m_fontSize = 10; // 系统字号
QList<QStringList> m_backList; // 回退列表
QList<QStringList> m_forwardList; // 前进列表
bool m_isFileViewPage = true; // 当前是否为文件视图
QStringList m_lastPathList; // 搜索文件前最后一次面包屑路径
QListView::ViewMode m_viewMode = QListView::IconMode; // 手机存储当前视图模式
QString m_tipMesseage = ""; // 提示消息
PublicAttributes::Theme m_theme = PublicAttributes::Theme::Light; // 主题
bool m_isConnect = false; // 当前是否连接
FileSyncManage::FileType m_downFileType = FileSyncManage::FileType::FileNum; // 当前下载类型
FileSyncManage::FileKey m_fileKey = FileSyncManage::FileKey::Default; // 当前文件同步类型
QUrl m_url; // 服务器地址
ConnectionService::ConnectionInfo m_connectInfo; // 当前连接设备信息
bool m_isDbusOperation = false; // 当前操作是否为dbus调用
bool m_isMountFtp = false; // 是否挂载ftp
QString m_wifiIp = ""; // 本机IP
bool m_isServerConnect = false; // 服务是否连接
QString m_uploadPath = ""; // 当前上传路径
bool m_isPcSearchInfo = false; // 是否为PC数据库文件
int m_searchLoadNum = 0; // 搜索数据加载次数
QString m_reconnectAddress = ""; // 重连ip
quint32 m_inhibitValue = 0; // 熄屏参数
PublicAttributes::Model m_model = PublicAttributes::Model::PcModel; // 当前模式
double m_fontSize = 10; // 系统字号
QList<QStringList> m_backList; // 回退列表
QList<QStringList> m_forwardList; // 前进列表
bool m_isFileViewPage = true; // 当前是否为文件视图
QStringList m_lastPathList; // 搜索文件前最后一次面包屑路径
QListView::ViewMode m_viewMode = QListView::IconMode; // 手机存储当前视图模式
QString m_tipMesseage = ""; // 提示消息
PublicAttributes::Theme m_theme = PublicAttributes::Theme::Light; // 主题
bool m_isDownloadingThumbanil = false;
bool m_isDusUpload = false;
};
#endif // MAINWINDOW_H
#endif // MAINWINDOW_H