diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp index 1c599034b..eba0bfb0f 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp @@ -50,6 +50,7 @@ AbstractTabDeckEditor::AbstractTabDeckEditor(TabSupervisor *_tabSupervisor) : Ta printingSelectorDockWidget = new DeckEditorPrintingSelectorDockWidget(this); connect(deckDockWidget, &DeckEditorDeckDockWidget::deckChanged, this, &AbstractTabDeckEditor::onDeckChanged); + connect(deckDockWidget, &DeckEditorDeckDockWidget::deckModified, this, &AbstractTabDeckEditor::onDeckModified); connect(deckDockWidget, &DeckEditorDeckDockWidget::cardChanged, this, &AbstractTabDeckEditor::updateCard); connect(this, &AbstractTabDeckEditor::decrementCard, deckDockWidget, &DeckEditorDeckDockWidget::actDecrementCard); connect(databaseDisplayDockWidget, &DeckEditorDatabaseDisplayWidget::cardChanged, this, @@ -77,6 +78,10 @@ void AbstractTabDeckEditor::updateCard(CardInfoPtr _card) } void AbstractTabDeckEditor::onDeckChanged() +{ +} + +void AbstractTabDeckEditor::onDeckModified() { setModified(!isBlankNewDeck()); deckMenu->setSaveStatus(!isBlankNewDeck()); diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.h b/cockatrice/src/client/tabs/abstract_tab_deck_editor.h index 796213d27..1642ac107 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.h +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.h @@ -70,6 +70,7 @@ public: public slots: virtual void onDeckChanged(); + virtual void onDeckModified(); void updateCard(CardInfoPtr _card); void actAddCard(CardInfoPtr info); void actAddCardToSideboard(CardInfoPtr info); diff --git a/cockatrice/src/client/tabs/visual_deck_editor/tab_deck_editor_visual.cpp b/cockatrice/src/client/tabs/visual_deck_editor/tab_deck_editor_visual.cpp index 224c4db15..68f1eee17 100644 --- a/cockatrice/src/client/tabs/visual_deck_editor/tab_deck_editor_visual.cpp +++ b/cockatrice/src/client/tabs/visual_deck_editor/tab_deck_editor_visual.cpp @@ -80,7 +80,7 @@ void TabDeckEditorVisual::createCentralFrame() void TabDeckEditorVisual::onDeckChanged() { - AbstractTabDeckEditor::onDeckChanged(); + AbstractTabDeckEditor::onDeckModified(); tabContainer->visualDeckView->decklistDataChanged(QModelIndex(), QModelIndex()); tabContainer->deckAnalytics->refreshDisplays(deckDockWidget->deckModel); tabContainer->sampleHandWidget->setDeckModel(deckDockWidget->deckModel); diff --git a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp index af717fa36..3683666a2 100644 --- a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp +++ b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.cpp @@ -228,19 +228,22 @@ void DeckEditorDeckDockWidget::updateCard(const QModelIndex /*¤t*/, const void DeckEditorDeckDockWidget::updateName(const QString &name) { deckModel->getDeckList()->setName(name); - emit deckChanged(); + emit nameChanged(); + emit deckModified(); } void DeckEditorDeckDockWidget::updateComments() { deckModel->getDeckList()->setComments(commentsEdit->toPlainText()); - emit deckChanged(); + emit commentsChanged(); + emit deckModified(); } void DeckEditorDeckDockWidget::updateHash() { hashLabel->setText(deckModel->getDeckList()->getDeckHash()); - emit deckChanged(); + emit hashChanged(); + emit deckModified(); } void DeckEditorDeckDockWidget::updateBannerCardComboBox() @@ -318,7 +321,7 @@ void DeckEditorDeckDockWidget::setBannerCard(int /* changedIndex */) QVariantMap itemData = bannerCardComboBox->itemData(bannerCardComboBox->currentIndex()).toMap(); deckModel->getDeckList()->setBannerCard( QPair(itemData["name"].toString(), itemData["uuid"].toString())); - emit deckChanged(); + emit deckModified(); } void DeckEditorDeckDockWidget::updateShowBannerCardComboBox(const bool visible) @@ -366,8 +369,12 @@ void DeckEditorDeckDockWidget::cleanDeck() { deckModel->cleanList(); nameEdit->setText(QString()); + emit nameChanged(); commentsEdit->setText(QString()); + emit commentsChanged(); hashLabel->setText(QString()); + emit hashChanged(); + emit deckModified(); emit deckChanged(); updateBannerCardComboBox(); deckTagsDisplayWidget->connectDeckList(deckModel->getDeckList()); @@ -426,7 +433,7 @@ void DeckEditorDeckDockWidget::actSwapCard() deckView->setSelectionMode(QAbstractItemView::ExtendedSelection); if (isModified) { - emit deckChanged(); + emit deckModified(); } update(); @@ -521,7 +528,7 @@ void DeckEditorDeckDockWidget::actRemoveCard() deckView->setSelectionMode(QAbstractItemView::ExtendedSelection); if (isModified) { - emit deckChanged(); + emit deckModified(); } } @@ -539,7 +546,7 @@ void DeckEditorDeckDockWidget::offsetCountAtIndex(const QModelIndex &idx, int of else deckModel->setData(numberIndex, new_count, Qt::EditRole); - emit deckChanged(); + emit deckModified(); } void DeckEditorDeckDockWidget::decklistCustomMenu(QPoint point) diff --git a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.h b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.h index 0a9ebcd65..c81b4a6fa 100644 --- a/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.h +++ b/cockatrice/src/client/ui/widgets/deck_editor/deck_editor_deck_dock_widget.h @@ -49,7 +49,11 @@ public slots: void offsetCountAtIndex(const QModelIndex &idx, int offset); signals: + void nameChanged(); + void commentsChanged(); + void hashChanged(); void deckChanged(); + void deckModified(); void cardChanged(CardInfoPtr _card); private: