src/eric7/EricWidgets/EricProxyStyle.py

Sat, 26 Apr 2025 12:34:32 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 26 Apr 2025 12:34:32 +0200
branch
eric7
changeset 11240
c48c615c04a3
parent 11090
f5f5f5803935
permissions
-rw-r--r--

MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.

10248
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10933
diff changeset
3 # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10248
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a proxy style to allow item selection by single/double click or
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 platform default.
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtCore import Qt
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt6.QtWidgets import QApplication, QProxyStyle, QStyle
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 class EricProxyStyle(QProxyStyle):
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 Class implementing a proxy style to allow item selection by single/double click or
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 platform default.
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
10933
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
21 def __init__(self, style=None, itemClickBehavior="default"):
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
22 """
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
23 Constructor
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
24
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
25 @param style style object or style name or None for the default native style
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
26 (defaults to None)
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
27 @type QStyle, str or None (optional)
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
28 @param itemClickBehavior string describing the item activation behavior (one of
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
29 "default", "doubleclick" or "singleclick") (defaults to "default")
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
30 @type str (optional)
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
31 """
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
32 super().__init__(style)
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
33
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
34 self.__itemClickBehavior = itemClickBehavior
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
35
10248
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 def styleHint(self, hint, option=None, widget=None, returnData=None):
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Public method returning a style hint for the given widget described by the
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 provided style option.
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @param hint style hint to be determined
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @type QStyle.StyleHint
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @param option style option (defaults to None)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @type QStyleOption (optional)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @param widget reference to the widget (defaults to None)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @type QWidget (optional)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param returnData data structure to return more data (defaults to None)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @type QStyleHintReturn (optional)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @return integer representing the style hint
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @rtype int
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
10933
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
52 if (
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
53 hint == QStyle.StyleHint.SH_ItemView_ActivateItemOnSingleClick
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
54 and QApplication.keyboardModifiers() == Qt.KeyboardModifier.NoModifier
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
55 ):
10248
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 # Activate item with a single click?
10933
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
57 if self.__itemClickBehavior == "singleclick":
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
58 return 1
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
59 elif self.__itemClickBehavior == "doubleclick":
95a15b70f7bb Refactored some packages, modules and code to allow extracting the 'EricXxx' packages into a library project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
60 return 0
10248
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 # return the default style hint
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 return super().styleHint(
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 hint, option=option, widget=widget, returnData=returnData
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 )

eric ide

mercurial