mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Linux: Disable the optional system tray icon in linux because of bugs in the system tray icon implementation in Qt 5 on linux. See #1360652 (calibre 2.0 system tray icon missing, cannot quit)
https://bugreports.qt-project.org/browse/QTBUG-31762
This commit is contained in:
parent
46832dea12
commit
3f290112a2
@ -14,6 +14,7 @@ from PyQt5.Qt import (
|
||||
QWidget, QSizePolicy, QBrush, QPixmap, QSize, QPushButton, QVBoxLayout)
|
||||
|
||||
from calibre import human_readable
|
||||
from calibre.constants import islinux, isbsd
|
||||
from calibre.gui2.preferences import ConfigWidgetBase, test_widget, CommaSeparatedList
|
||||
from calibre.gui2.preferences.look_feel_ui import Ui_Form
|
||||
from calibre.gui2 import config, gprefs, qt_app, open_local_file, question_dialog
|
||||
@ -179,6 +180,9 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
|
||||
r('show_avg_rating', config)
|
||||
r('disable_animations', config)
|
||||
r('systray_icon', config, restart_required=True)
|
||||
if islinux or isbsd:
|
||||
self.opt_systray_icon.setEnabled(False)
|
||||
self.opt_systray_icon.setText(_('System tray icon is disabled because of bugs in Qt 5'))
|
||||
r('show_splash_screen', gprefs)
|
||||
r('disable_tray_notification', config)
|
||||
r('use_roman_numerals_for_series_number', config)
|
||||
|
@ -21,7 +21,7 @@ from PyQt5.Qt import (Qt, QTimer, QHelpEvent, QAction,
|
||||
QDialog, QSystemTrayIcon, QApplication)
|
||||
|
||||
from calibre import prints, force_unicode
|
||||
from calibre.constants import __appname__, isosx, filesystem_encoding, DEBUG
|
||||
from calibre.constants import __appname__, isosx, filesystem_encoding, DEBUG, islinux, isbsd
|
||||
from calibre.utils.config import prefs, dynamic
|
||||
from calibre.utils.ipc.server import Server
|
||||
from calibre.db.legacy import LibraryDatabase
|
||||
@ -271,7 +271,10 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{
|
||||
self.system_tray_icon.setToolTip('calibre')
|
||||
self.system_tray_icon.tooltip_requested.connect(
|
||||
self.job_manager.show_tooltip)
|
||||
if not config['systray_icon']:
|
||||
systray_ok = config['systray_icon'] and not (islinux or isbsd)
|
||||
# System tray icons are broken on linux, see
|
||||
# https://bugreports.qt-project.org/browse/QTBUG-31762
|
||||
if not systray_ok:
|
||||
self.system_tray_icon.hide()
|
||||
else:
|
||||
self.system_tray_icon.show()
|
||||
|
Loading…
x
Reference in New Issue
Block a user