From 15b42ccd4a6ddd69706dffdb053719a2f2091534 Mon Sep 17 00:00:00 2001 From: Abdelrazak Younes Date: Wed, 28 May 2008 10:26:03 +0000 Subject: [PATCH] startup optimisation: delay toolbar filling until it is shown on screen. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24977 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiToolbar.cpp | 33 ++++++++++++++++++++------------ src/frontends/qt4/GuiToolbar.h | 7 +++++++ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/frontends/qt4/GuiToolbar.cpp b/src/frontends/qt4/GuiToolbar.cpp index 6fc2d1ae79..3dd58a73ce 100644 --- a/src/frontends/qt4/GuiToolbar.cpp +++ b/src/frontends/qt4/GuiToolbar.cpp @@ -842,26 +842,35 @@ void GuiLayoutBox::selected(int index) GuiToolbar::GuiToolbar(ToolbarInfo const & tbinfo, GuiView & owner) : QToolBar(qt_(tbinfo.gui_name), &owner), visibility_(0), - allowauto_(false), owner_(owner), layout_(0), command_buffer_(0) + allowauto_(false), owner_(owner), layout_(0), command_buffer_(0), + tbinfo_(tbinfo) { - // give visual separation between adjacent toolbars - addSeparator(); - - // TODO: save toolbar position + // Toolbar dragging is allowed. setMovable(true); - - // + // This is used by QMainWindow::restoreState for proper main window state + // restauration. setObjectName(toqstr(tbinfo.name)); - ToolbarInfo::item_iterator it = tbinfo.items.begin(); - ToolbarInfo::item_iterator end = tbinfo.items.end(); - for (; it != end; ++it) - add(*it); - restoreSession(); } +void GuiToolbar::fill() +{ + ToolbarInfo::item_iterator it = tbinfo_.items.begin(); + ToolbarInfo::item_iterator end = tbinfo_.items.end(); + for (; it != end; ++it) + add(*it); +} + + +void GuiToolbar::showEvent(QShowEvent * ev) +{ + fill(); + ev->accept(); +} + + void GuiToolbar::setVisibility(int visibility) { visibility_ = visibility; diff --git a/src/frontends/qt4/GuiToolbar.h b/src/frontends/qt4/GuiToolbar.h index caa50156e7..095be20f90 100644 --- a/src/frontends/qt4/GuiToolbar.h +++ b/src/frontends/qt4/GuiToolbar.h @@ -151,6 +151,11 @@ Q_SIGNALS: private: // load flags with saved values void initFlags(); + /// + void fill(); + /// + void showEvent(QShowEvent *); + /// QString name_; /// @@ -165,6 +170,8 @@ private: GuiLayoutBox * layout_; /// GuiCommandBuffer * command_buffer_; + /// + ToolbarInfo const & tbinfo_; }; } // namespace frontend -- 2.39.2