File indexing completed on 2024-05-12 05:40:55
0001 #include <QApplication> 0002 0003 #include <QUndoStack> 0004 #include <QVariant> 0005 0006 #include "controller/item_controllers/characteritemcontroller.h" 0007 #include "controller/view_controller/vectorialmapcontroller.h" 0008 #include "data/character.h" 0009 #include "media/mediatype.h" 0010 #include "rwidgets/mediacontainers/vmapframe.h" 0011 #include "utils/iohelper.h" 0012 #include "test_root_path.h" 0013 0014 int main(int argc, char* argv[]) 0015 { 0016 QApplication app(argc, argv); 0017 0018 Q_INIT_RESOURCE(viewsqml); 0019 Q_INIT_RESOURCE(textedit); 0020 Q_INIT_RESOURCE(rolisteam); 0021 Q_INIT_RESOURCE(resources); 0022 0023 QIcon::setFallbackSearchPaths(QIcon::fallbackSearchPaths() << ":/resources/rolistheme"); 0024 0025 QList<CharacterState*> states; 0026 auto cs1= new CharacterState(); 0027 cs1->setId("ii"); 0028 cs1->setLabel("State 1"); 0029 cs1->setColor(Qt::green); 0030 cs1->setImagePath(":/img/arbre_square_500.jpg"); 0031 0032 states << cs1; 0033 0034 auto cs2= new CharacterState(); 0035 cs2->setId("iO"); 0036 cs2->setLabel("State 2"); 0037 cs2->setColor(Qt::blue); 0038 cs2->setImagePath(":/img/lion.jpg"); 0039 0040 states << cs2; 0041 0042 Character::setListOfCharacterState(&states); 0043 0044 QUndoStack undoStack; 0045 0046 VectorialMapController ctrl; 0047 ctrl.setLocalColor(Qt::cyan); 0048 QObject::connect(&ctrl, &VectorialMapController::performCommand, 0049 [&undoStack](QUndoCommand* cmd) { undoStack.push(cmd); }); 0050 ctrl.setLocalGM(true); 0051 ctrl.setActive(true); 0052 // ctrl.setVisibility(Core::ALL); 0053 // ctrl.setEditionMode(Core::EditionMode::Mask); 0054 // ctrl.setPermission(Core::PC_ALL); 0055 ctrl.setLocalId("uuid"); 0056 ctrl.setOwnerId("uuid"); 0057 0058 Character character("aaa", "Lynn Gray-Rike", QColor("#0000DD"), false, 0); 0059 character.setAvatar(utils::IOHelper::loadFile(QString("%1/resources/lynn_gray_rike.jpg").arg(tests::root_path))); 0060 0061 0062 Character characterB("bb", "Toku Kahime", QColor("#FF00DD"), false, 0); 0063 characterB.setAvatar(utils::IOHelper::loadFile(QString("%1/resources/predateur.jpg").arg(tests::root_path))); 0064 0065 QList<CharacterAction*> acts; 0066 0067 character.defineActionList(acts); 0068 QPointF pos{200, 200}; 0069 0070 std::map<QString, QVariant> params; 0071 params.insert({Core::vmapkeys::KEY_CHARACTER, QVariant::fromValue(&character)}); 0072 params.insert({Core::vmapkeys::KEY_POS, pos}); 0073 params.insert({Core::vmapkeys::KEY_TOOL, Core::SelectableTool::PlayableCharacter}); 0074 0075 auto c= new vmap::CharacterItemController(params, &ctrl); 0076 0077 std::map<QString, QVariant> params2; 0078 params2.insert({Core::vmapkeys::KEY_CHARACTER, QVariant::fromValue(&characterB)}); 0079 params2.insert({Core::vmapkeys::KEY_POS, QPointF{300, 200}}); 0080 params2.insert({Core::vmapkeys::KEY_TOOL, Core::SelectableTool::PlayableCharacter}); 0081 0082 auto d= new vmap::CharacterItemController(params2, &ctrl); 0083 0084 0085 VMapFrame frame(&ctrl); 0086 auto cancel= frame.addAction("Cancel"); 0087 cancel->setShortcut(QKeySequence::Undo); 0088 QObject::connect(cancel, &QAction::triggered,cancel, 0089 [&undoStack]() 0090 { 0091 qDebug() << "undo"; 0092 undoStack.undo(); 0093 }); 0094 0095 frame.setVisible(true); 0096 ctrl.addRemoteItem(c); 0097 ctrl.addRemoteItem(d); 0098 0099 return app.exec(); 0100 }