mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-08 06:00:51 -07:00
Show missing pyobjc module message on MacOS menu bar setting
This commit is contained in:
parent
451feda86b
commit
89307dad01
4 changed files with 19 additions and 12 deletions
|
@ -257,15 +257,12 @@ def main():
|
||||||
plexpy.HTTP_ROOT)
|
plexpy.HTTP_ROOT)
|
||||||
|
|
||||||
if common.PLATFORM == 'Darwin' and plexpy.CONFIG.SYS_TRAY_ICON:
|
if common.PLATFORM == 'Darwin' and plexpy.CONFIG.SYS_TRAY_ICON:
|
||||||
try:
|
if not macos.HAS_PYOBJC:
|
||||||
import AppKit
|
|
||||||
import Foundation
|
|
||||||
except ImportError:
|
|
||||||
logger.warn("The pyobjc module is missing. Install this "
|
logger.warn("The pyobjc module is missing. Install this "
|
||||||
"module to enable the menu bar icon.")
|
"module to enable the MacOS menu bar icon.")
|
||||||
plexpy.CONFIG.SYS_TRAY_ICON = False
|
plexpy.CONFIG.SYS_TRAY_ICON = False
|
||||||
|
|
||||||
if plexpy.CONFIG.SYS_TRAY_ICON and macos.has_rumps:
|
if plexpy.CONFIG.SYS_TRAY_ICON:
|
||||||
# MacOS menu bar icon must be run on the main thread and is blocking
|
# MacOS menu bar icon must be run on the main thread and is blocking
|
||||||
# Start the rest of Tautulli on a new thread
|
# Start the rest of Tautulli on a new thread
|
||||||
threading.Thread(target=wait).start()
|
threading.Thread(target=wait).start()
|
||||||
|
|
|
@ -2161,7 +2161,7 @@ div.advanced-setting {
|
||||||
li.advanced-setting {
|
li.advanced-setting {
|
||||||
border-left: 1px solid #cc7b19;
|
border-left: 1px solid #cc7b19;
|
||||||
}
|
}
|
||||||
.docker-setting {
|
.setting-message {
|
||||||
color: #cc7b19;
|
color: #cc7b19;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
from plexpy.helpers import anon_url, checked
|
from plexpy.helpers import anon_url, checked
|
||||||
|
|
||||||
docker_setting = 'disabled' if plexpy.DOCKER else ''
|
docker_setting = 'disabled' if plexpy.DOCKER else ''
|
||||||
docker_msg = '<span class="docker-setting small">(Controlled by Docker Container)</span>' if plexpy.DOCKER else ''
|
docker_msg = '<span class="setting-message small">(Controlled by Docker Container)</span>' if plexpy.DOCKER else ''
|
||||||
|
|
||||||
available_notification_agents = sorted(notifiers.available_notification_agents(), key=lambda k: k['label'].lower())
|
available_notification_agents = sorted(notifiers.available_notification_agents(), key=lambda k: k['label'].lower())
|
||||||
available_newsletter_agents = sorted(newsletters.available_newsletter_agents(), key=lambda k: k['label'].lower())
|
available_newsletter_agents = sorted(newsletters.available_newsletter_agents(), key=lambda k: k['label'].lower())
|
||||||
|
@ -460,10 +460,16 @@
|
||||||
% if common.PLATFORM in ('Windows', 'Darwin'):
|
% if common.PLATFORM in ('Windows', 'Darwin'):
|
||||||
<%
|
<%
|
||||||
tray = {'Windows': 'System Tray', 'Darwin': 'Menu Bar'}
|
tray = {'Windows': 'System Tray', 'Darwin': 'Menu Bar'}
|
||||||
|
tray_disabled = tray_disabled_msg = ''
|
||||||
|
if common.PLATFORM == 'Darwin':
|
||||||
|
from plexpy.macos import HAS_PYOBJC
|
||||||
|
if not HAS_PYOBJC:
|
||||||
|
tray_disabled = 'disabled'
|
||||||
|
tray_disabled_msg = '<span class="setting-message small">(Missing pyobjc module)</span>'
|
||||||
%>
|
%>
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<label>
|
<label>
|
||||||
<input type="checkbox" class="http-settings" name="sys_tray_icon" id="sys_tray_icon" value="1" ${config['sys_tray_icon']}> Enable ${tray[common.PLATFORM]} Icon
|
<input type="checkbox" class="http-settings" name="sys_tray_icon" id="sys_tray_icon" value="1" ${config['sys_tray_icon']} ${tray_disabled}> Enable ${tray[common.PLATFORM]} Icon ${tray_disabled_msg | n}
|
||||||
</label>
|
</label>
|
||||||
<p class="help-block">Show Tautulli shortcut in the ${tray[common.PLATFORM].lower()}.</p>
|
<p class="help-block">Show Tautulli shortcut in the ${tray[common.PLATFORM].lower()}.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -21,10 +21,14 @@ import sys
|
||||||
import plistlib
|
import plistlib
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import rumps
|
import AppKit
|
||||||
has_rumps = True
|
import Foundation
|
||||||
|
HAS_PYOBJC = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
has_rumps = False
|
HAS_PYOBJC = False
|
||||||
|
|
||||||
|
if HAS_PYOBJC:
|
||||||
|
import rumps
|
||||||
|
|
||||||
import plexpy
|
import plexpy
|
||||||
if plexpy.PYTHON2:
|
if plexpy.PYTHON2:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue