diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py
index 22d0349f8..cc2d02ff3 100644
--- a/openlp/plugins/remotes/lib/httpserver.py
+++ b/openlp/plugins/remotes/lib/httpserver.py
@@ -38,9 +38,10 @@ import os
import logging
import time
-from PyQt4 import QtCore
+from PyQt4 import QtCore, QtGui
-from openlp.core.common import AppLocation, Settings
+from openlp.core.common import AppLocation, Settings, RegistryProperties
+from openlp.core.lib import build_icon
from openlp.plugins.remotes.lib import HttpRouter
@@ -95,12 +96,13 @@ class HttpThread(QtCore.QThread):
self.http_server.start_server()
-class OpenLPServer():
+class OpenLPServer(RegistryProperties):
def __init__(self):
"""
Initialise the http server, and start the server of the correct type http / https
"""
- log.debug('Initialise httpserver')
+ super(OpenLPServer, self).__init__()
+ log.debug('Initialise OpenLP')
self.settings_section = 'remotes'
self.http_thread = HttpThread(self)
self.http_thread.start()
@@ -112,25 +114,47 @@ class OpenLPServer():
address = Settings().value(self.settings_section + '/ip address')
if Settings().value(self.settings_section + '/https enabled'):
port = Settings().value(self.settings_section + '/https port')
- self.httpd = HTTPSServer((address, port), CustomHandler)
- log.debug('Started ssl httpd...')
+ self.start_server_instance(address, port, HTTPSServer)
else:
port = Settings().value(self.settings_section + '/port')
- loop = 1
- while loop < 3:
- try:
- self.httpd = ThreadingHTTPServer((address, port), CustomHandler)
- except OSError:
- loop += 1
- time.sleep(0.1)
- except:
- log.error('Failed to start server ')
- log.debug('Started non ssl httpd...')
+ self.start_server_instance(address, port, ThreadingHTTPServer)
if hasattr(self, 'httpd') and self.httpd:
self.httpd.serve_forever()
+ icon = QtGui.QImage(':/remote/network_server.png')
+ icon = icon.scaled(80, 80, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
+ overlay = QtGui.QImage(':/remote/network_ssl.png')
+ overlay = overlay.scaled(40, 40, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
+ painter = QtGui.QPainter(icon)
+ painter.drawImage(0, 0, overlay)
+ painter.end()
+ print("Hi")
+ self.default_theme_label.setText("hello")
+ self.default_theme_label.setIcon(build_icon(icon))
+ self.default_theme_label.show()
else:
log.debug('Failed to start server')
+ def start_server_instance(self, address, port, server_class):
+ """
+ Start the server
+
+ :param address: The server address
+ :param port: The run port
+ :param server_class: the class to start
+ """
+ loop = 1
+ while loop < 4:
+ try:
+ self.httpd = server_class((address, port), CustomHandler)
+ log.debug("Server started for class %s %s %d" % (server_class, address, port))
+ except OSError:
+ log.debug("failed to start http server thread state %d %s" %
+ (loop, self.http_thread.isRunning() is True))
+ loop += 1
+ time.sleep(0.1)
+ except:
+ log.error('Failed to start server ')
+
def stop_server(self):
"""
Stop the server
diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py
index 393f08dd9..0e3825bdd 100644
--- a/openlp/plugins/remotes/remoteplugin.py
+++ b/openlp/plugins/remotes/remoteplugin.py
@@ -30,6 +30,8 @@
import logging
import time
+from PyQt4 import QtGui
+
from openlp.core.lib import Plugin, StringContent, translate, build_icon
from openlp.plugins.remotes.lib import RemoteTab, OpenLPServer
@@ -67,6 +69,13 @@ class RemotesPlugin(Plugin):
log.debug('initialise')
super(RemotesPlugin, self).initialise()
self.server = OpenLPServer()
+ self.default_theme_label = QtGui.QToolButton(self.main_window.status_bar)
+ self.default_theme_label.setCheckable(False)
+ self.default_theme_label.setAutoRaise(True)
+ self.default_theme_label.setObjectName('default_theme_label')
+ self.main_window.status_bar.insertPermanentWidget(2, self.default_theme_label)
+ self.default_theme_label.hide()
+ self.server.default_theme_label = self.default_theme_label
def finalise(self):
"""
@@ -108,5 +117,5 @@ class RemotesPlugin(Plugin):
"""
log.debug('remote config changed')
self.finalise()
- time.sleep(0.5)
+ time.sleep(1)
self.initialise()
diff --git a/resources/images/network_auth.png b/resources/images/network_auth.png
new file mode 100644
index 000000000..45e7a5c17
Binary files /dev/null and b/resources/images/network_auth.png differ
diff --git a/resources/images/network_server.png b/resources/images/network_server.png
new file mode 100644
index 000000000..25b95f3b0
Binary files /dev/null and b/resources/images/network_server.png differ
diff --git a/resources/images/network_ssl.png b/resources/images/network_ssl.png
new file mode 100644
index 000000000..1169de67a
Binary files /dev/null and b/resources/images/network_ssl.png differ
diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc
index 6af0e77a5..79036f08f 100644
--- a/resources/images/openlp-2.qrc
+++ b/resources/images/openlp-2.qrc
@@ -149,6 +149,11 @@
messagebox_info.png
messagebox_warning.png
+
+ network_server.png
+ network_ssl.png
+ network_auth.png
+
song_usage_active.png
song_usage_inactive.png