소스 검색

UI: Check CEF available when loading auth

jp9000 6 년 전
부모
커밋
484c3847fc
4개의 변경된 파일29개의 추가작업 그리고 0개의 파일을 삭제
  1. 9 0
      UI/auth-mixer.cpp
  2. 13 0
      UI/auth-oauth.cpp
  3. 2 0
      UI/auth-oauth.hpp
  4. 5 0
      UI/auth-twitch.cpp

+ 9 - 0
UI/auth-mixer.cpp

@@ -213,6 +213,8 @@ public:
 
 void MixerAuth::LoadUI()
 {
+	if (!cef)
+		return;
 	if (uiLoaded)
 		return;
 	if (!GetChannelInfo())
@@ -261,6 +263,9 @@ void MixerAuth::LoadUI()
 
 bool MixerAuth::RetryLogin()
 {
+	if (!cef)
+		return false;
+
 	OAuthLogin login(OBSBasic::Get(), MIXER_AUTH_URL, false);
 	cef->add_popup_whitelist_url("about:blank", &login);
 
@@ -278,6 +283,10 @@ bool MixerAuth::RetryLogin()
 
 std::shared_ptr<Auth> MixerAuth::Login(QWidget *parent)
 {
+	if (!cef) {
+		return nullptr;
+	}
+
 	OAuthLogin login(parent, MIXER_AUTH_URL, false);
 	cef->add_popup_whitelist_url("about:blank", &login);
 

+ 13 - 0
UI/auth-oauth.cpp

@@ -26,6 +26,10 @@ OAuthLogin::OAuthLogin(QWidget *parent, const std::string &url, bool token)
 	: QDialog   (parent),
 	  get_token (token)
 {
+	if (!cef) {
+		return;
+	}
+
 	setWindowTitle("Auth");
 	setMinimumSize(400, 400);
 	resize(700, 700);
@@ -66,6 +70,15 @@ OAuthLogin::~OAuthLogin()
 	delete cefWidget;
 }
 
+int OAuthLogin::exec()
+{
+	if (cefWidget) {
+		return QDialog::exec();
+	}
+
+	return QDialog::Rejected;
+}
+
 void OAuthLogin::urlChanged(const QString &url)
 {
 	std::string uri = get_token ? "access_token=" : "code=";

+ 2 - 0
UI/auth-oauth.hpp

@@ -23,6 +23,8 @@ public:
 	inline QString GetCode() const {return code;}
 	inline bool LoadFail() const {return fail;}
 
+	virtual int exec() override;
+
 public slots:
 	void urlChanged(const QString &url);
 };

+ 5 - 0
UI/auth-twitch.cpp

@@ -42,6 +42,9 @@ static Auth::Def twitchDef = {
 TwitchAuth::TwitchAuth(const Def &d)
 	: OAuthStreamKey(d)
 {
+	if (!cef)
+		return;
+
 	cef->add_popup_whitelist_url(
 			"https://twitch.tv/popout/frankerfacez/chat?ffz-settings",
 			this);
@@ -194,6 +197,8 @@ static const char *referrer_script2 = "'; }});";
 
 void TwitchAuth::LoadUI()
 {
+	if (!cef)
+		return;
 	if (uiLoaded)
 		return;
 	if (!GetChannelInfo())