src/eric7/EricWidgets/EricProxyStyle.py

Sat, 23 Dec 2023 15:48:12 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 23 Dec 2023 15:48:12 +0100
branch
eric7
changeset 10439
21c28b0f9e41
parent 10248
981456110843
child 10933
95a15b70f7bb
permissions
-rw-r--r--

Updated copyright for 2024.

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
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10248
diff changeset
3 # Copyright (c) 2023 - 2024 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 from eric7 import Preferences
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
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 EricProxyStyle(QProxyStyle):
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 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
20 platform default.
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 def styleHint(self, hint, option=None, widget=None, returnData=None):
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Public method returning a style hint for the given widget described by the
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 provided style option.
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @param hint style hint to be determined
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @type QStyle.StyleHint
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 @param option style option (defaults to None)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @type QStyleOption (optional)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @param widget reference to the widget (defaults to None)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @type QWidget (optional)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param returnData data structure to return more data (defaults to None)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @type QStyleHintReturn (optional)
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @return integer representing the style hint
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @rtype int
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 if hint == QStyle.StyleHint.SH_ItemView_ActivateItemOnSingleClick:
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 # Activate item with a single click?
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 activate = Preferences.getUI("ActivateItemOnSingleClick")
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 if QApplication.keyboardModifiers() == Qt.KeyboardModifier.NoModifier:
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 if activate == "singleclick":
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 return 1
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 elif activate == "doubleclick":
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 return 0
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 # return the default style hint
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 return super().styleHint(
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 hint, option=option, widget=widget, returnData=returnData
981456110843 General
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 )

eric ide

mercurial