Commit Graph

414 Commits

Author SHA1 Message Date
Simon Edwards
21ed97037a Add QResizeEvent class 2021-12-11 15:31:43 +01:00
Simon Edwards
1ab7d13b96 Add QWidget.setFixedHeight(), QWidget.setFixedWidth(), and QWidget.sizeHint() 2021-12-11 15:31:43 +01:00
Simon Edwards
47b3d514bb Add QWidget.setParent() 2021-12-11 15:31:43 +01:00
Simon Edwards
0e33e39759
Remove most unneeded or buggy Napi:HandleScope uses (#895) 2021-12-03 19:02:06 +01:00
Simon Edwards
d11ed993ee
Add signal support to QClipboard (#894)
* Add signal support to `QClipboard`

issue ##713
2021-12-02 20:33:46 +01:00
Simon Edwards
06528cdd67 Merge branch 'master' into qscreen_qwindow 2021-11-13 11:39:04 +01:00
Simon Edwards
05a5fdd539 Apply code formatting 2021-11-07 21:38:26 +01:00
Andreas Kröhnke
b35f386e46 Add QSplitter 2021-11-07 21:34:38 +01: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
88b2fcbcd1 Treat args to QPainter.translate(), scale(), and rotate() as doubles, not ints
issue #887
2021-11-03 21:21:58 +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
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
05c690dcd9 Fill in more screen and DPI support in QApplication 2021-10-24 11:19:05 +02:00
Simon Edwards
fa52c674ef Support addEventListener() when the wrapper handles signals 2021-10-23 18:51:17 +02:00
Simon Edwards
8ce6dde45b Add QScreen and QWindow, remove the deprecated QDesktopWidget 2021-10-22 22:15:59 +02:00
Simon Edwards
8ddc4172cd Add more QWidget methods 2021-10-16 16:43:24 +02:00
Simon Edwards
81eeaa3a20 Don't delete QObjects which have a parent
Qt's memory management is built around trees of objects where deleting the root object also deletes the whole tree. Objects with a parent are owned by that parent.
2021-10-16 14:16:34 +02:00
Andreas Kröhnke
47c00fabc1 Add QBrush as an argument to QPainter.setBrush 2021-10-14 20:15:03 +02:00
Simon Edwards
c4d9a93e56 Add many TODO comments, methods, and signals to QComboBox 2021-09-29 21:48:56 +02:00
Simon Edwards
c91856641c Fix QPen being completely broken 2021-09-24 20:21:36 +02:00
Simon Edwards
96b3cbe594 Add more QPainter methods 2021-09-23 20:52:23 +02:00
Simon Edwards
bd6b127358 Add QSizeF and QFontMetricsF 2021-09-20 21:45:14 +02:00
Simon Edwards
328dcea8c8 Remove some dead code in qstyle_wrap.cpp 2021-09-18 10:43:25 +02:00
Simon Edwards
590385339c Add QStyle.polish(), QStyle.unpolish(), and QWidget.style() 2021-09-13 19:50:53 +02:00
Simon Edwards
44bb1e5f0e QWidget: Add TODO comments, setSizePolicy(), set max/min width/height methods 2021-09-11 12:14:43 +02:00
Simon Edwards
a4a961666a Fill in QFontMetrics methods 2021-09-07 22:46:27 +02:00
Simon Edwards
8060a631b1 Add dumpObjectTree() & dumpObjectTree() to QObject 2021-09-07 20:32:09 +02:00
Simon Edwards
01096abede Fill in the QHeaderView methods 2021-09-02 21:33:09 +02:00
Simon Edwards
8110982412 Format C++ code 2021-09-02 19:15:51 +02:00
Nathanael Anderson
4429959fed Fix QWidgetTableItem Wrapper 2021-09-02 19:10:35 +02:00
Simon Edwards
87af1db2bc Fix up QHeaderView failing on the default nodejs MS compiler 2021-08-31 18:30:31 +02:00
Simon Edwards
391971f80b Fix QTableView.verticalHeader() and return the correct header 2021-08-30 19:24:38 +02:00
Simon Edwards
c3c597df4d Add QStyleFactory and bits to set the app style 2021-08-28 10:58:40 +02:00
Simon Edwards
edf437f056 Fill in QAbstractItemView methods & enums; add QItemSelectionModel 2021-08-26 22:13:35 +02:00
Simon Edwards
55217146ae More methods for QAbstractItemModel 2021-08-22 09:48: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
Simon Edwards
c209fe2adc Format cpp code 2021-08-22 09:48:17 +02:00
Simon Edwards
f7a4a4d3d1 Add QAbstractItemModel.buddy() support 2021-08-22 09:48:17 +02:00
Simon Edwards
e81b5ae658 Implement QAbstractItemModel.setData() and 5th tutorial example 2021-08-22 09:48:17 +02:00
Simon Edwards
588093519a Add header model view tutorial example 2021-08-22 09:48:17 +02:00
Simon Edwards
b5a9f30d34 Add the changing data model view example 2021-08-22 09:48:17 +02:00
Simon Edwards
25026a55f7 Add 2nd model view tutorial app 2021-08-22 09:48:17 +02:00
Simon Edwards
9eed41ecd8 Add bold support to QFont 2021-08-22 09:48:17 +02:00
Simon Edwards
25e0d61e01 Add basic QAbstractItemModel and QAbstractTableModel 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
a577689cd4 Add QFontDatabase.applicationFontFamilies() 2021-08-08 20:45:41 +02:00
Simon Edwards
d3f6d6d092 Implement QGridLayout.addLayout() 2021-08-04 20:31:33 +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
880a8433cb Add QApplication.setStyleSheet() 2021-07-30 09:34:15 +02:00
Simon Edwards
f319a24ad3 Add QColor.rgb() and QColor.rgba() 2021-07-30 09:34:15 +02:00
Simon Edwards
17462abae7 Add a (basic) QPalette 2021-07-30 09:34:15 +02:00
Simon Edwards
2901d09d01
Extra methodsfor QPainter, string lists in QVariant, and default args for QClipboard (#858)
* Add string list support to `QVariant`

* Add more methods to `QPainter`

* Give the `QClipboard` methods default params to match C++ API

* Code style fix for `nutils.cpp`
2021-07-16 21:14:16 +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
1bc346d22c
Add QEvent methods to all subclasses + some random methods (#848)
* Add `clearFocus()` to `QWidget`

* Add `Alignment` param to `QBoxLayout.addWidget()`

* Add `setViewportMargins()` & `viewportMargins()` to `QScrollArea`

* Add `QEvent` methods to all event related subclasses

* Tell C++ that our 0 is zero and not a null pointer
2021-07-08 22:45:41 +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
Simon Edwards
2b26ea4ddd
Extra font and painter related methods and classes (#845)
* Add `QPaintEvent`

* Add `setStyleName()` to `QFont`

* Add `isFixedPitch()` and `styles()` to `QFontDatabase`

* Add `drawImage()` to `QPainter`

* Add `setFocusPolicy()` to `QWidget`
2021-06-26 18:37:53 +02:00
Simon Edwards
a59274c371
Extra drawing related methods (#844)
* Add `setPixelSize()` & `pixelSize()` to `QFont`

* Add `xHeight()` to `QFontMetrics`

* Export `QImageFormat`

* Add `drawArc()`, `setFont()`, `setTransform()`, & `fillRect()` to `QPainter`

* Improve `QPainter.setTransform()` docs
2021-06-19 11:34:40 +02:00
Simon Edwards
953b553089
Add extra QMouseEvent and QPainter methods (#837)
* Add `buttons()` to `QMouseEvent`

* Add `beginNativePainting()` and `endNativePainting()` to `QPainter`
2021-06-12 17:51:42 +02:00
Steven Koch
69e6d8d6e2
Add painter.drawPie method and fix painterPath.arcTo arguments (#782) 2021-03-07 21:31:30 +01:00
Atul R
5b8eef255d fix lint 2021-03-07 20:32:00 +01:00
Atul R
8f7bde6e0a scrollarea fix 2021-03-07 20:27:31 +01:00
Atul R
b7ad6ed815 bump yoga native 2021-03-07 15:11:54 +01:00
Wyatt Kirby
3fe8f17f94
Fix incorrect behavior of minimum size for yoga layout (#814) 2021-02-25 22:43:45 +01:00
Maks
f13673bff1
Add QFontMetrics (issue #799) (#803) 2021-02-09 18:00:20 +01:00
Atul R
f1b9665c53 Fixes for ts v4 and lint fixes 2021-01-24 19:49:38 +01:00
4h7l
107b57849e
QImage support (#789)
* Add QImage to class list

* implement some methods and constructors

* ignore cmake-build-debug folder

* fix method name

* implement more methods

* Add static QPixmap.fromImage

* implement more methods

* implement other methods

* add API docs
2021-01-24 18:51:17 +01:00
Atul R
d9f035ef44 lint fix 2020-12-11 19:29:17 +05:30
Nathanael Anderson
65db04d3f9
Add most the missing QTableWidget properties and functions. (#758) 2020-12-11 19:22:51 +05:30
Nathanael Anderson
9b96a443ce
Add the missing QTableWidgetItem properties and functions. (#756) 2020-12-11 00:00:15 +05:30
Ranieri
8b6abd75f8
Add QDesktopWidget (#738)
* Add QDesktopWidget

* Add docs
2020-11-25 01:09:24 +05:30
Ruslan Garifullin
0b5ee00b58
Added QSvgWidget (#710)
* feat: added QSvgWidget

* docs: fix sidebars syntax
2020-10-18 16:37:52 +02:00
Ruslan Garifullin
979989e166
Added setFocus to QWidget (nodegui#661) (#669) 2020-08-17 23:47:18 +02:00
HENRIQUE DE SOUZA NERY
7bcbe2f01d
QTableWidget SelectedRanges function fix (#663)
Co-authored-by: Henrique Nery <hnery@automni.com.br>
2020-08-13 11:55:43 +02:00
Doug Barbieri
fc64e7af99
Add QIcon support to QTreeWidgetItem. (#657)
* Add QIcon support to QTreeWidgetItem.

Signed-off-by: R. Douglas Barbieri <doug@dooglio.net>

* Move to QTreeWidgetItem from QTableWidgetItem...

I made a mistake and added the icon support to `QTableWidgetItem`
instead of the tree widget.

* Ran prettier.

* Add small test for the widget and item.

* Added tree widget test to demo.
2020-08-12 16:03:29 +02:00
swittk
92b7a9b798
Fixes QTableWidget.setHorizontalHeaderItem crash (#633)
Co-authored-by: Switt Kongdachalert <switt1995@yahoo.com>
2020-07-14 20:51:53 +02:00
swittk
5c62cdcc8a
Implemented QDrag Class (#626)
* Added QWheelEvent

* removed x y

* Added QNativeGestureEvent

* Changed wrong type of QNativeGestureEventWrap value

* Added QTabletEvent

* Fixing build error for QTabletEvent

* adding dropaction

* fix typos

* Added more functions to QPainterPath

* Added more functions to QPainterPath

* Fixed multiple typos

* Fixed multiple typos

* Got QPainterPath additions working.

* Modified QPainterPath to use qreal instead

* Added QPointF, added a few missing methods to QPoint

* Added QRectF

* implemented QRectF

* Added acceptDrops and setAcceptDrops to QWidget, will be useful for addon implementation of Drag and Drop

* Added more methods to QUrl

* Added QMimeData, additional methods to QUrl, and Dropping should now be supported

* refactored

* Fixed more merge conflicts

* Is this my final merge conflict??

* All merge conflicts resolved

* All merge conflicts resolved

* Adds guide for drag and drop

* lint fix

* added preliminary stuff, will need to tweak to make compilable..

* Compile passed, let's see if it works...

* QDrag added, working

* pause a bit, QDrag causes delayed error of 'QPaintDevice: Cannot destroy paint device that is being painted'

* Revert "Implemented QDrag class"

* Disabled problematic functions

* pulling from origin

Co-authored-by: Switt Kongdachalert <switt1995@yahoo.com>
Co-authored-by: Atul R <atulanand94@gmail.com>
2020-07-04 19:58:40 +02:00
Atul R
ca792e2c7f
Adds high dpi scaling (#616) 2020-06-28 17:31:55 +02:00
swittk
3cb3424250
Added QMimeData, additional methods to QUrl, and Dropping should now be supported (#614)
* Added QWheelEvent

* removed x y

* Added QNativeGestureEvent

* Changed wrong type of QNativeGestureEventWrap value

* Added QTabletEvent

* Fixing build error for QTabletEvent

* adding dropaction

* fix typos

* Added more functions to QPainterPath

* Added more functions to QPainterPath

* Fixed multiple typos

* Fixed multiple typos

* Got QPainterPath additions working.

* Modified QPainterPath to use qreal instead

* Added QPointF, added a few missing methods to QPoint

* Added QRectF

* implemented QRectF

* Added acceptDrops and setAcceptDrops to QWidget, will be useful for addon implementation of Drag and Drop

* Added more methods to QUrl

* Added QMimeData, additional methods to QUrl, and Dropping should now be supported

* refactored

* Fixed more merge conflicts

* Is this my final merge conflict??

* All merge conflicts resolved

* All merge conflicts resolved

* Adds guide for drag and drop

* lint fix

Co-authored-by: Switt Kongdachalert <switt1995@yahoo.com>
Co-authored-by: Atul R <atulanand94@gmail.com>
2020-06-27 17:35:31 +02:00
Atul R
f4d656d8ef lint and update docs 2020-06-26 17:05:02 +02:00
swittk
3fadf33113
Added setAcceptDrops, acceptDrops to QWidget for creating drag-drop extensions (#613)
* Added QWheelEvent

* removed x y

* Added QNativeGestureEvent

* Changed wrong type of QNativeGestureEventWrap value

* Added QTabletEvent

* Fixing build error for QTabletEvent

* adding dropaction

* fix typos

* Added more functions to QPainterPath

* Added more functions to QPainterPath

* Fixed multiple typos

* Fixed multiple typos

* Got QPainterPath additions working.

* Modified QPainterPath to use qreal instead

* Added QPointF, added a few missing methods to QPoint

* Added QRectF

* implemented QRectF

* Added acceptDrops and setAcceptDrops to QWidget, will be useful for addon implementation of Drag and Drop

Co-authored-by: Switt Kongdachalert <switt1995@yahoo.com>
2020-06-26 16:53:43 +02:00
swittk
b0570fcdc5
Added Support For QTabletEvent and QNativeGestureEvents (#611)
* Added QWheelEvent

* removed x y

* Added QNativeGestureEvent

* Changed wrong type of QNativeGestureEventWrap value

* Added QTabletEvent

* Fixing build error for QTabletEvent

Co-authored-by: Switt Kongdachalert <switt1995@yahoo.com>
2020-06-22 14:47:05 +02:00
swittk
2b74e3cd77
Added Support for QWheelEvent (#609)
* Added QWheelEvent

* removed x y

Co-authored-by: Switt Kongdachalert <switt1995@yahoo.com>
2020-06-22 09:24:20 +02:00
Atul R
cb5cab493e lint fix 2020-06-09 19:43:42 +02:00
Adam Gastineau
4ea054084c
Implemented QGridLayout property accessors (#598)
* Implemented QGridLayout property accessors

* Remove unnecessary demo code

* Minor formatting changes
2020-06-09 16:15:02 +02:00
Akiva Levy
ad134527d4
Fix missing include of cstdint in yoga event.h (#593)
This is a short-term fix until [PR #1009][1] is approved and merged into
Yoga. Once merged, the latest version of Yoga may be included, as this
will be no longer necessary. The effects of this issue can be seen in
NodeGUI's [issue 591][2].

[1]: https://github.com/facebook/yoga/pull/1009
[2]: https://github.com/nodegui/nodegui/issues/591
2020-06-05 08:05:22 +02:00
Adam Gastineau
cab30f4822
Added support for setRow/ColumnCount (#578) 2020-05-25 16:08:28 +02:00
流君酱
fa7ddaa531
added support for QWidget::maximumSize && QWidget::minimumSize (#574) 2020-05-22 16:49:38 +02:00
Atul R
1bd0a5ca10
Upgrade deps (#562)
* upgrade qode

* 0.20.0

* dep updates

* formatting and fix exports

* fix type rename
2020-05-13 09:15:46 +02:00
Stephen A
b4c8cf61e7
add QPainterPath and additional QPainter functions (#552) 2020-05-12 09:43:32 +02:00
Mihkel
17239ae5cf
added support for QWidget::removeAction #548 (#549) 2020-05-08 08:40:00 +02:00
Singha360
5f2bc51bbc
Added method to set column width to QTreeWidget (#523)
* Fixed slight error in dependencies installation command (Ubuntu)

* Implemented setColumnWidth method for QTreeWidget

* Added an example of using setColumnWidth method

* Fixed doc error for setColumnWidth method.
2020-04-19 10:07:40 +02:00
mspencer92
e8c97e1938
Added fromString functions to QDate, QTime, and QDateTime (#518)
Added fromString functions to QDate, QTime, and QDateTime and added a demo on how to show and sort QDate and QTime in a QTreeWidget.
2020-04-14 19:16:02 +02:00
feng8848
527a18a1e5
fix issue #503 (#519)
* fix issue #481

* fix lint

* Add QTextEdit and QTextBrowser

* Add QGraphicsBlurEffect

* Add QGraphicsDropShadowEffect

Co-authored-by: wuxiaofeng <wuxiaofeng@erayt.com>
2020-04-14 19:10:34 +02:00