- Исправлен баг с методом pixmap() - нельзя было получить картинку после уничтожения объекта QPixmap;
- Исправлена невозможность использования класса.
- Добавлена шаблонная функция, с помощью которой можно создать объект по имени класса и зарегистрировать его в PHP, при условии, что
запрашиваемый класс был зарегистрирован (класс может быть зарегистрирован другим расширением).
Функция позволяет создавать непрямые взаимосвязи между расширениями, когда расширения не зависят друг от друга на этапе компиляции, но могут совместо работать с классами объявленными в них.
T* pq_createObjectT<T>(const QString &className, const QVariantList &args);
Реальный пример использования на примере расширения PQEngineWidgets, которое не зависит от расширения PQEngineDrawKit, но может работать с его классом QPixmap:
- Code:
PQObject *PQLabel::pixmap() const { QVariantList args; args << *(QLabel::pixmap()); // т.к. PHP вероятнее всего уничтожил объект QPixmap вместе с переменной, а его копия // по прежнему существует в QLabel, нужно пересоздать этот объект: PQObject *pqobject = pq_createObjectT<PQObject>("QPixmap", args); return pqobject; }
- Code:
function method_one() { $pixmap = new QPixmap; $pixmap->loadFromData(file_get_contents("http://example.com/image.png")); $this->label->pixmap = $pixmap; // $pixmap уничтожается // но его копия остается в QLabel } function method_two() { // и тут мы всё-равно получим доступ к его копии pre($this->label->pixmap->size()); }
- Исправлена функция конвертации строк при вызове методов;
Скопировать в папку с установленным PQBuilder, запустить самораспаковывающийся архив и извлечь с заменой файлов.