From 9fada0e1682a6812b68bdfda2fbbea8695dcf702 Mon Sep 17 00:00:00 2001 From: slidinghotdog <33790211+slidinghotdog@users.noreply.github.com> Date: Sun, 29 Dec 2019 02:11:43 -0300 Subject: [PATCH] Move QColor from QtCore to QtGui (#311) * Change QColor from QtCore to QtGui * lint --- CMakeLists.txt | 2 +- .../{QtCore => QtGui}/QColor/qcolor_wrap.h | 0 .../{QtCore => QtGui}/QColor/qcolor_wrap.cpp | 2 +- .../lib/QtWidgets/QPainter/qpainter_wrap.cpp | 2 +- src/cpp/main.cpp | 2 +- src/demo.ts | 105 ++++++++++++------ src/index.ts | 2 +- src/lib/{QtCore => QtGui}/QColor.ts | 2 +- .../__tests__/QColor.test.ts | 2 +- src/lib/QtWidgets/QPainter.ts | 2 +- 10 files changed, 76 insertions(+), 45 deletions(-) rename src/cpp/include/nodegui/{QtCore => QtGui}/QColor/qcolor_wrap.h (100%) rename src/cpp/lib/{QtCore => QtGui}/QColor/qcolor_wrap.cpp (99%) rename src/lib/{QtCore => QtGui}/QColor.ts (97%) rename src/lib/{QtCore => QtGui}/__tests__/QColor.test.ts (97%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ce5f13ad..2071fc003 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ add_library(${CORE_WIDGETS_ADDON} SHARED "${PROJECT_SOURCE_DIR}/src/cpp/include/deps/yoga/event/event.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/include/deps/yoga/internal/experiments.cpp" # wrapped cpps + "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtGui/QColor/qcolor_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtGui/QApplication/qapplication_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtGui/QClipboard/qclipboard_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtGui/QEvent/QKeyEvent/qkeyevent_wrap.cpp" @@ -53,7 +54,6 @@ add_library(${CORE_WIDGETS_ADDON} SHARED "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtCore/QSize/qsize_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtCore/QRect/qrect_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtCore/QPoint/qpoint_wrap.cpp" - "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtCore/QColor/qcolor_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtCore/QUrl/qurl_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QWidget/qwidget_wrap.cpp" "${PROJECT_SOURCE_DIR}/src/cpp/lib/QtWidgets/QBoxLayout/qboxlayout_wrap.cpp" diff --git a/src/cpp/include/nodegui/QtCore/QColor/qcolor_wrap.h b/src/cpp/include/nodegui/QtGui/QColor/qcolor_wrap.h similarity index 100% rename from src/cpp/include/nodegui/QtCore/QColor/qcolor_wrap.h rename to src/cpp/include/nodegui/QtGui/QColor/qcolor_wrap.h diff --git a/src/cpp/lib/QtCore/QColor/qcolor_wrap.cpp b/src/cpp/lib/QtGui/QColor/qcolor_wrap.cpp similarity index 99% rename from src/cpp/lib/QtCore/QColor/qcolor_wrap.cpp rename to src/cpp/lib/QtGui/QColor/qcolor_wrap.cpp index 627cd71ef..271d8da7c 100644 --- a/src/cpp/lib/QtCore/QColor/qcolor_wrap.cpp +++ b/src/cpp/lib/QtGui/QColor/qcolor_wrap.cpp @@ -1,4 +1,4 @@ -#include "QtCore/QColor/qcolor_wrap.h" +#include "QtGui/QColor/qcolor_wrap.h" #include "Extras/Utils/nutils.h" #include "QtCore/QVariant/qvariant_wrap.h" diff --git a/src/cpp/lib/QtWidgets/QPainter/qpainter_wrap.cpp b/src/cpp/lib/QtWidgets/QPainter/qpainter_wrap.cpp index 3f0a51bbe..61d8071ed 100644 --- a/src/cpp/lib/QtWidgets/QPainter/qpainter_wrap.cpp +++ b/src/cpp/lib/QtWidgets/QPainter/qpainter_wrap.cpp @@ -1,8 +1,8 @@ #include "QtWidgets/QPainter/qpainter_wrap.h" #include "Extras/Utils/nutils.h" -#include "QtCore/QColor/qcolor_wrap.h" #include "QtCore/QPoint/qpoint_wrap.h" +#include "QtGui/QColor/qcolor_wrap.h" #include "QtWidgets/QWidget/qwidget_wrap.h" #include "core/Component/component_wrap.h" diff --git a/src/cpp/main.cpp b/src/cpp/main.cpp index 9fb9b62db..eac0f7395 100644 --- a/src/cpp/main.cpp +++ b/src/cpp/main.cpp @@ -1,6 +1,5 @@ #include -#include "QtCore/QColor/qcolor_wrap.h" #include "QtCore/QObject/qobject_wrap.h" #include "QtCore/QPoint/qpoint_wrap.h" #include "QtCore/QRect/qrect_wrap.h" @@ -9,6 +8,7 @@ #include "QtCore/QVariant/qvariant_wrap.h" #include "QtGui/QApplication/qapplication_wrap.h" #include "QtGui/QClipboard/qclipboard_wrap.h" +#include "QtGui/QColor/qcolor_wrap.h" #include "QtGui/QCursor/qcursor_wrap.h" #include "QtGui/QEvent/QKeyEvent/qkeyevent_wrap.h" #include "QtGui/QEvent/QMouseEvent/qmouseevent_wrap.h" diff --git a/src/demo.ts b/src/demo.ts index 760d11d42..7974eb37b 100644 --- a/src/demo.ts +++ b/src/demo.ts @@ -1,56 +1,87 @@ -import { FlexLayout, QMainWindow, QWidget } from './index'; -import { QLabel } from './lib/QtWidgets/QLabel'; -import { QSystemTrayIcon } from './lib/QtWidgets/QSystemTrayIcon'; -import { QMenu } from './lib/QtWidgets/QMenu'; -import { QAction } from './lib/QtWidgets/QAction'; -import { QFont, QFontWeight, QFontCapitalization, QFontStretch } from './lib/QtGui/QFont'; +import { + FlexLayout, + PenStyle, + WidgetEventTypes, + QColor, + QMainWindow, + QPainter, + QPoint, + QWidget, + RenderHint, +} from './index'; const win = new QMainWindow(); const center = new QWidget(); const layout = new FlexLayout(); +const hourHand = [new QPoint(7, 8), new QPoint(-7, 8), new QPoint(0, -40)]; +const minuteHand = [new QPoint(7, 8), new QPoint(-7, 8), new QPoint(0, -70)]; +const secondHand = [new QPoint(4, 8), new QPoint(-4, 8), new QPoint(0, -70)]; +const hourColor = new QColor(127, 0, 127); +const minuteColor = new QColor(0, 127, 127, 191); +const secondColor = new QColor(0, 0, 0); -const label = new QLabel(); -const tray = new QSystemTrayIcon(); -const menu = new QMenu(); -const action = new QAction(); +center.setLayout(layout); +win.setWindowTitle('Analog Clock'); -const font = new QFont('serif', 40, QFontWeight.ExtraLight, true); -font.setCapitalization(QFontCapitalization.AllUppercase); -font.setStretch(QFontStretch.UltraCondensed); +const side = Math.min(win.geometry().width(), win.geometry().height()); -const family = font.family(); -const pointSize = font.pointSize(); -const weight = font.weight(); -const italic = font.italic(); -const capitalization = font.capitalization(); -const stretch = font.stretch(); -console.log({ family, pointSize, weight, italic, capitalization, stretch }); +function repaint(): void { + win.repaint(); + setTimeout(repaint, 1000); +} -action.setText('action1'); -action.setFont(font); -menu.addAction(action); +setTimeout(repaint, 1000); +win.addEventListener(WidgetEventTypes.Paint, () => { + const time = new Date(); -const font2 = new QFont(font); -font2.setFamily('mono'); -font2.setCapitalization(QFontCapitalization.Capitalize); -font2.setStretch(QFontStretch.ExtraExpanded); -font2.setPointSize(20); + const painter = new QPainter(win); + painter.setRenderHint(RenderHint.Antialiasing); + painter.translate(win.geometry().width() / 2, win.geometry().height() / 2); + painter.scale(side / 200.0, side / 200.0); -const action2 = new QAction(); -action2.setText('action2'); -action2.setFont(font2); -menu.addAction(action2); + painter.setPen(PenStyle.NoPen); + painter.setBrush(hourColor); -tray.setContextMenu(menu); + painter.save(); + painter.rotate(30.0 * (time.getHours() + time.getMinutes() / 60.0)); + painter.drawConvexPolygon(hourHand); + painter.restore(); -tray.show(); + painter.setPen(hourColor); -label.setText('Hello!'); -layout.addWidget(label); + for (let i = 0; i < 12; ++i) { + painter.drawLine(88, 0, 96, 0); + painter.rotate(30.0); + } + + painter.setPen(PenStyle.NoPen); + painter.setBrush(minuteColor); + + painter.save(); + painter.rotate(6.0 * (time.getMinutes() + time.getSeconds() / 60.0)); + painter.drawConvexPolygon(minuteHand); + painter.restore(); + + painter.setBrush(secondColor); + painter.setPen(PenStyle.NoPen); + + painter.save(); + painter.rotate(360 * (time.getSeconds() / 60.0)); + painter.drawConvexPolygon(secondHand); + painter.restore(); + + painter.setPen(minuteColor); + for (let j = 0; j < 60; ++j) { + if (j % 5 != 0) { + painter.drawLine(92, 0, 96, 0); + } + painter.rotate(6.0); + } + painter.end(); +}); win.setCentralWidget(center); win.resize(400, 400); win.show(); (global as any).win = win; -(global as any).tray = tray; diff --git a/src/index.ts b/src/index.ts index 21fd0a9b0..39b19ce3f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -63,7 +63,7 @@ export { QVariant } from './lib/QtCore/QVariant'; export { QSize } from './lib/QtCore/QSize'; export { QRect } from './lib/QtCore/QRect'; export { QPoint } from './lib/QtCore/QPoint'; -export { QColor } from './lib/QtCore/QColor'; +export { QColor } from './lib/QtGui/QColor'; export { QUrl, ParsingMode } from './lib/QtCore/QUrl'; // Layouts: export { QBoxLayout, QBoxLayoutSignals } from './lib/QtWidgets/QBoxLayout'; diff --git a/src/lib/QtCore/QColor.ts b/src/lib/QtGui/QColor.ts similarity index 97% rename from src/lib/QtCore/QColor.ts rename to src/lib/QtGui/QColor.ts index 36fae191c..bd18c21af 100644 --- a/src/lib/QtCore/QColor.ts +++ b/src/lib/QtGui/QColor.ts @@ -1,7 +1,7 @@ import { Component, NativeElement } from '../core/Component'; import addon from '../utils/addon'; import { checkIfNativeElement } from '../utils/helpers'; -import { QVariant } from './QVariant'; +import { QVariant } from '../QtCore/QVariant'; import { GlobalColor } from '../QtEnums'; export class QColor extends Component { diff --git a/src/lib/QtCore/__tests__/QColor.test.ts b/src/lib/QtGui/__tests__/QColor.test.ts similarity index 97% rename from src/lib/QtCore/__tests__/QColor.test.ts rename to src/lib/QtGui/__tests__/QColor.test.ts index 8db618d73..3845e19a2 100644 --- a/src/lib/QtCore/__tests__/QColor.test.ts +++ b/src/lib/QtGui/__tests__/QColor.test.ts @@ -1,6 +1,6 @@ import { QColor } from '../QColor'; import { GlobalColor } from '../../QtEnums'; -import { QVariant } from '../QVariant'; +import { QVariant } from '../../QtCore/QVariant'; describe('QColor', () => { it('initialize empty', () => { diff --git a/src/lib/QtWidgets/QPainter.ts b/src/lib/QtWidgets/QPainter.ts index fd07b286d..92da426f7 100644 --- a/src/lib/QtWidgets/QPainter.ts +++ b/src/lib/QtWidgets/QPainter.ts @@ -1,7 +1,7 @@ import addon from '../utils/addon'; import { Component, NativeElement } from '../core/Component'; import { PenStyle } from '../QtEnums'; -import { QColor } from '../QtCore/QColor'; +import { QColor } from '../QtGui/QColor'; import { QPoint } from '../QtCore/QPoint'; export enum RenderHint {