Pavel Sanda wrote:
> Single instance of QSettings in pimp might help this.

Just trying dirty patch for caching settings inside GuiToolbar::saveSession
instead of creating new local var for each fun entry shows that I get quit
time around 1s.
Quick check shows that most of remaining time is spent in DialogPtr saveSession
loop again in saveUISettings; likely the same issue.

The cache idea might need some refinement because I do not know what all
entry points to saveSession() are and if having single instance throughout
the whole session is correct or needs refresh. I won't have time to investigate
more ATM.

Pavel
diff --git a/src/frontends/qt4/GuiToolbar.cpp b/src/frontends/qt4/GuiToolbar.cpp
index d519548e07..50953576a8 100644
--- a/src/frontends/qt4/GuiToolbar.cpp
+++ b/src/frontends/qt4/GuiToolbar.cpp
@@ -350,12 +350,15 @@ QString GuiToolbar::sessionKey() const
        return "views/" + QString::number(owner_.id()) + "/" + objectName();
 }
 
+QSettings *exitsettings=0;
 
 void GuiToolbar::saveSession() const
 {
-       QSettings settings;
-       settings.setValue(sessionKey() + "/visibility", visibility_);
-       settings.setValue(sessionKey() + "/movability", isMovable());
+       if (!exitsettings)
+               exitsettings=new QSettings;
+
+       exitsettings->setValue(sessionKey() + "/visibility", visibility_);
+       exitsettings->setValue(sessionKey() + "/movability", isMovable());
 }
 
 

Reply via email to