[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/kicker/kicker
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2005-06-09 19:15:36
Message-ID: 1118344536.320260.3950.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 423809 by aseigo:

speed up the remove all applets/buttons functions


 M  +27 -3     core/containerarea.cpp  
 M  +1 -0      core/containerarea.h  
 M  +0 -5      core/containerarealayout.cpp  
 M  +1 -2      core/containerarealayout.h  
 M  +2 -7      ui/removeapplet_mnu.cpp  
 M  +2 -5      ui/removebutton_mnu.cpp  


--- trunk/KDE/kdebase/kicker/kicker/core/containerarea.cpp #423808:423809
@@ -722,11 +722,35 @@
     m_containers.remove(a);
     m_layout->remove(a);
     a->deleteLater();
-    a = 0;
     saveContainerConfig(true);
     resizeContents();
 }
 
+void ContainerArea::removeContainers(BaseContainer::List containers)
+{
+    if (isImmutable())
+    {
+        return;
+    }
+
+    m_layout->setEnabled(false);
+
+    for (BaseContainer::List::const_iterator it = containers.constBegin();
+         it != containers.constEnd();
+         ++it)
+    {
+        BaseContainer* a = *it;
+        a->slotRemoved(_config);
+        m_containers.remove(a);
+        m_layout->remove(a);
+        a->deleteLater();
+    }
+
+    m_layout->setEnabled(true);
+    saveContainerConfig(true);
+    resizeContents();
+}
+
 void ContainerArea::takeContainer(BaseContainer* a)
 {
     if (!a)
@@ -1142,7 +1166,7 @@
         a->setAppletId(createUniqueId(a->appletType()));
         addContainer(a, true);
         Kicker::the()->setInsertionPoint(QPoint());
-        m_layout->updateContainerList();
+        m_layout->updateFreeSpaceValues();
         _dragMoveAC = 0;
         _dragIndicator->hide();
         m_layout->setStretchEnabled(true);
@@ -1328,7 +1352,7 @@
         }
 
         addContainer(a, true);
-        m_layout->updateContainerList();
+        m_layout->updateFreeSpaceValues();
     }
 
     saveContainerConfig();
--- trunk/KDE/kdebase/kicker/kicker/core/containerarea.h #423808:423809
@@ -91,6 +91,7 @@
 public slots:
     void resizeContents(int w, int h);
     void removeContainer(BaseContainer* a);
+    void removeContainers(BaseContainer::List containers);
     void takeContainer(BaseContainer* a);
     void setPosition(KPanelExtension::Position p);
     void setAlignment(KPanelExtension::Alignment a);
--- trunk/KDE/kdebase/kicker/kicker/core/containerarealayout.cpp #423808:423809
@@ -443,11 +443,6 @@
     }
 }
 
-void ContainerAreaLayout::updateContainerList()
-{
-    updateFreeSpaceValues();
-}
-
 void ContainerAreaLayout::updateFreeSpaceValues()
 {
     int freeSpace =
--- trunk/KDE/kdebase/kicker/kicker/core/containerarealayout.h #423808:423809
@@ -90,7 +90,7 @@
         void setOrientation(Orientation o) { m_orientation = o; }
         int heightForWidth(int w) const;
         int widthForHeight(int h) const;
-        void updateContainerList();
+        void updateFreeSpaceValues();
         void moveToFirstFreePosition(BaseContainer* a);
 
         void setStretchEnabled(bool enable);
@@ -109,7 +109,6 @@
     private:
         int moveContainerPushRecursive(ItemList::const_iterator it, int distance);
         int distanceToPreviousItem(ItemList::const_iterator it) const;
-        void updateFreeSpaceValues();
 
         Orientation m_orientation;
         bool m_stretchEnabled;
--- trunk/KDE/kdebase/kicker/kicker/ui/removeapplet_mnu.cpp #423808:423809
@@ -79,7 +79,7 @@
     if (m_containers.count() > 1)
     {
         insertSeparator();
-        insertItem(i18n("All"), this, SLOT(slotRemoveAll()));
+        insertItem(i18n("All"), this, SLOT(slotRemoveAll()), 0, id);
     }
 }
 
@@ -93,10 +93,5 @@
 
 void PanelRemoveAppletMenu::slotRemoveAll()
 {
-    for (BaseContainer::List::const_iterator it = m_containers.constBegin();
-         it != m_containers.constEnd();
-         ++it)
-    {
-        m_containerArea->removeContainer(*it);
-    }
+    m_containerArea->removeContainers(m_containers);
 }
--- trunk/KDE/kdebase/kicker/kicker/ui/removebutton_mnu.cpp #423808:423809
@@ -89,7 +89,7 @@
     if (containers.count() > 1)
     {
         insertSeparator();
-        insertItem(i18n("All"), this, SLOT(slotRemoveAll()));
+        insertItem(i18n("All"), this, SLOT(slotRemoveAll()), 0, id);
     }
 }
 
@@ -107,8 +107,5 @@
 
 void PanelRemoveButtonMenu::slotRemoveAll()
 {
-    for (BaseContainer::Iterator it = containers.begin(); it != containers.end(); ++it)
-    {
-        containerArea->removeContainer(*it);
-    }
+    containerArea->removeContainers(containers);
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic