Updated copyright for 2024.
10248
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1
|
# -*- coding: utf-8 -*- |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2
|
|
10439
|
3
|
# Copyright (c) 2023 - 2024 Detlev Offenbach <detlev@die-offenbachs.de> |
10248
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4
|
# |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7
|
Module implementing a proxy style to allow item selection by single/double click or |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8
|
platform default. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11
|
from PyQt6.QtCore import Qt |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12
|
from PyQt6.QtWidgets import QApplication, QProxyStyle, QStyle |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14
|
from eric7 import Preferences |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17
|
class EricProxyStyle(QProxyStyle): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19
|
Class implementing a proxy style to allow item selection by single/double click or |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20
|
platform default. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23
|
def styleHint(self, hint, option=None, widget=None, returnData=None): |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25
|
Public method returning a style hint for the given widget described by the |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26
|
provided style option. |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28
|
@param hint style hint to be determined |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29
|
@type QStyle.StyleHint |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30
|
@param option style option (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31
|
@type QStyleOption (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32
|
@param widget reference to the widget (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33
|
@type QWidget (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34
|
@param returnData data structure to return more data (defaults to None) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35
|
@type QStyleHintReturn (optional) |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36
|
@return integer representing the style hint |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37
|
@rtype int |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38
|
""" |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39
|
if hint == QStyle.StyleHint.SH_ItemView_ActivateItemOnSingleClick: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40
|
# Activate item with a single click? |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41
|
activate = Preferences.getUI("ActivateItemOnSingleClick") |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42
|
if QApplication.keyboardModifiers() == Qt.KeyboardModifier.NoModifier: |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43
|
if activate == "singleclick": |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44
|
return 1 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45
|
elif activate == "doubleclick": |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46
|
return 0 |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47
|
|
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48
|
# return the default style hint |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49
|
return super().styleHint( |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50
|
hint, option=option, widget=widget, returnData=returnData |
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51
|
) |