diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 55dbba34..7d9a8902 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -17,6 +17,7 @@
#include <QApplication>
#include <QLayout>
+#include <QPluginLoader>
#include <QSettings>
#include <QShortcut>
@@ -112,7 +113,11 @@ MainWindow::MainWindow(QWidget *parent)
connect(
userSettingsPage_, SIGNAL(trayOptionChanged(bool)), trayIcon_, SLOT(setVisible(bool)));
-
+ connect(userSettingsPage_, &UserSettingsPage::themeChanged, this, []() {
+ Cache::clearUserColors();
+ });
+ connect(
+ userSettingsPage_, &UserSettingsPage::themeChanged, chat_page_, &ChatPage::themeChanged);
connect(trayIcon_,
SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this,
@@ -162,6 +167,10 @@ MainWindow::MainWindow(QWidget *parent)
showChatPage();
}
+
+ if (loadJdenticonPlugin()) {
+ nhlog::ui()->info("loaded jdenticon.");
+ }
}
void
@@ -475,3 +484,27 @@ MainWindow::showDialog(QWidget *dialog)
dialog->raise();
dialog->show();
}
+
+bool
+MainWindow::loadJdenticonPlugin()
+{
+ QDir pluginsDir(qApp->applicationDirPath());
+
+ bool plugins = pluginsDir.cd("plugins");
+ if (plugins) {
+ foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
+ QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
+ QObject *plugin = pluginLoader.instance();
+ if (plugin) {
+ jdenticonInteface_ = qobject_cast<JdenticonInterface *>(plugin);
+ if (jdenticonInteface_) {
+ nhlog::ui()->info("Found jdenticon plugin.");
+ return true;
+ }
+ }
+ }
+ }
+
+ nhlog::ui()->info("jdenticon plugin not found.");
+ return false;
+}
\ No newline at end of file
|