eric6/Preferences/ConfigurationPages/EditorLanguageTabIndentOverrideDialog.py

changeset 7278
1820a0344b62
child 7290
e54a0765c82e
equal deleted inserted replaced
7277:adecbc6335c5 7278:1820a0344b62
1 # -*- coding: utf-8 -*-
2
3 """
4 Module implementing a dialog to set the tab and indentation width override for
5 a language.
6 """
7
8 from PyQt5.QtCore import pyqtSlot
9 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
10
11 from .Ui_EditorLanguageTabIndentOverrideDialog import (
12 Ui_EditorLanguageTabIndentOverrideDialog
13 )
14
15
16 class EditorLanguageTabIndentOverrideDialog(
17 QDialog, Ui_EditorLanguageTabIndentOverrideDialog):
18 """
19 Class implementing a dialog to set the tab and indentation width override
20 for a language.
21 """
22 def __init__(self, *, editMode=False, languages=None, tabWidth=0,
23 indentWidth=0, parent=None):
24 """
25 Constructor
26
27 @param editMode flag indicating the edit mode (Note: in edit mode
28 the language is fixed)
29 @type bool
30 @param languages list of available languages
31 @type list of str
32 @param tabWidth tab width to be set
33 @type int
34 @param indentWidth indentation width to be set
35 @type int
36 @param parent reference to the parent widget
37 @type QWidget
38 """
39 super(EditorLanguageTabIndentOverrideDialog, self).__init__(parent)
40 self.setupUi(self)
41
42 if editMode:
43 self.languageComboBox.addItems(languages)
44 else:
45 self.languageComboBox.addItems([""] + sorted(languages))
46 self.tabWidthSpinBox.setValue(tabWidth)
47 self.indentWidthSpinBox.setValue(indentWidth)
48
49 def getData(self):
50 """
51 Public method to get the entered data.
52
53 @return tuple containing the language, the tab width and the
54 indentation width
55 @rtype tuple of (str, int, int)
56 """
57 return (
58 self.languageComboBox.currentText(),
59 self.tabWidthSpinBox.value(),
60 self.indentWidthSpinBox.value(),
61 )
62
63 @pyqtSlot(str)
64 def on_languageComboBox_currentIndexChanged(self, lang):
65 """
66 Private slot to handle the selection of a language.
67
68 @param lang selected language
69 @type str
70 """
71 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(
72 bool(lang))

eric ide

mercurial