modular Smoke kdeui
src/application.lisp
Sat Apr 3 19:29:08 CEST 2010 Tobias Rautenkranz <tobias@rautenkranz.ch>
* modular Smoke kdeui
--- old-kde.ui/src/application.lisp 2014-10-30 07:22:14.000000000 +0100
+++ new-kde.ui/src/application.lisp 2014-10-30 07:22:14.000000000 +0100
@@ -1,38 +1,28 @@
-(in-package :kde)
+(in-package :cl-smoke.kde.ui)
-(declaim (optimize (debug 3)))
-
-;;; FIXME crash on quit, Called from ~KIconLoader():
-;;; CL-USER> (cffi:defcfun (kbacktrace "_Z14kRealBacktracei") :pointer
-;;; (levels :int))
-;;; KBACKTRACE
-;;; CL-USER> (kbacktrace -1)
-;;;
-;;; Unhandled memory fault at #x0.
-
-(defun app ()
- (assert (app-p))
+(defun kde:app ()
+ (assert (kde:app-p))
(qt:app))
-(defun app-p ()
+(defun kde:app-p ()
(and (qt:app-p)
- (typep (qt:app) (find-class 'application))))
+ (typep (qt:app) (find-class 'kde:application))))
-(defun make-aboutdata (app-name program-name version)
+(defun kde:make-aboutdata (app-name program-name version)
(let ((app-name (make-instance 'qt:byte-array :args (list app-name)))
(catalog-name (make-instance 'qt:byte-array))
(program-name (kde:ki18n program-name))
(version (make-instance 'qt:byte-array :args (list version))))
- (make-instance 'about-data :args (list app-name catalog-name
- program-name version))))
+ (make-instance 'kde:about-data :args (list app-name catalog-name
+ program-name version))))
(let ((argv))
- (defun ensure-app (about-data &optional (application 'application)
+ (defun ensure-app (about-data &optional (application 'kde:application)
(args #+sbcl sb-ext:*posix-argv*
#-sbcl (list "lisp")))
(if (qt:app-p)
(progn
- (assert (typep (qt:app) (find-class application))
+ (assert (typep (qt:app) (find-class 'kde:application))
()
"The existing application object ~A is
not of type ~A." (qt:app) (find-class application))
@@ -45,23 +35,23 @@
(setf argv (foreign-alloc :string :initial-contents args))
(kde:cmd-line-args.init (length args) argv about-data)
- (values (make-instance 'application) t))))
+ (values (make-instance 'kde:application) t))))
(defun kill-app ()
(qt:application.close-all-windows)
- (setf cl-smoke.qt-impl::*widgets* nil)
+ (setf cl-smoke.qt.gui::*widgets* nil)
;; FIXME make it work without mem-faults
- (trivial-garbage:cancel-finalization (app))
- (cxx:delete-later (app))
+ (trivial-garbage:cancel-finalization (kde:app))
+ (cxx:delete-later (kde:app))
;(smoke::delete-pointer (smoke::pointer (app)) (class-of (app)))
- (setf (slot-value (app) 'pointer) (null-pointer))))
+ (setf (slot-value (kde:app) 'pointer) (null-pointer))))
-(defmacro with-app (about-data &body body)
- `(cl-smoke.qt-impl::with-application ((ensure-app ,about-data)
+(defmacro kde:with-app (about-data &body body)
+ `(cl-smoke.qt.core::with-application ((ensure-app ,about-data)
(kill-app))
,@body))
-(defmacro with-kde ((app-name program-name version) &body body)
+(defmacro kde:with-kde ((app-name program-name version) &body body)
(let ((about-data (gensym)))
- `(let ((,about-data (make-aboutdata ,app-name ,program-name ,version)))
- (with-app ,about-data
- ,@body))))
+ `(let ((,about-data (kde:make-aboutdata ,app-name ,program-name ,version)))
+ (kde:with-app ,about-data
+ ,@body))))