Author: jghali
Date: Sun Oct 20 10:28:30 2019
New Revision: 23269

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23269
Log:
Refactor Selection's connectItemToGUI() and preprendItem()

Modified:
    trunk/Scribus/scribus/selection.cpp
    trunk/Scribus/scribus/selection.h

Modified: trunk/Scribus/scribus/selection.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23269&path=/trunk/Scribus/scribus/selection.cpp
==============================================================================
--- trunk/Scribus/scribus/selection.cpp (original)
+++ trunk/Scribus/scribus/selection.cpp Sun Oct 20 10:28:30 2019
@@ -109,7 +109,7 @@
                        (*it)->setSelected(false);
        }
        m_SelList = other.m_SelList;
-       if (m_isGUISelection && !m_SelList.isEmpty())
+       if (m_isGUISelection)
                m_sigSelectionChanged = true;
        if (emptyOther)
                other.clear();
@@ -145,28 +145,26 @@
 
 bool Selection::connectItemToGUI()
 {
-       bool ret = false;
        if (!m_isGUISelection || m_SelList.isEmpty())
-               return ret;
-       if (m_SelList.count() == 1)
-       {
-               QPointer<PageItem> pi = m_SelList.first();
-               //Quick check to see if the pointer is nullptr, if its nullptr, 
we should remove it from the list now
-               if (pi.isNull())
-               {
-                       m_SelList.removeAll(pi);
-                       return ret;
-               }
-               ret = pi->connectToGUI();
-               pi->emitAllToGUI();
-               m_sigSelectionChanged = true;
-       }
-       else
-       {
-               ret = m_SelList.first()->connectToGUI();
-               m_SelList.first()->emitAllToGUI();
-               m_sigSelectionChanged  = true;
-       }
+               return false;
+
+       QPointer<PageItem> pi = m_SelList.first();
+       //Quick check to see if the pointer is nullptr, if its nullptr, we 
should remove it from the list now
+       while (pi.isNull())
+       {
+               m_SelList.removeAll(pi);
+               if (m_SelList.isEmpty())
+                       break;
+               pi = m_SelList.first();
+       }
+
+       if (pi.isNull())
+               return false;
+
+       bool ret = pi->connectToGUI();
+       pi->emitAllToGUI();
+       m_sigSelectionChanged = true;
+
        sendSignals(false);
        return ret;
 }
@@ -230,24 +228,23 @@
        return true;
 }
 
-bool Selection::prependItem(PageItem *item, bool /*doEmit*/)
+bool Selection::prependItem(PageItem *item)
 {
        if (item == nullptr)
                return false;
-       if (!m_SelList.contains(item))
-       {
-               if (m_isGUISelection && !m_SelList.isEmpty())
-                       m_SelList[0]->disconnectFromGUI();
-               m_SelList.prepend(item);
-               if (m_isGUISelection /*&& doEmit*/)
-               {
-                       item->setSelected(true);
-                       m_sigSelectionChanged = true;
-               }       
-               sendSignals();
-               return true;
-       }
-       return false;
+       if (m_SelList.contains(item))
+               return false;
+
+       if (m_isGUISelection && !m_SelList.isEmpty())
+               m_SelList[0]->disconnectFromGUI();
+       m_SelList.prepend(item);
+       if (m_isGUISelection)
+       {
+               item->setSelected(true);
+               m_sigSelectionChanged = true;
+       }       
+       sendSignals();
+       return true;
 }
 
 PageItem *Selection::itemAt_(int index)

Modified: trunk/Scribus/scribus/selection.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23269&path=/trunk/Scribus/scribus/selection.h
==============================================================================
--- trunk/Scribus/scribus/selection.h   (original)
+++ trunk/Scribus/scribus/selection.h   Sun Oct 20 10:28:30 2019
@@ -92,7 +92,7 @@
                 * @param doEmit call emitAllToGUI()
                 * @return If the item was added
                 */
-               bool prependItem(PageItem *item, bool doEmit=true);
+               bool prependItem(PageItem *item);
 
                bool containsItem(PageItem *item) const { return 
m_SelList.contains(item); }
 


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

Reply via email to