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)
|
QWidget, QSizePolicy, QBrush, QPixmap, QSize, QPushButton, QVBoxLayout)
|
||||||
|
|
||||||
from calibre import human_readable
|
from calibre import human_readable
|
||||||
|
from calibre.constants import islinux, isbsd
|
||||||
from calibre.gui2.preferences import ConfigWidgetBase, test_widget, CommaSeparatedList
|
from calibre.gui2.preferences import ConfigWidgetBase, test_widget, CommaSeparatedList
|
||||||
from calibre.gui2.preferences.look_feel_ui import Ui_Form
|
from calibre.gui2.preferences.look_feel_ui import Ui_Form
|
||||||
from calibre.gui2 import config, gprefs, qt_app, open_local_file, question_dialog
|
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('show_avg_rating', config)
|
||||||
r('disable_animations', config)
|
r('disable_animations', config)
|
||||||
r('systray_icon', config, restart_required=True)
|
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('show_splash_screen', gprefs)
|
||||||
r('disable_tray_notification', config)
|
r('disable_tray_notification', config)
|
||||||
r('use_roman_numerals_for_series_number', config)
|
r('use_roman_numerals_for_series_number', config)
|
||||||
|
@ -21,7 +21,7 @@ from PyQt5.Qt import (Qt, QTimer, QHelpEvent, QAction,
|
|||||||
QDialog, QSystemTrayIcon, QApplication)
|
QDialog, QSystemTrayIcon, QApplication)
|
||||||
|
|
||||||
from calibre import prints, force_unicode
|
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.config import prefs, dynamic
|
||||||
from calibre.utils.ipc.server import Server
|
from calibre.utils.ipc.server import Server
|
||||||
from calibre.db.legacy import LibraryDatabase
|
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.setToolTip('calibre')
|
||||||
self.system_tray_icon.tooltip_requested.connect(
|
self.system_tray_icon.tooltip_requested.connect(
|
||||||
self.job_manager.show_tooltip)
|
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()
|
self.system_tray_icon.hide()
|
||||||
else:
|
else:
|
||||||
self.system_tray_icon.show()
|
self.system_tray_icon.show()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user