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

List:       kde-commits
Subject:    kdebase/kicker/core
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2005-02-27 5:45:28
Message-ID: 20050227054528.87F03148A2 () office ! kde ! org
[Download RAW message or body]

CVS commit by aseigo: 

optimize moving panels around.


  M +9 -3      container_extension.cpp   1.114
  M +25 -17    containerarea.cpp   1.215
  M +0 -1      containerarea.h   1.88
  M +0 -1      panelextension.cpp   1.13


--- kdebase/kicker/core/container_extension.cpp  #1.113:1.114
@@ -1243,4 +1243,5 @@ int ExtensionContainer::setupBorderSpace
 void ExtensionContainer::positionChange(KPanelExtension::Position p)
 {
+    setUpdatesEnabled(false);
     arrangeHideButtons();
 
@@ -1250,4 +1251,5 @@ void ExtensionContainer::positionChange(
     }
 
+    setUpdatesEnabled(true);
     repaint();
 }
@@ -1342,8 +1344,8 @@ void ExtensionContainer::arrange(KPanelE
     }
 
-    if (p != m_settings.position())
+    bool positionChanged = p != m_settings.position();
+    if (positionChanged)
     {
         m_settings.setPosition(p);
-        positionChange(p);
     }
     else if (KickerSettings::transparent())
@@ -1369,5 +1371,9 @@ void ExtensionContainer::arrange(KPanelE
     }
 
-    updateLayout();
+    actuallyUpdateLayout();
+    if (positionChanged)
+    {
+        positionChange(p);
+    }
     writeConfig();
 }

--- kdebase/kicker/core/containerarea.cpp  #1.214:1.215
@@ -1212,5 +1212,5 @@ void ContainerArea::setBackgroundTheme()
             }
             setPaletteBackgroundPixmap(QPixmap(bgImage));
-            QTimer::singleShot(500, this, SLOT(updateContainersBackground()));
+            QTimer::singleShot(0, this, SLOT(updateContainersBackground()));
         }
     }
@@ -1321,30 +1321,39 @@ void ContainerArea::slotSaveContainerCon
 }
 
-void ContainerArea::setOrientation(Orientation o)
+void ContainerArea::setPosition(KPanelExtension::Position p)
 {
-    Panner::setOrientation(o);
-    m_layout->setEnabled(false);
-    m_layout->setOrientation(o);
-
-//    kdDebug(1210) << "ContainerArea::setOrientation()" << endl;
-
-    for (ContainerIterator it(m_containers); it.current(); ++it)
+    if (_pos == p)
     {
-        (*it)->setOrientation(o);
+        return;
     }
 
-    m_layout->setEnabled(true);
-}
-
-void ContainerArea::setPosition(KPanelExtension::Position p)
-{
     _pos = p;
+    Qt::Orientation o = (p == KPanelExtension::Top ||
+                         p == KPanelExtension::Bottom) ?
+                        Qt::Horizontal : Qt::Vertical;
+    bool orientationChanged = (orientation() != o);
+    m_layout->setEnabled(false);
+
+    if (orientationChanged)
+    {
+        setOrientation(o);
+        m_layout->setOrientation(o);
+        setBackgroundTheme();
+    }
 
     for (ContainerIterator it(m_containers) ; it.current(); ++it)
     {
+        if (orientationChanged)
+        {
+            (*it)->setOrientation(o);
+        }
+
         (*it)->setPopupDirection( popupDirection() );
     }
 
-    repaint();
+    m_layout->setEnabled(true);
+
+    // container extension repaints for us!
+    //repaint();
 }
 
@@ -1488,5 +1497,4 @@ int ContainerArea::containerCount(const 
 void ContainerArea::repaint()
 {
-    QTimer::singleShot(500, this, SLOT(setBackgroundTheme()));
     Panner::repaint();
 }

--- kdebase/kicker/core/containerarea.h  #1.87:1.88
@@ -90,5 +90,4 @@ public slots:
     void removeContainer(BaseContainer* a);
     void takeContainer(BaseContainer* a);
-    void setOrientation(Orientation o);
     void setPosition(KPanelExtension::Position p);
     void setAlignment(KPanelExtension::Alignment a);

--- kdebase/kicker/core/panelextension.cpp  #1.12:1.13
@@ -121,5 +121,4 @@ QPopupMenu* PanelExtension::opMenu()
 void PanelExtension::positionChange(Position p)
 {
-    _containerArea->setOrientation(orientation());
     _containerArea->setPosition(p);
 }


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

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