diff options
| author | Silarn <jrim@rimpo.org> | 2019-07-22 01:00:42 -0500 |
|---|---|---|
| committer | Silarn <jrim@rimpo.org> | 2019-07-22 01:00:42 -0500 |
| commit | dcd6d624672019727d7effd17aac86f72bff438b (patch) | |
| tree | 1e8d3856f657d898c5992631599cf272d785f973 /src/modinfodialognexus.h | |
| parent | 179a73857125ee604f42b0d5c2d765183c86d2c7 (diff) | |
| parent | e73c309f08eff98f0dbd2590f594a83b67431eac (diff) | |
Merge branch 'Develop'
Diffstat (limited to 'src/modinfodialognexus.h')
| -rw-r--r-- | src/modinfodialognexus.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/modinfodialognexus.h b/src/modinfodialognexus.h new file mode 100644 index 00000000..7f894dbf --- /dev/null +++ b/src/modinfodialognexus.h @@ -0,0 +1,74 @@ +#ifndef MODINFODIALOGNEXUS_H +#define MODINFODIALOGNEXUS_H + +#include "modinfodialogtab.h" + +class NexusTabWebpage : public QWebEnginePage +{ + Q_OBJECT + +public: + NexusTabWebpage(QObject* parent = 0) + : QWebEnginePage(parent) + { + } + + bool acceptNavigationRequest( + const QUrl & url, QWebEnginePage::NavigationType type, bool) override + { + if (type == QWebEnginePage::NavigationTypeLinkClicked) + { + emit linkClicked(url); + return false; + } + + return true; + } + +signals: + void linkClicked(const QUrl&); +}; + + +class NexusTab : public ModInfoDialogTab +{ +public: + NexusTab(ModInfoDialogTabContext cx); + + ~NexusTab(); + + void clear() override; + void update() override; + void firstActivation() override; + void setMod(ModInfoPtr mod, MOShared::FilesOrigin* origin) override; + bool usesOriginFiles() const override; + +private: + QMetaObject::Connection m_modConnection; + bool m_requestStarted; + bool m_loading; + + void cleanup(); + void updateVersionColor(); + void updateWebpage(); + void updateTracking(); + + void refreshData(int modID); + bool tryRefreshData(int modID); + void onModChanged(); + + void onModIDChanged(); + void onSourceGameChanged(); + void onVersionChanged(); + + void onRefreshBrowser(); + void onVisitNexus(); + void onEndorse(); + void onTrack(); + + void onCustomURLToggled(); + void onCustomURLChanged(); + void onVisitCustomURL(); +}; + +#endif // MODINFODIALOGNEXUS_H |
