summaryrefslogtreecommitdiff
path: root/src/modinfodialognexus.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-23 02:24:34 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:18 -0400
commit8d1c121f648f2f6a8e0a5e2ad76cd245e318290d (patch)
tree44aa8aee2685174615f33f999ca102179939d3e4 /src/modinfodialognexus.h
parenta72573b385a941adf7d662b8df5c8e35309fdd45 (diff)
split nexus tab
added OrganizerCore::loggedInAction() to execute a function only when logged in, replaces a bunch of copy/pasted stuff in mainwindow moved common variables in ModInfoDialogTab moved DescriptionPage to modinfodialognexus.h, renamed to NexusTabWebpage, deleted now empty descriptionpage.h
Diffstat (limited to 'src/modinfodialognexus.h')
-rw-r--r--src/modinfodialognexus.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/modinfodialognexus.h b/src/modinfodialognexus.h
new file mode 100644
index 00000000..2e328c6d
--- /dev/null
+++ b/src/modinfodialognexus.h
@@ -0,0 +1,67 @@
+#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(
+ OrganizerCore& oc, PluginContainer& plugin,
+ QWidget* parent, Ui::ModInfoDialog* ui);
+
+ ~NexusTab();
+
+ void clear() override;
+ void update() override;
+ void setMod(ModInfo::Ptr mod, MOShared::FilesOrigin* origin) override;
+
+private:
+ QMetaObject::Connection m_modConnection;
+ bool m_requestStarted;
+
+ void cleanup();
+ void updateVersionColor();
+ void updateWebpage();
+
+ void refreshData(int modID);
+ bool tryRefreshData(int modID);
+
+ void onModChanged();
+ void onOpenLink();
+ void onModIDChanged();
+ void onSourceGameChanged();
+ void onVersionChanged();
+ void onRefreshBrowser();
+ void onEndorse();
+ void onUrlChanged();
+};
+
+#endif // MODINFODIALOGNEXUS_H