mirror of
https://gitlab.com/eql/EQL5.git
synced 2025-12-17 07:40:37 -08:00
37 lines
1.2 KiB
Common Lisp
37 lines
1.2 KiB
Common Lisp
;;; dynamically accessible enums (see Q_ENUMS, Q_FLAGS)
|
|
|
|
(setf eql:*break-on-errors* nil)
|
|
|
|
(dolist (module '(:help :network :sql :svg :webkit))
|
|
(qrequire module))
|
|
|
|
(defun run ()
|
|
(let (all-enums)
|
|
(flet ((add-enums (scope)
|
|
(dolist (enums (rest (qenums scope)))
|
|
(dolist (enum (rest enums))
|
|
(push (format nil "(\"|~A.~A|\" . ~D)"
|
|
scope
|
|
(car enum)
|
|
(cdr enum))
|
|
all-enums)))))
|
|
(with-open-file (s "enum-lists/dynamic-enums.lisp" :direction :output :if-exists :supersede)
|
|
(write-char #\( s)
|
|
(add-enums "Qt")
|
|
(dolist (name (qobject-names))
|
|
(let ((mo (ignore-errors (qstatic-meta-object name))))
|
|
(when (and mo (string= (! "className" mo) name))
|
|
(print name)
|
|
(add-enums name))))
|
|
(let ((ex ""))
|
|
(dolist (enum (sort all-enums 'string<))
|
|
(when (string/= ex enum)
|
|
(princ #\Newline s)
|
|
(princ enum s)
|
|
(setf ex enum))))
|
|
(terpri s)
|
|
(write-char #\) s)))))
|
|
|
|
(progn
|
|
(run)
|
|
(qq))
|