void ComponentDock::entityEdit(Kite::KEntityManager *Eman, Kite::KEntity *Entity, bool isPrefab) { if (Entity->getHandle() == currEntity && Eman == eman) { return; } this->setDisabled(false); eman = Eman; actClear(); // entity info currEntity = Entity->getHandle(); // set callbacks Entity->setAddComCallback(addComCallb, this); Entity->setRemoveComCallback(remComCallb, this); // prefab frame showFrame(Entity, isPrefab); // components for (auto it = types.begin(); it != types.end(); ++it) { if (it->first == Kite::CTypes::Logic) { // load logic components at the end continue; } else { // is visible if (it->second) { auto has = Entity->hasComponent(it->first); if (has) { auto comp = Entity->getComponent(it->first); fetchFromPool(comp); } } } } std::vector<Kite::KHandle> compList; Entity->getScriptComponents(compList); for (auto it = compList.begin(); it != compList.end(); ++it) { auto comp = Entity->getComponentByHandle((*it)); fetchFromPool(comp); } actionsControl(AS_ON_LOAD); QString name(Entity->getName().c_str()); //hlabel->setText("Components Editor (" + name + ")"); // lua table llabel->setText(QString("Lua Table: <font color = \"orange\">") + Entity->getLuaTName().c_str() + "</font>"); chkStatic->setChecked(Entity->getStatic()); spnLayer->setValue(Entity->getLayer()); spnZOrder->setValue(Entity->getZOrder()); actSearch(ledit->text()); }
WndDeckEditor::WndDeckEditor(QWidget *parent) : QMainWindow(parent) { aSearch = new QAction(tr("&Search..."), this); aSearch->setIcon(QIcon(":/resources/icon_search.svg")); connect(aSearch, SIGNAL(triggered()), this, SLOT(actSearch())); aClearSearch = new QAction(tr("&Clear search"), this); aClearSearch->setIcon(QIcon(":/resources/icon_clearsearch.svg")); connect(aClearSearch, SIGNAL(triggered()), this, SLOT(actClearSearch())); QLabel *searchLabel = new QLabel(tr("&Search for:")); searchEdit = new SearchLineEdit; searchLabel->setBuddy(searchEdit); connect(searchEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateSearch(const QString &))); connect(searchEdit, SIGNAL(returnPressed()), this, SLOT(actAddCard())); QToolButton *searchButton = new QToolButton; searchButton->setDefaultAction(aSearch); QToolButton *clearSearchButton = new QToolButton; clearSearchButton->setDefaultAction(aClearSearch); QHBoxLayout *searchLayout = new QHBoxLayout; searchLayout->addWidget(searchLabel); searchLayout->addWidget(searchEdit); searchLayout->addWidget(searchButton); searchLayout->addWidget(clearSearchButton); databaseModel = new CardDatabaseModel(db, this); databaseDisplayModel = new CardDatabaseDisplayModel(this); databaseDisplayModel->setSourceModel(databaseModel); databaseDisplayModel->setFilterKeyColumn(0); databaseDisplayModel->sort(0, Qt::AscendingOrder); databaseView = new QTreeView(); databaseView->setModel(databaseDisplayModel); databaseView->setUniformRowHeights(true); databaseView->setAlternatingRowColors(true); databaseView->setSortingEnabled(true); databaseView->sortByColumn(0, Qt::AscendingOrder); databaseView->resizeColumnToContents(0); connect(databaseView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoLeft(const QModelIndex &, const QModelIndex &))); connect(databaseView, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(actAddCard())); searchEdit->setTreeView(databaseView); QVBoxLayout *leftFrame = new QVBoxLayout; leftFrame->addLayout(searchLayout); leftFrame->addWidget(databaseView); cardInfo = new CardInfoWidget(CardInfoWidget::ModeDeckEditor); cardInfo->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding); QToolBar *verticalToolBar = new QToolBar; verticalToolBar->setOrientation(Qt::Vertical); verticalToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); verticalToolBar->setIconSize(QSize(24, 24)); QHBoxLayout *verticalToolBarLayout = new QHBoxLayout; verticalToolBarLayout->addStretch(); verticalToolBarLayout->addWidget(verticalToolBar); verticalToolBarLayout->addStretch(); QVBoxLayout *middleFrame = new QVBoxLayout; middleFrame->addWidget(cardInfo, 10); middleFrame->addLayout(verticalToolBarLayout); deckModel = new DeckListModel(this); deckView = new QTreeView(); deckView->setModel(deckModel); deckView->setUniformRowHeights(true); deckView->header()->setResizeMode(QHeaderView::ResizeToContents); connect(deckView->selectionModel(), SIGNAL(currentRowChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(updateCardInfoRight(const QModelIndex &, const QModelIndex &))); QLabel *nameLabel = new QLabel(tr("Deck &name:")); nameEdit = new QLineEdit; nameLabel->setBuddy(nameEdit); connect(nameEdit, SIGNAL(textChanged(const QString &)), this, SLOT(updateName(const QString &))); QLabel *commentsLabel = new QLabel(tr("&Comments:")); commentsEdit = new QTextEdit; commentsEdit->setMaximumHeight(70); commentsLabel->setBuddy(commentsEdit); connect(commentsEdit, SIGNAL(textChanged()), this, SLOT(updateComments())); QGridLayout *grid = new QGridLayout; grid->addWidget(nameLabel, 0, 0); grid->addWidget(nameEdit, 0, 1); grid->addWidget(commentsLabel, 1, 0); grid->addWidget(commentsEdit, 1, 1); QVBoxLayout *rightFrame = new QVBoxLayout; rightFrame->addLayout(grid); rightFrame->addWidget(deckView); QSplitter *mainSplitter = new QSplitter; QWidget *leftFrameWidget = new QWidget; leftFrameWidget->setLayout(leftFrame); mainSplitter->addWidget(leftFrameWidget); QWidget *middleFrameWidget = new QWidget; middleFrameWidget->setLayout(middleFrame); mainSplitter->addWidget(middleFrameWidget); QWidget *rightFrameWidget = new QWidget; rightFrameWidget->setLayout(rightFrame); mainSplitter->addWidget(rightFrameWidget); setCentralWidget(mainSplitter); setWindowTitle(tr("Deck editor [*]")); aNewDeck = new QAction(tr("&New deck"), this); aNewDeck->setShortcuts(QKeySequence::New); connect(aNewDeck, SIGNAL(triggered()), this, SLOT(actNewDeck())); aLoadDeck = new QAction(tr("&Load deck..."), this); aLoadDeck->setShortcuts(QKeySequence::Open); connect(aLoadDeck, SIGNAL(triggered()), this, SLOT(actLoadDeck())); aSaveDeck = new QAction(tr("&Save deck"), this); aSaveDeck->setShortcuts(QKeySequence::Save); connect(aSaveDeck, SIGNAL(triggered()), this, SLOT(actSaveDeck())); aSaveDeckAs = new QAction(tr("Save deck &as..."), this); // aSaveDeckAs->setShortcuts(QKeySequence::SaveAs); connect(aSaveDeckAs, SIGNAL(triggered()), this, SLOT(actSaveDeckAs())); aLoadDeckFromClipboard = new QAction(tr("Load deck from cl&ipboard..."), this); connect(aLoadDeckFromClipboard, SIGNAL(triggered()), this, SLOT(actLoadDeckFromClipboard())); aLoadDeckFromClipboard->setShortcuts(QKeySequence::Paste); aSaveDeckToClipboard = new QAction(tr("Save deck to clip&board"), this); connect(aSaveDeckToClipboard, SIGNAL(triggered()), this, SLOT(actSaveDeckToClipboard())); aSaveDeckToClipboard->setShortcuts(QKeySequence::Copy); aPrintDeck = new QAction(tr("&Print deck..."), this); aPrintDeck->setShortcuts(QKeySequence::Print); connect(aPrintDeck, SIGNAL(triggered()), this, SLOT(actPrintDeck())); aClose = new QAction(tr("&Close"), this); aClose->setShortcut(tr("Ctrl+Q")); connect(aClose, SIGNAL(triggered()), this, SLOT(close())); aEditSets = new QAction(tr("&Edit sets..."), this); connect(aEditSets, SIGNAL(triggered()), this, SLOT(actEditSets())); deckMenu = menuBar()->addMenu(tr("&Deck")); deckMenu->addAction(aNewDeck); deckMenu->addAction(aLoadDeck); deckMenu->addAction(aSaveDeck); deckMenu->addAction(aSaveDeckAs); deckMenu->addSeparator(); deckMenu->addAction(aLoadDeckFromClipboard); deckMenu->addAction(aSaveDeckToClipboard); deckMenu->addSeparator(); deckMenu->addAction(aPrintDeck); deckMenu->addSeparator(); deckMenu->addAction(aClose); dbMenu = menuBar()->addMenu(tr("&Card database")); dbMenu->addAction(aEditSets); dbMenu->addSeparator(); dbMenu->addAction(aSearch); dbMenu->addAction(aClearSearch); aAddCard = new QAction(tr("Add card to &maindeck"), this); aAddCard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Return")) << QKeySequence(tr("Enter"))); aAddCard->setIcon(QIcon(":/resources/arrow_right_green.svg")); connect(aAddCard, SIGNAL(triggered()), this, SLOT(actAddCard())); aAddCardToSideboard = new QAction(tr("Add card to &sideboard"), this); aAddCardToSideboard->setIcon(QIcon(":/resources/add_to_sideboard.svg")); aAddCardToSideboard->setShortcuts(QList<QKeySequence>() << QKeySequence(tr("Ctrl+Return")) << QKeySequence(tr("Ctrl+Enter"))); connect(aAddCardToSideboard, SIGNAL(triggered()), this, SLOT(actAddCardToSideboard())); aRemoveCard = new QAction(tr("&Remove row"), this); aRemoveCard->setShortcut(tr("Del")); aRemoveCard->setIcon(QIcon(":/resources/remove_row.svg")); connect(aRemoveCard, SIGNAL(triggered()), this, SLOT(actRemoveCard())); aIncrement = new QAction(tr("&Increment number"), this); aIncrement->setShortcut(tr("+")); aIncrement->setIcon(QIcon(":/resources/increment.svg")); connect(aIncrement, SIGNAL(triggered()), this, SLOT(actIncrement())); aDecrement = new QAction(tr("&Decrement number"), this); aDecrement->setIcon(QIcon(":/resources/decrement.svg")); aDecrement->setShortcut(tr("-")); connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement())); verticalToolBar->addAction(aAddCard); verticalToolBar->addAction(aAddCardToSideboard); verticalToolBar->addAction(aRemoveCard); verticalToolBar->addAction(aIncrement); verticalToolBar->addAction(aDecrement); dlgCardSearch = new DlgCardSearch(this); resize(950, 700); }