Merge pull request #84 from nodegui/feature/plain-text-edit-methodsandsignals
Feature/plaintextedit more methods and signals
This commit is contained in:
commit
6cb1be07ce
@ -32,20 +32,40 @@ QPlainTextEdit can access all the instance properties defined in [NodeWidget](ap
|
||||
|
||||
QPlainTextEdit can access all the instance methods defined in [NodeWidget](api/NodeWidget.md).
|
||||
|
||||
#### [`plainTextEdit.setPlainText(text)`](https://doc.qt.io/qt-5/qplaintextedit.html#setPlainText)
|
||||
#### `plainTextEdit.setPlainText(text)`
|
||||
|
||||
Sets the given text to the plainTextEdit.
|
||||
Sets the given text to the plainTextEdit. It calls the native method [QPlainTextEdit: setPlainText](https://doc.qt.io/qt-5/qplaintextedit.html#setPlainText).
|
||||
|
||||
- `text` string
|
||||
|
||||
#### [`plainTextEdit.toPlainText()`](https://doc.qt.io/qt-5/qplaintextedit.html#toPlainText)
|
||||
#### `plainTextEdit.toPlainText()`
|
||||
|
||||
Returns the text of the text edit as plain text.
|
||||
Returns the text of the text edit as plain text. [QPlainTextEdit: toPlainText](https://doc.qt.io/qt-5/qplaintextedit.html#toPlainText).
|
||||
|
||||
#### [`plainTextEdit.setReadOnly(isReadOnly)`](https://doc.qt.io/qt-5/qplaintextedit.html#readOnly-prop)
|
||||
#### `plainTextEdit.setReadOnly(isReadOnly)`
|
||||
|
||||
Sets the plainTextEdit to be read only.
|
||||
Sets the plainTextEdit to be read only. [QPlainTextEdit: isReadOnly](https://doc.qt.io/qt-5/qplaintextedit.html#readOnly-prop).
|
||||
|
||||
#### [`plainTextEdit.clear()`](https://doc.qt.io/qt-5/qplaintextedit.html#clear)
|
||||
#### `plainTextEdit.clear()`
|
||||
|
||||
Deletes all the text in the text edit.
|
||||
Deletes all the text in the text edit.[QPlainTextEdit: clear](https://doc.qt.io/qt-5/qplaintextedit.html#clear).
|
||||
|
||||
#### `plainTextEdit.setWordWrapMode(mode)`
|
||||
|
||||
This property holds the mode QPlainTextEdit will use when wrapping text by words.[QPlainTextEdit: setWordWrapMode](https://doc.qt.io/qt-5/qplaintextedit.html#wordWrapMode-prop).
|
||||
|
||||
- mode: WrapMode
|
||||
|
||||
#### `plainTextEdit.wordWrapMode()`
|
||||
|
||||
returns word wrap mode. [QPlainTextEdit: wordWrapMode](https://doc.qt.io/qt-5/qplaintextedit.html#wordWrapMode-prop).
|
||||
|
||||
#### `plainTextEdit.setLineWrapMode(mode)`
|
||||
|
||||
This property holds the line wrap mode. [QPlainTextEdit: setLineWrapMode](https://doc.qt.io/qt-5/qplaintextedit.html#lineWrapMode-prop).
|
||||
|
||||
- mode: LineWrapMode
|
||||
|
||||
#### `plainTextEdit.lineWrapMode()`
|
||||
|
||||
returns line wrap mode. [QPlainTextEdit: setLineWrapMode](https://doc.qt.io/qt-5/qplaintextedit.html#lineWrapMode-prop).
|
||||
|
||||
@ -17,5 +17,40 @@ public:
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "textChanged")});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::blockCountChanged, [=](int newBlockCount) {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "blockCountChanged"), Napi::Value::From(env, newBlockCount)});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::copyAvailable, [=](bool yes) {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "copyAvailable"), Napi::Value::From(env, yes)});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::cursorPositionChanged, [=]() {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "cursorPositionChanged")});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::modificationChanged, [=](bool charged) {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "modificationChanged"), Napi::Value::From(env, charged)});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::redoAvailable, [=](bool available) {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "redoAvailable"), Napi::Value::From(env, available)});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::selectionChanged, [=]() {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "selectionChanged")});
|
||||
});
|
||||
QObject::connect(this, &QPlainTextEdit::undoAvailable, [=](bool available) {
|
||||
Napi::Env env = this->emitOnNode.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
this->emitOnNode.Call({Napi::String::New(env, "undoAvailable"), Napi::Value::From(env, available)});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@ -15,6 +15,10 @@ Napi::Object QPlainTextEditWrap::init(Napi::Env env, Napi::Object exports) {
|
||||
InstanceMethod("toPlainText",&QPlainTextEditWrap::toPlainText),
|
||||
InstanceMethod("setReadOnly", &QPlainTextEditWrap::setReadOnly),
|
||||
InstanceMethod("clear", &QPlainTextEditWrap::clear),
|
||||
InstanceMethod("setWordWrapMode", &QPlainTextEditWrap::setWordWrapMode),
|
||||
InstanceMethod("wordWrapMode", &QPlainTextEditWrap::wordWrapMode),
|
||||
InstanceMethod("setLineWrapMode", &QPlainTextEditWrap::setLineWrapMode),
|
||||
InstanceMethod("lineWrapMode", &QPlainTextEditWrap::lineWrapMode),
|
||||
QWIDGET_WRAPPED_METHODS_EXPORT_DEFINE(QPlainTextEditWrap)
|
||||
QABSTRACTSCROLLAREA_WRAPPED_METHODS_EXPORT_DEFINE(QPlainTextEditWrap)
|
||||
});
|
||||
@ -77,3 +81,33 @@ Napi::Value QPlainTextEditWrap::clear(const Napi::CallbackInfo &info){
|
||||
this->instance->clear();
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QPlainTextEditWrap::setWordWrapMode(const Napi::CallbackInfo &info){
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
Napi::Number mode = info[0].As<Napi::Number>();
|
||||
this->instance->setWordWrapMode(static_cast<QTextOption::WrapMode>(mode.Int32Value()));
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QPlainTextEditWrap::wordWrapMode(const Napi::CallbackInfo &info){
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
int value = static_cast<int>(this->instance->wordWrapMode());
|
||||
return Napi::Number::From(env, value);
|
||||
}
|
||||
|
||||
Napi::Value QPlainTextEditWrap::setLineWrapMode(const Napi::CallbackInfo &info){
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
Napi::Number mode = info[0].As<Napi::Number>();
|
||||
this->instance->setLineWrapMode(static_cast<QPlainTextEdit::LineWrapMode>(mode.Int32Value()));
|
||||
return env.Null();
|
||||
}
|
||||
|
||||
Napi::Value QPlainTextEditWrap::lineWrapMode(const Napi::CallbackInfo &info){
|
||||
Napi::Env env = info.Env();
|
||||
Napi::HandleScope scope(env);
|
||||
int value = static_cast<int>(this->instance->lineWrapMode());
|
||||
return Napi::Number::From(env, value);
|
||||
}
|
||||
@ -23,5 +23,9 @@ class QPlainTextEditWrap : public Napi::ObjectWrap<QPlainTextEditWrap>{
|
||||
Napi::Value toPlainText(const Napi::CallbackInfo &info);
|
||||
Napi::Value setReadOnly(const Napi::CallbackInfo &info);
|
||||
Napi::Value clear(const Napi::CallbackInfo &info);
|
||||
Napi::Value setWordWrapMode(const Napi::CallbackInfo &info);
|
||||
Napi::Value wordWrapMode(const Napi::CallbackInfo &info);
|
||||
Napi::Value setLineWrapMode(const Napi::CallbackInfo &info);
|
||||
Napi::Value lineWrapMode(const Napi::CallbackInfo &info);
|
||||
};
|
||||
|
||||
|
||||
@ -10,11 +10,12 @@ import {
|
||||
QWidget,
|
||||
QIcon,
|
||||
QDial,
|
||||
QPlainTextEdit
|
||||
QPlainTextEdit,
|
||||
QTextOptionEnums
|
||||
} from "./index";
|
||||
import { QScrollArea } from "./lib/QtWidgets/QScrollArea";
|
||||
import { QPixmap } from "./lib/QtGui/QPixmap";
|
||||
import { CursorShape, WindowState } from "./lib/QtEnums"
|
||||
import { CursorShape, WindowState } from "./lib/QtEnums";
|
||||
|
||||
const path = require("path");
|
||||
|
||||
@ -65,6 +66,7 @@ rootView.setLayout(new FlexLayout());
|
||||
|
||||
const textEdit = new QPlainTextEdit();
|
||||
textEdit.setPlainText("Hello");
|
||||
textEdit.setWordWrapMode(QTextOptionEnums.WrapMode.NoWrap);
|
||||
|
||||
const scrollArea = new QScrollArea();
|
||||
scrollArea.setInlineStyle("flex: 1; width:'100%';");
|
||||
|
||||
@ -5,6 +5,7 @@ export { QApplication } from "./lib/QtGui/QApplication";
|
||||
export { QPixmap } from "./lib/QtGui/QPixmap";
|
||||
export { QIcon } from "./lib/QtGui/QIcon";
|
||||
export { QCursor } from "./lib/QtGui/QCursor";
|
||||
export { QTextOptionEnums } from "./lib/QtGui/QTextOption";
|
||||
// Events: Maybe a separate module ?
|
||||
export { QKeyEvent } from "./lib/QtGui/QEvent/QKeyEvent";
|
||||
export { NativeEvent } from "./lib/core/EventWidget";
|
||||
@ -26,7 +27,8 @@ export { QSpinBox, QSpinBoxEvents } from "./lib/QtWidgets/QSpinBox";
|
||||
export { QRadioButton, QRadioButtonEvents } from "./lib/QtWidgets/QRadioButton";
|
||||
export {
|
||||
QPlainTextEdit,
|
||||
QPlainTextEditEvents
|
||||
QPlainTextEditEvents,
|
||||
LineWrapMode
|
||||
} from "./lib/QtWidgets/QPlainTextEdit";
|
||||
export { QScrollArea, QScrollAreaEvents } from "./lib/QtWidgets/QScrollArea";
|
||||
// Layouts:
|
||||
|
||||
3
src/lib/QtGui/QTextOption/index.ts
Normal file
3
src/lib/QtGui/QTextOption/index.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import * as Enums from "./textOptionEnums";
|
||||
|
||||
export const QTextOptionEnums = Enums;
|
||||
7
src/lib/QtGui/QTextOption/textOptionEnums.ts
Normal file
7
src/lib/QtGui/QTextOption/textOptionEnums.ts
Normal file
@ -0,0 +1,7 @@
|
||||
export enum WrapMode {
|
||||
NoWrap,
|
||||
WordWrap,
|
||||
ManualWrap,
|
||||
WrapAnywhere,
|
||||
WrapAtWordBoundaryOrAnywhere
|
||||
}
|
||||
@ -3,12 +3,24 @@ import { NodeWidget } from "../QWidget";
|
||||
import { BaseWidgetEvents } from "../../core/EventWidget";
|
||||
import { NativeElement } from "../../core/Component";
|
||||
import { QAbstractScrollArea } from "../QAbstractScrollArea";
|
||||
import { WrapMode } from "../../QtGui/QTextOption/textOptionEnums";
|
||||
|
||||
export const QPlainTextEditEvents = Object.freeze({
|
||||
...BaseWidgetEvents,
|
||||
textChanged: "textChanged"
|
||||
textChanged: "textChanged",
|
||||
blockCountChanged: "blockCountChanged",
|
||||
copyAvailable: "copyAvailable",
|
||||
cursorPositionChanged: "cursorPositionChanged",
|
||||
modificationChanged: "modificationChanged",
|
||||
redoAvailable: "redoAvailable",
|
||||
selectionChanged: "selectionChanged",
|
||||
undoAvailable: "undoAvailable"
|
||||
});
|
||||
|
||||
export enum LineWrapMode {
|
||||
NoWrap,
|
||||
WidgetWidth
|
||||
}
|
||||
export class QPlainTextEdit extends QAbstractScrollArea {
|
||||
native: NativeElement;
|
||||
constructor(parent?: NodeWidget) {
|
||||
@ -26,12 +38,16 @@ export class QPlainTextEdit extends QAbstractScrollArea {
|
||||
this.toPlainText.bind(this);
|
||||
this.setReadOnly.bind(this);
|
||||
this.clear.bind(this);
|
||||
this.setWordWrapMode.bind(this);
|
||||
this.wordWrapMode.bind(this);
|
||||
this.setLineWrapMode.bind(this);
|
||||
this.lineWrapMode.bind(this);
|
||||
}
|
||||
setPlainText(text: string | number) {
|
||||
// react:✓
|
||||
this.native.setPlainText(`${text}`);
|
||||
}
|
||||
toPlainText() {
|
||||
toPlainText(): string {
|
||||
// react:✓
|
||||
return this.native.toPlainText();
|
||||
}
|
||||
@ -43,4 +59,16 @@ export class QPlainTextEdit extends QAbstractScrollArea {
|
||||
// react:✓
|
||||
this.native.clear();
|
||||
}
|
||||
setWordWrapMode(mode: WrapMode) {
|
||||
this.native.setWordWrapMode(mode);
|
||||
}
|
||||
wordWrapMode(): WrapMode {
|
||||
return this.native.wordWrapMode();
|
||||
}
|
||||
setLineWrapMode(mode: LineWrapMode) {
|
||||
this.native.setLineWrapMode(mode);
|
||||
}
|
||||
lineWrapMode(): LineWrapMode {
|
||||
return this.native.lineWrapMode();
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user