File indexing completed on 2024-04-28 05:38:14
0001 #ifndef SESSIONVIEW_H 0002 #define SESSIONVIEW_H 0003 0004 #include <QDrag> 0005 #include <QHash> 0006 #include <QPointer> 0007 #include <QTreeView> 0008 0009 #include "media/mediatype.h" 0010 #include "rwidgets_global.h" 0011 0012 namespace campaign 0013 { 0014 class Campaign; 0015 class MediaNode; 0016 class RWIDGET_EXPORT CampaignView : public QTreeView 0017 { 0018 Q_OBJECT 0019 Q_PROPERTY(QString currentChapter READ currentChapter NOTIFY currentChapterChanged) 0020 public: 0021 explicit CampaignView(QWidget* parent= nullptr); 0022 QModelIndexList getSelection() const; 0023 0024 QString currentChapter() const; 0025 0026 public slots: 0027 void setCampaign(Campaign* campaign); 0028 0029 protected: 0030 void startDrag(Qt::DropActions supportedActions); 0031 void contextMenuEvent(QContextMenuEvent* event); 0032 void mouseDoubleClickEvent(QMouseEvent*); 0033 0034 signals: 0035 void addDirectory(QModelIndex&); 0036 void removeSelection(const QString& uuid); 0037 void openAs(const QString& id, const QString& path, Core::ContentType type); 0038 void currentChapterChanged(); 0039 0040 private slots: 0041 void setCurrentChapter(const QString& chapter); 0042 void onAddChapter(); 0043 0044 void addOpenAsActs(QMenu* menu, Core::MediaType type); 0045 0046 private: 0047 QPointer<Campaign> m_campaign; 0048 0049 QAction* m_addDirectoryAct; 0050 QAction* m_deleteFileAct; 0051 QAction* m_defineAsCurrent; 0052 QAction* m_openAct; 0053 QAction* m_openAsAct; 0054 QAction* m_renameAct; 0055 0056 QAction* m_nameColsAct; 0057 QAction* m_sizeColsAct; 0058 QAction* m_typeColsAct; 0059 QAction* m_addedColsAct; 0060 QAction* m_modifiedColsAct; 0061 0062 QHash<Core::MediaType, QList<QAction*>> m_convertionHash; 0063 QModelIndex m_index; 0064 }; 0065 } // namespace campaign 0066 #endif // SESSIONVIEW_H