|
14 | 14 | from contextlib import ExitStack, closing |
15 | 15 |
|
16 | 16 | from AnyQt.QtGui import QFont, QColor, QPalette |
17 | | -from AnyQt.QtCore import Qt, QSettings, QTimer, QUrl, QDir |
| 17 | +from AnyQt.QtCore import Qt, QSettings, QTimer, QUrl, QDir, QObject, QEvent |
| 18 | +from AnyQt.QtWidgets import QWidget |
18 | 19 |
|
19 | 20 | from orangecanvas import localization |
20 | 21 | from .utils.after_exit import run_after_exit |
@@ -97,6 +98,18 @@ def activate_default_config(self): |
97 | 98 | # Init config |
98 | 99 | config.init() |
99 | 100 |
|
| 101 | + def install_shadow_remover(self): |
| 102 | + class ShadowRemover(QObject): |
| 103 | + def eventFilter(self, obj, event): |
| 104 | + if event.type() == QEvent.Type.Polish: |
| 105 | + if isinstance(obj, QWidget) and obj.isWindow(): |
| 106 | + obj.setWindowFlags( |
| 107 | + obj.windowFlags() | Qt.WindowType.NoDropShadowWindowHint) |
| 108 | + return super().eventFilter(obj, event) |
| 109 | + |
| 110 | + self.__remover = ShadowRemover() |
| 111 | + self.application.installEventFilter(self.__remover) |
| 112 | + |
100 | 113 | def show_splash_message(self, message: str, color=QColor()): |
101 | 114 | """Display splash screen message""" |
102 | 115 | splash = self.splash_screen() |
@@ -201,6 +214,8 @@ def run(self, argv: List[str]) -> int: |
201 | 214 | with ExitStack() as stack: |
202 | 215 | self.stack = stack |
203 | 216 | self.setup_application() |
| 217 | + if self.options.no_shadow: |
| 218 | + self.install_shadow_remover() |
204 | 219 | stack.callback(self.tear_down_application) |
205 | 220 | self.setup_sys_redirections() |
206 | 221 | stack.callback(self.tear_down_sys_redirections) |
@@ -526,6 +541,11 @@ def log_level(value): |
526 | 541 | type=str, default=None, |
527 | 542 | ) |
528 | 543 |
|
| 544 | + parser.add_argument( |
| 545 | + "--no-shadow", help="Disable drop shadows in the UI", |
| 546 | + action="store_true", default=False |
| 547 | + ) |
| 548 | + |
529 | 549 | deprecated = parser.add_argument_group("Deprecated") |
530 | 550 | deprecated.add_argument( |
531 | 551 | "--qt", help="Additional arguments for QApplication.\nDeprecated. " |
|
0 commit comments