Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > a3a9b692ad9677f55cdf3960410addc8 > files > 4

lastfm-player-1.5.1.31879-3mdv2009.1.src.rpm

--- a/src/container.cpp
+++ b/src/container.cpp
@@ -496,8 +496,8 @@
 
     // figure out minimum width of our toolbar (this will change due to translations!)
     int w = width();
-    QByteArray geometry = The::settings().containerGeometry();
-    if ( geometry.isEmpty() )
+    m_geometry = The::settings().containerGeometry();
+    if ( m_geometry.isEmpty() )
     {
         w = 0;
         QList<QAction*> a = ui.toolbar->actions();
@@ -529,14 +529,14 @@
 #ifdef Q_WS_MAC
     // on mac qt returns height without unified toolbar height included :(
     // so first time we have to do it like this
-    if ( geometry.isEmpty() )
+    if ( m_geometry.isEmpty() )
         resize( w, 496 );
     else
-        restoreGeometry( geometry );
+        restoreGeometry( m_geometry );
 #else
-    restoreGeometry( The::settings().containerGeometry() );
+    restoreGeometry( m_geometry );
 
-    if ( geometry.isEmpty() )
+    if ( m_geometry.isEmpty() )
         resize( w, height() );
 #endif
     setWindowState( The::settings().containerWindowState() );
@@ -547,6 +547,7 @@
 {
     LOGL( 3, "Saving app state" );
 
+    The::settings().setContainerGeometry( m_geometry );
     The::settings().setContainerWindowState( windowState() );
     The::settings().setVolume( ui.playcontrols.volume->value() );
     The::currentUser().setSidebarEnabled( m_sidebarEnabled );
@@ -702,7 +703,10 @@
         // for *every* resize and move event. Yay!
 
         if (windowState() != Qt::WindowMaximized)
-            The::settings().setContainerGeometry( saveGeometry() );
+            // Such frequent calls to setContainerGeometry() are very cpu intensive.
+            // Just dump to a QByteArray and save it in the destructor.
+            //The::settings().setContainerGeometry( saveGeometry() );
+            m_geometry = saveGeometry();
     }
 
     if ( e->type() == QEvent::Show )
--- a/src/container.h
+++ b/src/container.h
@@ -112,6 +112,7 @@
         bool m_sidebarEnabled;
         int  m_lastVolume;
         int  m_sidebarWidth;
+        QByteArray m_geometry;
 
         #ifndef Q_WS_MAC
         QStyle* m_styleOverrides;