Changeset View
Changeset View
Standalone View
Standalone View
krita/ui/kis_paintop_box.cc
Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Line(s) | |||||
74 | #include "widgets/kis_workspace_chooser.h" | 74 | #include "widgets/kis_workspace_chooser.h" | ||
75 | #include "widgets/kis_paintop_list_widget.h" | 75 | #include "widgets/kis_paintop_list_widget.h" | ||
76 | #include "widgets/kis_slider_spin_box.h" | 76 | #include "widgets/kis_slider_spin_box.h" | ||
77 | #include "widgets/kis_cmb_composite.h" | 77 | #include "widgets/kis_cmb_composite.h" | ||
78 | #include "widgets/kis_widget_chooser.h" | 78 | #include "widgets/kis_widget_chooser.h" | ||
79 | #include "tool/kis_tool.h" | 79 | #include "tool/kis_tool.h" | ||
80 | #include "kis_signals_blocker.h" | 80 | #include "kis_signals_blocker.h" | ||
81 | #include "kis_action_manager.h" | 81 | #include "kis_action_manager.h" | ||
82 | #include "kis_action_registry.h" | ||||
82 | 83 | | |||
83 | typedef KoResourceServerSimpleConstruction<KisPaintOpPreset, SharedPointerStoragePolicy<KisPaintOpPresetSP> > KisPaintOpPresetResourceServer; | 84 | typedef KoResourceServerSimpleConstruction<KisPaintOpPreset, SharedPointerStoragePolicy<KisPaintOpPresetSP> > KisPaintOpPresetResourceServer; | ||
84 | typedef KoResourceServerAdapter<KisPaintOpPreset, SharedPointerStoragePolicy<KisPaintOpPresetSP> > KisPaintOpPresetResourceServerAdapter; | 85 | typedef KoResourceServerAdapter<KisPaintOpPreset, SharedPointerStoragePolicy<KisPaintOpPresetSP> > KisPaintOpPresetResourceServerAdapter; | ||
85 | 86 | | |||
86 | KisPaintopBox::KisPaintopBox(KisViewManager *view, QWidget *parent, const char *name) | 87 | KisPaintopBox::KisPaintopBox(KisViewManager *view, QWidget *parent, const char *name) | ||
87 | : QWidget(parent) | 88 | : QWidget(parent) | ||
88 | , m_resourceProvider(view->resourceProvider()) | 89 | , m_resourceProvider(view->resourceProvider()) | ||
89 | , m_optionWidget(0) | 90 | , m_optionWidget(0) | ||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Line(s) | 102 | { | |||
131 | m_presetSelectorPopupButton->setIcon(KisIconUtils::loadIcon("paintop_settings_01")); | 132 | m_presetSelectorPopupButton->setIcon(KisIconUtils::loadIcon("paintop_settings_01")); | ||
132 | m_presetSelectorPopupButton->setToolTip(i18n("Choose brush preset")); | 133 | m_presetSelectorPopupButton->setToolTip(i18n("Choose brush preset")); | ||
133 | m_presetSelectorPopupButton->setFixedSize(iconsize, iconsize); | 134 | m_presetSelectorPopupButton->setFixedSize(iconsize, iconsize); | ||
134 | 135 | | |||
135 | m_eraseModeButton = new QToolButton(this); | 136 | m_eraseModeButton = new QToolButton(this); | ||
136 | m_eraseModeButton->setFixedSize(iconsize, iconsize); | 137 | m_eraseModeButton->setFixedSize(iconsize, iconsize); | ||
137 | m_eraseModeButton->setCheckable(true); | 138 | m_eraseModeButton->setCheckable(true); | ||
138 | 139 | | |||
139 | m_eraseAction = new KisAction(i18n("Set eraser mode"), m_eraseModeButton); | 140 | m_eraseAction = m_viewManager->actionManager()->createAction("erase_action"); | ||
140 | m_eraseAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | 141 | m_eraseAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | ||
141 | m_eraseAction->setIcon(KisIconUtils::loadIcon("draw-eraser")); | 142 | m_eraseAction->setIcon(KisIconUtils::loadIcon("draw-eraser")); | ||
142 | m_eraseAction->setDefaultShortcut(Qt::Key_E); | | |||
143 | m_eraseAction->setCheckable(true); | 143 | m_eraseAction->setCheckable(true); | ||
144 | m_eraseModeButton->setDefaultAction(m_eraseAction); | 144 | m_eraseModeButton->setDefaultAction(m_eraseAction); | ||
145 | m_viewManager->actionCollection()->addAction("erase_action", m_eraseAction); | | |||
146 | 145 | | |||
147 | eraserBrushSize = 0; // brush size changed when using erase mode | 146 | eraserBrushSize = 0; // brush size changed when using erase mode | ||
148 | 147 | | |||
149 | m_reloadButton = new QToolButton(this); | 148 | m_reloadButton = new QToolButton(this); | ||
150 | m_reloadButton->setFixedSize(iconsize, iconsize); | 149 | m_reloadButton->setFixedSize(iconsize, iconsize); | ||
151 | m_reloadButton->setCheckable(true); | 150 | m_reloadButton->setCheckable(true); | ||
152 | 151 | | |||
153 | m_reloadAction = new KisAction(i18n("Reload Original Preset"), m_reloadButton); | 152 | m_reloadAction = m_viewManager->actionManager()->createAction("reload_preset_action"); | ||
154 | m_reloadAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | 153 | m_reloadAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | ||
155 | m_reloadAction->setIcon(KisIconUtils::loadIcon("view-refresh")); | 154 | m_reloadAction->setIcon(KisIconUtils::loadIcon("view-refresh")); | ||
156 | m_reloadButton->setDefaultAction(m_reloadAction); | 155 | m_reloadButton->setDefaultAction(m_reloadAction); | ||
157 | m_viewManager->actionCollection()->addAction("reload_preset_action", m_reloadAction); | | |||
158 | 156 | | |||
159 | m_alphaLockButton = new QToolButton(this); | 157 | m_alphaLockButton = new QToolButton(this); | ||
160 | m_alphaLockButton->setFixedSize(iconsize, iconsize); | 158 | m_alphaLockButton->setFixedSize(iconsize, iconsize); | ||
161 | m_alphaLockButton->setCheckable(true); | 159 | m_alphaLockButton->setCheckable(true); | ||
162 | KisAction* alphaLockAction = new KisAction(i18n("Preserve Alpha"), m_alphaLockButton); | 160 | | ||
161 | KisAction* alphaLockAction = m_viewManager->actionManager()->createAction("preserve_alpha"); | ||||
163 | alphaLockAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | 162 | alphaLockAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | ||
164 | alphaLockAction->setIcon(KisIconUtils::loadIcon("transparency-unlocked")); | 163 | alphaLockAction->setIcon(KisIconUtils::loadIcon("transparency-unlocked")); | ||
165 | alphaLockAction->setCheckable(true); | 164 | alphaLockAction->setCheckable(true); | ||
166 | m_alphaLockButton->setDefaultAction(alphaLockAction); | 165 | m_alphaLockButton->setDefaultAction(alphaLockAction); | ||
167 | m_viewManager->actionCollection()->addAction("preserve_alpha", alphaLockAction); | | |||
168 | 166 | | |||
169 | m_hMirrorButton = new QToolButton(this); | 167 | m_hMirrorButton = new QToolButton(this); | ||
170 | m_hMirrorButton->setFixedSize(iconsize, iconsize); | 168 | m_hMirrorButton->setFixedSize(iconsize, iconsize); | ||
171 | m_hMirrorButton->setCheckable(true); | 169 | m_hMirrorButton->setCheckable(true); | ||
172 | 170 | | |||
173 | m_hMirrorAction = new KisAction(i18n("Set horizontal mirror mode"), m_hMirrorButton); | 171 | m_hMirrorAction = m_viewManager->actionManager()->createAction("hmirror_action"); | ||
174 | m_hMirrorAction->setIcon(KisIconUtils::loadIcon("symmetry-horizontal")); | 172 | m_hMirrorAction->setIcon(KisIconUtils::loadIcon("symmetry-horizontal")); | ||
175 | m_hMirrorAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | 173 | m_hMirrorAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | ||
176 | m_hMirrorAction->setCheckable(true); | 174 | m_hMirrorAction->setCheckable(true); | ||
177 | m_hMirrorButton->setDefaultAction(m_hMirrorAction); | 175 | m_hMirrorButton->setDefaultAction(m_hMirrorAction); | ||
178 | m_viewManager->actionCollection()->addAction("hmirror_action", m_hMirrorAction); | | |||
179 | 176 | | |||
180 | m_vMirrorButton = new QToolButton(this); | 177 | m_vMirrorButton = new QToolButton(this); | ||
181 | m_vMirrorButton->setFixedSize(iconsize, iconsize); | 178 | m_vMirrorButton->setFixedSize(iconsize, iconsize); | ||
182 | m_vMirrorButton->setCheckable(true); | 179 | m_vMirrorButton->setCheckable(true); | ||
183 | 180 | | |||
184 | m_vMirrorAction = new KisAction(i18n("Set vertical mirror mode"), m_vMirrorButton); | 181 | m_vMirrorAction = m_viewManager->actionManager()->createAction("vmirror_action"); | ||
185 | m_vMirrorAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | 182 | m_vMirrorAction->setActivationFlags(KisAction::ACTIVE_DEVICE); | ||
186 | m_vMirrorAction->setIcon(KisIconUtils::loadIcon("symmetry-vertical")); | 183 | m_vMirrorAction->setIcon(KisIconUtils::loadIcon("symmetry-vertical")); | ||
187 | m_vMirrorAction->setCheckable(true); | 184 | m_vMirrorAction->setCheckable(true); | ||
188 | m_vMirrorButton->setDefaultAction(m_vMirrorAction); | 185 | m_vMirrorButton->setDefaultAction(m_vMirrorAction); | ||
189 | m_viewManager->actionCollection()->addAction("vmirror_action", m_vMirrorAction); | | |||
190 | 186 | | |||
191 | const bool sliderLabels = cfg.sliderLabels(); | 187 | const bool sliderLabels = cfg.sliderLabels(); | ||
192 | int sliderWidth; | 188 | int sliderWidth; | ||
193 | 189 | | |||
194 | if (sliderLabels) { | 190 | if (sliderLabels) { | ||
195 | sliderWidth = 150 * logicalDpiX() / 96; | 191 | sliderWidth = 150 * logicalDpiX() / 96; | ||
196 | } | 192 | } | ||
197 | else { | 193 | else { | ||
▲ Show 20 Lines • Show All 83 Lines • ▼ Show 20 Line(s) | |||||
281 | compositeLayout->setSpacing(4); | 277 | compositeLayout->setSpacing(4); | ||
282 | compositeLayout->setContentsMargins(0, 0, 0, 0); | 278 | compositeLayout->setContentsMargins(0, 0, 0, 0); | ||
283 | 279 | | |||
284 | compositeLayout->addWidget(m_reloadButton); | 280 | compositeLayout->addWidget(m_reloadButton); | ||
285 | 281 | | |||
286 | QWidgetAction * action; | 282 | QWidgetAction * action; | ||
287 | 283 | | |||
288 | action = new QWidgetAction(this); | 284 | action = new QWidgetAction(this); | ||
289 | action->setText(i18n("Brush composite")); | | |||
290 | view->actionCollection()->addAction("composite_actions", action); | 285 | view->actionCollection()->addAction("composite_actions", action); | ||
291 | action->setDefaultWidget(compositeActions); | 286 | action->setDefaultWidget(compositeActions); | ||
292 | 287 | | |||
293 | action = new QWidgetAction(this); | 288 | action = new QWidgetAction(this); | ||
294 | action->setText(i18n("Brush option slider 1")); | 289 | KisActionRegistry::instance()->propertizeAction("brushslider1", action); | ||
295 | view->actionCollection()->addAction("brushslider1", action); | | |||
296 | action->setDefaultWidget(m_sliderChooser[0]); | 290 | action->setDefaultWidget(m_sliderChooser[0]); | ||
297 | connect(action, SIGNAL(triggered()), m_sliderChooser[0], SLOT(showPopupWidget())); | 291 | connect(action, SIGNAL(triggered()), m_sliderChooser[0], SLOT(showPopupWidget())); | ||
298 | connect(m_viewManager->mainWindow(), SIGNAL(themeChanged()), m_sliderChooser[0], SLOT(updateThemedIcons())); | 292 | connect(m_viewManager->mainWindow(), SIGNAL(themeChanged()), m_sliderChooser[0], SLOT(updateThemedIcons())); | ||
299 | 293 | | |||
300 | action = new QWidgetAction(this); | 294 | action = new QWidgetAction(this); | ||
301 | action->setText(i18n("Brush option slider 2")); | 295 | KisActionRegistry::instance()->propertizeAction("brushslider2", action); | ||
302 | view->actionCollection()->addAction("brushslider2", action); | 296 | view->actionCollection()->addAction("brushslider2", action); | ||
303 | action->setDefaultWidget(m_sliderChooser[1]); | 297 | action->setDefaultWidget(m_sliderChooser[1]); | ||
304 | connect(action, SIGNAL(triggered()), m_sliderChooser[1], SLOT(showPopupWidget())); | 298 | connect(action, SIGNAL(triggered()), m_sliderChooser[1], SLOT(showPopupWidget())); | ||
305 | connect(m_viewManager->mainWindow(), SIGNAL(themeChanged()), m_sliderChooser[1], SLOT(updateThemedIcons())); | 299 | connect(m_viewManager->mainWindow(), SIGNAL(themeChanged()), m_sliderChooser[1], SLOT(updateThemedIcons())); | ||
306 | 300 | | |||
307 | action = new QWidgetAction(this); | 301 | action = new QWidgetAction(this); | ||
308 | action->setText(i18n("Brush option slider 3")); | 302 | KisActionRegistry::instance()->propertizeAction("brushslider3", action); | ||
309 | view->actionCollection()->addAction("brushslider3", action); | 303 | view->actionCollection()->addAction("brushslider3", action); | ||
310 | action->setDefaultWidget(m_sliderChooser[2]); | 304 | action->setDefaultWidget(m_sliderChooser[2]); | ||
311 | connect(action, SIGNAL(triggered()), m_sliderChooser[2], SLOT(showPopupWidget())); | 305 | connect(action, SIGNAL(triggered()), m_sliderChooser[2], SLOT(showPopupWidget())); | ||
312 | connect(m_viewManager->mainWindow(), SIGNAL(themeChanged()), m_sliderChooser[2], SLOT(updateThemedIcons())); | 306 | connect(m_viewManager->mainWindow(), SIGNAL(themeChanged()), m_sliderChooser[2], SLOT(updateThemedIcons())); | ||
313 | 307 | | |||
314 | action = new QWidgetAction(this); | 308 | action = new QWidgetAction(this); | ||
315 | action->setText(i18n("Next Favourite Preset")); | 309 | KisActionRegistry::instance()->propertizeAction("next_favorite_preset", action); | ||
316 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_Comma)); | | |||
317 | view->actionCollection()->addAction("next_favorite_preset", action); | 310 | view->actionCollection()->addAction("next_favorite_preset", action); | ||
318 | connect(action, SIGNAL(triggered()), this, SLOT(slotNextFavoritePreset())); | 311 | connect(action, SIGNAL(triggered()), this, SLOT(slotNextFavoritePreset())); | ||
319 | 312 | | |||
320 | action = new QWidgetAction(this); | 313 | action = new QWidgetAction(this); | ||
321 | action->setText(i18n("Previous Favourite Preset")); | 314 | KisActionRegistry::instance()->propertizeAction("previous_favorite_preset", action); | ||
322 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_Period)); | | |||
323 | view->actionCollection()->addAction("previous_favorite_preset", action); | 315 | view->actionCollection()->addAction("previous_favorite_preset", action); | ||
324 | connect(action, SIGNAL(triggered()), this, SLOT(slotPreviousFavoritePreset())); | 316 | connect(action, SIGNAL(triggered()), this, SLOT(slotPreviousFavoritePreset())); | ||
325 | 317 | | |||
326 | action = new QWidgetAction(this); | 318 | action = new QWidgetAction(this); | ||
327 | action->setText(i18n("Switch to Previous Preset")); | 319 | KisActionRegistry::instance()->propertizeAction("previous_preset", action); | ||
328 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_Slash)); | | |||
329 | view->actionCollection()->addAction("previous_preset", action); | 320 | view->actionCollection()->addAction("previous_preset", action); | ||
330 | 321 | | |||
331 | connect(action, SIGNAL(triggered()), this, SLOT(slotSwitchToPreviousPreset())); | 322 | connect(action, SIGNAL(triggered()), this, SLOT(slotSwitchToPreviousPreset())); | ||
332 | 323 | | |||
333 | if (!cfg.toolOptionsInDocker()) { | 324 | if (!cfg.toolOptionsInDocker()) { | ||
334 | action = new QWidgetAction(this); | 325 | action = new QWidgetAction(this); | ||
335 | action->setText(i18n("Show Tool Options")); | 326 | KisActionRegistry::instance()->propertizeAction("show_tool_options", action); | ||
327 | // TODO: check how this is serialized, add it to krita.action | ||||
336 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_Backslash)); | 328 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_Backslash)); | ||
337 | view->actionCollection()->addAction("show_tool_options", action); | 329 | view->actionCollection()->addAction("show_tool_options", action); | ||
338 | connect(action, SIGNAL(triggered()), m_toolOptionsPopupButton, SLOT(showPopupWidget())); | 330 | connect(action, SIGNAL(triggered()), m_toolOptionsPopupButton, SLOT(showPopupWidget())); | ||
339 | } | 331 | } | ||
340 | 332 | | |||
341 | action = new QWidgetAction(this); | 333 | action = new QWidgetAction(this); | ||
342 | action->setText(i18n("Show Brush Editor")); | 334 | KisActionRegistry::instance()->propertizeAction("show_brush_editor", action); | ||
343 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_F5)); | | |||
344 | view->actionCollection()->addAction("show_brush_editor", action); | | |||
345 | connect(action, SIGNAL(triggered()), m_brushEditorPopupButton, SLOT(showPopupWidget())); | 335 | connect(action, SIGNAL(triggered()), m_brushEditorPopupButton, SLOT(showPopupWidget())); | ||
346 | 336 | | |||
347 | action = new QWidgetAction(this); | 337 | action = new QWidgetAction(this); | ||
348 | action->setText(i18n("Show Brush Presets")); | 338 | KisActionRegistry::instance()->propertizeAction("show_brush_presets", action); | ||
349 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_F6)); | 339 | view->actionCollection()->setDefaultShortcut(action, QKeySequence(Qt::Key_F6)); // TODO: check this | ||
350 | view->actionCollection()->addAction("show_brush_presets", action); | 340 | view->actionCollection()->addAction("show_brush_presets", action); | ||
351 | connect(action, SIGNAL(triggered()), m_presetSelectorPopupButton, SLOT(showPopupWidget())); | 341 | connect(action, SIGNAL(triggered()), m_presetSelectorPopupButton, SLOT(showPopupWidget())); | ||
352 | 342 | | |||
353 | QWidget* mirrorActions = new QWidget(this); | 343 | QWidget* mirrorActions = new QWidget(this); | ||
354 | QHBoxLayout* mirrorLayout = new QHBoxLayout(mirrorActions); | 344 | QHBoxLayout* mirrorLayout = new QHBoxLayout(mirrorActions); | ||
355 | mirrorLayout->addWidget(m_hMirrorButton); | 345 | mirrorLayout->addWidget(m_hMirrorButton); | ||
356 | mirrorLayout->addWidget(m_vMirrorButton); | 346 | mirrorLayout->addWidget(m_vMirrorButton); | ||
357 | mirrorLayout->setSpacing(4); | 347 | mirrorLayout->setSpacing(4); | ||
358 | mirrorLayout->setContentsMargins(0, 0, 0, 0); | 348 | mirrorLayout->setContentsMargins(0, 0, 0, 0); | ||
359 | 349 | | |||
360 | action = new QWidgetAction(this); | 350 | action = new QWidgetAction(this); | ||
361 | action->setText(i18n("Mirror")); | 351 | KisActionRegistry::instance()->propertizeAction("mirror_actions", action); | ||
362 | action->setDefaultWidget(mirrorActions); | 352 | action->setDefaultWidget(mirrorActions); | ||
363 | view->actionCollection()->addAction("mirror_actions", action); | 353 | view->actionCollection()->addAction("mirror_actions", action); | ||
364 | 354 | | |||
365 | action = new QWidgetAction(this); | 355 | action = new QWidgetAction(this); | ||
366 | action->setText(i18n("Workspaces")); | 356 | KisActionRegistry::instance()->propertizeAction("workspaces", action); | ||
367 | view->actionCollection()->addAction("workspaces", action); | 357 | view->actionCollection()->addAction("workspaces", action); | ||
368 | action->setDefaultWidget(m_workspaceWidget); | 358 | action->setDefaultWidget(m_workspaceWidget); | ||
369 | 359 | | |||
370 | if (!cfg.toolOptionsInDocker()) { | 360 | if (!cfg.toolOptionsInDocker()) { | ||
371 | m_toolOptionsPopup = new KisToolOptionsPopup(); | 361 | m_toolOptionsPopup = new KisToolOptionsPopup(); | ||
372 | m_toolOptionsPopupButton->setPopupWidget(m_toolOptionsPopup); | 362 | m_toolOptionsPopupButton->setPopupWidget(m_toolOptionsPopup); | ||
373 | m_toolOptionsPopup->switchDetached(false); | 363 | m_toolOptionsPopup->switchDetached(false); | ||
374 | } | 364 | } | ||
▲ Show 20 Lines • Show All 820 Lines • Show Last 20 Lines |