Author: jghali
Date: Wed Nov  7 23:50:27 2018
New Revision: 22754

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22754
Log:
#15477: Add Alt selection mode

Modified:
    trunk/Scribus/scribus/canvasmode_normal.cpp

Modified: trunk/Scribus/scribus/canvasmode_normal.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22754&path=/trunk/Scribus/scribus/canvasmode_normal.cpp
==============================================================================
--- trunk/Scribus/scribus/canvasmode_normal.cpp (original)
+++ trunk/Scribus/scribus/canvasmode_normal.cpp Wed Nov  7 23:50:27 2018
@@ -1173,16 +1173,23 @@
                if (docItemCount != 0)
                {
                        m_doc->m_Selection->delaySignalsOn();
+                       // loop over all items and select
+                       bool altPressed = m->modifiers() & Qt::AltModifier;
+                       bool shiftPressed = m->modifiers() & Qt::ShiftModifier;
+
                        for (int a = 0; a < docItemCount; ++a)
                        {
                                PageItem* docItem = m_doc->Items->at(a);
                                if ((m_doc->masterPageMode()) && 
(docItem->OnMasterPage != m_doc->currentPage()->pageName()))
                                        continue;
                                QRect  apr2 = m_canvas->canvasToLocal( 
docItem->getCurrentBoundingRect(docItem->lineWidth()) );
-                               if ((localSele.contains(apr2)) && 
((docItem->LayerID == m_doc->activeLayer()) || 
(m_doc->layerSelectable(docItem->LayerID))) && 
(!m_doc->layerLocked(docItem->LayerID)))
-                               {
-                                       bool redrawSelection=false;
-                                       m_view->SelectItemNr(a, 
redrawSelection);
+                               if (((docItem->LayerID == m_doc->activeLayer()) 
|| (m_doc->layerSelectable(docItem->LayerID))) && 
(!m_doc->layerLocked(docItem->LayerID)))
+                               {
+                                       bool redrawSelection = false;
+                                       bool select = altPressed ? 
localSele.intersects(apr2) :
+                                               localSele.contains(apr2);
+                                       if (select)
+                                               m_view->SelectItemNr(a, 
redrawSelection);
                                }
                        }
                        m_doc->m_Selection->delaySignalsOff();


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to