Don't we have the same shortcut set up onto the Backspace key?<br><br><div class="gmail_quote">On Wed, Nov 24, 2010 at 5:08 PM, Boudewijn Rempt <span dir="ltr"><<a href="mailto:boud@valdyas.org">boud@valdyas.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">SVN commit 1200276 by rempt:<br>
<br>
Call the Edit > Clear action when the Del. key is pressed<br>
<br>
Patch by "Francisco Fernandes"<br>
CCMAIL: <a href="mailto:francisco.fernandes.j@gmail.com">francisco.fernandes.j@gmail.com</a><br>
<br>
M +28 -25 kis_selection_manager.cc<br>
<br>
<br>
--- trunk/koffice/krita/ui/kis_selection_manager.cc #1200275:1200276<br>
@@ -1,3 +1,4 @@<br>
+<br>
/*<br>
* Copyright (c) 2004 Boudewijn Rempt <<a href="mailto:boud@valdyas.org">boud@valdyas.org</a>><br>
* Copyright (c) 2007 Sven Langkamp <<a href="mailto:sven.langkamp@gmail.com">sven.langkamp@gmail.com</a>><br>
@@ -94,7 +95,6 @@<br>
m_selectAll(0),<br>
m_deselect(0),<br>
m_clear(0),<br>
- m_delete(0),<br>
m_reselect(0),<br>
m_invert(0),<br>
m_toNewLayer(0),<br>
@@ -120,8 +120,7 @@<br>
<br>
KisSelectionManager::~KisSelectionManager()<br>
{<br>
- while (!m_pluginActions.isEmpty())<br>
- delete m_pluginActions.takeFirst();<br>
+ qDeleteAll(m_pluginActions);<br>
}<br>
<br>
void KisSelectionManager::setup(KActionCollection * collection)<br>
@@ -145,12 +144,8 @@<br>
m_deselect = collection->addAction(KStandardAction::Deselect, "deselect", this, SLOT(deselect()));<br>
<br>
m_clear = collection->addAction(KStandardAction::Clear, "clear", this, SLOT(clear()));<br>
+ m_clear->setShortcut(QKeySequence((Qt::Key_Delete)));<br>
<br>
- m_delete = new KAction(KIcon("edit-delete"), i18n("D&elete Selection"), this);<br>
- collection->addAction("delete", m_delete);<br>
- m_delete->setShortcut(QKeySequence(Qt::Key_Delete));<br>
- connect(m_delete, SIGNAL(triggered()), this, SLOT(deleteSelection()));<br>
-<br>
m_reselect = new KAction(i18n("&Reselect"), this);<br>
collection->addAction("reselect", m_reselect);<br>
m_reselect->setShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_D));<br>
@@ -267,8 +262,8 @@<br>
#endif<br>
}<br>
<br>
+ m_clear->setEnabled(enable);<br>
m_cut->setEnabled(enable);<br>
- m_clear->setEnabled(enable);<br>
m_fillForegroundColor->setEnabled(enable);<br>
m_fillBackgroundColor->setEnabled(enable);<br>
m_fillPattern->setEnabled(enable);<br>
@@ -316,7 +311,6 @@<br>
<br>
l = m_view->activeLayer();<br>
KisShapeLayer * shapeLayer = dynamic_cast<KisShapeLayer*>(l.data());<br>
-<br>
bool shapePasteEnable = false;<br>
bool shapeCopyEnable = false;<br>
if (shapeLayer) {<br>
@@ -340,16 +334,18 @@<br>
m_pasteNew->setEnabled(!image.isNull() && m_clipboard->hasClip());<br>
m_toNewLayer->setEnabled(enable);<br>
<br>
- if (shapeLayer || ((m_view->selection()<br>
- && m_view->selection()->hasShapeSelection()<br>
- )<br>
- && m_view->canvasBase()->shapeManager()->selection()->count() > 0<br>
- )<br>
- ) {<br>
- m_delete->setEnabled(true);<br>
- } else<br>
- m_delete->setEnabled(false);<br>
+ //Handle the clear action disponibility<br>
<br>
+ if (m_view->canvasBase()->shapeManager()->selection()->count() > 0) {<br>
+ m_clear->setEnabled(true);<br>
+ }<br>
+ else if (shapeLayer && m_view->canvasBase()->shapeManager()->shapes().empty()){<br>
+ m_clear->setEnabled(false);<br>
+ }<br>
+ else {<br>
+ m_clear->setEnabled(true);<br>
+ }<br>
+<br>
updateStatusBar();<br>
<br>
}<br>
@@ -398,7 +394,8 @@<br>
KisShapeLayer * shapeLayer = dynamic_cast<KisShapeLayer*>(layer.data());<br>
if (shapeLayer) {<br>
m_view->canvasBase()->toolProxy()->copy();<br>
- } else {<br>
+ }<br>
+ else {<br>
<br>
KisImageWSP image = m_view->image();<br>
if (!image) return;<br>
@@ -582,28 +579,34 @@<br>
if (!image) return;<br>
<br>
KisPaintDeviceSP dev = m_view->activeDevice();<br>
- if (!dev) return;<br>
<br>
+ if(m_view->canvasBase()->shapeManager()->selection()->count()){<br>
+ deleteSelection();<br>
+ }else if(dev){<br>
+<br>
KisSelectionSP sel = m_view->selection();<br>
<br>
KisTransaction transaction(i18n("Clear"), dev);<br>
<br>
- if (sel)<br>
+ if (sel){<br>
dev->clearSelection(sel);<br>
- else {<br>
+ }else{<br>
dev->clear();<br>
dev->setDirty();<br>
}<br>
<br>
+ updateGUI();<br>
+<br>
transaction.commit(image->undoAdapter());<br>
-<br>
dev->setDirty(image->bounds());<br>
}<br>
+}<br>
<br>
void KisSelectionManager::deleteSelection()<br>
{<br>
- if (m_view->canvasBase()->shapeManager()->selection())<br>
+ if (m_view->canvasBase()->shapeManager()->selection()){<br>
m_view->canvasBase()->toolProxy()->deleteSelection();<br>
+ }<br>
updateGUI();<br>
}<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>Dmitry Kazakov<br>