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 }