/** * @RDE_HEADER@ * LtsFileDialogWidget and LtsFileDialog - custom widgets * $Id$ * $HeadURL$ * $Author$ * Created by Iuliana Ojog, SLSE, 2017-07-11 */ #pragma once #include #include #include #include #include #include namespace Ui { class LtsFileDialogWidget; } namespace LtsSession { class LtsSession; } //---------------------------------------------------------------------------------------------------- // LtsFileDialog //---------------------------------------------------------------------------------------------------- namespace LtsWidgets { enum FileDialogMode { modeOpenFile = 0, // used as modal select file to open modeSaveFile = 1 // used as modal select folder to save file }; class LtsFileDialogWidget; //---------------------------------------------------------------------------------------------------- class LTSFILEDIALOG_EXPORT LtsFileDialog : public LtsWidgets::LtsFramelessDialog { Q_OBJECT friend class LtsFileDialogWidget; public: explicit LtsFileDialog(QWidget *parent = nullptr); ~LtsFileDialog(); bool init(LtsSession::LtsSession *session, const std::shared_ptr &dtc, const std::shared_ptr &opmDtc, const std::shared_ptr &exmDtc, const FileDialogMode &dlgMode = FileDialogMode::modeOpenFile, const QVector &mainFolders = {}, const QVector &fileTypes = {FileManagement::FileType::Unknown}, const int &folderId = 0, const QString &buttonName = QString(), const QString &xmlType = QString()); int getSelectedFileId() const; FileManagement::FileContent getSelectedFile() const; int getSelectedFolder() const; QString getFileName() const; private: void enaDisa(); private: LtsFileDialogWidget *m_editItemWidget{nullptr}; LtsWidgets::LtsDialogButtonBox *m_buttonBox{nullptr}; FileDialogMode m_dialogMode{FileDialogMode::modeOpenFile}; }; } // namespace LtsWidgets