#pragma once #include #include #include #include #include #include #include #include #include #include #include #include "Message.h" #include "global.h" namespace Psc { class File_Tool : public QWidget { Q_OBJECT public: enum class Mode { OpenFile, SaveFile, Directory }; explicit File_Tool(const QString& title = {}, Mode mode = Mode::OpenFile, QWidget* parent = nullptr); void set_title(const QString& t); [[nodiscard]] QString path() const; void set_path(const QString& p); signals: void path_changed(const QString&); private: Mode mode_; QLabel* title_label{}; QLineEdit* path_edit{}; QPushButton* browse_btn{}; QPushButton* clear_btn{}; QPushButton* backup_clear_btn{}; }; } // namespace Psc