13 from PyQt5.QtCore import pyqtSlot, Qt |
13 from PyQt5.QtCore import pyqtSlot, Qt |
14 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolButton, QFrame, QMenu, \ |
14 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QToolButton, QFrame, QMenu, \ |
15 QSizePolicy, QScrollArea |
15 QSizePolicy, QScrollArea |
16 |
16 |
17 import UI.PixmapCache |
17 import UI.PixmapCache |
|
18 import Preferences |
18 |
19 |
19 from . import MarkupProviders |
20 from . import MarkupProviders |
20 |
21 |
21 |
22 |
22 class EditorButtonsWidget(QWidget): |
23 class EditorButtonsWidget(QWidget): |
49 self.__editor = editor |
50 self.__editor = editor |
50 self.__editor.languageChanged.connect(self.__updateButtonStates) |
51 self.__editor.languageChanged.connect(self.__updateButtonStates) |
51 self.__editor.editorSaved.connect(self.__updateButtonStates) |
52 self.__editor.editorSaved.connect(self.__updateButtonStates) |
52 self.__editor.editorRenamed.connect(self.__updateButtonStates) |
53 self.__editor.editorRenamed.connect(self.__updateButtonStates) |
53 self.__editor.selectionChanged.connect(self.__editorSelectionChanged) |
54 self.__editor.selectionChanged.connect(self.__editorSelectionChanged) |
|
55 self.__editor.settingsRead.connect(self.__editorSettingsRead) |
54 |
56 |
55 self.__createButtons() |
57 self.__createButtons() |
56 |
58 |
57 self.__layout.addStretch() |
59 self.__layout.addStretch() |
58 |
60 |
281 self.__buttons["numberedList"].setEnabled( |
283 self.__buttons["numberedList"].setEnabled( |
282 self.__provider.hasNumberedList()) |
284 self.__provider.hasNumberedList()) |
283 |
285 |
284 self.__editorSelectionChanged() |
286 self.__editorSelectionChanged() |
285 |
287 |
286 # TODO: make this configurable |
288 if Preferences.getEditor("HideFormatButtons"): |
287 self.setVisible(self.__provider.kind() != "none") |
289 self.setVisible(self.__provider.kind() != "none") |
288 |
290 |
289 def __formatClicked(self, format): |
291 def __formatClicked(self, format): |
290 """ |
292 """ |
291 Private slot to handle a format button being clicked. |
293 Private slot to handle a format button being clicked. |
292 |
294 |
347 self.__provider.hasHyperlink() and not hasSelection) |
349 self.__provider.hasHyperlink() and not hasSelection) |
348 self.__buttons["line"].setEnabled( |
350 self.__buttons["line"].setEnabled( |
349 self.__provider.hasLine() and not hasSelection) |
351 self.__provider.hasLine() and not hasSelection) |
350 self.__buttons["image"].setEnabled( |
352 self.__buttons["image"].setEnabled( |
351 self.__provider.hasImage() and not hasSelection) |
353 self.__provider.hasImage() and not hasSelection) |
|
354 |
|
355 def __editorSettingsRead(self): |
|
356 """ |
|
357 Private slot to handle a change of the editor related settings. |
|
358 """ |
|
359 if Preferences.getEditor("HideFormatButtons"): |
|
360 if self.__provider is not None: |
|
361 self.setVisible(self.__provider.kind() != "none") |
|
362 else: |
|
363 self.setVisible(True) |