filedialogextern.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef FILEDIALOGEXTERN_H
  2. #define FILEDIALOGEXTERN_H
  3. #include <QObject>
  4. class FileDialogExtern : public QObject
  5. {
  6. Q_OBJECT
  7. Q_ENUMS(FileMode)
  8. Q_PROPERTY(NOTIFY accepted)
  9. Q_PROPERTY(NOTIFY rejected)
  10. Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
  11. Q_PROPERTY(QString folder READ folder WRITE setFolder NOTIFY folderChanged)
  12. Q_PROPERTY(QString currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged)
  13. Q_PROPERTY(QStringList currentFiles READ currentFiles WRITE setCurrentFiles NOTIFY currentFilesChanged)
  14. Q_PROPERTY(FileMode fileMode READ fileMode WRITE setFileMode NOTIFY fileModeChanged)
  15. public:
  16. enum FileMode{OpenFile,OpenFiles,Saveile};
  17. explicit FileDialogExtern(QObject *parent = nullptr);
  18. bool event(QEvent *);
  19. Q_INVOKABLE bool open();
  20. QString title() const{return m_title;}
  21. QString folder() const{return m_folder;}
  22. QString currentFile() const{return m_currentFile;}
  23. QStringList currentFiles() const{return m_currentFiles;}
  24. FileMode fileMode() const{return m_fileMode;}
  25. signals:
  26. void accepted();
  27. void rejected();
  28. void titleChanged(QString title);
  29. void folderChanged(QString folder);
  30. void currentFilesChanged(QStringList currentFiles);
  31. void currentFileChanged(QString currentFile);
  32. void fileModeChanged(FileMode fileMode);
  33. public slots:
  34. void setTitle(const QString &title){m_title = title; emit titleChanged(m_title);}
  35. void setFolder(const QString &folder){m_folder = folder; emit folderChanged(m_folder);}
  36. void setCurrentFile(const QString &currentFile){m_currentFile = currentFile; emit currentFileChanged(m_currentFile);}
  37. void setCurrentFiles(const QStringList &currentFiles){m_currentFiles = currentFiles; emit currentFilesChanged(m_currentFiles);}
  38. void setFileMode(const FileMode &fileMode){m_fileMode = fileMode; emit fileModeChanged(m_fileMode);}
  39. private:
  40. QString m_title;
  41. QString m_folder;
  42. QString m_currentFile;
  43. QStringList m_currentFiles;
  44. FileMode m_fileMode;
  45. };
  46. #endif // FILEDIALOGEXTERN_H