Commit Graph

32 Commits

Author SHA1 Message Date
Simon Edwards
0e33e39759
Remove most unneeded or buggy Napi:HandleScope uses (#895) 2021-12-03 19:02:06 +01:00
Simon Edwards
7ae4a5cb7e Wrap some native objects during event dispatch 2021-11-06 20:41:04 +01:00
Simon Edwards
f7f86d5cfa Pass env to WrapperCache::get() 2021-10-31 17:02:43 +01:00
Simon Edwards
2b2d2a65b2 Make the wrapper cache generic. Apply it to QWindow and QScreen 2021-10-31 09:32:37 +01:00
Simon Edwards
710cfa3d31 Add wrapper caching. Try it on QScreen. 2021-10-27 10:46:12 +02:00
Simon Edwards
fa52c674ef Support addEventListener() when the wrapper handles signals 2021-10-23 18:51:17 +02:00
Simon Edwards
4f0f64884d Keep backwards compatability with non-virtual connectSignalsToEventEmitter() 2021-08-22 09:48:17 +02:00
Simon Edwards
1f11f1cf8b Make connectSignalsToEventEmitter() virtual to support wrappers on plain Qt widget instances 2021-08-22 09:48:17 +02:00
Simon Edwards
d81b781d1f Warn when using addEventListener() on an instance not from NodeGui 2021-08-22 09:48:17 +02:00
Simon Edwards
053fc9dc65 Add (basic) QHeaderView; Support wrappers on plain Qt widgets 2021-08-22 09:48:17 +02:00
Atul R
c26a194694
Upgrade deps and qode (#865)
* bump deps

* fix test

* fix node verison

* 0.36.0

* revert tsconfig

* add env

* fix cmake build for windows

* fix qode bump

* temp fix
2021-08-09 23:44:46 +02:00
Simon Edwards
87e6531c65 Re-use existing JS event emitters when creating JS side wrappers
By not re-using JS event emitters, if a JS/C++ wrapper is created twice for
a `QObject` then any previously registered event handlers will be overwritten
and lost when the `QObject`'s `initNodeEventEmitter()` is called for a 2nd
time.
2021-08-02 17:07:13 +02:00
Simon Edwards
4eebad6f5f
Add way for JS to stop event processing in QObject::event() (#850)
This adds a couple small methods on `QObject` which makes it possible for
JS code to indicate to the currently running `QObject::event()` override
method whether it should allow more processing of an event or to stop
processing and not call super class `event()` method. This is Qt recommended
(C++) way of overriding event behaviour and stopping default behaviour.
2021-07-10 20:49:43 +02:00
Atul R
86c3ef089c
Integration with Qode 2.0 (#400)
* Moves qt integration solely to the nodegui core addon

* Adds lint fixes

* moved to integration core

* cleans up export snippet

* revert package.json

* Add exit if app->exec finishes.

* lint fix

* Makes QApplication custom

* adds qobject to wrap of qapp

* Adds working qt run looper

* Adds font default

* Adds qt installer

* Updates qode integration to v2.0.1

* fix cpp lints

* Fixes lint and deps

* Adds miniqt installation

* adds setup mini qt script

* skips tests due to issues with jest

* fix config and download path for linux and windows

* Adds multiple artifact downloader

* fix qt config and compilation

* Fixes qode path for windows (now it can load dll's easily)

* Add compilation

* fix windows path setup

* use scripts directly

* enabled tests back

* fix ubuntu deps

* update to alpha release

* fix workflow

* adds more artifacts and funding field

* change to alpha v2

* update prebuild yml

* revert build action

* disabling prebuild for now

* switch to stable release 5.14.1

* version bump
2020-03-07 10:28:30 +01:00
Atul R
626045549f
Fix/windows addon lib (#369)
* Adds libs and exp to windows addon building

* fixes refex on windows prebuilt

* 0.13.1
2020-01-25 21:52:15 +01:00
Atul R
7dcc329cf8
Adds plugin support for windows platform (#364)
* updates cmake file for windows plugin support

* basic exports

* minor export fixes

* rename macro

* rename export macro

* fixes build error on windows

* cleanup cmakelist

* updated headers
2020-01-22 21:15:30 +01:00
mspencer92
fd270c18ac Added QMessageBox (#326)
* Added QMessageBox

* Adds Qdialog

* Fixes inheritance and adds pointer based event listener

* Cleans up Qmessagebox so that we create all buttons

* change to abstract button

* fix rawData fetching from the template

* formatting fixes

* change to Objectwrap for better type casting

* Adds Native element part in qpushbutton

* Adds NapiExternal check and use ptr for initialization

* Adds all button classes

* fix c

* fix merge conflicts

* lint fix

Co-authored-by: Atul R <atulanand94@gmail.com>
2020-01-05 15:53:49 +05:30
Atul R
d1e5d499fb
Inherit implemented Qt signals from base classes (#290)
* Adds abstract signals

* basic layout and filedialogs

* Adds all remaining signal heirarchies

* fix lint
2019-12-23 01:26:02 +05:30
Atul R
42e92ecbff
Adds Signals inheritance (#288)
* Inherit signals

* export signals

* Fix Qvariant build

* Adds Abstract button signals

* added more test cases
2019-12-20 23:48:53 +05:30
Atul R
01a6476f9c
Separate events and signals (#287)
* Wip

* Improve constructor typings

* Fixes types for Gui and Core

* QtGui

* Remove unnecessary imports and fix types on abstract classes

* Adds half of qwidgets

* Add all widgets

* cleans up

* fix failing test

* lint fix

* fix demo
2019-12-20 18:33:05 +05:30
Atul R
a593c53116
Throttle flex layout calculation calls to improve performance (#268)
* Throttling multiple calls to setGeometry

* Lint
2019-12-15 23:36:04 +05:30
Atul R
bae4776747
Fixes dynamic layout sizes after widget show (#241)
* handles most cases

* Works with every edge case
Works similar to QGridLayout

* performance fix

* Adds calculate to sizehint
2019-12-04 00:21:47 +01:00
Atul R
6ac7303e16
Adds automatic test and linting on pull requests for nodegui (#215)
* adds test action

* make c++11 mandatory

* fix

* fix

* fix broken tests in windows

* upgrade qode to 1.0.6

* Fixes recursive hell for layouts

* adds cross env for windows

* change to pull request
2019-11-22 23:43:54 +01:00
Atul R
cce917681f
Bug fixes: Flexlayout. Fixes layout issues (#211)
* bump version

* Fixes size control for the flex layout

* Bumps version
2019-11-22 00:02:49 +01:00
Atul R
11ff1be321
Fixes sizepolicies for FlexLayout. (#205)
* update package.lock

* Fixes the flexlayout to follow sizehints by yoga.

* fix lint
2019-11-19 00:07:18 +01:00
Atul R
edcdbb510e
Adds dynamic content support for flex layout. (#199)
* layout performance fix

* adjust size, webdefaults

* Add flexlayout owner to the context

* revert

* reorders setlayout and setflexnode

* add defaults

* fix mainwindow rootNode

* properties to methods

* Adds defaultsAdds flexutils  measurewidget

* introduce configure for all types of nodes.

* lint fix

* Revams flexlayout to handle dynamic content

* Adds dynamic layout support for flex layout.

* lint fix

* fix few code updates
2019-11-18 00:52:29 +01:00
Atul R
9e667c7a86
Adds qobject props to all layouts (#196) 2019-11-12 20:49:35 +01:00
Atul R
21e5e78876
Add qvariant object translation (#185)
* working - translation of any wrapped object

* clang format
2019-11-10 12:30:26 +01:00
Atul R
382f2d7da6
Changes unique_ptr to qpointer for qobjects since they can be managed by other parent objects. This fixes double memory free. (#182) 2019-11-09 00:05:25 +01:00
Atul R
bd65329641
Adds linters, code formatters for both js and c++ and adds prepush hook (#178) 2019-11-08 19:30:01 +01:00
Atul R
e87485441e Adds include and linkings for plugins 2019-09-22 14:24:46 +02:00
Atul R
a287d9ca59 separates include headers and implementation 2019-09-21 22:53:25 +02:00