mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-16 23:42:15 -07:00
Allow navigating by clicking on cards.
This commit is contained in:
parent
075c10b73f
commit
c29bdb10b0
6 changed files with 40 additions and 0 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
#include "edhrec_commander_api_response_card_details_display_widget.h"
|
#include "edhrec_commander_api_response_card_details_display_widget.h"
|
||||||
|
|
||||||
#include "../../../../../game/cards/card_database_manager.h"
|
#include "../../../../../game/cards/card_database_manager.h"
|
||||||
|
#include "../tab_edhrec_main.h"
|
||||||
|
|
||||||
EdhrecCommanderApiResponseCardDetailsDisplayWidget::EdhrecCommanderApiResponseCardDetailsDisplayWidget(
|
EdhrecCommanderApiResponseCardDetailsDisplayWidget::EdhrecCommanderApiResponseCardDetailsDisplayWidget(
|
||||||
QWidget *parent,
|
QWidget *parent,
|
||||||
|
|
@ -41,4 +42,26 @@ EdhrecCommanderApiResponseCardDetailsDisplayWidget::EdhrecCommanderApiResponseCa
|
||||||
|
|
||||||
layout->addWidget(cardPictureWidget);
|
layout->addWidget(cardPictureWidget);
|
||||||
layout->addWidget(label);
|
layout->addWidget(label);
|
||||||
|
|
||||||
|
QWidget *currentParent = parentWidget();
|
||||||
|
TabEdhRecMain *parentTab = nullptr;
|
||||||
|
|
||||||
|
while (currentParent) {
|
||||||
|
if ((parentTab = qobject_cast<TabEdhRecMain *>(currentParent))) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
currentParent = currentParent->parentWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parentTab) {
|
||||||
|
connect(cardPictureWidget, &CardInfoPictureWidget::cardClicked, this,
|
||||||
|
&EdhrecCommanderApiResponseCardDetailsDisplayWidget::actRequestPageNavigation);
|
||||||
|
connect(this, &EdhrecCommanderApiResponseCardDetailsDisplayWidget::requestUrl, parentTab,
|
||||||
|
&TabEdhRecMain::actNavigatePage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EdhrecCommanderApiResponseCardDetailsDisplayWidget::actRequestPageNavigation()
|
||||||
|
{
|
||||||
|
emit requestUrl(toDisplay.url);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@ public:
|
||||||
explicit EdhrecCommanderApiResponseCardDetailsDisplayWidget(
|
explicit EdhrecCommanderApiResponseCardDetailsDisplayWidget(
|
||||||
QWidget *parent,
|
QWidget *parent,
|
||||||
const EdhrecCommanderApiResponseCardDetails &_toDisplay);
|
const EdhrecCommanderApiResponseCardDetails &_toDisplay);
|
||||||
|
public slots:
|
||||||
|
void actRequestPageNavigation();
|
||||||
|
signals:
|
||||||
|
void requestUrl(QString url);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EdhrecCommanderApiResponseCardDetails toDisplay;
|
EdhrecCommanderApiResponseCardDetails toDisplay;
|
||||||
|
|
|
||||||
|
|
@ -154,6 +154,13 @@ void TabEdhRecMain::setCard(CardInfoPtr _cardToQuery, bool isCommander)
|
||||||
networkManager->get(request);
|
networkManager->get(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabEdhRecMain::actNavigatePage(QString url)
|
||||||
|
{
|
||||||
|
QNetworkRequest request{QUrl("https://json.edhrec.com/pages" + url + ".json")};
|
||||||
|
|
||||||
|
networkManager->get(request);
|
||||||
|
}
|
||||||
|
|
||||||
void TabEdhRecMain::getTopCommanders()
|
void TabEdhRecMain::getTopCommanders()
|
||||||
{
|
{
|
||||||
QNetworkRequest request{QUrl("https://json.edhrec.com/pages/commanders/year.json")};
|
QNetworkRequest request{QUrl("https://json.edhrec.com/pages/commanders/year.json")};
|
||||||
|
|
@ -197,6 +204,8 @@ void TabEdhRecMain::processApiJson(QNetworkReply *reply)
|
||||||
processCommanderResponse(jsonObj);
|
processCommanderResponse(jsonObj);
|
||||||
} else if (responseUrl.startsWith("https://json.edhrec.com/pages/cards/")) {
|
} else if (responseUrl.startsWith("https://json.edhrec.com/pages/cards/")) {
|
||||||
processCommanderResponse(jsonObj);
|
processCommanderResponse(jsonObj);
|
||||||
|
} else if (responseUrl.startsWith("https://json.edhrec.com/pages/tags/")) {
|
||||||
|
processCommanderResponse(jsonObj);
|
||||||
} else if (responseUrl.startsWith("https://json.edhrec.com/pages/tags.json")) {
|
} else if (responseUrl.startsWith("https://json.edhrec.com/pages/tags.json")) {
|
||||||
processTopTagsResponse(jsonObj);
|
processTopTagsResponse(jsonObj);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ public slots:
|
||||||
void processTopCommandersResponse(QJsonObject reply);
|
void processTopCommandersResponse(QJsonObject reply);
|
||||||
void prettyPrintJson(const QJsonValue &value, int indentLevel);
|
void prettyPrintJson(const QJsonValue &value, int indentLevel);
|
||||||
void setCard(CardInfoPtr _cardToQuery, bool isCommander = false);
|
void setCard(CardInfoPtr _cardToQuery, bool isCommander = false);
|
||||||
|
void actNavigatePage(QString url);
|
||||||
void getTopCommanders();
|
void getTopCommanders();
|
||||||
void getTopTags();
|
void getTopTags();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -283,6 +283,8 @@ void CardInfoPictureWidget::mousePressEvent(QMouseEvent *event)
|
||||||
if (event->button() == Qt::RightButton) {
|
if (event->button() == Qt::RightButton) {
|
||||||
createRightClickMenu()->popup(QCursor::pos());
|
createRightClickMenu()->popup(QCursor::pos());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
emit cardClicked();
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenu *CardInfoPictureWidget::createRightClickMenu()
|
QMenu *CardInfoPictureWidget::createRightClickMenu()
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ signals:
|
||||||
void hoveredOnCard(CardInfoPtr hoveredCard);
|
void hoveredOnCard(CardInfoPtr hoveredCard);
|
||||||
void cardScaleFactorChanged(int _scale);
|
void cardScaleFactorChanged(int _scale);
|
||||||
void cardChanged(CardInfoPtr card);
|
void cardChanged(CardInfoPtr card);
|
||||||
|
void cardClicked();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void resizeEvent(QResizeEvent *event) override;
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue