diff --git a/.gitmodules b/.gitmodules
index 28a1b9d6..30dbba83 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -26,3 +26,6 @@
[submodule "lib/rapidjson"]
path = lib/rapidjson
url = https://github.com/Tencent/rapidjson
+[submodule "lib/qtkeychain"]
+ path = lib/qtkeychain
+ url = https://github.com/frankosterfeld/qtkeychain
diff --git a/chatterino.pro b/chatterino.pro
index a1ef3933..d2dbc118 100644
--- a/chatterino.pro
+++ b/chatterino.pro
@@ -54,6 +54,7 @@ include(lib/settings.pri)
include(lib/serialize.pri)
include(lib/winsdk.pri)
include(lib/rapidjson.pri)
+include(lib/qtkeychain.pri)
exists( $$OUT_PWD/conanbuildinfo.pri ) {
message("Using conan packages")
@@ -79,6 +80,7 @@ SOURCES += \
src/BrowserExtension.cpp \
src/common/Channel.cpp \
src/common/CompletionModel.cpp \
+ src/common/Credentials.cpp \
src/common/DownloadManager.cpp \
src/common/Env.cpp \
src/common/LinkParser.cpp \
@@ -233,6 +235,7 @@ HEADERS += \
src/common/Common.hpp \
src/common/CompletionModel.hpp \
src/common/ConcurrentMap.hpp \
+ src/common/Credentials.hpp \
src/common/DownloadManager.hpp \
src/common/Env.hpp \
src/common/LinkParser.hpp \
diff --git a/lib/qtkeychain.pri b/lib/qtkeychain.pri
new file mode 100644
index 00000000..2ed6914f
--- /dev/null
+++ b/lib/qtkeychain.pri
@@ -0,0 +1 @@
+include(qtkeychain/qt5keychain.pri)
diff --git a/resources/resources_autogenerated.qrc b/resources/resources_autogenerated.qrc
index 9f0569e3..04deaf23 100644
--- a/resources/resources_autogenerated.qrc
+++ b/resources/resources_autogenerated.qrc
@@ -46,6 +46,7 @@
licenses/pajlada_settings.txt
licenses/pajlada_signals.txt
licenses/qt_lgpl-3.0.txt
+ licenses/qtkeychain.txt
licenses/rapidjson.txt
licenses/websocketpp.txt
pajaDank.png
diff --git a/src/widgets/settingspages/AboutPage.cpp b/src/widgets/settingspages/AboutPage.cpp
index a69da6ba..c59ffb6e 100644
--- a/src/widgets/settingspages/AboutPage.cpp
+++ b/src/widgets/settingspages/AboutPage.cpp
@@ -98,6 +98,9 @@ AboutPage::AboutPage()
addLicense(form.getElement(), "Websocketpp",
"https://www.zaphoyd.com/websocketpp/",
":/licenses/websocketpp.txt");
+ addLicense(form.getElement(), "QtKeychain",
+ "https://github.com/frankosterfeld/qtkeychain",
+ ":/licenses/qtkeychain.txt");
}
auto attributions = layout.emplace("Attributions...");