Commit Graph

85 Commits

Author SHA1 Message Date
Simon Edwards
5a51e2748b Also emit the event object after default processing 2022-12-02 17:01:01 +01:00
Atul R
b7d503fd39
fix breaking build on macos (#970)
* fix breaking build on macos

* 0.57.1

* fix tests
2022-09-04 00:14:10 +02:00
Simon Edwards
43deec1c9e Expand event support to grab QEvents after default processing 2022-05-26 09:44:34 +02:00
Simon Edwards
0f9ad1e028 Add logging/debugging controls for the wrapper lifecycle 2022-05-20 15:25:18 +02:00
Simon Edwards
6aa3f00fa3 Massive C++ wrapper update 2022-05-09 22:12:52 +02:00
Simon Edwards
f3d7d73acc Add QObject.children() 2022-05-05 19:25:01 +02:00
Simon Edwards
880ea7c998 Add QObject.parent() and infra for correct subclass wrappers 2022-05-05 17:10:40 +02:00
Simon Edwards
02f901ddf1 Add QObject.delete() and QObject.deleteLater(), and test QObject deletion 2022-05-01 20:02:02 +02:00
Simon Edwards
cbb3f99dfa Add QObject.parent() and a heap of wrapper management 2022-05-01 11:08:37 +02:00
Simon Edwards
83e9c09690 Remove NodeLayout, use QLayout instead 2022-04-29 19:55:13 +02:00
Simon Edwards
38b12759c6 Remove NodeWidget, just use QWidget 2022-04-29 19:36:46 +02:00
Simon Edwards
c6d30f8f9f Combine NodeObject+QObject; put native field in Component 2022-04-29 13:30:39 +02:00
Simon Edwards
7ae4a5cb7e Wrap some native objects during event dispatch 2021-11-06 20:41:04 +01:00
Simon Edwards
2dc8319b50 Add some tests for the wrapper cache 2021-11-05 21:10:01 +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
123123605c Make the wrapper cache callback work 2021-10-27 12:20:49 +02:00
Simon Edwards
710cfa3d31 Add wrapper caching. Try it on QScreen. 2021-10-27 10:46:12 +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
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
d04364a186
Add QInputEvent methods (#853) 2021-07-11 12:33:17 +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
Simon Edwards
f4e0ca1677
More random methods and events (#847)
* Add `maximumViewportSize()`, `setHorizontalScrollBar()` & `setVerticalScrollBar()` to `QAbstractScrollArea`

* Log any JS exceptions thrown during Qt event dispatch

* Add `setData()` & `data()` to `QAction`

* Add `clear()` to `QMenu`

* Add `triggered` event support to `QMenu`

* Code style fixes

* Add `focusWindowChanged` event to `QApplication`

* Add `isActiveWindow()` to `QWidget`
2021-07-04 12:55:41 +02:00
Atul R
f1b9665c53 Fixes for ts v4 and lint fixes 2021-01-24 19:49:38 +01:00
Shubham Zanwar
c54826de6a
feat: adding ordering and next sibling method to flex layout (#615)
* feat: adding methods to get the child index and next child

* feat: ordering children properly in insert before
2020-06-28 14:01:05 +02:00
Atul R
e0cddc9a7b bring back event loop activator 2020-04-13 23:34:58 +02:00
Atul R
c499645797 cleanup memory for scrollarea
Adds basic format
2020-03-24 20:35:29 +01:00
Atul R
e6c2eb4380
wrapWithUvloop waker (#380) 2020-01-28 20:21:06 +01:00
Atul R
0f4f0c5567
fixes qmovie breaking on error. (#370)
Adds default error handler for all event listeners
2020-01-27 20:43:52 +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
20cf4cc080
Cleans up (fixes build errors) (#310) 2019-12-29 09:37:05 +05:30
Atul R
392aa3cd4c
Adds automatic docs for now (#308)
* adds basic typedoc

* backup

* Adds all docs to source code

* Adds autogenerated docs

* Fixes doc links

* Updates docs
2019-12-29 00:42:06 +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
c90b2cb3ce
QTreeWidget PR (#277)
* Added the beginning of QTreeWidget and QTreeWidgetItem

* Fixed garbage collection

* Fixed garbage collection

* Rewrote the constructor for QTreeWidgetItem

* Code cleanup

* Fixed up the QTreeWidgetItem constructor to accept only a string list of columns. Code cleanup

* Add setHeaderHidden to QTreeWidget

* Started adding signals to QTreeWidget

* Started adding signals to QTreeWidget

* Started adding signals to QTreeWidget

* Added TreeWidget back to main.cpp

* Added more functions to QTreeWidgetItem and QPlainTextEdit

* linting and cleanup

* parenting fix

* Fixes garbage collection for treewidget items
2019-12-18 17:36:44 +05:30
Atul R
d79ba0620d
bugifx: layout insertion and qvariant (#255) 2019-12-08 22:33:27 +01:00
Atul R
f8c9557166
Feature/bug fixes (#254)
* cleanup

* Check for preventing double addition due to the way reconciler works

* set scrollarea as resizeable by default
2019-12-08 20:55:13 +01:00
Atul R
1a02ded4be
Fixes flexlayout calculations (#223) 2019-11-25 23:25:47 +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
95cdcb37be
Adds QObject exports (#184)
* Adds QObject wrapper

* disable source map in the dist since its of no use

* rename to nodeobject

* Adds qobject setProperty and auto conversion of napi to qvariant (mvp version)

* fix

* moved qobject methods to qobject from qwidget

* added qobject test cases
2019-11-10 01:04:37 +01:00
Atul R
6035b5d038
Re arrange folders to make more sense (#180)
* Re-arranged qtgui and core

* Re arranges qt widgets
2019-11-08 20:33:17 +01:00
Atul R
f56bf965ee
Fixes warnings in eslint (#179) 2019-11-08 20:03:50 +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
Dimitar Nestorov
242abf9079 Renaming children to nodeChildren
Renaming `parent` to `nodeParent`
2019-11-03 20:28:14 +02:00
Atul R
36329a44b3
Experimental menu and tests (#139)
* Adds basic tests for window and label

* Adds few test cases for QWidget

* Adds working tests setup

* Adds inital code for menus
2019-10-07 19:24:17 +02:00
Atul R
15a48e6723 cleanup 2019-09-21 23:26:58 +02:00
Atul R
12b08baed9 Cleans up addon import 2019-09-21 00:05:46 +02:00