From kde-commits Sun Feb 27 05:45:28 2005 From: =?utf-8?q?Aaron=20J=2E=20Seigo?= Date: Sun, 27 Feb 2005 05:45:28 +0000 To: kde-commits Subject: kdebase/kicker/core Message-Id: <20050227054528.87F03148A2 () office ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=110948314031835 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); }