#ifndef FILEMANAGEWIDGET_H #define FILEMANAGEWIDGET_H #include #include #include namespace Ui { class FileManageWidget; } class FileManageWidget : public QWidget { Q_OBJECT public: explicit FileManageWidget(QWidget *parent = 0); ~FileManageWidget(); enum FilterType { JobFile, Image, Font, All }; protected: virtual bool eventFilter(QObject *watched, QEvent *event) override; private slots: void onFilterCBoxSelectChanged(int i); void onExportBtnClicked(); void onImportBtnClicked(); void onSelectAllBtnClicked(); void onCancelAllBtnClicked(); void onDelSelectedBtnClicked(); void onUDiskCheckTimeout(); void refreshButtonsStatus(); private: bool checkUDiskPresent(); bool ensureUDiskDocDir(); int refreshFileList(QListWidget* listView); void onUDiskStateChanged(); void copyFiles(QListWidget* from, QListWidget* to); Ui::FileManageWidget *ui; int m_currFilterType; QListWidget* m_focusedListView = nullptr; static constexpr int AbsPathRole = Qt::UserRole + 1; QTimer* m_udiskCheckTimer = nullptr; bool m_hasUDisk = false; void applyStyleSheet(); // 应用样式表 }; #endif // FILEMANAGEWIDGET_H