Changeset View
Changeset View
Standalone View
Standalone View
plugins/python/tenbrushes/tenbrushes.py
Show All 15 Lines | |||||
16 | class TenBrushesExtension(krita.Extension): | 16 | class TenBrushesExtension(krita.Extension): | ||
17 | 17 | | |||
18 | def __init__(self, parent): | 18 | def __init__(self, parent): | ||
19 | super(TenBrushesExtension, self).__init__(parent) | 19 | super(TenBrushesExtension, self).__init__(parent) | ||
20 | 20 | | |||
21 | self.actions = [] | 21 | self.actions = [] | ||
22 | self.buttons = [] | 22 | self.buttons = [] | ||
23 | self.selectedPresets = [] | 23 | self.selectedPresets = [] | ||
24 | # Indicates whether we want to activate the previous-selected brush | ||||
25 | # on the second press of the shortcut | ||||
26 | self.activatePrev = True | ||||
24 | self.oldPreset = None | 27 | self.oldPreset = None | ||
25 | 28 | | |||
26 | def setup(self): | 29 | def setup(self): | ||
27 | self.readSettings() | 30 | self.readSettings() | ||
28 | 31 | | |||
29 | def createActions(self, window): | 32 | def createActions(self, window): | ||
30 | action = window.createAction("ten_brushes", i18n("Ten Brushes")) | 33 | action = window.createAction("ten_brushes", i18n("Ten Brushes")) | ||
31 | action.setToolTip(i18n("Assign ten brush presets to ten shortcuts.")) | 34 | action.setToolTip(i18n("Assign ten brush presets to ten shortcuts.")) | ||
32 | action.triggered.connect(self.initialize) | 35 | action.triggered.connect(self.initialize) | ||
33 | self.loadActions(window) | 36 | self.loadActions(window) | ||
34 | 37 | | |||
35 | def initialize(self): | 38 | def initialize(self): | ||
36 | self.uitenbrushes = uitenbrushes.UITenBrushes() | 39 | self.uitenbrushes = uitenbrushes.UITenBrushes() | ||
37 | self.uitenbrushes.initialize(self) | 40 | self.uitenbrushes.initialize(self) | ||
38 | 41 | | |||
39 | def readSettings(self): | 42 | def readSettings(self): | ||
40 | self.selectedPresets = Application.readSetting("", "tenbrushes", "").split(',') | 43 | self.selectedPresets = Application.readSetting("", "tenbrushes", "").split(',') | ||
44 | setting = Application.readSetting("", "tenbrushesActivatePrev2ndPress", "True") | ||||
45 | # we should not get anything other than 'True' and 'False' | ||||
46 | self.activatePrev = setting == 'True' | ||||
41 | 47 | | |||
42 | def writeSettings(self): | 48 | def writeSettings(self): | ||
43 | presets = [] | 49 | presets = [] | ||
44 | 50 | | |||
45 | for index, button in enumerate(self.buttons): | 51 | for index, button in enumerate(self.buttons): | ||
46 | self.actions[index].preset = button.preset | 52 | self.actions[index].preset = button.preset | ||
47 | presets.append(button.preset) | 53 | presets.append(button.preset) | ||
48 | Application.writeSetting("", "tenbrushes", ','.join(map(str, presets))) | 54 | Application.writeSetting("", "tenbrushes", ','.join(map(str, presets))) | ||
55 | Application.writeSetting("", "tenbrushesActivatePrev2ndPress", | ||||
56 | str(self.activatePrev)) | ||||
49 | 57 | | |||
50 | def loadActions(self, window): | 58 | def loadActions(self, window): | ||
51 | allPresets = Application.resources("preset") | 59 | allPresets = Application.resources("preset") | ||
52 | 60 | | |||
53 | for index, item in enumerate(['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']): | 61 | for index, item in enumerate(['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']): | ||
54 | action = window.createAction("activate_preset_" + item, str(i18n("Activate Brush Preset {num}")).format(num=item), "") | 62 | action = window.createAction("activate_preset_" + item, str(i18n("Activate Brush Preset {num}")).format(num=item), "") | ||
55 | action.triggered.connect(self.activatePreset) | 63 | action.triggered.connect(self.activatePreset) | ||
56 | 64 | | |||
57 | if index < len(self.selectedPresets) and self.selectedPresets[index] in allPresets: | 65 | if index < len(self.selectedPresets) and self.selectedPresets[index] in allPresets: | ||
58 | action.preset = self.selectedPresets[index] | 66 | action.preset = self.selectedPresets[index] | ||
59 | else: | 67 | else: | ||
60 | action.preset = None | 68 | action.preset = None | ||
61 | 69 | | |||
62 | self.actions.append(action) | 70 | self.actions.append(action) | ||
63 | 71 | | |||
64 | def activatePreset(self): | 72 | def activatePreset(self): | ||
65 | allPresets = Application.resources("preset") | 73 | allPresets = Application.resources("preset") | ||
66 | if Application.activeWindow() and len(Application.activeWindow().views()) > 0 and self.sender().preset in allPresets: | 74 | if Application.activeWindow() and len(Application.activeWindow().views()) > 0 and self.sender().preset in allPresets: | ||
67 | currentPreset = Application.activeWindow().views()[0].currentBrushPreset() | 75 | currentPreset = Application.activeWindow().views()[0].currentBrushPreset() | ||
68 | if self.sender().preset == currentPreset.name(): | 76 | if self.activatePrev and self.sender().preset == currentPreset.name(): | ||
69 | Application.activeWindow().views()[0].activateResource(self.oldPreset) | 77 | Application.activeWindow().views()[0].activateResource(self.oldPreset) | ||
70 | else: | 78 | else: | ||
71 | self.oldPreset = Application.activeWindow().views()[0].currentBrushPreset() | 79 | self.oldPreset = Application.activeWindow().views()[0].currentBrushPreset() | ||
72 | Application.activeWindow().views()[0].activateResource(allPresets[self.sender().preset]) | 80 | Application.activeWindow().views()[0].activateResource(allPresets[self.sender().preset]) | ||
73 | 81 | | |||
74 | 82 | | |||
75 | Scripter.addExtension(TenBrushesExtension(Application)) | 83 | Scripter.addExtension(TenBrushesExtension(Application)) |