File indexing completed on 2024-04-28 05:38:02
0001 #ifndef CAMPAIGN_ANTAGONIST_BOARD_H 0002 #define CAMPAIGN_ANTAGONIST_BOARD_H 0003 0004 #include "rwidgets_global.h" 0005 #include <QWidget> 0006 #include <memory> 0007 namespace Ui 0008 { 0009 class AntagonistBoard; 0010 } 0011 class Character; 0012 0013 namespace campaign 0014 { 0015 class CampaignEditor; 0016 class AntagonistBoardController; 0017 class RWIDGET_EXPORT AntagonistBoard : public QWidget 0018 { 0019 Q_OBJECT 0020 Q_PROPERTY(bool fullMode READ fullMode WRITE setFullMode NOTIFY fullModeChanged) 0021 Q_PROPERTY(bool minimalMode READ minimalMode WRITE setMinimalMode NOTIFY minimalModeChanged) 0022 public: 0023 explicit AntagonistBoard(campaign::CampaignEditor* editor, QWidget* parent= nullptr); 0024 ~AntagonistBoard(); 0025 0026 const std::vector<std::unique_ptr<QAction>>& columnsActions() const; 0027 0028 bool fullMode() const; 0029 void setFullMode(bool newFullMode); 0030 0031 bool minimalMode() const; 0032 void setMinimalMode(bool newMinimalMode); 0033 0034 signals: 0035 void fullModeChanged(); 0036 void minimalModeChanged(); 0037 0038 protected slots: 0039 void updateImage(const QByteArray& data); 0040 void contextualMenu(const QPoint& pos); 0041 0042 void hideColumn(); 0043 0044 virtual bool eventFilter(QObject* obj, QEvent* event) override; 0045 0046 private: 0047 Ui::AntagonistBoard* ui; 0048 std::unique_ptr<AntagonistBoardController> m_ctrl; 0049 0050 std::unique_ptr<QAction> m_createTokenAct; 0051 std::unique_ptr<QAction> m_cloneCharacterAct; 0052 std::unique_ptr<QAction> m_changeImageAct; 0053 std::unique_ptr<QAction> m_fullModeAct; 0054 std::unique_ptr<QAction> m_minimalModeAct; 0055 std::unique_ptr<QAction> m_saveTokenAct; 0056 0057 QString m_currentItemId; 0058 std::vector<std::unique_ptr<QAction>> m_columnsAction; 0059 }; 0060 } // namespace campaign 0061 #endif // CAMPAIGN_ANTAGONIST_BOARD_H