delayed initialization for class-browser
src/class-browser.lisp
Tue Apr 7 22:08:36 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* delayed initialization for class-browser
--- old-qt.examples/src/class-browser.lisp 2014-10-30 07:39:29.000000000 +0100
+++ new-qt.examples/src/class-browser.lisp 2014-10-30 07:39:29.000000000 +0100
@@ -49,8 +49,6 @@
(defmethod initialize-instance :after ((browser class-browser) &rest args)
(declare (ignore args))
- (setup-class-list (classes browser))
-
(let* ((w (make-instance 'qt:widget))
(layout (make-instance 'qt:vbox-layout)))
(cxx:add-widget layout (classes-list browser))
@@ -68,20 +66,20 @@
(cxx:set-layout w layout)
(cxx:add-widget browser w))
(cxx:add-widget browser (web-view browser))
- (cxx:load (web-view browser) (make-instance 'qt:url
- :args '("http://doc.trolltech.com/4.5")))
- (cxx:set-uniform-item-sizes (classes-list browser) t)
- (cxx:set-selection-mode (classes-list browser) qt:abstract-item-view.+single-selection+)
- (cxx:set-model (classes-list browser) (classes browser))
- (cxx:set-word-wrap (class-info browser) t)
- (cxx:set-window-title browser "CL Qt Classes")
-
- (qt:connect (qt:get-signal (cxx:selection-model (classes-list browser))
- "currentChanged(QModelIndex, QModelIndex)")
- #'(lambda (current previous)
- (declare (ignore previous))
- (set-info (class-info browser)
- (web-view browser) current))))
+ (qt:do-delayed-initialize
+ (setup-class-list (classes browser))
+ (cxx:set-uniform-item-sizes (classes-list browser) t)
+ (cxx:set-selection-mode (classes-list browser) qt:abstract-item-view.+single-selection+)
+ (cxx:set-model (classes-list browser) (classes browser))
+ (cxx:set-word-wrap (class-info browser) t)
+ (cxx:set-window-title browser "CL Qt Classes")
+
+ (qt:connect (qt:get-signal (cxx:selection-model (classes-list browser))
+ "currentChanged(QModelIndex, QModelIndex)")
+ #'(lambda (current previous)
+ (declare (ignore previous))
+ (set-info (class-info browser)
+ (web-view browser) current)))))
(defun set-info (info web-view model-index)
(let* ((class (class-at model-index)))