src/eric7/Preferences/ConfigurationPages/MimeTypesPage.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.

4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10929
diff changeset
3 # Copyright (c) 2006 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Text Mime Types configuration page.
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
10 from PyQt6.QtCore import pyqtSlot
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
12 from eric7 import Preferences
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
13 from eric7.EricWidgets import EricMessageBox
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from .ConfigurationPageBase import ConfigurationPageBase
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from .Ui_MimeTypesPage import Ui_MimeTypesPage
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class MimeTypesPage(ConfigurationPageBase, Ui_MimeTypesPage):
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class implementing the Text Mime Types configuration page.
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
23
6380
4a932a7ab987 Configuration pages: corrected the constructor of some configuration pages.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
24 def __init__(self):
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Constructor
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
28 super().__init__()
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 self.setupUi(self)
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 self.setObjectName("MimeTypesPage")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
32 self.textMimeTypesList.setResetVisible(True)
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
33 self.textMimeTypesList.setDefaultVisible(True)
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
34 self.textMimeTypesList.setToDefault.connect(self.__setMimeTypesToDefault)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
35
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
36 self.textFilePatternsList.setResetVisible(True)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
37 self.textFilePatternsList.setDefaultVisible(True)
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
38 self.textFilePatternsList.setToDefault.connect(self.__setFilePatternsToDefault)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 # set initial values
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41 self.textMimeTypesList.setList(Preferences.getUI("TextMimeTypes"))
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
42 self.textFilePatternsList.setList(Preferences.getUI("TextFilePatterns"))
9534
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
43 self.loadUnknownCheckBox.setChecked(
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
44 Preferences.getUI("LoadUnknownMimeTypeFiles")
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
45 )
10929
edfd452bb9be Added a configuration option on the "Mime Types" configuration page to ask the user, if a file type cannot be determined as being a text file to be opened in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10683
diff changeset
46 self.askUserCheckBox.setChecked(Preferences.getUI("TextMimeTypesAskUser"))
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
47
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 def save(self):
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 Public slot to save the Interface configuration.
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Preferences.setUI("TextMimeTypes", self.textMimeTypesList.getList())
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
53 Preferences.setUI("TextFilePatterns", self.textFilePatternsList.getList())
9534
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
54 Preferences.setUI(
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
55 "LoadUnknownMimeTypeFiles",
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
56 self.loadUnknownCheckBox.isChecked(),
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
57 )
10929
edfd452bb9be Added a configuration option on the "Mime Types" configuration page to ask the user, if a file type cannot be determined as being a text file to be opened in the editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10683
diff changeset
58 Preferences.setUI("TextMimeTypesAskUser", self.askUserCheckBox.isChecked())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
59
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 @pyqtSlot()
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
61 def __setMimeTypesToDefault(self):
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
62 """
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
63 Private slot to set the mimetypes list to the default values.
5858
7afdb26fcabc Added capability to reset to default to the message filter dialog and the mimetypes configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
64 """
9534
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
65 ok = (
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
66 True
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
67 if self.textMimeTypesList.isListEmpty()
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
68 else EricMessageBox.yesNo(
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
69 self,
9564
f413aee05c4d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
70 self.tr("Set Mime Types To Default"),
9534
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
71 self.tr(
9564
f413aee05c4d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
72 """Do you really want to set the configured list of"""
f413aee05c4d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
73 """ mime types to the default value?"""
9534
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
74 ),
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
75 )
5ed8445f3b31 Improved the file type determination (i.e. is it text) and added a configurable option to even load files, whose type cannot be determine as being text.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
76 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
77
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 if ok:
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.textMimeTypesList.setList(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80 Preferences.Prefs.uiDefaults["TextMimeTypes"]
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
81 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
83 @pyqtSlot()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
84 def __setFilePatternsToDefault(self):
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
85 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
86 Private slot to set the file patterns list to the default values.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
87 """
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
88 ok = (
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
89 True
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
90 if self.textFilePatternsList.isListEmpty()
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
91 else EricMessageBox.yesNo(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
92 self,
9564
f413aee05c4d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
93 self.tr("Set File Patterns To Default"),
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
94 self.tr(
9564
f413aee05c4d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
95 """Do you really want to set the configured list of"""
f413aee05c4d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9563
diff changeset
96 """ text file patterns to the default value?"""
9563
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
97 ),
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
98 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
99 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
100
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
101 if ok:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
102 self.textFilePatternsList.setList(
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
103 Preferences.Prefs.uiDefaults["TextFilePatterns"]
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
104 )
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9534
diff changeset
105
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
107 def create(_dlg):
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 Module function to create the configuration page.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
110
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
111 @param _dlg reference to the configuration dialog (unused)
10428
a071d4065202 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
112 @type ConfigurationDialog
a071d4065202 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
113 @return reference to the instantiated page
a071d4065202 Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
114 @rtype ConfigurationPageBase
4097
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 """
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 page = MimeTypesPage()
ad2a6bd965d9 Added a configuration page to edit the list of mime types to be opened in an eric editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 return page

eric ide

mercurial