文件管理器动态启用按钮

This commit is contained in:
2026-05-25 17:16:54 +08:00
parent 358a56f602
commit dd64ec1252
4 changed files with 54 additions and 28 deletions
+22
View File
@@ -32,10 +32,14 @@ FileManageWidget::FileManageWidget(QWidget *parent) :
ui->systemFileListView->setMouseTracking(true);
ui->udiskFileListView->setMouseTracking(true);
connect(ui->systemFileListView, &QListWidget::itemSelectionChanged, this, &FileManageWidget::refreshButtonsStatus);
connect(ui->udiskFileListView, &QListWidget::itemSelectionChanged, this, &FileManageWidget::refreshButtonsStatus);
updateUDiskDevList();
m_focusedListView = ui->systemFileListView;
m_focusedListView->setFocus();
refreshButtonsStatus();
onFilterCBoxSelectChanged(ui->filterCBox->currentIndex());
}
@@ -75,6 +79,8 @@ bool FileManageWidget::eventFilter(QObject *watched, QEvent *event)
palette.setColor(backgroundPanel->backgroundRole(), "#5396C1");
backgroundPanel->setPalette(palette);
refreshButtonsStatus();
return false;
}
@@ -152,6 +158,22 @@ void FileManageWidget::updateUDiskDevList()
updateFileListView(ui->udiskFileListView);
}
void FileManageWidget::refreshButtonsStatus()
{
if(!m_focusedListView)
return;
auto selectedItems = m_focusedListView->selectedItems();
ui->cancelAllBtn->setEnabled(!selectedItems.isEmpty());
ui->delSelectedBtn->setEnabled(!selectedItems.isEmpty());
ui->importBtn->setEnabled(!selectedItems.isEmpty() && ui->udiskFileListView == m_focusedListView);
ui->exportBtn->setEnabled(!selectedItems.isEmpty() && ui->systemFileListView == m_focusedListView);
ui->selectAllBtn->setEnabled(m_focusedListView->count() != selectedItems.size());
}
int FileManageWidget::updateFileListView(QListWidget* listView)
{
QString searchPath = listView->property("searchPath").toString();
+2
View File
@@ -35,6 +35,8 @@ private slots:
void onDelSelectedBtnClicked();
void updateUDiskDevList();
void refreshButtonsStatus();
private:
int updateFileListView(QListWidget* listView);