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

List:       kde-commits
Subject:    KDE/kdebase/workspace/plasma/applets/lock_logout
From:       Loic Marteau <loic.marteau () gmail ! com>
Date:       2008-06-18 1:23:54
Message-ID: 1213752234.653835.23426.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 821641 by lmarteau:

now the applet deals correctly with size contrains events
BUG:164287 


 M  +32 -0     lockout.cpp  


--- trunk/KDE/kdebase/workspace/plasma/applets/lock_logout/lockout.cpp #821640:821641
@@ -62,20 +62,25 @@
 void LockOut::checkLayout()
 {
     Qt::Orientation direction;
+    qreal ratioToKeep = 2;
 
     switch (formFactor()) {
         case Plasma::Vertical:
             if (geometry().width() >= MINSIZE) {
                 direction = Qt::Horizontal;
+                ratioToKeep = 2;
             } else {
                 direction = Qt::Vertical;
+                ratioToKeep = 0.5;
             }
             break;
         case Plasma::Horizontal:
             if (geometry().height() >= MINSIZE) {
                 direction = Qt::Vertical;
+                ratioToKeep = 0.5;
             } else {
                 direction = Qt::Horizontal;
+                ratioToKeep = 2;
             }
             break;
         default:
@@ -84,6 +89,33 @@
     if (direction != m_layout->orientation()) {
         m_layout->setOrientation(direction);
     }
+
+    if (formFactor() == Plasma::Horizontal) {
+        //if we are on horizontal panel
+        setSizePolicy(QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Expanding));
+        qreal wsize = size().height() * ratioToKeep;
+
+        resize(QSizeF(wsize, size().height()));
+        setMaximumSize(wsize, QWIDGETSIZE_MAX);
+        setMinimumSize(0, 0);
+
+    } else if (formFactor() == Plasma::Vertical) {
+        //if we are on vertical panel
+        setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
+        qreal hsize = size().width() / ratioToKeep;
+        resize(QSizeF(size().width(), hsize));
+        setMaximumSize(QWIDGETSIZE_MAX, hsize);
+        setMinimumSize(0, 0);
+    } else {
+        if (ratioToKeep < 1) {
+            setMaximumSize(QWIDGETSIZE_MAX * ratioToKeep, QWIDGETSIZE_MAX);
+        } else {
+            setMaximumSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX / ratioToKeep);
+        }
+
+        setMinimumSize(0, 0);
+        setMinimumSize(0, 0);
+    }
 }
 
 void LockOut::constraintsEvent(Plasma::Constraints constraints)
[prev in list] [next in list] [prev in thread] [next in thread] 

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